/*!
 * jQuery JavaScript Library v1.4.2
 * http://jquery.com/
 *
 * Copyright 2010, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2010, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Sat Feb 13 22:33:48 2010 -0500
 */
(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);

function expandFaq(faqdivid, imgid) {
    if ($("#" + imgid).attr("alt") == "expand") {
        $("#" + faqdivid).css("height", ($("#" + faqdivid).html().length * 0.5) + 8 + 'px');
        $("#" + imgid).attr("src", "/SiteEngine/HTC/images/16-square-red-remove.png");
        $("#" + imgid).attr("alt", "collapse");
        $("#" + faqdivid).slideDown("slow");
    }
    else {
        $("#" + imgid).attr("src", "/SiteEngine/HTC/images/16-square-red-add.png");
        $("#" + imgid).attr("alt", "expand");
        $("#" + faqdivid).slideUp("slow");
    }
}

/*****************************************
SEARCH RESULTS MAP (Only for SR)
******************************************/
var minZoomLevel = 16;

var IsMapJSAvilable = false;
var IsMapJSRequestProcessing = false;

function initMapJSLoader(callBackMethod) {
    if (IsMapJSRequestProcessing == false) {
        IsMapJSRequestProcessing = true;
        var script = document.createElement("script");
        script.src = varMapsUrl + callBackMethod;
        script.type = "text/javascript";
        document.getElementsByTagName("head")[0].appendChild(script);
    }
}

function SRmapsLoaded() {
    IsMapJSAvilable = true;
    IsMapJSRequestProcessing = false;
    ShowGGMaps(_varlat, _varlon, _objvar, _varHotelName, _varLocation, _varAddress, _varRating, _varHotelImageURL, _varX, _varY)

}



var _varlat, _varlon, _objvar, _varHotelName, _varLocation, _varAddress, _varRating, _varHotelImageURL, _varX, _varY

function ShowGGMaps(varlat, varlon, objvar, varHotelName, varLocation, varAddress, varRating, varHotelImageURL, varX, varY) {

    if (IsMapJSAvilable == false) {
        _varlat = varlat;
        _varlon = varlon;
        _objvar = objvar;
        _varHotelName = varHotelName;
        _varLocation = varLocation;
        _varAddress = varAddress;
        _varRating = varRating;
        _varHotelImageURL = varHotelImageURL;
        _varX = varX;
        _varY = varY;
        loadMapTemplateAndData(varlat, varlon, objvar, varHotelName, varLocation, varAddress, varRating, varHotelImageURL, varX, varY);
        if (IsMapJSRequestProcessing == false) {
            initMapJSLoader("SRmapsLoaded");
        }
        return false;
    }

    loadMapTemplateAndData(varlat, varlon, objvar, varHotelName, varLocation, varAddress, varRating, varHotelImageURL, varX, varY);

    return false;
}

function loadMapTemplateAndData(varlat, varlon, objvar, varHotelName, varLocation, varAddress, varRating, varHotelImageURL, varX, varY) {
    MoveGGTemplate(objvar, varX, varY);
    document.getElementById("HotelImageURL").src = varHotelImageURL;
    document.getElementById("HotelName").innerHTML = varHotelName;
    document.getElementById("HotelMapStarRating").src = "/SiteEngine/HTC/Img/pixel.gif";
    document.getElementById("HotelMapStarRating").className = varRating; 
    document.getElementById("HotelMapLocation").innerHTML = "<strong>" + varLocationStringLang + ": </strong>" + varLocation;
    document.getElementById("HotelMapAddress").innerHTML = "<strong>" + varAddressStringLang + " </strong>" + varAddress;
    document.getElementById("HotelImageURL").src = "/HCRefreshAshx/ThumbNail.ashx?square=true&s=70&hid=" + varHotelImageURL;
}

function MoveGGTemplate(objvar, varX, varY) {
    var posX;
    if (parseInt(findPosX(objvar)) + parseInt(varX) < 5)
        posX = 5;
    else
        posX = parseInt(findPosX(objvar)) + parseInt(varX);
    var posY = parseInt(findPosY(objvar)) + parseInt(varY);

    document.getElementById("tplGoogleMap").style.left = posX + "px";
    document.getElementById("tplGoogleMap").style.top = posY + "px";
    document.getElementById("tplGoogleMap").style.display = "block";
}

function CloseMapWindow() {
    document.getElementById("tplGoogleMap").style.display = "none";
}

function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent)
        while (1) {
        curleft += obj.offsetLeft;
        if (!obj.offsetParent)
            break;
        obj = obj.offsetParent;
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent)
        while (1) {
        curtop += obj.offsetTop;
        if (!obj.offsetParent)
            break;
        obj = obj.offsetParent;
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}


function DHJsLoaded() {
    IsMapJSAvilable = true;
    IsMapJSRequestProcessing = false;
}

function mapsLoaded() {
}// Common.js starts here
function DescPop(url) {
    openWnd(url, "Description", 300, 600, 0, 0, 0, 1, 1, 0, 0)
} 
//open new window
function openWnd(url, name, height, width, directories, location, menubar, resizable, scrollbars, status, toolbar) 
{
	wnd = window.open(url, name, "alwaysRaised=1,height=" + height + ",width=" + width + ",directories=" + directories + ",locaton=" + location + ",menubar=" + menubar + ",resizable=" + resizable + ",scrollbars=" + scrollbars + ",status=" + status + ",toolbar=" + toolbar)
	wnd.focus()
}


//remove all name/value pairs with the passed name from url-encoded querystring
function remQStringName(qString, name) {
var i
var qStringNew = ""

if (qString != "") {
var curName
var arrNameVal = qString.split("&")

for (i = 0; i < arrNameVal.length ; i++) {
    
    curName = URLDecode(arrNameVal[i].split("=")[0])
    if (curName.toLowerCase() != name.toLowerCase()) qStringNew += "&" + arrNameVal[i]

}}

return qStringNew.substr(1)
}

function GetSelText(ctl) {
var selIdx = ctl.selectedIndex
return selIdx == -1 ? "" : ctl[selIdx].text
}

function URLDecode(urlStr) {
return unescape(urlStr.replace(/\+/g, " "))
}

//get select box value
function GetSelVal(ctl) {
var selIdx = ctl.selectedIndex
return selIdx == -1 ? "" : ctl[selIdx].value
}

function notNumber(number) {
number = number.toString()
for (var i=0; i<number.length; i++) {
if (number.charAt(i) > "9" || number.charAt(i) < "0") return true
}
return false
}

//check whether text-box is empty
function isEmpty(field, fieldName, msg){
if (Trim(field.value) == ""){
if (msg == null)
    msg = "Please enter " + fieldName + "."
    alert(msg);
	field.focus()
	return true

}
return false
}

//validate ASCII Character Set
function charCheck(field, message, toASCIIfield) {
if (toASCIIfield == null)
var txt = field.value
else
var txt = ToASCII(field)

for (var i=0; i<txt.length; i++) {
if (txt.charCodeAt(i) >= 128) {
alert(message)
field.focus()
return true
}}

return false
}

//check whether text-box is empty
function isEmptyContact(field, fieldName, msg) 
{ //alert(field)
	if (Trim(field.value) == "") 
	{
		if (msg == null)
			msg = "Please enter " + fieldName + "."
			field.focus()
			return true
		
	}

		return false
}


//validate ASCII Character Set
function charCheckContact(field, message, toASCIIfield) 
	{
		if (toASCIIfield == null)
			var txt = field.value
		else
			var txt = ToASCII(field)
			for (var i=0; i<txt.length; i++) 
			{
				if (txt.charCodeAt(i) >= 128) 
				{
				field.focus()
				return true
				}
			}
		return false
	}
function notSelected(field, fieldName, msg) 
{
	if (field.selectedIndex == 0) 
	{
		if (msg == null)
			msg = "Please select " + fieldName + "."
			field.focus()
			return true
	}
		return false
}

var AllowDocLangClick;
var AllowDocCurrClick;

AllowDocLangClick = false;
AllowDocCurrClick = false;

var LangjustClicked;
LangjustClicked = false;

var CurrjustClicked;
CurrjustClicked = false;
//_______________________________________________________________________________________
//for handling lang and curr dropdown style.
//_______________________________________________________________________________________
var IsCollapsable = false;
var UPPER_LIMIT = LOWER_LIMIT = 0;
var IsMovingDownClicked,IsMovingUpClicked = false;
var ItemsTable ;
var ParentDiv ;
var ParentDiv_ID ;
var PixTop = 0;
var PixHeight = 0;
 
 //Image Click event handler
function ImageClick (ParentDivID, ItemsTableID)
{
    ItemsTable = document.getElementById(ItemsTableID);
    ParentDiv = document.getElementById(ParentDivID);
    ParentDiv_ID =  ParentDivID;
    if(ItemsTable.style.top == null || ItemsTable.style.top == '')
    {
        ItemsTable.style.top = (0 - ItemsTable.getElementsByTagName("TR").length * 22) + "px";
    }
    
    UPPER_LIMIT = ItemsTable.getElementsByTagName("TR").length * 22;
    LOWER_LIMIT = 0 - UPPER_LIMIT;
     
    if(ParentDiv.style.display == "none")
    {
       IsCollapsable = false;
       ParentDiv.style.height = "0px";
       ItemsTable.style.top = (0 - ItemsTable.getElementsByTagName("TR").length * 22) + "px";
    }
    PixTop = 0;
    PixHeight = 0;
    if(IsCollapsable)
    {
        IsCollapsable = false;
        IsMovingUpClicked = true;
        IsMovingDownClicked = false;
        MoveUp();
    }
    else
    {
        IsCollapsable = true;
        IsMovingDownClicked = true;
        IsMovingUpClicked = false;
        toggleDisplay(ParentDivID, "block");
        MoveDown();
    }
}
var MoveUp = function()
{
    if(LOWER_LIMIT >= PixTop)
    {
        toggleDisplay(ParentDiv_ID, "none");
       
        return;
    }
    if(IsMovingDownClicked)
    {
        return;
    }
     
    PixTop = parseInt(ItemsTable.style.top.replace("px",""));
    PixHeight = parseInt(ParentDiv.style.height.replace("px",""));
	PixTop = PixTop - 10; 
	PixHeight = PixHeight - 10;
    ItemsTable.style.top = PixTop.toString() + "px";
    ParentDiv.style.height = PixHeight.toString() + "px";
	setTimeout(MoveUp,0);      
}
var MoveDown = function()
{
    if(UPPER_LIMIT <= PixHeight || IsMovingUpClicked )
    {
         
        return;
    }
 
	PixTop = parseInt(ItemsTable.style.top.replace("px",""));
    PixHeight = parseInt(ParentDiv.style.height.replace("px",""));
    PixTop = PixTop + 10; 
	PixHeight = PixHeight + 10;
    ItemsTable.style.top = PixTop.toString() + "px";
    ParentDiv.style.height = PixHeight.toString() + "px";
    setTimeout(MoveDown,0);      
}

function langcurrMouseOver(currentObject, langTitle){
if(langTitle != ''){
var images = currentObject.getElementsByTagName("img");
currentObject.style.backgroundColor = "#eae7a8";       
var index = images.length == 2? 1: 0;
if(images.length >0)
{
images[index].style.visibility = "visible";
}}}

function langcurrMouseOut(currentObject, langTitle){
if(langTitle != ''){
var images = currentObject.getElementsByTagName("img");
currentObject.style.backgroundColor = "#f8f8f8";
var index = images.length == 2? 1: 0;
if(images.length >0){
    images[index].style.visibility = "hidden";
}}}

function toggleDisplay(divId, ops) {

    var div = document.getElementById(divId);
    if (document.getElementById(divId).style.display == "block") ops = "none";
    div.style.display = ops;
 
      if (divId == 'dropmenulang') {
        AllowDocLangClick = true;
        LangjustClicked = true;
        CurrjustClicked = false;
      }
      else {
        AllowDocCurrClick = true;
        CurrjustClicked = true;
        LangjustClicked = false;
      }
  
}

function toggleDisplay2(obj, msgShow, msgHide, msgTemplate) {
    var objTemplate = document.getElementById(obj)
    var objMsgTemplate = document.getElementById(msgTemplate)
    if (objTemplate.style.display == 'block') {
        objTemplate.style.display = 'none';
        objMsgTemplate.innerHTML = msgHide;
    } else {
    objTemplate.style.display = 'block';
        objMsgTemplate.innerHTML = msgShow;
    }
}

function showLangFalse() {
if (LangjustClicked == true){
    LangjustClicked = false;
	return;
}
if (AllowDocLangClick == true) {
document.getElementById('dropmenulang').style.display="none";
AllowDocLangClick = false;
}}

function showCurrFalse() {
if (CurrjustClicked == true) {
    CurrjustClicked = false;
	return;
}

if (AllowDocCurrClick == true) {
document.getElementById('dropmenucurr').style.display="none";
AllowDocCurrClick = false;
}}

function showDivsFalse() {
    showCurrFalse();
    showLangFalse();
}

document.onclick = showDivsFalse;

function ChangeValue(urlVar, varValue) {
if (varValue != "") {
var frm = document.MainLangSwitch
var URL = switch_URL(urlVar, varValue)

if (frm) {
	frm.action = URL
	frm.submit()
} else {
	location = URL
}}}

function switch_URL(urlVar, varValue) {
var qString = location.search.substr(1)
var arrQString = qString.split("&")
var varAdded = false

for (var i in arrQString) {
if (arrQString[i].split("=")[0].toLowerCase() == urlVar) {
	arrQString[i] = urlVar + "=" + varValue
	varAdded = true
}}
qString = arrQString.join("&")
if (!varAdded) {
if (qString != "") qString += "&"
qString += urlVar + "=" + varValue
}
return location.pathname + "?" + qString
}

function LTrim(str){
var whitespace = new String(" \t\n\r");
var s = new String(str);
if (whitespace.indexOf(s.charAt(0)) != -1) {
var j=0, i = s.length;
while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
j++;
s = s.substring(j, i);
}
return s;
}

function RTrim(str){
var whitespace = new String(" \t\n\r");
var s = new String(str);
if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
var i = s.length - 1;
while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
i--;
s = s.substring(0, i+1);
}
return s;
}

function Trim(str){
return RTrim(LTrim(str));
}

function Len(str)
{  return String(str).length;  }

function Left(str, n){
        if (n <= 0)     // Invalid bound, return blank string
                return "";
        else if (n > String(str).length)   // Invalid bound, return
                return str;                // entire string
        else // Valid bound, return appropriate substring
                return String(str).substring(0,n);
}
function Right(str, n){
        if (n <= 0)     // Invalid bound, return blank string
           return "";
        else if (n > String(str).length)   // Invalid bound, return
           return str;                     // entire string
        else { // Valid bound, return appropriate substring
           var iLen = String(str).length;
           return String(str).substring(iLen, iLen - n);
        }
}

function Mid(str, start, len){
        // Make sure start and len are within proper bounds
        if (start < 0 || len < 0) return "";

        var iEnd, iLen = String(str).length;
        if (start + len > iLen)
                iEnd = iLen;
        else
                iEnd = start + len;

        return String(str).substring(start,iEnd);
}
function InStr(strSearch, charSearchFor){
for (i=0; i < Len(strSearch); i++)
{
    if (charSearchFor == Mid(strSearch, i, Len(charSearchFor) ))
    {
		return i;
    }
}
return -1;
}

//trim string
function trim(stringToTrim) {
	var i, j

	//left trim
	for(i=0; i<stringToTrim.length; i++) {
		if (stringToTrim.charAt(i) != " ") break
	}

	//right trim
	for(j=stringToTrim.length-1; j>=i; j--) {
		if (stringToTrim.charAt(j) != " ") break
	}

	return stringToTrim.substring(i, j + 1)
}
//End of Utils.js


//replace or add name/value pairs in url-encoded querystring
function setQStringName(qString, name, arrVal) {
    var qStringNew = remQStringName(qString, name)
    var i
  
   
    var start = qStringNew == "" ? 1 : 0
    for (i = 0; i < arrVal.length; i++) {
        qStringNew += "&" + escape(name) + "=" + escape(arrVal[i])
    }
    return qStringNew.substr(start)
}


//extract (first!) value from querystring for the passed name
function GetQSVal(qsName) {
    var qsPair
    var qString = location.search.substr(1)
    var arrNameVal = qString.split("&")
    for (var i in arrNameVal) {
        qsPair = arrNameVal[i].split("=")
        if (URLDecode(qsPair[0]).toLowerCase() == qsName.toLowerCase()) return URLDecode(qsPair[1])
    }
    return ""
}

function Reload(name, val, totPageNo) {
    if (val < totPageNo + 1 && val > 0) {
        var qString = location.search.substr(1)
        //always resert page to 1
        if (name != "page") {
            var page = GetQSVal("page")
            if (page != "1" && page != "") qString = setQStringName(qString, "page", new Array("1"))
        }
        qString = setQStringName(qString, name, new Array(val.toString()))
        location = location.pathname + "?" + qString
    }
}


function setCriteria(val) {
    document.getElementById('SearchBy').value = val;
}

function invalidChars(validatedControl, validatedName, charString, msg) {
    var validatedString = trim(validatedControl.value).toLowerCase()
    charString = charString.toLowerCase()

    for (var i = 0; i < validatedString.length; i++) {
        for (var j = 0; j < charString.length; j++) {
            if (validatedString.charAt(i) == charString.charAt(j)) {

                if (typeof (Common_Scripts_FuncLib_Space) == "undefined")
                    Common_Scripts_FuncLib_Space = "space"

                var alertString = charString.split("").join("  ")
                alertString = alertString.split("     ").join("  " + Common_Scripts_FuncLib_Space + "  ")

                if (msg == null)
                    msg = validatedName + " cannot contain any of the following illegal characters:\n\n " + alertString

                msg = msg.replace(/\[IllegalCharacters\]/, alertString)
                alert(msg)
                validatedControl.focus()
                return true
            }
        }
    }

    return false
}

function submitForm() {

    //check that at least one star rating is selected

    if (document.getElementById('rating3').checked == false && document.getElementById('rating4').checked == false && document.getElementById('rating5').checked == false)  {
    if (typeof (Common_Scripts_SearchEngine_SelectStar) == "undefined")
    Common_Scripts_SearchEngine_SelectStar = "Please select at least one Star Rating."

    alert(Common_Scripts_SearchEngine_SelectStar)
    document.getElementById('rating5').focus()
    return false;
    }

    if ($("#SearchBy").val() == "LocationKey" & ($("#destination").val().length < 3 | $("#destination").val() == HINT_DRE)) {
        alert(Common_Scripts_ValidDestinationSearch);
        return false;
    }

    if (document.getElementById("SearchBy").value == "Name") {
        document.getElementById('hotelname').value = trim(document.getElementById('hotelname').value)
        if (typeof (Common_Scripts_SearchEngine_HotelName) == "undefined")
            Common_Scripts_SearchEngine_HotelName = "Hotel Name cannot contain any of the following illegal characters:\n\n%"

        if (typeof (Common_Scripts_SearchEngine_HotelNameLength) == "undefined")
            Common_Scripts_SearchEngine_HotelNameLength = "Hotel Name should be at least 3 characters long."

        if (invalidChars(document.getElementById('hotelname'), "", "%", Common_Scripts_SearchEngine_HotelName)) return false;
   

        if (typeof (document.getElementById('hotelname')) != 'undefined') {
            if (trim(document.getElementById('hotelname').value).length < 3) {
                alert(Common_Scripts_SearchEngine_HotelNameLength);
                return false;

            }
        }
    }
    else {
        if (document.getElementById("SearchBy").value == "LocationKey") {
            if(document.getElementById('LocationKey'))
                document.getElementById('LocationKey').value = trim(document.getElementById('LocationKey').value)
                
            if (document.getElementById('hdnLocationKey'))
                document.getElementById('hdnLocationKey').value = trim(document.getElementById('hdnLocationKey').value)
                
            if (typeof (Common_Scripts_SearchEngine_LocationName) == "undefined")
                Common_Scripts_SearchEngine_LocationName = "Hotel Name cannot contain any of the following illegal characters:\n\n%"

            if (typeof (Common_Scripts_SearchEngine_LocationLength) == "undefined")
                Common_Scripts_SearchEngine_LocationLength = "Location Name should be at least 3 characters long."
            if (document.getElementById('LocationKey')) {
                if (invalidChars(document.getElementById('LocationKey'), "", "%", Common_Scripts_SearchEngine_LocationName)) return false;

            }
                
            
/*            if (document.getElementById('destination')) {
                if (document.getElementById('destination').value.split("'").length > 2) 
                {
                    alert(Common_Scripts_SearchEngine_LocationName + "\\~`!@#$%^&*()-+{}|\"':;?/><");
                    return false;
                }
                if (CheckForSpecialChars(document.getElementById('destination').value, "\\,~,`,!,@,#,$,%,^,&,*,(,),-,+,{,},|,\",:,;,?,/,>,<" )) {
                    alert(Common_Scripts_SearchEngine_LocationName + "\\~`!@#$%^&*()-+{}|\"':;?/><");
                    return false;
                }
            }
*/            
            if (document.getElementById('hdnLocationKey')) {
                if (invalidChars(document.getElementById('hdnLocationKey'), "", "%", Common_Scripts_SearchEngine_LocationName)) return false;
            }

            if (document.getElementById('LocationKey')) {
                if (trim(document.getElementById('LocationKey').value).length < 3) {
                    alert(Common_Scripts_SearchEngine_LocationLength);
                    return false;

                }
            }
            
            
        }
    }

}

function CheckForSpecialChars(str, splchars) {
    var charArr = splchars.split(",");
    for (i = 0; i < charArr.length; i++) {
        if (str.indexOf(charArr[i]) >= 0) {
            return true;
        }
    }
return false;
}


//update all name/value pairs with the passed name from url-encoded querystring
function updateQStringName(qString, name, value) {
    var i
    var qStringNew="" 
    //var start = qStringNew == "" ? 1 : 0
    
    if (qString != "") {
        var curName
        var arrNameVal = qString.split("&")
         
       

        for (i in arrNameVal) {
            curName = URLDecode(arrNameVal[i].split("=")[0])
            if (curName.toLowerCase() != name.toLowerCase()) qStringNew += "&" + arrNameVal[i]
        }
    }
    
    qStringNew += "&" + escape(name) + "=" + value

    return qStringNew.substr(1)
}

function UpdateFilter() {

    var qString = location.search.substr(1)

    var qStringRating
    qStringRating = remQStringName(qString, "star3")
    qStringRating = remQStringName(qStringRating, "star4")
    qStringRating = remQStringName(qStringRating, "star5")

    if (document.getElementById('star5').checked == false &&
        document.getElementById('star4').checked == false &&
        document.getElementById('star3').checked == false) {
        qStringRating += "&star3=ON&star4=ON&star5=ON&starAll=ON"
        qString = qStringRating
    }
    else if( document.getElementById('chkRatingAll').checked == true)
    {
        qStringRating += "&star3=ON&star4=ON&star5=ON&starAll=ON"
        qString = qStringRating
    }
    else {
        if (document.getElementById('star3').checked == true) {
            qStringRating += "&star3=" + document.getElementById('star3').value
            qString = qStringRating
        }

        if (document.getElementById('star4').checked == true) {
            qStringRating += "&star4=" + document.getElementById('star4').value
            qString = qStringRating
        }

        if (document.getElementById('star5').checked == true) {
            qStringRating += "&star5=" + document.getElementById('star5').value
            qString = qStringRating
        }
    }
    
    //-------------------------getting accommodation filters.
    var accChk = "";
    
    if(document.getElementById("ACCOMMODATIONTYPEAll").checked == false)
    {
        var arraccommodationTypeId = accommodationTypeIds.split(",");
        for (index = 0; index < arraccommodationTypeId.length - 1; index++) {
            if(arraccommodationTypeId[index] != ""){
                var chkbox = document.getElementById("ACCOMMODATIONTYPE" + arraccommodationTypeId[index])
                if (chkbox != null && chkbox.checked == true) {
                  accChk += chkbox.value + ',';
                }
            }
        }
        
        if (accChk.length > 0) {   
          accChk = accChk.substring(0, accChk.length - 1);
        }
    }
    
    var qStringAcc = remQStringName(qString, "accChk");
    qStringAcc += "&accChk=" + accChk;
    qString = qStringAcc;           
    //-------------------------getting accommodation filters - Ends.
       
    // FacilitiesCount is calculated in searchfilter.inc
    var count = FacilitiesCount
    var facChk =""
    if (document.getElementById("FACILITIESAll").checked == false) 
    {
        var arrFacilitiesId = FacilitiesId.split(",")
        for (i = 0; i < count+1; i++) {
             var chkbox = document.getElementById("FACILITIES" + arrFacilitiesId[i]);
             if (chkbox != null && chkbox.checked == true) {
              facChk += chkbox.value + ','
            }
        }
    }
    var chkLen = facChk.substring(0, facChk.length - 1)
    /////////

    var qStringNew = remQStringName(qString, "facChk")
    
    var chkLen = facChk.substring(0, facChk.length - 1)
    
    if (chkLen.length > 0) {       
        var arrVal = new Array(chkLen)       
        var i
       qStringNew += "&facChk=" + arrVal[0]       
    }

    qString = qStringNew
    qString = remQStringName(qString, "page")
    qString = remQStringName(qString, "rpage")
    
    qString = qString + "&rpage=" + document.getElementById("rpage").value;
    
    location = location.pathname + "?" + qString
}

function replaceQueryString(initialQuery, keyString, newValue) {
var re = new RegExp("([?|&])" + keyString + "=.*?(&|$)", "i");

var matches = initialQuery.match(re);

if (matches && matches.length)
    return initialQuery.replace(re, '$1' + keyString + "=" + newValue + '$2');
else {
    if (initialQuery.indexOf('?') < 0)
        return initialQuery + '?' + keyString + "=" + newValue;
    else
        return initialQuery + '&' + keyString + "=" + newValue;
}}


function Querystring(qs) {
this.params = {};

if (qs == null) qs = location.search.substring(1, location.search.length);
if (qs.length == 0) return;

qs = qs.toLowerCase();
qs = qs.replace(/\+/g, ' ');
var args = qs.split('&'); // parse out name/value pairs separated via &

// split out each name=value pair
for (var i = 0; i < args.length; i++) {
var pair = args[i].split('=');
var name = decodeURIComponent(unescape(pair[0]));

var value = (pair.length == 2)
	? decodeURI(encodeURI(pair[1]))
	: name;

this.params[name] = value;
}}

Querystring.prototype.get = function(key, default_) {
    key = key.toLowerCase();
    var value = this.params[key];
    return (value != null) ? value : default_;
}

function showpopup(cid,parentobj, x, y) {
    var topoffset = 18;
    if( x == 'undefined' ) x = 0 ; 
    if( y == 'undefined' ) y = 0 ;
	obj = document.getElementById(cid);
	mainobj = document.getElementById(parentobj);
	var curleft = curtop = 0;
	if (mainobj.offsetParent) {
	curleft = mainobj.offsetLeft;
	curtop = mainobj.offsetTop;
	while (mainobj = mainobj.offsetParent) {
	curleft += mainobj.offsetLeft;
	curtop += mainobj.offsetTop;
		}
	}
	obj.style.position = "absolute";
	obj.style.display = "";
	obj.style.left = (curleft + x) + 'px'; //Fix for bug#1737
	obj.style.top =  (curtop + topoffset + y) + 'px';
}


function hidepopup(divid) {
	objid = divid;
	document.getElementById(objid).style.display = "none";
}


function navigateToDirectHotelPage(hotelid,checkin,checkout, locKey, locID, isDRE, isByHotelName, hotelName, refinfo) {
  var directHotelString;
    if (isDRE == 'True')
    {
     
      directHotelString = "directhotel.asp?id=" + hotelid + "&ncl=&checkin=2009-03-10&checkout=2009-03-12&locKey=&locID=&locDispName=" + locDispName;
      directHotelString = replaceQueryString(directHotelString, "locKey", locKey);
      directHotelString = replaceQueryString(directHotelString, "locID", locID);
    }
    else if (isByHotelName == 'True')
    {
        directHotelString = "directhotel.asp?id=" + hotelid + "&ncl=&checkin=2009-03-10&checkout=2009-03-12&hotelName=";
        directHotelString = replaceQueryString(directHotelString, "hotelName", hotelName);        
    }
    else
    {
        directHotelString = "directhotel.asp?id=" + hotelid + "&ncl=&checkin=2009-03-10&checkout=2009-03-12";
    }    
    directHotelString = replaceQueryString(directHotelString, "id", hotelid);
    directHotelString = replaceQueryString(directHotelString, "checkin", checkin);
    directHotelString = replaceQueryString(directHotelString, "checkout", checkout);

    var varDMName = ""
    if (document.domain.length > 0) {
        varDMName = document.domain
    }

    directHotelString = directHotelString + "&rpage=" + varDMName + "/" + refinfo;

    window.location.href = directHotelString;
    }
    
    function navigateToDirectHotelPageRatingTab(hotelid,checkin,checkout, locKey, locID, isDRE) {
  var directHotelString;
    if (isDRE == 'True')
    {
      directHotelString = "directhotel.asp?id=" + hotelid + "&ncl=&checkin=2009-03-10&checkout=2009-03-12&locKey=&locID=&tab=2";
      directHotelString = replaceQueryString(directHotelString, "locKey", locKey);
      directHotelString = replaceQueryString(directHotelString, "locID", locID);
    }
    else
    {
    directHotelString = "directhotel.asp?id=" + hotelid + "&ncl=&checkin=2009-03-10&checkout=2009-03-12&tab=2";
    }    
    directHotelString = replaceQueryString(directHotelString, "id", hotelid);
    directHotelString = replaceQueryString(directHotelString, "checkin", checkin);
    directHotelString = replaceQueryString(directHotelString, "checkout", checkout);

    window.location.replace(directHotelString);
    }

function refreshattabclick(refreshval) {
    var pagecode = GetQSVal("vw");
    if (pagecode != refreshval)
    {
        var qString = location.search.substr(1)
        qString = location.pathname + "?" + qString
        qString = replaceQueryString(qString, "vw", refreshval)
        qString = replaceQueryString(qString, "rpage", document.getElementById("rpage").value)
        qString = replaceQueryString(qString, "page", "1")
        location =  qString;
    }
}

function logoutclick() {
    var qString = ""
    if (location.pathname.toLowerCase() == "/selections.asp") {
        qString = "?" + location.search.substr(1)

        qString = replaceQueryString(qString, "lgt", "1")

        qString = replaceQueryString(qString, "rpage", location.pathname)
    }
    //location = qString;
    location = "/logout.asp" + qString;
}


function ChangeCurrencies(currencycode, currencyname, refinfo) {
    document.getElementById('txtCurrency').innerHTML = document.getElementById(currencycode).innerHTML;
    toggleDisplay('dropmenucurr', 'none');

    var squery = "";
    var sFquery = "";
    var varDMName = "";
    if (document.domain.length > 0) {
        varDMName = document.domain
    }

    sFquery = window.location.toString();
    squery = replaceQueryString(sFquery, "curr", currencycode);
    squery = replaceQueryString(squery, "rpage", varDMName + "/" + refinfo);

    
    //TODO integrate with current function, no need to have 2 same functions
    //var frm = document.MainLangSwitch;
    
    //if (frm) {
    //    frm.action = squery
    //    frm.submit()
    //}
    //else {
        window.location.replace(squery);
    //}
    
    //window.location.replace( replaceQueryString(window.location.toString(),"curr",currencycode ));
}

function ChangeCurrenciesCCForm(currencycode, currencyname, refinfo) {
    document.getElementById('txtCurrency').innerHTML = document.getElementById(currencycode).innerHTML;
    toggleDisplay('dropmenucurr', 'none');

    var squery = "";
    var sFquery = "";
    var varDMName = "";
    if (document.domain.length > 0) {
        varDMName = document.domain
    }

    sFquery = window.location.toString();
    squery = replaceQueryString(sFquery, "curr", currencycode);
    squery = replaceQueryString(squery, "rpage", varDMName + "/" + refinfo);

    var frm = document.MainLangSwitch
    frm.action = squery
    frm.submit()
}


function ChangeLangCCForm(languagecode, languagename, refinfo) {
    document.getElementsByName("imgLang")[0].id = languagecode + "Smallgif";
    document.getElementsByName("imgLang")[0].src = "SiteEngine/HTC/Images/lang/" + languagecode + "Small.gif";
    toggleDisplay('dropmenulang', 'none');

    var squery = "";
    var sFquery = "";
    var varDMName = "";
    if (document.domain.length > 0) {
        varDMName = document.domain
    }

    sFquery = window.location.toString();
    squery = replaceQueryString(sFquery, "lc", languagecode);
    squery = replaceQueryString(squery, "rpage", varDMName + "/" + refinfo);
    var frm = document.MainLangSwitch
    if (frm) {
        frm.action = squery
        frm.submit()
    } 
}





function ChangeLang(languagecode, languagename, refinfo) {
    document.getElementsByName("imgLang")[0].id = languagecode + "Smallgif";
    document.getElementsByName("imgLang")[0].src = "SiteEngine/HTC/Images/lang/" + languagecode + "Small.gif";
    toggleDisplay('dropmenulang', 'none');

    var squery = "";
    var sFquery = "";
    var varDMName = "";
    if (document.domain.length > 0) {
        varDMName = document.domain
    }

    sFquery = window.location.toString();
    squery = replaceQueryString(sFquery, "lc", languagecode);
    squery = replaceQueryString(squery, "rpage", varDMName + "/" + refinfo);

    window.location.replace(squery);
}

function unCheckOptions(currentObject, parentObjectId){
if (currentObject.checked){
var parentObejct = document.getElementById(parentObjectId);
var childOptions = parentObejct.getElementsByTagName("input");
for(index=0; index<childOptions.length; index++){
if (childOptions[index].type == "checkbox" ){
    childOptions[index].checked = false;
}}
currentObject.checked = true;
}}

function unCheckAll(AllOption){
    document.getElementById(AllOption).checked = false;
}

function DisplayMemberDollar(mainobj, currencysign, roomtotal, memberdollars, earnpercentage,optionalparam) {
obj = document.getElementById("areyoumember");

var curleft = curtop = 0;
if (mainobj.offsetParent) {
 curleft = mainobj.offsetLeft;
 curtop = mainobj.offsetTop;
 while (mainobj = mainobj.offsetParent) {
     curleft += mainobj.offsetLeft ;
     curtop += mainobj.offsetTop - 70;
}}

obj.style.position = "absolute";
obj.style.display = "block";
if(curleft - 640 < 5)
    obj.style.left = '5px';
else
    obj.style.left = curleft - 640 + 'px';
    var IE = /*@cc_on!@*/false;
    if (IE) {
        obj.style.top = document.documentElement.scrollTop + 50 + 'px';
    }
    else {
        obj.style.top = window.pageYOffset + 50 + 'px';
    }

var _memberdollar = document.getElementById("memberdollar")

if (_memberdollar != null)
 _memberdollar.innerHTML = currencysign + " " + memberdollars;

var _currencysign = document.getElementById("currencysign")
if (_currencysign != null)
 _currencysign.innerHTML = currencysign;

var _roomtotal = document.getElementById("roomtotal")
if (_roomtotal != null)
 _roomtotal.innerHTML = roomtotal;

var _earnpercentage = document.getElementById("earnpercentage")

if (_earnpercentage != null)
 _earnpercentage.innerHTML = earnpercentage; 
}

function HideMemberDollarPopup() {
 document.getElementById("areyoumember").style.display = "none";
}

function JEscape(str) {
str = str.replace(/<jstab>/g, "\t");
str = str.replace(/<jsbr>/g, "\n");
return str;
}


//check whether passed parameter is a valid number
function notNumber(number) {
number = number.toString()
for (var i = 0; i < number.length; i++) {
    if (number.charAt(i) > "9" || number.charAt(i) < "0") return true
}
return false
}

//validate email address
function notEmail(field, fieldName, msg) {
var email = trim(field.value)

if (email == "") return false

var at = false
var dot = false

for (var i = 0; i < email.length; i++) {
    if (email.charAt(i) == "@") at = true
    if (email.charAt(i) == "." && at) dot = true
}

if (!(at && dot && email.length > 5)) {
    if (msg == null)
        msg = "The " + fieldName + " you entered is not a valid e-mail address."

    alert(msg)
    field.focus()
    field.select()
    return true
}

//check for invalid characters
if (invalidChars(field, "E-mail", '%,;|" <>\\/')) return true

return false
}


function makeHttpRequest(url) {
    http_request = false
    if (window.XMLHttpRequest) {
        http_request = new XMLHttpRequest()
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml')
        }
    }
    else if (window.ActiveXObject) {
        try {
            if (IeVersion()['Version'] > 6) {
                http_request = new ActiveXObject("MSXML2.DOMDocument")
            } else {
                http_request = new ActiveXObject("MSXML2.XMLHTTP.3.0")
            }
        }
    catch (e) {
        onError(e)
        try {
            if (IeVersion()['Version'] > 6) {
                http_request = new ActiveXObject("Microsoft.XMLHTTP")
            } else {
                http_request = new ActiveXObject("MSXML2.XMLHTTP.3.0")
            }
        }
        catch (e) {
            onError(e) 
        }
    }
}
    if (!http_request) {
        onError()
        return false
    }
    http_request.onreadystatechange = refreshPage
    http_request.open('GET', url , true)
    http_request.send(null)
}


function refreshPage() {
    if (http_request.readyState == 4) {
        window.location.reload(false);
    }
}

//Start of defect-3016
function IeVersion() {
    var browser = navigator.userAgent.toLowerCase()
    var ba = new Array()
    if (browser.indexOf('msie') != -1) {
        var splie, splietoname
        splie = browser.split(';')
        splietoname = splie[1].split(' ')
        return parseFloat(splietoname[2])
    }
}
function onError(e) {
}
//Start of defect-3016
//initialise tooltip variables
var ttMaxWidth = 200	//maximum width 
var ttFont = "tahoma"	//font 
var ttFontSize = 8		//font size
var ttBgColor = "#ffffe7"	//background colour
var mouseOffset = 20	//distance from mouse pointer
var edgeOffset = 5		//distance from window edge


//create tooltip container
if (document.layers) {
    document.write('<layer id=tt style="padding:2; position:absolute; visibility:hidden; " visibility=hide bgcolor=' + ttBgColor + ' width=' + ttMaxWidth + '></layer>')
} else if (document.all || document.getElementById) {
    document.write('<div id=tt style="padding:2; position:absolute; visibility:hidden; background-color:' + ttBgColor + '; border:1px solid; font-size:' + ttFontSize + 'pt; font-family:' + ttFont + '"></div>')
}


//initialise tooltip
function initTT() {
    if (document.getElementById) {
        tooltip = document.getElementById("tt")
    } else if (document.layers) {
        tooltip = document.tt
    } else if (document.all) {
        tooltip = document.all.tt
    }
}


//full tooltip size (including offsets) object constructor
function objSize(ttWidth, ttHeight, mouseOffset, edgeOffset) {
    this.width = ttWidth + mouseOffset + edgeOffset
    this.height = ttHeight + mouseOffset + edgeOffset
}


//"space available for tooltip" object constructor
function objMargin(x, y, scrollX, scrollY, windowWidth, windowHeight) {
    this.scrollX = scrollX
    this.scrollY = scrollY
    this.left = x - scrollX
    this.top = y - scrollY
    this.right = windowWidth - this.left
    this.bottom = windowHeight - this.top
}

//show tooltip
function showTT(obj, include) {
    //alert("X : " + evt.x + " ,Y : " + evt.y + ", offX : " + evt.offsetX + ", offY : " + evt.offsetY + ", pageX : " + evt.pageX + ", pageY : " + evt.pageY + ", clientX : " + evt.clientX + ", clientY : " + evt.clientY);
    if (typeof (tooltip) == "undefined") return
    
    var x = parseInt(findPosX(obj), 10);
    var y = parseInt(findPosY(obj), 10);

    var ttText = typeof (include) == "string" ? include : incArray[include]

    if (document.layers) {
        tooltip.document.write('<span style="color:#000000; border:3px solid; font-size:' + ttFontSize + 'pt; font-family:' + ttFont + '">' + ttText + '</span>')
        tooltip.document.close()
        positionTT(tooltip, x, y, tooltip.clip.width, tooltip.clip.height)
        tooltip.visibility = "show"
    } else if (document.all || document.getElementById) {
        tooltip.style.left = ""
        tooltip.style.top = ""
        tooltip.noWrap = true
        tooltip.innerHTML = "&nbsp;" + ttText + "&nbsp;"
        tooltip.style.color = "#000000"

        if (tooltip.offsetWidth > ttMaxWidth) {
            tooltip.noWrap = false
            tooltip.style.width = ttMaxWidth + "px"
        } else {
            tooltip.style.width = tooltip.offsetWidth
        }

        positionTT(tooltip.style, x, y, tooltip.offsetWidth, tooltip.offsetHeight)
        tooltip.style.display = "none"  //this removes blinking in NN6
        tooltip.style.visibility = "visible"
        tooltip.style.display = "block"
        tooltip.style.zIndex = 100
    }
}
function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent)
        while (1) {
        curleft += obj.offsetLeft;
        if (!obj.offsetParent)
            break;
        obj = obj.offsetParent;
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent)
        while (1) {
        curtop += obj.offsetTop;
        if (!obj.offsetParent)
            break;
        obj = obj.offsetParent;
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}

//hide tooltip
function hideTT() {
    if (typeof (tooltip) == "undefined") return

    if (document.layers) {
        tooltip.visibility = "hide"
    } else if (document.all || document.getElementById) {
        tooltip.style.visibility = "hidden"
        tooltip.style.width = ""
    }
}


//position tooltip
function positionTT(posObj, x, y, ttWidth, ttHeight) {
    //fix width problem in ie4
    if (ttWidth > ttMaxWidth) ttWidth = ttMaxWidth

    var ttMargin, posLeft, posTop
    var ttSize = new objSize(ttWidth, ttHeight, mouseOffset, edgeOffset)

    if (document.layers || document.getElementById) {
        ttMargin = new objMargin(x, y, window.pageXOffset, window.pageYOffset, window.innerWidth, window.innerHeight)
    } else if (document.all) {
        //fix event coordinates for explorer 5 and later
        if (newMSIE()) {
            x += document.body.scrollLeft
            y += document.body.scrollTop
        }

        ttMargin = new objMargin(x, y, document.body.scrollLeft, document.body.scrollTop, document.body.clientWidth, document.body.clientHeight)
    }

    if (ttMargin.right >= ttSize.width) {
        posLeft = x + mouseOffset
    } else {
        posLeft = ttMargin.left + ttMargin.right >= ttSize.width ? x + ttMargin.right - ttSize.width : ttMargin.scrollX + edgeOffset
    }

    if (ttMargin.bottom >= ttSize.height) {
        posTop = y + mouseOffset
    } else {
        posTop = ttMargin.top + ttMargin.bottom >= ttSize.height ? y + ttMargin.bottom - ttSize.height : ttMargin.scrollY + edgeOffset
    }

    //make sure tooltip does not appear over the mouse pointer
    if (x >= posLeft && x <= posLeft + ttSize.width && y >= posTop && y <= posTop + ttSize.height) {
        if (ttMargin.top >= ttSize.height) {
            posTop = y - ttSize.height
        } else if (ttMargin.left >= ttSize.width) {
            posLeft = x - ttSize.width
        } else {
            posLeft = x + mouseOffset
            posTop = y + mouseOffset
        }
    }

    if (document.all || document.getElementById) {
        posLeft += "px"
        posTop += "px"
    }
    posLeft = x + 20
    posTop = y + 20

    posObj.left = posLeft + "px";
    posObj.top = posTop + "px";    
}


//returnes true if user agent is explorer 5 or later
function newMSIE() {
    var ua = navigator.userAgent
    var msie = ua.indexOf("MSIE")

    if (msie > 0) {
        if (parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))) >= 5) return true
    }

    return false
}
var pageSize = 5;
var pagerControl = new PagerControl(pageSize); //Creating an object of the pager controll by specifying the size of the page
pagerControl.HostControlID = "Paging"; //The id of the controll inside of which the pager will be displayed
pagerControl.HostControlIDBottom = "paging_bottom";
//The constructor of the pager control
function PagerControl(pageSize) {
    this.PageSize = pageSize;
    this.PageCount = 0;
    this.CurrentPage = 1;
    this.HostControlID = null;
    this.HostControlIDBottom = null;
    this.previousImageURL = "/SiteEngine/HTC/Images/pointer-prev.gif";
    this.nextImageURL = "/SiteEngine/HTC/Images/pointer-next.gif";
    //Template for moving the pager backward
    this.HeaderTemplate = "<a href=\"javascript:{#reloadfunction}({#firstpage}, {#prev})\"><img alt=\"\" src=" + this.previousImageURL + " /></a>&nbsp;&nbsp;";
    this.ClassicHeaderTemplate = "<a href=\"javascript:{#reloadfunction}({#firstpage})\"><img alt=\"\" src=" + this.previousImageURL + " /></a>&nbsp;&nbsp;";
    //Template for selecting each page from the pager
    this.ItemTemplate = "<a onmousedown=\"javascript:{#reloadfunction}({#page}, {#prev})\" class=\"paging_link_show\">{#title}</a> &nbsp; ";
    this.ClassicItemTemplate = "<a onmousedown=\"javascript:{#reloadfunction}({#page})\" class=\"paging_link_show\">{#title}</a> &nbsp; ";    
    //Template for selected page
    this.SelectedItemTemplate = "<span class=\"pagingnumbers\"><b>{#title}</b></span> &nbsp; ";

    //Template for total page numbers
    this.TotalPageItemTemplate = "<span class=\"pagingnumbers1\">{#totPageVisited}</span> &nbsp;";
    //Template for moving the pager forward
    this.FooterTemplate = "<a href=\"javascript:{#reloadfunction}({#lastpage}, {#prev})\"><img alt=\"\" src=" + this.nextImageURL + "  /></a>";
    this.ClassicFooterTemplate = "<a href=\"javascript:{#reloadfunction}({#lastpage})\"><img alt=\"\" src=" + this.nextImageURL + "  /></a>";    
}

//Execute this function to refresh the data in the pager control
PagerControl.prototype.RenderPager = function() {

    var result = "";
    if (document.getElementById("ClassicSearch").value == "true") 
    {
        result = RenderClassicPage();        
    }
    else 
    {
        result = RenderNewPage();
    }

    if (document.getElementById(this.HostControlID) != null) 
    {
        document.getElementById(this.HostControlID).innerHTML = result;
        document.getElementById("paging_bottom").innerHTML = result;
    }

}

function RenderClassicPage()
{
    var result = "";
    var reloadFunction = 'changeSearchResultsPageClassic'; //Name of the function to be called during pager click event
    var startPoint = 0; //setting the starting page to zero

    if (pagerControl.PageCount > 1) 
    {
        if (pagerControl.CurrentPage > pagerControl.PageCount) pagerControl.CurrentPage = pagerControl.PageCount;

        if (typeof (Common_Scripts_Pages) == "undefined") Common_Scripts_Pages = "Pages";
        result += Common_Scripts_Pages + "&nbsp;";

        //Setting the backward moving template of the pager
        if (pagerControl.CurrentPage != 1) 
        {
            result += pagerControl.ClassicHeaderTemplate.replace("{#firstpage}", pagerControl.CurrentPage - 1).replace("{#reloadfunction}", reloadFunction);
        }
        //Selecting the numbers to be displayed on the pager by setting the value for startPoint.
        var Limit = Math.ceil((pagerControl.PageSize / 2));
        if (pagerControl.CurrentPage > Limit) 
        {
            startPoint = pagerControl.CurrentPage - Limit;
            if (pagerControl.PageCount > pagerControl.PageSize) 
            {
                result += pagerControl.ClassicItemTemplate.replace("{#page}", startPoint - 1).replace("{#title}", "..").replace("{#reloadfunction}", reloadFunction);
            }
            if ((pagerControl.CurrentPage > pagerControl.PageCount - Limit) || startPoint > (pagerControl.PageCount - pagerControl.PageSize)) 
            {
                startPoint = pagerControl.PageCount - pagerControl.PageSize;
            }
        }
        if (startPoint < 0) startPoint = 0;
        for (var i = startPoint + 1; i <= pagerControl.PageCount && i <= (startPoint + pagerControl.PageSize); i++) 
        {
            if (i != pagerControl.CurrentPage) 
            {
                result += pagerControl.ClassicItemTemplate.replace("{#page}", i).replace("{#title}", i).replace("{#reloadfunction}", reloadFunction);
            } 
            else 
            {
                result += pagerControl.SelectedItemTemplate.replace("{#title}", i);
            }
        }
        if (startPoint < (pagerControl.PageCount - pagerControl.PageSize)) 
        {
            result += pagerControl.ClassicItemTemplate.replace("{#page}", (startPoint + pagerControl.PageSize + 2)).replace("{#title}", "..").replace("{#reloadfunction}", reloadFunction);
        }
        //Setting the forward moving template of the pager
        if (pagerControl.PageCount != pagerControl.CurrentPage) 
        {
            result += pagerControl.ClassicFooterTemplate.replace("{#lastpage}", pagerControl.CurrentPage + 1).replace("{#reloadfunction}", reloadFunction);
        }
        
    }
    
    return result;

}

function RenderNewPage()
{
    var result = "";
    var reloadFunction = 'changeSearchResultsPage'; //Name of the function to be called during pager click event
    var startPoint = 0; //setting the starting page to zero
    var totPageVisited = 1;

    if (document.getElementById("MaxPageIndex") != "undefined" || document.getElementById("MaxPageIndex") != "")
        totPageVisited = document.getElementById("MaxPageIndex").value

    if (document.getElementById("ResetSearch") != "undefined" && document.getElementById("ResetSearch").value == "true") {
        pagerControl.CurrentPage = 1;
        document.getElementById("ResetSearch").value = "false";
    }

    if (pagerControl.PageCount > 1) 
    {        
        if (pagerControl.CurrentPage > pagerControl.PageCount) pagerControl.CurrentPage = pagerControl.PageCount;

        if (typeof (Common_Scripts_Pages) == "undefined") Common_Scripts_Pages = "Pages";
        result += Common_Scripts_Pages + "&nbsp;" //+ pagerControl.SelectedItemTemplate;


        //Setting the backward moving template of the pager
        if (pagerControl.CurrentPage != 1) {
            result += pagerControl.HeaderTemplate.replace("{#firstpage}", pagerControl.CurrentPage - 1).replace("{#reloadfunction}", reloadFunction).replace("{#prev}", 1);
        }
        //Selecting the numbers to be displayed on the pager by setting the value for startPoint.
        var Limit = Math.ceil((pagerControl.PageSize / 2));
        if (pagerControl.CurrentPage > Limit) {
            startPoint = pagerControl.CurrentPage - Limit;
            if (pagerControl.PageCount > pagerControl.PageSize) {
                result += pagerControl.ItemTemplate.replace("{#page}", startPoint - 1).replace("{#title}", "..").replace("{#reloadfunction}", reloadFunction);
            }
            if ((pagerControl.CurrentPage > pagerControl.PageCount - Limit) || startPoint > (pagerControl.PageCount - pagerControl.PageSize)) {
                startPoint = pagerControl.PageCount - pagerControl.PageSize;
            }
        }
        if (startPoint < 0) startPoint = 0;

       // if (pagerControl.CurrentPage > 1)
       //     result += pagerControl.ItemTemplate.replace("{#page}", pagerControl.CurrentPage - 1).replace("{#title}", "prev").replace("{#reloadfunction}", reloadFunction).replace("{#prev}", 1);
        
        for (var i = 1; i <= totPageVisited; i++) {
            if (i != pagerControl.CurrentPage) {
                result += pagerControl.ItemTemplate.replace("{#page}", i).replace("{#title}", i).replace("{#reloadfunction}", reloadFunction).replace("{#prev}", 1);
            }
            else {
                result += pagerControl.SelectedItemTemplate.replace("{#title}", "<b style=\"font-size:10px;\">" + i + "</b>");
            }
        }
        result += pagerControl.TotalPageItemTemplate.replace("{#totPageVisited}", "of&nbsp;" + pagerControl.PageCount + "&nbsp;&nbsp;");

        if (pagerControl.CurrentPage != pagerControl.PageCount) {
            result += pagerControl.ItemTemplate.replace("{#page}", pagerControl.CurrentPage + 1).replace("{#title}", "next").replace("{#reloadfunction}", reloadFunction).replace("{#prev}", 0);
        }
        
        //result += this.SelectedItemTemplate.replace("{#title}", this.CurrentPage);
        result = result.replace("{#title}", pagerControl.CurrentPage);

        //Setting the forward moving template of the pager
        if (pagerControl.PageCount != pagerControl.CurrentPage) {
            result += pagerControl.FooterTemplate.replace("{#lastpage}", pagerControl.CurrentPage + 1).replace("{#reloadfunction}", reloadFunction).replace("{#prev}", 0);
        }
    }    
        return result;

}

//This function will be called during page loading
function loadData(page, noofrecords, pageSize) 
{

    pagerControl.PageSize = pageSize;
    pagerControl.CurrentPage = page;
    if (TotItemInpage < pagerControl.PageSize)
        pagerControl.PageCount = pagerControl.CurrentPage;
    else
        pagerControl.PageCount = Math.ceil((noofrecords / pagerControl.PageSize));
            
    pagerControl.RenderPager();
}

//This function will be called when clicking on the pager control
function changeSearchResultsPageClassic(pageno) 
{
    pagerControl.CurrentPage = pageno;
    pagerControl.RenderPager();
    if (pagerControl.CurrentPage < pagerControl.PageCount + 1 && pagerControl.CurrentPage > 0) 
    {
        var qString = location.search.substr(1)
        qString = setQStringName(qString, "page", new Array(pagerControl.CurrentPage.toString()))
        qString = remQStringName(qString, "rpage")
        qString = qString + "&rpage=" + document.getElementById("rpage").value;
        location = location.pathname + "?" + qString
    }
}

//This function will be called when clicking on the pager control
function changeSearchResultsPage(pageno, prev) 
{
	var frmHotelid = "";
	var toHotelid = "";
	
    pagerControl.CurrentPage = pageno;
    pagerControl.RenderPager();
    if (pagerControl.CurrentPage < pagerControl.PageCount + 1 && pagerControl.CurrentPage > 0) 
    {
        var qString = location.search.substr(1)

		if (document.getElementById("frmHotelid") != "undefined" && document.getElementById("toHotelid") != "undefined")
		{
			frmHotelid = document.getElementById("frmHotelid").value
			toHotelid = document.getElementById("toHotelid").value        
		}
        
        qString = replaceforSorting(qString, "frmHotelid", frmHotelid);
        qString = replaceforSorting(qString, "toHotelid", toHotelid);
        qString = replaceforSorting(qString, "isprev", prev);
        
        qString = setQStringName(qString, "page", new Array(pagerControl.CurrentPage.toString()))


        
        location = location.pathname + "?" + qString;
    }

}

function replaceforSorting(initialQuery, keyString, newValue) {
	var re = new RegExp("([?|&])" + keyString + "=.*?(&|$)", "i");
	var matches = initialQuery.match(re);

	if (matches && matches.length)
	{
		return initialQuery.replace(re, '$1' + keyString + "=" + newValue + '$2');
	}
	else 
	{
			return initialQuery + '&' + keyString + "=" + newValue;
	}
}
var sx = 0;
var speed = 800;
var cellw = 71;
var slidecell = 5;
var visiblecell = 5;
var vc = 0;

jQuery(document).ready(function() {

    $('#topnav .sublink').hover(function() {
        $(this).find('ul').css('display', 'block');
    }, function() {
        $(this).find('ul').css('display', 'none');
    });

    if($("div.scrolldiv").length > 0 ) showhidenav();
    if($("div.scrolldiv").length > 0) showhidenavsummary();

    $(".prev").click(function() {
        if (vc > totalcell - 5) {
            slidecell = lastmove;
        } else { slidecell = 5; }
        vc -= 5;

        sx -= cellw * slidecell;
        if (sx < 0) { sx = 0; ; return; }
        $('div.pane').scrollTo(sx, speed, { queue: true, axis: 'x', onAfter: function() {
            showhidenav()
        }
        });
    });


    $(".next").click(function() {
        vc += 5;
        if (vc > totalcell - 5)
            slidecell = lastmove;
        sx += cellw * slidecell;
        if (sx > (cellw * (totalcell - visiblecell))) { sx = (cellw * (totalcell - visiblecell)); return; }
        $('div.pane').scrollTo(sx, speed, { queue: true, axis: 'x', onAfter: function() {
            showhidenav()
        }
        });
    });

    $(".prevset").click(function() {
        if (vc > totalcell - 5) {
            slidecell = lastmove;
        } else { slidecell = 5; }
        vc -= 5;

        sx -= cellw * slidecell;
        if (sx < 0) { sx = 0; ; return; }
        $('div.summarypane').scrollTo(sx, speed, { queue: true, axis: 'x', onAfter: function() {
            showhidenavsummary();
        }
        });
    });


    $(".nextset").click(function() {
        vc += 5;
        if (vc > totalcell - 5)
            slidecell = lastmove;
        sx += cellw * slidecell;
        if (sx > (cellw * (totalcell - visiblecell))) { sx = (cellw * (totalcell - visiblecell)); return; }
        $('div.summarypane').scrollTo(sx, speed, { queue: true, axis: 'x', onAfter: function() {
            showhidenavsummary();
        }
        });
    });

    jQuery.browser.msie6 = jQuery.browser.msie && parseInt(jQuery.browser.version) == 6

    $(".list_location").mouseover(function() {
        if (jQuery.browser.msie6) {
            this.className = "list_location_hover";
        }
    });

    $(".list_location").mouseout(function() {
        if (jQuery.browser.msie6) {
            this.className = "list_location";
        }
    });

});

function showhidenav() {
    if (sx == (cellw * (totalcell - visiblecell))) $(".next").hide(); else $(".next").show();
    if (sx == 0) $(".prev").hide(); else $(".prev").show();
}

function showhidenavsummary() {
    if (sx == (cellw * (totalcell - visiblecell))) $(".nextset").hide(); else $(".nextset").show();
    if (sx == 0) $(".prevset").hide(); else $(".prevset").show();
}


function changebg(row) {
    var lis = row.getElementsByTagName("li");
    lis[0].className = "list_city_hover";
    lis[1].className = "list_state_hover";
}

function restorebg(row) {
    var lis = row.getElementsByTagName("li");
    lis[0].className = "list_city";
    lis[1].className = "list_state";
}


function PostBackWithNewData(LocationKey, LocationId) {
    var newUrl = replaceQueryString(window.location.toString(), "hdnLocationKey", LocationKey);
    newUrl = replaceQueryString(newUrl, "hdnLocationID", LocationId);
    newUrl = replaceQueryString(newUrl, "destination", LocationKey);
    window.location.replace(newUrl);
}

function bookmark_us(url, title) {
    if (window.sidebar) // firefox
        window.sidebar.addPanel(title, url, "");
    else if (window.opera && window.print) { // opera
        var elem = document.createElement('a');
        elem.setAttribute('href', url);
        elem.setAttribute('title', title);
        elem.setAttribute('rel', 'sidebar');
        elem.click();
    }
    else if (document.all)// ie
    {

        window.external.AddFavorite(url, title);
    }
}
(function($) { $.extend($.ui, { datepicker: { version: "1.7.1"} }); var PROP_NAME = 'datepicker'; function Datepicker() { this.debug = false; this._curInst = null; this._keyEvent = false; this._disabledInputs = []; this._datepickerShowing = false; this._inDialog = false; this._mainDivId = 'ui-datepicker-div'; this._inlineClass = 'ui-datepicker-inline'; this._appendClass = 'ui-datepicker-append'; this._triggerClass = 'ui-datepicker-trigger'; this._dialogClass = 'ui-datepicker-dialog'; this._disableClass = 'ui-datepicker-disabled'; this._unselectableClass = 'ui-datepicker-unselectable'; this._currentClass = 'ui-datepicker-current-day'; this._dayOverClass = 'ui-datepicker-days-cell-over'; this.regional = []; this.regional[''] = { closeText: 'Done', prevText: 'Prev', nextText: 'Next', currentText: 'Today', monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], dateFormat: 'mm/dd/yy', firstDay: 0, isRTL: false }; this._defaults = { showOn: 'focus', showAnim: 'show', showOptions: {}, defaultDate: null, appendText: '', buttonText: '...', buttonImage: '', buttonImageOnly: false, hideIfNoPrevNext: false, navigationAsDateFormat: false, gotoCurrent: false, changeMonth: false, changeYear: false, showMonthAfterYear: false, yearRange: '-10:+10', showOtherMonths: false, calculateWeek: this.iso8601Week, shortYearCutoff: '+10', minDate: null, maxDate: null, duration: 'normal', beforeShowDay: null, beforeShow: null, onSelect: null, onChangeMonthYear: null, onClose: null, numberOfMonths: 1, showCurrentAtPos: 0, stepMonths: 1, stepBigMonths: 12, altField: '', altFormat: '', constrainInput: true, showButtonPanel: false, customTriggerElementID: null }; $.extend(this._defaults, this.regional['']); this.dpDiv = $('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>') } $.extend(Datepicker.prototype, { markerClassName: 'hasDatepicker', log: function() { if (this.debug) console.log.apply('', arguments) }, setDefaults: function(settings) { extendRemove(this._defaults, settings || {}); return this }, _attachDatepicker: function(target, settings) { var inlineSettings = null; for (var attrName in this._defaults) { var attrValue = target.getAttribute('date:' + attrName); if (attrValue) { inlineSettings = inlineSettings || {}; try { inlineSettings[attrName] = eval(attrValue) } catch (err) { inlineSettings[attrName] = attrValue } } } var nodeName = target.nodeName.toLowerCase(); var inline = (nodeName == 'div' || nodeName == 'span'); if (!target.id) target.id = 'dp' + (++this.uuid); var inst = this._newInst($(target), inline); inst.settings = $.extend({}, settings || {}, inlineSettings || {}); if (nodeName == 'input') { this._connectDatepicker(target, inst) } else if (inline) { this._inlineDatepicker(target, inst) } }, _newInst: function(target, inline) { var id = target[0].id.replace(/([:\[\]\.])/g, '\\\\$1'); return { id: id, input: target, selectedDay: 0, selectedMonth: 0, selectedYear: 0, drawMonth: 0, drawYear: 0, inline: inline, dpDiv: (!inline ? this.dpDiv : $('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))} }, _connectDatepicker: function(target, inst) { var input = $(target); inst.trigger = $([]); if (input.hasClass(this.markerClassName)) return; var appendText = this._get(inst, 'appendText'); var isRTL = this._get(inst, 'isRTL'); if (appendText) input[isRTL ? 'before' : 'after']('<span class="' + this._appendClass + '">' + appendText + '</span>'); var showOn = this._get(inst, 'showOn'); if (showOn == 'focus' || showOn == 'both') input.focus(this._showDatepicker); if (showOn == 'customclick') { input.focus(this._showDatepicker); var customTriggerElementID = this._get(inst, 'customTriggerElementID'); if (customTriggerElementID) { inst.trigger = $('#' + customTriggerElementID).addClass(this._triggerClass); inst.trigger.click(function() { if ($.datepicker._datepickerShowing && $.datepicker._lastInput == target) $.datepicker._hideDatepicker(); else $.datepicker._showDatepicker(target); return false }) } } if (showOn == 'button' || showOn == 'both') { var buttonText = this._get(inst, 'buttonText'); var buttonImage = this._get(inst, 'buttonImage'); inst.trigger = $(this._get(inst, 'buttonImageOnly') ? $('<img/>').addClass(this._triggerClass).attr({ src: buttonImage, alt: buttonText, title: buttonText }) : $('<button type="button"></button>').addClass(this._triggerClass).html(buttonImage == '' ? buttonText : $('<img/>').attr({ src: buttonImage, alt: buttonText, title: buttonText }))); input[isRTL ? 'before' : 'after'](inst.trigger); inst.trigger.click(function() { if ($.datepicker._datepickerShowing && $.datepicker._lastInput == target) $.datepicker._hideDatepicker(); else $.datepicker._showDatepicker(target); return false }) } input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker", function(event, key, value) { inst.settings[key] = value }).bind("getData.datepicker", function(event, key) { return this._get(inst, key) }); $.data(target, PROP_NAME, inst) }, _inlineDatepicker: function(target, inst) { var divSpan = $(target); if (divSpan.hasClass(this.markerClassName)) return; divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker", function(event, key, value) { inst.settings[key] = value }).bind("getData.datepicker", function(event, key) { return this._get(inst, key) }); $.data(target, PROP_NAME, inst); this._setDate(inst, this._getDefaultDate(inst)); this._updateDatepicker(inst); this._updateAlternate(inst) }, _dialogDatepicker: function(input, dateText, onSelect, settings, pos) { var inst = this._dialogInst; if (!inst) { var id = 'dp' + (++this.uuid); this._dialogInput = $('<input type="text" id="' + id + '" size="1" style="position: absolute; top: -100px;"/>'); this._dialogInput.keydown(this._doKeyDown); $('body').append(this._dialogInput); inst = this._dialogInst = this._newInst(this._dialogInput, false); inst.settings = {}; $.data(this._dialogInput[0], PROP_NAME, inst) } extendRemove(inst.settings, settings || {}); this._dialogInput.val(dateText); this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null); if (!this._pos) { var browserWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var browserHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; var scrollY = document.documentElement.scrollTop || document.body.scrollTop; this._pos = [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY] } this._dialogInput.css('left', this._pos[0] + 'px').css('top', this._pos[1] + 'px'); inst.settings.onSelect = onSelect; this._inDialog = true; this.dpDiv.addClass(this._dialogClass); this._showDatepicker(this._dialogInput[0]); if ($.blockUI) $.blockUI(this.dpDiv); $.data(this._dialogInput[0], PROP_NAME, inst); return this }, _destroyDatepicker: function(target) { var $target = $(target); var inst = $.data(target, PROP_NAME); if (!$target.hasClass(this.markerClassName)) { return } var nodeName = target.nodeName.toLowerCase(); $.removeData(target, PROP_NAME); if (nodeName == 'input') { inst.trigger.remove(); $target.siblings('.' + this._appendClass).remove().end().removeClass(this.markerClassName).unbind('focus', this._showDatepicker).unbind('keydown', this._doKeyDown).unbind('keypress', this._doKeyPress) } else if (nodeName == 'div' || nodeName == 'span') $target.removeClass(this.markerClassName).empty() }, _enableDatepicker: function(target) { var $target = $(target); var inst = $.data(target, PROP_NAME); if (!$target.hasClass(this.markerClassName)) { return } var nodeName = target.nodeName.toLowerCase(); if (nodeName == 'input') { target.disabled = false; inst.trigger.filter("button").each(function() { this.disabled = false }).end().filter("img").css({ opacity: '1.0', cursor: '' }) } else if (nodeName == 'div' || nodeName == 'span') { var inline = $target.children('.' + this._inlineClass); inline.children().removeClass('ui-state-disabled') } this._disabledInputs = $.map(this._disabledInputs, function(value) { return (value == target ? null : value) }) }, _disableDatepicker: function(target) { var $target = $(target); var inst = $.data(target, PROP_NAME); if (!$target.hasClass(this.markerClassName)) { return } var nodeName = target.nodeName.toLowerCase(); if (nodeName == 'input') { target.disabled = true; inst.trigger.filter("button").each(function() { this.disabled = true }).end().filter("img").css({ opacity: '0.5', cursor: 'default' }) } else if (nodeName == 'div' || nodeName == 'span') { var inline = $target.children('.' + this._inlineClass); inline.children().addClass('ui-state-disabled') } this._disabledInputs = $.map(this._disabledInputs, function(value) { return (value == target ? null : value) }); this._disabledInputs[this._disabledInputs.length] = target }, _isDisabledDatepicker: function(target) { if (!target) { return false } for (var i = 0; i < this._disabledInputs.length; i++) { if (this._disabledInputs[i] == target) return true } return false }, _getInst: function(target) { try { return $.data(target, PROP_NAME) } catch (err) { throw 'Missing instance data for this datepicker'; } }, _optionDatepicker: function(target, name, value) { var settings = name || {}; if (typeof name == 'string') { settings = {}; settings[name] = value } var inst = this._getInst(target); if (inst) { if (this._curInst == inst) { this._hideDatepicker(null) } extendRemove(inst.settings, settings); var date = new Date(); extendRemove(inst, { rangeStart: null, endDay: null, endMonth: null, endYear: null, selectedDay: date.getDate(), selectedMonth: date.getMonth(), selectedYear: date.getFullYear(), currentDay: date.getDate(), currentMonth: date.getMonth(), currentYear: date.getFullYear(), drawMonth: date.getMonth(), drawYear: date.getFullYear() }); this._updateDatepicker(inst) } }, _changeDatepicker: function(target, name, value) { this._optionDatepicker(target, name, value) }, _refreshDatepicker: function(target) { var inst = this._getInst(target); if (inst) { this._updateDatepicker(inst) } }, _setDateDatepicker: function(target, date, endDate) { var inst = this._getInst(target); if (inst) { this._setDate(inst, date, endDate); this._updateDatepicker(inst); this._updateAlternate(inst) } }, _getDateDatepicker: function(target) { var inst = this._getInst(target); if (inst && !inst.inline) this._setDateFromField(inst); return (inst ? this._getDate(inst) : null) }, _doKeyDown: function(event) { var inst = $.datepicker._getInst(event.target); var handled = true; var isRTL = inst.dpDiv.is('.ui-datepicker-rtl'); inst._keyEvent = true; if ($.datepicker._datepickerShowing) switch (event.keyCode) { case 9: $.datepicker._hideDatepicker(null, ''); break; case 13: var sel = $('td.' + $.datepicker._dayOverClass + ', td.' + $.datepicker._currentClass, inst.dpDiv); if (sel[0]) $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]); else $.datepicker._hideDatepicker(null, $.datepicker._get(inst, 'duration')); return false; break; case 27: $.datepicker._hideDatepicker(null, $.datepicker._get(inst, 'duration')); break; case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ? -$.datepicker._get(inst, 'stepBigMonths') : -$.datepicker._get(inst, 'stepMonths')), 'M'); break; case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ? +$.datepicker._get(inst, 'stepBigMonths') : +$.datepicker._get(inst, 'stepMonths')), 'M'); break; case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target); handled = event.ctrlKey || event.metaKey; break; case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target); handled = event.ctrlKey || event.metaKey; break; case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D'); handled = event.ctrlKey || event.metaKey; if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ? -$.datepicker._get(inst, 'stepBigMonths') : -$.datepicker._get(inst, 'stepMonths')), 'M'); break; case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D'); handled = event.ctrlKey || event.metaKey; break; case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D'); handled = event.ctrlKey || event.metaKey; if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ? +$.datepicker._get(inst, 'stepBigMonths') : +$.datepicker._get(inst, 'stepMonths')), 'M'); break; case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D'); handled = event.ctrlKey || event.metaKey; break; default: handled = false } else if (event.keyCode == 36 && event.ctrlKey) $.datepicker._showDatepicker(this); else { handled = false } if (handled) { event.preventDefault(); event.stopPropagation() } }, _doKeyPress: function(event) { var inst = $.datepicker._getInst(event.target); if ($.datepicker._get(inst, 'constrainInput')) { var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat')); var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode); return event.ctrlKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1) } }, _showDatepicker: function(input) { input = input.target || input; if (input.nodeName.toLowerCase() != 'input') input = $('input', input.parentNode)[0]; if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) return; var inst = $.datepicker._getInst(input); var beforeShow = $.datepicker._get(inst, 'beforeShow'); extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {})); $.datepicker._hideDatepicker(null, ''); $.datepicker._lastInput = input; $.datepicker._setDateFromField(inst); if ($.datepicker._inDialog) input.value = ''; if (!$.datepicker._pos) { $.datepicker._pos = $.datepicker._findPos(input); $.datepicker._pos[1] += input.offsetHeight } var isFixed = false; $(input).parents().each(function() { isFixed |= $(this).css('position') == 'fixed'; return !isFixed }); if (isFixed && $.browser.opera) { $.datepicker._pos[0] -= document.documentElement.scrollLeft; $.datepicker._pos[1] -= document.documentElement.scrollTop } var offset = { left: $.datepicker._pos[0], top: $.datepicker._pos[1] }; $.datepicker._pos = null; inst.rangeStart = null; inst.dpDiv.css({ position: 'absolute', display: 'block', top: '-1000px' }); $.datepicker._updateDatepicker(inst); offset = $.datepicker._checkOffset(inst, offset, isFixed); inst.dpDiv.css({ position: ($.datepicker._inDialog && $.blockUI ? 'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none', left: offset.left + 'px', top: offset.top + 'px' }); if (!inst.inline) { var showAnim = $.datepicker._get(inst, 'showAnim') || 'show'; var duration = $.datepicker._get(inst, 'duration'); var postProcess = function() { $.datepicker._datepickerShowing = true; if ($.browser.msie && parseInt($.browser.version, 10) < 7) $('iframe.ui-datepicker-cover').css({ width: inst.dpDiv.width() + 4, height: inst.dpDiv.height() + 4 }) }; if ($.effects && $.effects[showAnim]) inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess); else inst.dpDiv[showAnim](duration, postProcess); if (duration == '') postProcess(); if (inst.input[0].type != 'hidden') inst.input[0].focus(); $.datepicker._curInst = inst } }, _updateDatepicker: function(inst) { var dims = { width: inst.dpDiv.width() + 4, height: inst.dpDiv.height() + 4 }; var self = this; inst.dpDiv.empty().append(this._generateHTML(inst)).find('iframe.ui-datepicker-cover').css({ width: dims.width, height: dims.height }).end().find('button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a').bind('mouseout', function() { $(this).removeClass('ui-state-hover'); if (this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover'); if (this.className.indexOf('ui-datepicker-next') != -1) $(this).removeClass('ui-datepicker-next-hover') }).bind('mouseover', function() { if (!self._isDisabledDatepicker(inst.inline ? inst.dpDiv.parent()[0] : inst.input[0])) { $(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover'); $(this).addClass('ui-state-hover'); if (this.className.indexOf('ui-datepicker-prev') != -1) $(this).addClass('ui-datepicker-prev-hover'); if (this.className.indexOf('ui-datepicker-next') != -1) $(this).addClass('ui-datepicker-next-hover') } }).end().find('.' + this._dayOverClass + ' a').trigger('mouseover').end(); var numMonths = this._getNumberOfMonths(inst); var cols = numMonths[1]; var width = 17; if (cols > 1) { if (window.navigator.userAgent.indexOf("MSIE") > -1 && window.navigator.userAgent.indexOf("8.0") == -1) { inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', '360px') } else { inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', 'auto') } } else { inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('') } inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') + 'Class']('ui-datepicker-multi'); inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') + 'Class']('ui-datepicker-rtl'); if (inst.input && inst.input[0].type != 'hidden' && inst == $.datepicker._curInst) $(inst.input[0]).focus() }, _checkOffset: function(inst, offset, isFixed) { var dpWidth = inst.dpDiv.outerWidth(); var dpHeight = inst.dpDiv.outerHeight(); var inputWidth = inst.input ? inst.input.outerWidth() : 0; var inputHeight = inst.input ? inst.input.outerHeight() : 0; var viewWidth = (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) + $(document).scrollLeft(); var viewHeight = (window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight) + $(document).scrollTop(); offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0); offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0; offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0; offset.left -= (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? Math.abs(offset.left + dpWidth - viewWidth) : 0; offset.top -= (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? Math.abs(offset.top + dpHeight + inputHeight * 2 - viewHeight) : 0; return offset }, _findPos: function(obj) { while (obj && (obj.type == 'hidden' || obj.nodeType != 1)) { obj = obj.nextSibling } var position = $(obj).offset(); return [position.left, position.top] }, _hideDatepicker: function(input, duration) { var inst = this._curInst; if (!inst || (input && inst != $.data(input, PROP_NAME))) return; if (inst.stayOpen) this._selectDate('#' + inst.id, this._formatDate(inst, inst.currentDay, inst.currentMonth, inst.currentYear)); inst.stayOpen = false; if (this._datepickerShowing) { duration = (duration != null ? duration : this._get(inst, 'duration')); var showAnim = this._get(inst, 'showAnim'); var postProcess = function() { $.datepicker._tidyDialog(inst) }; if (duration != '' && $.effects && $.effects[showAnim]) inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess); else inst.dpDiv[(duration == '' ? 'hide' : (showAnim == 'slideDown' ? 'slideUp' : (showAnim == 'fadeIn' ? 'fadeOut' : 'hide')))](duration, postProcess); if (duration == '') this._tidyDialog(inst); var onClose = this._get(inst, 'onClose'); if (onClose) onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ''), inst]); this._datepickerShowing = false; this._lastInput = null; if (this._inDialog) { this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' }); if ($.blockUI) { $.unblockUI(); $('body').append(this.dpDiv) } } this._inDialog = false } this._curInst = null }, _tidyDialog: function(inst) { inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar') }, _checkExternalClick: function(event) { if (!$.datepicker._curInst) return; var $target = $(event.target); if (($target.parents('#' + $.datepicker._mainDivId).length == 0) && !$target.hasClass($.datepicker.markerClassName) && !$target.hasClass($.datepicker._triggerClass) && $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI)) $.datepicker._hideDatepicker(null, '') }, _adjustDate: function(id, offset, period) { var target = $(id); var inst = this._getInst(target[0]); if (this._isDisabledDatepicker(target[0])) { return } this._adjustInstDate(inst, offset + (period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), period); this._updateDatepicker(inst) }, _gotoToday: function(id) { var target = $(id); var inst = this._getInst(target[0]); if (this._get(inst, 'gotoCurrent') && inst.currentDay) { inst.selectedDay = inst.currentDay; inst.drawMonth = inst.selectedMonth = inst.currentMonth; inst.drawYear = inst.selectedYear = inst.currentYear } else { var date = new Date(); inst.selectedDay = date.getDate(); inst.drawMonth = inst.selectedMonth = date.getMonth(); inst.drawYear = inst.selectedYear = date.getFullYear() } this._notifyChange(inst); this._adjustDate(target) }, _selectMonthYear: function(id, select, period) { var target = $(id); var inst = this._getInst(target[0]); inst._selectingMonthYear = false; inst['selected' + (period == 'M' ? 'Month' : 'Year')] = inst['draw' + (period == 'M' ? 'Month' : 'Year')] = parseInt(select.options[select.selectedIndex].value, 10); this._notifyChange(inst); this._adjustDate(target) }, _clickMonthYear: function(id) { var target = $(id); var inst = this._getInst(target[0]); if (inst.input && inst._selectingMonthYear && !$.browser.msie) inst.input[0].focus(); inst._selectingMonthYear = !inst._selectingMonthYear }, _selectDay: function(id, month, year, td) { var target = $(id); if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) { return } var inst = this._getInst(target[0]); inst.selectedDay = inst.currentDay = $('a', td).html(); inst.selectedMonth = inst.currentMonth = month; inst.selectedYear = inst.currentYear = year; if (inst.stayOpen) { inst.endDay = inst.endMonth = inst.endYear = null } this._selectDate(id, this._formatDate(inst, inst.currentDay, inst.currentMonth, inst.currentYear)); if (inst.stayOpen) { inst.rangeStart = this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)); this._updateDatepicker(inst) } }, _clearDate: function(id) { var target = $(id); var inst = this._getInst(target[0]); inst.stayOpen = false; inst.endDay = inst.endMonth = inst.endYear = inst.rangeStart = null; this._selectDate(target, '') }, _selectDate: function(id, dateStr) { var target = $(id); var inst = this._getInst(target[0]); dateStr = (dateStr != null ? dateStr : this._formatDate(inst)); if (inst.input) inst.input.val(dateStr); this._updateAlternate(inst); var onSelect = this._get(inst, 'onSelect'); if (onSelect) onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); else if (inst.input) inst.input.trigger('change'); if (inst.inline) this._updateDatepicker(inst); else if (!inst.stayOpen) { this._hideDatepicker(null, this._get(inst, 'duration')); this._lastInput = inst.input[0]; if (typeof (inst.input[0]) != 'object') inst.input[0].focus(); this._lastInput = null } }, _updateAlternate: function(inst) { var altField = this._get(inst, 'altField'); if (altField) { var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat'); var date = this._getDate(inst); dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst)); $(altField).each(function() { $(this).val(dateStr) }) } }, noWeekends: function(date) { var day = date.getDay(); return [(day > 0 && day < 6), ''] }, iso8601Week: function(date) { var checkDate = new Date(date.getFullYear(), date.getMonth(), date.getDate()); var firstMon = new Date(checkDate.getFullYear(), 1 - 1, 4); var firstDay = firstMon.getDay() || 7; firstMon.setDate(firstMon.getDate() + 1 - firstDay); if (firstDay < 4 && checkDate < firstMon) { checkDate.setDate(checkDate.getDate() - 3); return $.datepicker.iso8601Week(checkDate) } else if (checkDate > new Date(checkDate.getFullYear(), 12 - 1, 28)) { firstDay = new Date(checkDate.getFullYear() + 1, 1 - 1, 4).getDay() || 7; if (firstDay > 4 && (checkDate.getDay() || 7) < firstDay - 3) { return 1 } } return Math.floor(((checkDate - firstMon) / 86400000) / 7) + 1 }, parseDate: function(format, value, settings) { if (format == null || value == null) throw 'Invalid arguments'; value = (typeof value == 'object' ? value.toString() : value + ''); if (value == '') return null; var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff; var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort; var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames; var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort; var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames; var year = -1; var month = -1; var day = -1; var doy = -1; var literal = false; var lookAhead = function(match) { var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match); if (matches) iFormat++; return matches }; var getNumber = function(match) { lookAhead(match); var origSize = (match == '@' ? 14 : (match == 'y' ? 4 : (match == 'o' ? 3 : 2))); var size = origSize; var num = 0; while (size > 0 && iValue < value.length && value.charAt(iValue) >= '0' && value.charAt(iValue) <= '9') { num = num * 10 + parseInt(value.charAt(iValue++), 10); size-- } if (size == origSize) throw 'Missing number at position ' + iValue; return num }; var getName = function(match, shortNames, longNames) { var names = (lookAhead(match) ? longNames : shortNames); var size = 0; for (var j = 0; j < names.length; j++) size = Math.max(size, names[j].length); var name = ''; var iInit = iValue; while (size > 0 && iValue < value.length) { name += value.charAt(iValue++); for (var i = 0; i < names.length; i++) if (name == names[i]) return i + 1; size-- } throw 'Unknown name at position ' + iInit; }; var checkLiteral = function() { if (value.charAt(iValue) != format.charAt(iFormat)) throw 'Unexpected literal at position ' + iValue; iValue++ }; var iValue = 0; for (var iFormat = 0; iFormat < format.length; iFormat++) { if (literal) if (format.charAt(iFormat) == "'" && !lookAhead("'")) literal = false; else checkLiteral(); else switch (format.charAt(iFormat)) { case 'd': day = getNumber('d'); break; case 'D': getName('D', dayNamesShort, dayNames); break; case 'o': doy = getNumber('o'); break; case 'm': month = getNumber('m'); break; case 'M': month = getName('M', monthNamesShort, monthNames); break; case 'y': year = getNumber('y'); break; case '@': var date = new Date(getNumber('@')); year = date.getFullYear(); month = date.getMonth() + 1; day = date.getDate(); break; case "'": if (lookAhead("'")) checkLiteral(); else literal = true; break; default: checkLiteral() } } if (year == -1) year = new Date().getFullYear(); else if (year < 100) year += new Date().getFullYear() - new Date().getFullYear() % 100 + (year <= shortYearCutoff ? 0 : -100); if (doy > -1) { month = 1; day = doy; do { var dim = this._getDaysInMonth(year, month - 1); if (day <= dim) break; month++; day -= dim } while (true) } var date = this._daylightSavingAdjust(new Date(year, month - 1, day)); if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day) throw 'Invalid date'; return date }, ATOM: 'yy-mm-dd', COOKIE: 'D, dd M yy', ISO_8601: 'yy-mm-dd', RFC_822: 'D, d M y', RFC_850: 'DD, dd-M-y', RFC_1036: 'D, d M y', RFC_1123: 'D, d M yy', RFC_2822: 'D, d M yy', RSS: 'D, d M y', TIMESTAMP: '@', W3C: 'yy-mm-dd', formatDate: function(format, date, settings) { if (!date) return ''; var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort; var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames; var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort; var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames; var lookAhead = function(match) { var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match); if (matches) iFormat++; return matches }; var formatNumber = function(match, value, len) { var num = '' + value; if (lookAhead(match)) while (num.length < len) num = '0' + num; return num }; var formatName = function(match, value, shortNames, longNames) { return (lookAhead(match) ? longNames[value] : shortNames[value]) }; var output = ''; var literal = false; if (date) for (var iFormat = 0; iFormat < format.length; iFormat++) { if (literal) if (format.charAt(iFormat) == "'" && !lookAhead("'")) literal = false; else output += format.charAt(iFormat); else switch (format.charAt(iFormat)) { case 'd': output += formatNumber('d', date.getDate(), 2); break; case 'D': output += formatName('D', date.getDay(), dayNamesShort, dayNames); break; case 'o': var doy = date.getDate(); for (var m = date.getMonth() - 1; m >= 0; m--) doy += this._getDaysInMonth(date.getFullYear(), m); output += formatNumber('o', doy, 3); break; case 'm': output += formatNumber('m', date.getMonth() + 1, 2); break; case 'M': output += formatName('M', date.getMonth(), monthNamesShort, monthNames); break; case 'y': output += (lookAhead('y') ? date.getFullYear() : (date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100); break; case '@': output += date.getTime(); break; case "'": if (lookAhead("'")) output += "'"; else literal = true; break; default: output += format.charAt(iFormat) } } return output }, _possibleChars: function(format) { var chars = ''; var literal = false; for (var iFormat = 0; iFormat < format.length; iFormat++) if (literal) if (format.charAt(iFormat) == "'" && !lookAhead("'")) literal = false; else chars += format.charAt(iFormat); else switch (format.charAt(iFormat)) { case 'd': case 'm': case 'y': case '@': chars += '0123456789'; break; case 'D': case 'M': return null; case "'": if (lookAhead("'")) chars += "'"; else literal = true; break; default: chars += format.charAt(iFormat) } return chars }, _get: function(inst, name) { return inst.settings[name] !== undefined ? inst.settings[name] : this._defaults[name] }, _setDateFromField: function(inst) { var dateFormat = this._get(inst, 'dateFormat'); var dates = inst.input ? inst.input.val() : null; inst.endDay = inst.endMonth = inst.endYear = null; var date = defaultDate = this._getDefaultDate(inst); var settings = this._getFormatConfig(inst); try { date = this.parseDate(dateFormat, dates, settings) || defaultDate } catch (event) { this.log(event); date = defaultDate } var maxDate = this._get(inst, 'maxDate'); if (date > maxDate) date = defaultDate; inst.selectedDay = date.getDate(); inst.drawMonth = inst.selectedMonth = date.getMonth(); inst.drawYear = inst.selectedYear = date.getFullYear(); inst.currentDay = (dates ? date.getDate() : 0); inst.currentMonth = (dates ? date.getMonth() : 0); inst.currentYear = (dates ? date.getFullYear() : 0); this._adjustInstDate(inst) }, _getDefaultDate: function(inst) { var date = this._determineDate(this._get(inst, 'defaultDate'), new Date()); var minDate = this._getMinMaxDate(inst, 'min', true); var maxDate = this._getMinMaxDate(inst, 'max'); date = (minDate && date < minDate ? minDate : date); date = (maxDate && date > maxDate ? maxDate : date); return date }, _determineDate: function(date, defaultDate) { var offsetNumeric = function(offset) { var date = new Date(); date.setDate(date.getDate() + offset); return date }; var offsetString = function(offset, getDaysInMonth) { var date = new Date(); var year = date.getFullYear(); var month = date.getMonth(); var day = date.getDate(); var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g; var matches = pattern.exec(offset); while (matches) { switch (matches[2] || 'd') { case 'd': case 'D': day += parseInt(matches[1], 10); break; case 'w': case 'W': day += parseInt(matches[1], 10) * 7; break; case 'm': case 'M': month += parseInt(matches[1], 10); day = Math.min(day, getDaysInMonth(year, month)); break; case 'y': case 'Y': year += parseInt(matches[1], 10); day = Math.min(day, getDaysInMonth(year, month)); break } matches = pattern.exec(offset) } return new Date(year, month, day) }; date = (date == null ? defaultDate : (typeof date == 'string' ? offsetString(date, this._getDaysInMonth) : (typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : date))); date = (date && date.toString() == 'Invalid Date' ? defaultDate : date); if (date) { date.setHours(0); date.setMinutes(0); date.setSeconds(0); date.setMilliseconds(0) } return this._daylightSavingAdjust(date) }, _daylightSavingAdjust: function(date) { if (!date) return null; date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0); return date }, _setDate: function(inst, date, endDate) { var clear = !(date); var origMonth = inst.selectedMonth; var origYear = inst.selectedYear; date = this._determineDate(date, new Date()); inst.selectedDay = inst.currentDay = date.getDate(); inst.drawMonth = inst.selectedMonth = inst.currentMonth = date.getMonth(); inst.drawYear = inst.selectedYear = inst.currentYear = date.getFullYear(); if (origMonth != inst.selectedMonth || origYear != inst.selectedYear) this._notifyChange(inst); this._adjustInstDate(inst); if (inst.input) { inst.input.val(clear ? '' : this._formatDate(inst)) } }, _getDate: function(inst) { var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null : this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); return startDate }, _generateHTML: function(inst) { var today = new Date(); today = this._daylightSavingAdjust(new Date(today.getFullYear(), today.getMonth(), today.getDate())); var isRTL = this._get(inst, 'isRTL'); var showButtonPanel = this._get(inst, 'showButtonPanel'); var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext'); var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat'); var numMonths = this._getNumberOfMonths(inst); var showCurrentAtPos = this._get(inst, 'showCurrentAtPos'); var stepMonths = this._get(inst, 'stepMonths'); var stepBigMonths = this._get(inst, 'stepBigMonths'); var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1); var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) : new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); var minDate = this._getMinMaxDate(inst, 'min', true); var maxDate = this._getMinMaxDate(inst, 'max'); var drawMonth = inst.drawMonth - showCurrentAtPos; var drawYear = inst.drawYear; if (drawMonth < 0) { drawMonth += 12; drawYear-- } if (maxDate) { var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(), maxDate.getMonth() - numMonths[1] + 1, maxDate.getDate())); maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw); while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) { drawMonth--; if (drawMonth < 0) { drawMonth = 11; drawYear-- } } } inst.drawMonth = drawMonth; inst.drawYear = drawYear; var prevText = this._get(inst, 'prevText'); prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText, this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)), this._getFormatConfig(inst))); var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ? '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#' + inst.id + '\', -' + stepMonths + ', \'M\');"' + ' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' : (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>')); var nextText = this._get(inst, 'nextText'); nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText, this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)), this._getFormatConfig(inst))); var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ? '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#' + inst.id + '\', +' + stepMonths + ', \'M\');"' + ' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' : (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + (isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>')); var currentText = this._get(inst, 'currentText'); var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today); currentText = (!navigationAsDateFormat ? currentText : this.formatDate(currentText, gotoDate, this._getFormatConfig(inst))); var controls = (!inst.inline ? '<div class="hc_close_hold"><a  class="hc_close" onclick="DP_jQuery.datepicker._hideDatepicker();">' + this._get(inst, 'closeText') + '</a></div>' : ''); var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') + (this._isInRange(inst, gotoDate) ? '' : '') + (isRTL ? '' : controls) + '</div>' : ''; var firstDay = parseInt(this._get(inst, 'firstDay'), 10); firstDay = (isNaN(firstDay) ? 0 : firstDay); var dayNames = this._get(inst, 'dayNames'); var dayNamesShort = this._get(inst, 'dayNamesShort'); var dayNamesMin = this._get(inst, 'dayNamesMin'); var monthNames = this._get(inst, 'monthNames'); var monthNamesShort = this._get(inst, 'monthNamesShort'); var beforeShowDay = this._get(inst, 'beforeShowDay'); var showOtherMonths = this._get(inst, 'showOtherMonths'); var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week; var endDate = inst.endDay ? this._daylightSavingAdjust(new Date(inst.endYear, inst.endMonth, inst.endDay)) : currentDate; var defaultDate = this._getDefaultDate(inst); var html = ''; for (var row = 0; row < numMonths[0]; row++) { var group = ''; for (var col = 0; col < numMonths[1]; col++) { var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay)); var cornerClass = ' ui-corner-all'; var calender = ''; if (isMultiMonth) { calender += '<div class="ui-datepicker-group ui-datepicker-group-'; switch (col) { case 0: calender += 'first'; cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break; case numMonths[1] - 1: calender += 'last'; cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break; default: calender += 'middle'; cornerClass = ''; break } calender += '">' } calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' + (/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') + (/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') + this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate, selectedDate, row > 0 || col > 0, monthNames, monthNamesShort) + '</div><table class="ui-datepicker-calendar"><thead>' + '<tr>'; var thead = ''; for (var dow = 0; dow < 7; dow++) { var day = (dow + firstDay) % 7; thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' + '<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>' } calender += thead + '</tr></thead><tbody>'; var daysInMonth = this._getDaysInMonth(drawYear, drawMonth); if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth) inst.selectedDay = Math.min(inst.selectedDay, daysInMonth); var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7; var numRows = (isMultiMonth ? 6 : Math.ceil((leadDays + daysInMonth) / 7)); var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays)); for (var dRow = 0; dRow < numRows; dRow++) { calender += '<tr>'; var tbody = ''; for (var dow = 0; dow < 7; dow++) { var daySettings = (beforeShowDay ? beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']); var otherMonth = (printDate.getMonth() != drawMonth); var unselectable = otherMonth || !daySettings[0] || (minDate && printDate < minDate) || (maxDate && printDate > maxDate); tbody += '<td class="' + ((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') + (otherMonth ? ' ui-datepicker-other-month' : '') + ((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) || (defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ? ' ' + this._dayOverClass : '') + (unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled' : '') + (otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + (printDate.getTime() >= currentDate.getTime() && printDate.getTime() <= endDate.getTime() ? ' ' + this._currentClass : '') + (printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + ((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') + (unselectable ? '' : ' onclick="DP_jQuery.datepicker._selectDay(\'#' + inst.id + '\',' + drawMonth + ',' + drawYear + ', this);return false;"') + '>' + (otherMonth ? (showOtherMonths ? printDate.getDate() : '&#xa0;') : (unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' + (printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') + (printDate.getTime() >= currentDate.getTime() && printDate.getTime() <= endDate.getTime() ? ' ui-state-active' : '') + '" href="#">' + printDate.getDate() + '</a>')) + '</td>'; printDate.setDate(printDate.getDate() + 1); printDate = this._daylightSavingAdjust(printDate) } calender += tbody + '</tr>' } drawMonth++; if (drawMonth > 11) { drawMonth = 0; drawYear++ } calender += '</tbody></table>' + (isMultiMonth ? '</div>' + ((numMonths[0] > 0 && col == numMonths[1] - 1) ? '<div class="ui-datepicker-row-break"></div>' : '') : ''); group += calender } html += group } html += buttonPanel + ($.browser.msie && parseInt($.browser.version, 10) < 7 && !inst.inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : ''); inst._keyEvent = false; return html }, _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, selectedDate, secondary, monthNames, monthNamesShort) { minDate = (inst.rangeStart && minDate && selectedDate < minDate ? selectedDate : minDate); var changeMonth = this._get(inst, 'changeMonth'); var changeYear = this._get(inst, 'changeYear'); var showMonthAfterYear = this._get(inst, 'showMonthAfterYear'); var html = '<div class="ui-datepicker-title">'; var monthHtml = ''; if (secondary || !changeMonth) monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span> '; else { var inMinYear = (minDate && minDate.getFullYear() == drawYear); var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear); monthHtml += '<select class="ui-datepicker-month" ' + 'onchange="DP_jQuery.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' + 'onclick="DP_jQuery.datepicker._clickMonthYear(\'#' + inst.id + '\');"' + '>'; for (var month = 0; month < 12; month++) { if ((!inMinYear || month >= minDate.getMonth()) && (!inMaxYear || month <= maxDate.getMonth())) monthHtml += '<option value="' + month + '"' + (month == drawMonth ? ' selected="selected"' : '') + '>' + monthNamesShort[month] + '</option>' } monthHtml += '</select>' } if (!showMonthAfterYear) html += monthHtml + ((secondary || changeMonth || changeYear) && (!(changeMonth && changeYear)) ? '&#xa0;' : ''); if (secondary || !changeYear) html += '<span class="ui-datepicker-year">' + drawYear + '</span>'; else { var years = this._get(inst, 'yearRange').split(':'); var year = 0; var endYear = 0; if (years.length != 2) { year = drawYear - 10; endYear = drawYear + 10 } else if (years[0].charAt(0) == '+' || years[0].charAt(0) == '-') { year = drawYear + parseInt(years[0], 10); endYear = drawYear + parseInt(years[1], 10) } else { year = parseInt(years[0], 10); endYear = parseInt(years[1], 10) } year = (minDate ? Math.max(year, minDate.getFullYear()) : year); endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); html += '<select class="ui-datepicker-year" ' + 'onchange="DP_jQuery.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' + 'onclick="DP_jQuery.datepicker._clickMonthYear(\'#' + inst.id + '\');"' + '>'; for (; year <= endYear; year++) { html += '<option value="' + year + '"' + (year == drawYear ? ' selected="selected"' : '') + '>' + year + '</option>' } html += '</select>' } if (showMonthAfterYear) html += (secondary || changeMonth || changeYear ? '&#xa0;' : '') + monthHtml; html += '</div>'; return html }, _adjustInstDate: function(inst, offset, period) { var year = inst.drawYear + (period == 'Y' ? offset : 0); var month = inst.drawMonth + (period == 'M' ? offset : 0); var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + (period == 'D' ? offset : 0); var date = this._daylightSavingAdjust(new Date(year, month, day)); var minDate = this._getMinMaxDate(inst, 'min', true); var maxDate = this._getMinMaxDate(inst, 'max'); date = (minDate && date < minDate ? minDate : date); date = (maxDate && date > maxDate ? maxDate : date); inst.selectedDay = date.getDate(); inst.drawMonth = inst.selectedMonth = date.getMonth(); inst.drawYear = inst.selectedYear = date.getFullYear(); if (period == 'M' || period == 'Y') this._notifyChange(inst) }, _notifyChange: function(inst) { var onChange = this._get(inst, 'onChangeMonthYear'); if (onChange) onChange.apply((inst.input ? inst.input[0] : null), [inst.selectedYear, inst.selectedMonth + 1, inst]) }, _getNumberOfMonths: function(inst) { var numMonths = this._get(inst, 'numberOfMonths'); return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths)) }, _getMinMaxDate: function(inst, minMax, checkRange) { var date = this._determineDate(this._get(inst, minMax + 'Date'), null); return (!checkRange || !inst.rangeStart ? date : (!date || inst.rangeStart > date ? inst.rangeStart : date)) }, _getDaysInMonth: function(year, month) { return 32 - new Date(year, month, 32).getDate() }, _getFirstDayOfMonth: function(year, month) { return new Date(year, month, 1).getDay() }, _canAdjustMonth: function(inst, offset, curYear, curMonth) { var numMonths = this._getNumberOfMonths(inst); var date = this._daylightSavingAdjust(new Date(curYear, curMonth + (offset < 0 ? offset : numMonths[1]), 1)); if (offset < 0) date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth())); return this._isInRange(inst, date) }, _isInRange: function(inst, date) { var newMinDate = (!inst.rangeStart ? null : this._daylightSavingAdjust(new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay))); newMinDate = (newMinDate && inst.rangeStart < newMinDate ? inst.rangeStart : newMinDate); var minDate = newMinDate || this._getMinMaxDate(inst, 'min'); var maxDate = this._getMinMaxDate(inst, 'max'); return ((!minDate || date >= minDate) && (!maxDate || date <= maxDate)) }, _getFormatConfig: function(inst) { var shortYearCutoff = this._get(inst, 'shortYearCutoff'); shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff : new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); return { shortYearCutoff: shortYearCutoff, dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'), monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')} }, _formatDate: function(inst, day, month, year) { if (!day) { inst.currentDay = inst.selectedDay; inst.currentMonth = inst.selectedMonth; inst.currentYear = inst.selectedYear } var date = (day ? (typeof day == 'object' ? day : this._daylightSavingAdjust(new Date(year, month, day))) : this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst)) } }); function extendRemove(target, props) { $.extend(target, props); for (var name in props) if (props[name] == null || props[name] == undefined) target[name] = props[name]; return target }; function isArray(a) { return (a && (($.browser.safari && typeof a == 'object' && a.length) || (a.constructor && a.constructor.toString().match(/\Array\(\)/)))) }; $.fn.datepicker = function(options) { if (!$.datepicker.initialized) { $(document).mousedown($.datepicker._checkExternalClick).find('body').append($.datepicker.dpDiv); $.datepicker.initialized = true } var otherArgs = Array.prototype.slice.call(arguments, 1); if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate')) return $.datepicker['_' + options + 'Datepicker'].apply($.datepicker, [this[0]].concat(otherArgs)); return this.each(function() { typeof options == 'string' ? $.datepicker['_' + options + 'Datepicker'].apply($.datepicker, [this].concat(otherArgs)) : $.datepicker._attachDatepicker(this, options) }) }; $.datepicker = new Datepicker(); $.datepicker.initialized = false; $.datepicker.uuid = new Date().getTime(); $.datepicker.version = "1.7.1"; window.DP_jQuery = $ })(jQuery);var dtCh = "/";
function RedefineDate(DateValue) {
    if (DateValue == "") return "";
    var RefinedDate = DateValue;
    var dateSplits = DateValue.split(GetDateSeperator());
    var ddmmyyyyReg = /\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}/
    var yyyymmddReg = /\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}/
    var strMonth;
    var strDay;
    var strYear;
   
    if (ddmmyyyyReg.test(DateValue)) {
        strDay = dateSplits[0];
        strMonth = dateSplits[1];
        strYear = dateSplits[2];
    }
    else if (yyyymmddReg.test(DateValue)) {
        strDay = dateSplits[2];
        strMonth = dateSplits[1];
        strYear = dateSplits[0];
    }
    var dfmt = GetDateFormat();
    if (dfmt == "dd/mm/yyyy") {
        RefinedDate = strDay + GetDateSeperator() + strMonth + GetDateSeperator() + strYear;
    }
    else if (dfmt == "yyyy/mm/dd") {
        RefinedDate = strYear + GetDateSeperator() + strMonth + GetDateSeperator() + strDay;
    }
    return RefinedDate;
}
function isInteger(s) {
    var i;
    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    return true;
}
function GetDateFormat() {
    if (typeof (window['calDateFormat']) != 'undefined') {
        if (calDateFormat == "yyyy/mm/dd")
            return "yyyy/mm/dd";
        else if (calDateFormat == "dd/mm/yyyy")
            return "dd/mm/yyyy";
    }
    else {
        return "dd/mm/yyyy";
    }
}
function GetDateSeperator() { return dtCh; }
function stripCharsInBag(s, bag) {
    var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function GetDateDiff(Date1, Date2) {
    var one_day = 1000 * 60 * 60 * 24;
    var startDate = new Date(ConvertToSysFormat(Date1));
    var endDate = new Date(ConvertToSysFormat(Date2));
    _Diff = Math.round((endDate.getTime() - startDate.getTime()) / (one_day));
    return _Diff;
}

function ResetDate(InOut, Date1, Date2) {
    var checkinDate = new Date(Date1);
    var checkoutDate = new Date(Date2);
    var checkDate, incremet
    if (InOut == "in") {
        checkDate = checkoutDate
        incremet = -1
    } else {
        checkDate = checkinDate
        incremet = 2
    }
    if (checkinDate >= checkoutDate) {
        var newDate = new Date(checkDate.getFullYear(), checkDate.getMonth(), checkDate.getDate() + incremet)
        SetDateVal(newDate.getFullYear(), newDate.getMonth() + 1, newDate.getDate(), InOut)
    }
}

function SetDateVal(year, month, varday, inOut) {
    var dfmt = GetDateFormat();
    if (month.toString.length < 2) month = "0" + month
    if (varday.toString.length < 2) varday = "0" + varday

    if (inOut == "in") {
        if (dfmt == "dd/mm/yyyy") {
            document.getElementById("Cal1").value = varday + GetDateSeperator() + month + GetDateSeperator() + year;
        }
        else if (dfmt == "yyyy/mm/dd") {
            document.getElementById("Cal1").value = year + GetDateSeperator() + month + GetDateSeperator() + varday;
        }
    } else {
        if (dfmt == "dd/mm/yyyy") {
            document.getElementById("Cal2").value = varday + GetDateSeperator() + month + GetDateSeperator() + year;
        }
        else if (dfmt == "yyyy/mm/dd") {
            document.getElementById("Cal2").value = year + GetDateSeperator() + month + GetDateSeperator() + varday;
        }
    }
    DateDiff();
}


function DateDiff() {
    dtCheckIn = document.getElementById("Cal1").value;
    var StartDate, EndDate;
    if (dtCheckIn != "") {
        var dateSplits = dtCheckIn.split(GetDateSeperator());
        if (dateSplits.length != 3 || isDate(dtCheckIn) != true) {
            $('#Cal1').datepicker('setDate', minDate);
            dtCheckIn = document.getElementById("Cal1").value;
        }
        CheckinDayEle = document.getElementById("day1");
        StartDate = new Date(ConvertToSysFormat(dtCheckIn));
        setDay(StartDate, CheckinDayEle);

    }
    dtCheckOut = document.getElementById("Cal2").value;
    if (dtCheckOut != "") {
        var dateSplits = dtCheckOut.split(GetDateSeperator());
        if (dateSplits.length != 3 || isDate(dtCheckOut) != true) {
            $('#Cal2').datepicker('setDate', minDate2);
            dtCheckOut = document.getElementById("Cal2").value;
        }
        CheckoutDayEle = document.getElementById("day2");
        EndDate = new Date(ConvertToSysFormat(dtCheckOut));
        setDay(EndDate, CheckoutDayEle);
    }
    if (dtCheckIn != "" && dtCheckOut != "") {
        var dtDatediff = GetDateDiff(dtCheckIn, dtCheckOut);
        if (typeof (document.getElementById("hdnDateDiff")) != "undefined") {
            if (document.getElementById("hdnDateDiff") != null) {
            document.getElementById('lenStay').innerHTML = document.getElementById("hdnDateDiff").value.replace("[NumNights]", "&nbsp;" + dtDatediff + "&nbsp;");
        }
        }
        AutoUpdateCheckout(StartDate, EndDate, "up");
    }
}

function DateDiff2() {
    dtCheckIn = document.getElementById("Cal1").value;
    var StartDate, EndDate;
    if (dtCheckIn != "") {
        var dateSplits = dtCheckIn.split(GetDateSeperator());
        if (dateSplits.length != 3 || isDate(dtCheckIn) != true) {
            $('#Cal1').datepicker('setDate', minDate);
            dtCheckIn = document.getElementById("Cal1").value;
        }
        CheckinDayEle = document.getElementById("day1");
        StartDate = new Date(ConvertToSysFormat(dtCheckIn));
        setDay(StartDate, CheckinDayEle);
    }
    dtCheckOut = document.getElementById("Cal2").value;
    if (dtCheckOut != "") {
        var dateSplits = dtCheckOut.split(GetDateSeperator());
        if (dateSplits.length != 3 || isDate(dtCheckOut) != true) {
            $('#Cal2').datepicker('setDate', minDate2);
            dtCheckOut = document.getElementById("Cal2").value;
        }
        CheckoutDayEle = document.getElementById("day2");
        EndDate = new Date(ConvertToSysFormat(dtCheckOut));
        setDay(EndDate, CheckoutDayEle);
    }
    if (dtCheckIn != "" && dtCheckOut != "") {

        var dtDatediff = GetDateDiff(dtCheckIn, dtCheckOut);
        if (typeof (document.getElementById("hdnDateDiff")) != "undefined") {
            if (document.getElementById("hdnDateDiff") != null) {
            document.getElementById('lenStay').innerHTML = document.getElementById("hdnDateDiff").value.replace("[NumNights]", "&nbsp;" + dtDatediff + "&nbsp;");
            }
        }
        //document.getElementById('dateDiff').innerHTML = GetDateDiff(dtCheckIn, dtCheckOut);


        AutoUpdateCheckout(StartDate, EndDate, "down");
    }
}

function DateDiff3() {
    dtCheckIn = document.getElementById("Cal3").value;
    var StartDate, EndDate;
    if (dtCheckIn != "") {
        var dateSplits = dtCheckIn.split(GetDateSeperator());
        if (dateSplits.length != 3 || isDate(dtCheckIn) != true) {
            $('#Cal3').datepicker('setDate', minDate);
            dtCheckIn = document.getElementById("Cal3").value;
        }
        CheckinDayEle = document.getElementById("day3");
        StartDate = new Date(ConvertToSysFormat(dtCheckIn));
        setDay(StartDate, CheckinDayEle);

    }
    dtCheckOut = document.getElementById("Cal4").value;
    if (dtCheckOut != "") {
        var dateSplits = dtCheckOut.split(GetDateSeperator());
        if (dateSplits.length != 3 || isDate(dtCheckOut) != true) {
            $('#Cal4').datepicker('setDate', minDate2);
            dtCheckOut = document.getElementById("Cal4").value;
        }
        CheckoutDayEle = document.getElementById("day4");
        EndDate = new Date(ConvertToSysFormat(dtCheckOut));
        setDay(EndDate, CheckoutDayEle);
    }
    if (dtCheckIn != "" && dtCheckOut != "") {
        AutoUpdateCheckout1(StartDate, EndDate, "up");
    }
}

function DateDiff4() {
    dtCheckIn = document.getElementById("Cal3").value;
    var StartDate, EndDate;
    if (dtCheckIn != "") {
        var dateSplits = dtCheckIn.split(GetDateSeperator());
        if (dateSplits.length != 3 || isDate(dtCheckIn) != true) {
            $('#Cal3').datepicker('setDate', minDate);
            dtCheckIn = document.getElementById("Cal3").value;
        }
        CheckinDayEle = document.getElementById("day3");
        StartDate = new Date(ConvertToSysFormat(dtCheckIn));
        setDay(StartDate, CheckinDayEle);
    }
    dtCheckOut = document.getElementById("Cal4").value;
    if (dtCheckOut != "") {
        var dateSplits = dtCheckOut.split(GetDateSeperator());
        if (dateSplits.length != 3 || isDate(dtCheckOut) != true) {
            $('#Cal4').datepicker('setDate', minDate2);
            dtCheckOut = document.getElementById("Cal4").value;
        }
        CheckoutDayEle = document.getElementById("day4");
        EndDate = new Date(ConvertToSysFormat(dtCheckOut));
        setDay(EndDate, CheckoutDayEle);
    }
    if (dtCheckIn != "" && dtCheckOut != "") {
        AutoUpdateCheckout1(StartDate, EndDate, "down");
    }
}

function AutoUpdateCheckout(CheckinDate, CheckoutDate, Dir) {
    var month, day, year, dfmt;
    if (CheckoutDate.getTime() < CheckinDate.getTime() && Dir == "up") {
        CheckoutDate.setTime(CheckinDate.getTime() + oneDay * 2);

        month = CheckoutDate.getMonth() + 1; month = AddPrecedingZero(month);
        day = CheckoutDate.getDate(); day = AddPrecedingZero(day);
        year = CheckoutDate.getFullYear();

        dfmt = GetDateFormat();
        if (dfmt == "dd/mm/yyyy") {
            document.getElementById("Cal2").value = day.toString() + GetDateSeperator() + month.toString() + GetDateSeperator() + year.toString();
        }
        else if (dfmt == "yyyy/mm/dd") {
            document.getElementById("Cal2").value = year.toString() + GetDateSeperator() + month.toString() + GetDateSeperator() + day.toString();
        }
        DateDiff();
    }
    else if (CheckoutDate.getTime() < CheckinDate.getTime() && Dir == "down") {
        CheckinDate.setTime(CheckoutDate.getTime() - oneDay * 2);
        month = CheckinDate.getMonth() + 1; month = AddPrecedingZero(month);
        day = CheckinDate.getDate(); day = AddPrecedingZero(day);
        year = CheckinDate.getFullYear();

        dfmt = GetDateFormat();
        if (dfmt == "dd/mm/yyyy") {
            document.getElementById("Cal1").value = day.toString() + GetDateSeperator() + month.toString() + GetDateSeperator() + year.toString();
        }
        else if (dfmt == "yyyy/mm/dd") {
            document.getElementById("Cal1").value = year.toString() + GetDateSeperator() + month.toString() + GetDateSeperator() + day.toString();
        }
        DateDiff();
    }
}

function AutoUpdateCheckout1(CheckinDate, CheckoutDate, Dir) {
    var month, day, year, dfmt;
    if (CheckoutDate.getTime() < CheckinDate.getTime() && Dir == "up") {
        CheckoutDate.setTime(CheckinDate.getTime() + oneDay * 2);

        month = CheckoutDate.getMonth() + 1; month = AddPrecedingZero(month);
        day = CheckoutDate.getDate(); day = AddPrecedingZero(day);
        year = CheckoutDate.getFullYear();

        dfmt = GetDateFormat();
        if (dfmt == "dd/mm/yyyy") {
            document.getElementById("Cal4").value = day.toString() + GetDateSeperator() + month.toString() + GetDateSeperator() + year.toString();
        }
        else if (dfmt == "yyyy/mm/dd") {
            document.getElementById("Cal4").value = year.toString() + GetDateSeperator() + month.toString() + GetDateSeperator() + day.toString();
        }
        DateDiff3();
    }
    else if (CheckoutDate.getTime() < CheckinDate.getTime() && Dir == "down") {
        CheckinDate.setTime(CheckoutDate.getTime() - oneDay * 2);
        month = CheckinDate.getMonth() + 1; month = AddPrecedingZero(month);
        day = CheckinDate.getDate(); day = AddPrecedingZero(day);
        year = CheckinDate.getFullYear();

        dfmt = GetDateFormat();
        if (dfmt == "dd/mm/yyyy") {
            document.getElementById("Cal3").value = day.toString() + GetDateSeperator() + month.toString() + GetDateSeperator() + year.toString();
        }
        else if (dfmt == "yyyy/mm/dd") {
            document.getElementById("Cal3").value = year.toString() + GetDateSeperator() + month.toString() + GetDateSeperator() + day.toString();
        }
        DateDiff3();
    }
}

function setDay(DateInput, Control) {
    if (Control != null) {
        Control.innerHTML = arrDayNames[DateInput.getDay()];
    }
}
function AddPrecedingZero(InputString) {
    if (InputString.toString().charAt(0) != "0" && InputString.toString().length != 2) { InputString = "0" + InputString.toString(); }
    return InputString;
}
function RemovePrecedingZero(InputString) {
    if (InputString.toString().charAt(0) == "0" && InputString.toString().length == 2) { InputString = InputString.charAt(1); }
    return InputString;
}

function SetDefaultDate() {
    if (document.getElementById("Cal1") && document.getElementById("Cal2")) {
        var dtCheckIn = document.getElementById("Cal1").value;
        var dtCheckOut = document.getElementById("Cal2").value;
        var dfmt = GetDateFormat();
        if (dtCheckIn == "" || dtCheckOut == "") {
            var sDate = new Date();
            var one_day = 1000 * 60 * 60 * 24;
            sDate.setTime(sDate.getTime() + one_day * 17);

            var inDay = sDate.getDate(); inDay = AddPrecedingZero(inDay);
            var inMonth = sDate.getMonth() + 1; inMonth = AddPrecedingZero(inMonth);
            var inYear = sDate.getFullYear();

            var eDate = new Date();
            eDate.setTime(eDate.getTime() + one_day * 19);
            var outDay = eDate.getDate(); outDay = AddPrecedingZero(outDay);
            var outMonth = eDate.getMonth() + 1; outMonth = AddPrecedingZero(outMonth);
            var outYear = eDate.getFullYear();
            if (dfmt == "dd/mm/yyyy") {
                document.getElementById('Cal1').value = inDay + GetDateSeperator() + inMonth + GetDateSeperator() + inYear;
                document.getElementById('Cal2').value = outDay + GetDateSeperator() + outMonth + GetDateSeperator() + outYear;
            }
            else if (dfmt == "yyyy/mm/dd") {
                document.getElementById('Cal1').value = inYear + GetDateSeperator() + inMonth + GetDateSeperator() + inDay;
                document.getElementById('Cal2').value = outYear + GetDateSeperator() + outMonth + GetDateSeperator() + outDay
            }
        }
    }
}

function SetSeoDefaultDate() {

    var dtCheckIn = document.getElementById("Cal3").value;
    var dtCheckOut = document.getElementById("Cal4").value;
    var dfmt = GetDateFormat();

    if (dtCheckIn == "" || dtCheckOut == "") {
        var sDate = new Date();
        var one_day = 1000 * 60 * 60 * 24;
        sDate.setTime(sDate.getTime() + one_day * 17);

        var inDay = sDate.getDate(); inDay = AddPrecedingZero(inDay);
        var inMonth = sDate.getMonth() + 1; inMonth = AddPrecedingZero(inMonth);
        var inYear = sDate.getFullYear();

        var eDate = new Date();
        eDate.setTime(eDate.getTime() + one_day * 19);
        var outDay = eDate.getDate(); outDay = AddPrecedingZero(outDay);
        var outMonth = eDate.getMonth() + 1; outMonth = AddPrecedingZero(outMonth);
        var outYear = eDate.getFullYear();
        if (dfmt == "dd/mm/yyyy") {
            document.getElementById('Cal3').value = inDay + GetDateSeperator() + inMonth + GetDateSeperator() + inYear;
            document.getElementById('Cal4').value = outDay + GetDateSeperator() + outMonth + GetDateSeperator() + outYear;
        }
        else if (dfmt == "yyyy/mm/dd") {
            document.getElementById('Cal3').value = inYear + GetDateSeperator() + inMonth + GetDateSeperator() + inDay;
            document.getElementById('Cal4').value = outYear + GetDateSeperator() + outMonth + GetDateSeperator() + outDay
        }
    }
}

function initSEOCalendar() {
    SetSeoDefaultDate();
    if (document.getElementById('Cal3')) {
        document.getElementById('Cal3').value = RedefineDate(document.getElementById('Cal3').value);
        var CheckInDate = document.getElementById('Cal3').value
        var dtCheckInDate = new Date(ConvertToSysFormat(CheckInDate));
        checkInday = dtCheckInDate.getDate();
        checkInMonth = dtCheckInDate.getMonth() + 1;
        checkInyear = dtCheckInDate.getFullYear();
        setDay(dtCheckInDate, document.getElementById('day3'));
    }
    if (document.getElementById('Cal4')) {
        document.getElementById('Cal4').value = RedefineDate(document.getElementById('Cal4').value);
        var CheckOutDate = document.getElementById('Cal4').value
        var dtCheckOutDate = new Date(ConvertToSysFormat(CheckOutDate));
        checkOutday = dtCheckOutDate.getDate();
        checkOutMonth = dtCheckOutDate.getMonth() + 1;
        checkOutyear = dtCheckOutDate.getFullYear();
        setDay(dtCheckOutDate, document.getElementById('day4'));
    }
}

function initCalendar() {
    var dfmt = GetDateFormat();
    var qs = new Querystring(location.search.substr(1))
    var inDay = qs.get("inDay")
    var inMonth = qs.get("inMonth")
    var inYear = qs.get("inYear")

    var outDay = qs.get("outDay")
    var outMonth = qs.get("outMonth")
    var outYear = qs.get("outYear")

    /* added check for directhotel when the 6 variables above are not available */
    var qsCheckInDate = qs.get("checkin");
    var qsCheckOutDate = qs.get("checkout");
    if ((typeof (inDay) == 'undefined' || inDay == null) &&
        (typeof (qsCheckInDate) != 'undefined' || qsCheckInDate != null)) {
        inYear = qsCheckInDate.split("-")[0];
        inMonth = qsCheckInDate.split("-")[1].length > 1 ? qsCheckInDate.split("-")[1] : "0" + qsCheckInDate.split("-")[1];
        inDay = qsCheckInDate.split("-")[2].length > 1 ? qsCheckInDate.split("-")[2] : "0" + qsCheckInDate.split("-")[2];

        outYear = qsCheckOutDate.split("-")[0];
        outMonth = qsCheckOutDate.split("-")[1].length > 1 ? qsCheckOutDate.split("-")[1] : "0" + qsCheckOutDate.split("-")[1];
        outDay = qsCheckOutDate.split("-")[2].length > 1 ? qsCheckOutDate.split("-")[2] : "0" + qsCheckOutDate.split("-")[2];
    }

    SetDefaultDate();

    var checkInday, checkInMonth, checkInyear
    var checkOutday, checkOutMonth, checkOutyear

    if (document.getElementById('Cal1')) {
        document.getElementById('Cal1').value = RedefineDate(document.getElementById('Cal1').value);
        var CheckInDate = document.getElementById('Cal1').value
        var dtCheckInDate = new Date(ConvertToSysFormat(CheckInDate));
        checkInday = dtCheckInDate.getDate();
        checkInMonth = dtCheckInDate.getMonth() + 1;
        checkInyear = dtCheckInDate.getFullYear();
        setDay(dtCheckInDate, document.getElementById('day1'));
    }
    if (document.getElementById('Cal2')) {
        document.getElementById('Cal2').value = RedefineDate(document.getElementById('Cal2').value);
        var CheckOutDate = document.getElementById('Cal2').value
        var dtCheckOutDate = new Date(ConvertToSysFormat(CheckOutDate));
        checkOutday = dtCheckOutDate.getDate();
        checkOutMonth = dtCheckOutDate.getMonth() + 1;
        checkOutyear = dtCheckOutDate.getFullYear();
        setDay(dtCheckOutDate, document.getElementById('day2'));
    }
    /*********set month, day, year in the hidden text *******/
    if (document.getElementById('inDay')) {
        document.getElementById('inDay').value = checkInday;
        document.getElementById('inMonth').value = checkInMonth;
        document.getElementById('inYear').value = checkInyear;

        document.getElementById('outDay').value = checkOutday;
        document.getElementById('outMonth').value = checkOutMonth;
        document.getElementById('outYear').value = checkOutyear;
    }
    /*******************************************************/
    if (typeof (inDay) != 'undefined' && inDay != null && document.getElementById('inDay')) {

        document.getElementById('inDay').value = inDay;
        document.getElementById('inMonth').value = inMonth;
        document.getElementById('inYear').value = inYear;

        document.getElementById('outDay').value = outDay;
        document.getElementById('outMonth').value = outMonth;
        document.getElementById('outYear').value = outYear;

        checkInday = inDay;
        checkInMonth = inMonth;
        checkInyear = inYear;

        checkOutday = outDay;
        checkOutMonth = outMonth;
        checkOutyear = outYear;

        if (dfmt == "dd/mm/yyyy") {
            document.getElementById('Cal1').value = inDay + GetDateSeperator() + inMonth + GetDateSeperator() + inYear;
            document.getElementById('Cal2').value = outDay + GetDateSeperator() + outMonth + GetDateSeperator() + outYear;
        }
        else if (dfmt == "yyyy/mm/dd") {
            document.getElementById('Cal1').value = inYear + GetDateSeperator() + inMonth + GetDateSeperator() + inDay;
            document.getElementById('Cal2').value = outYear + GetDateSeperator() + outMonth + GetDateSeperator() + outDay
        }
        var Cal1 = inMonth + GetDateSeperator() + inDay + GetDateSeperator() + inYear;
        var chkInDate = new Date(eval('"' + Cal1 + '"'))
        setDay(chkInDate, document.getElementById('day1'));


        var Cal2 = outMonth + GetDateSeperator() + outDay + GetDateSeperator() + outYear;
        var chkOutDate = new Date(eval('"' + Cal2 + '"'))
        setDay(chkOutDate, document.getElementById('day2'));

    }
    if (document.getElementById('hdnDateDiff') != null) {
        //********Length of stay *******/////  
        /*var strDiff = document.getElementById('hdnDateDiff').value
        var actualDiffStr = document.getElementById('hdnDateDiff').value;
        strDiff = strDiff.substring(strDiff.indexOf("]") + 1, strDiff.length);
        document.getElementById('lenStay').innerHTML = "<strong>" + actualDiffStr.substring(0, actualDiffStr.indexOf("[")) + "</strong>";
        document.getElementById('spnnight').innerHTML = strDiff;
        */
        DateDiff();
    }
}

function ChangeDates() {
    if (ValidateDate() == true) {
        var qString = location.search.substr(1)

        qString = remQStringName(qString, "page")
        qString = remQStringName(qString, "rpage")

        var strCheckIn = DateFormat(strCheckIn = document.getElementById('Cal1').value)
        var strCheckOut = DateFormat(document.getElementById('Cal2').value)
        qString = remQStringName(qString, "inDay")
        qString = remQStringName(qString, "inMonth")
        qString = remQStringName(qString, "inYear")
        qString = remQStringName(qString, "outDay")
        qString = remQStringName(qString, "outMonth")
        qString = remQStringName(qString, "outYear")
        qString = remQStringName(qString, "vw")
        qString += "&" + "inDay" + "=" + document.getElementById('inDay').value
        qString += "&" + "inMonth" + "=" + document.getElementById('inMonth').value
        qString += "&" + "inYear" + "=" + document.getElementById('inYear').value
        qString += "&rpage=" + document.getElementById("rpage").value;
        var outDate = document.getElementById('outDay').value
        if (outDate.length < 2)
        { qString += "&" + "outDay" + "=0" + outDate }
        else
        { qString += "&" + "outDay" + "=" + outDate }
        qString += "&" + "outMonth" + "=" + document.getElementById('outMonth').value
        qString += "&" + "outYear" + "=" + document.getElementById('outYear').value
        qString += "&" + "vw=D"
        qString = setQStringName(qString, "Checkin", new Array(strCheckIn))
        qString = setQStringName(qString, "Checkout", new Array(strCheckOut))
        location = location.pathname + "?" + qString
    }
}

function ValidateDate() {

    var strChkin = document.getElementById('Cal1').value;
    var strChkout = document.getElementById('Cal2').value;

    if (isDate(strChkin) == false) {
        document.getElementById('Cal1').focus()
        return false
    }
    if (isDate(strChkout) == false) {
        document.getElementById('Cal2').focus()
        return false
    }

    UpdateDates();
    var one_day = 1000 * 60 * 60 * 24;
    var date1 = new Date(ConvertToSysFormat(strChkin));
    var date2 = new Date(ConvertToSysFormat(strChkout));

    var dateDiff = Math.ceil((date2.getTime() - date1.getTime()) / (one_day));

    if (parseInt(dateDiff) < 1) {

        if (typeof (Common_Scripts_TravelDates_OutAfterIn) == "undefined")
            Common_Scripts_TravelDates_OutAfterIn = "Please ensure that the Check-out Date is after the Check-in Date."

        alert(Common_Scripts_TravelDates_OutAfterIn)
        return false;
    }
    var mnDate = new Date(minDate);
    minDate = new Date(mnDate.toDateString());

    if (date1 < minDate || date1 > maxDate) {
        alert("Please enter valid checkin date between " + minDate.toDateString() + " and " + maxDate.toDateString())
        return false
    }

    var mnDate2 = new Date(minDate2);
    minDate2 = new Date(mnDate2.toDateString());
    
    if (date2 < minDate2 || date2 > maxDate) {
        alert("Please enter valid checkout date between " + minDate2.toDateString() + " and " + maxDate.toDateString())
        return false
    }
    if (parseInt(dateDiff) > 25) {
        if (typeof (Common_Scripts_TravelDates_StayTooLong) == "undefined") {
            Common_Scripts_TravelDates_StayTooLong = 'Your period of stay should be not longer than 25 nights.\n\nIf you wish to book for more than 25 nights, please send us an e-mail with your request.'

        }
        alert(Common_Scripts_TravelDates_StayTooLong);
        return false;
    }
    return true
}

function ConvertToSysFormat(dtStr) {
    var dfmt = GetDateFormat();
    var dateSplits = dtStr.split(GetDateSeperator());
    var strMonth, strDay, strYear;
    if (dfmt == "dd/mm/yyyy") {
        strDay = dateSplits[0];
        strMonth = dateSplits[1];
        strYear = dateSplits[2];
    }
    else if (dfmt == "yyyy/mm/dd") {
        strDay = dateSplits[2];
        strMonth = dateSplits[1];
        strYear = dateSplits[0];
    }
    return strMonth + GetDateSeperator() + strDay + GetDateSeperator() + strYear;
}

function DateFormat(strDate) {
    var dfmt = GetDateFormat();
    var dateSplits = strDate.split(GetDateSeperator());
    var strMonth, strDay, strYear;
    var strMonth, strDay, strYear;
    if (dfmt == "dd/mm/yyyy") {
        strDay = dateSplits[0];
        strMonth = dateSplits[1];
        strYear = dateSplits[2];
    }
    else if (dfmt == "yyyy/mm/dd") {
        strDay = dateSplits[2];
        strMonth = dateSplits[1];
        strYear = dateSplits[0];
    }
    newDate = strYear + '-' + strMonth + '-' + strDay
    return newDate
}

function isDate(dtStr) {
    var dfmt = GetDateFormat();

    var dateSplits = dtStr.split(GetDateSeperator());
    if (dateSplits.length != 3) {
        alert("Enter a valid date");
        return false;
    }
    var strMonth, strDay, strYear;
    if (dfmt == "dd/mm/yyyy") {
        strDay = dateSplits[0];
        strMonth = dateSplits[1];
        strYear = dateSplits[2];
    }
    else if (dfmt == "yyyy/mm/dd") {
        strDay = dateSplits[2];
        strMonth = dateSplits[1];
        strYear = dateSplits[0];
    }
    var daysInMonth = DaysArray(12)
    strDay = AddPrecedingZero(strDay); strMonth = AddPrecedingZero(strMonth);
    if (isInteger(strDay) != true && isInteger(strMonth) != true && isInteger(strYear) != true)
        return false;
    var month = parseInt(strMonth, 10)
    var day = parseInt(strDay, 10)
    var year = parseInt(strYear, 10)

    if (strMonth.length < 1 || month < 1 || month > 12) {
        alert("Please enter valid month")
        return false
    }
    if (strDay.length < 1 || day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || day > daysInMonth[month]) {
        alert("Please enter valid date")
        return false
    }
    if (strYear.length != 4 || year == 0) {
        alert("Please enter valid 4 digit year")
        return false
    }

    //    var dt = new Date(ConvertToSysFormat(dtStr));
    //    if (dt < minDate || dt > maxDate) {
    //        alert("Please enter valid date between " + minDate.toDateString() + " and " + maxDate.toDateString())
    //        return false
    //    }
    return true
}
function DaysArray(n) {
    for (var i = 1; i <= n; i++) {
        this[i] = 31
        if (i == 4 || i == 6 || i == 9 || i == 11) { this[i] = 30 }
        if (i == 2) { this[i] = 29 }
    }
    return this
}
function daysInFebruary(year) {
    // February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ((!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28);
}
function UpdateDates() {
    var dfmt = GetDateFormat();
    var CheckInDate = document.getElementById('Cal1').value
    var checkInday, checkInMonth, checkInyear
    var CheckInDateSplits = CheckInDate.split(GetDateSeperator());
    if (dfmt == "dd/mm/yyyy") {
        checkInday = CheckInDateSplits[0];
        checkInMonth = CheckInDateSplits[1];
        checkInyear = CheckInDateSplits[2];
    }
    else if (dfmt == "yyyy/mm/dd") {
        checkInday = CheckInDateSplits[2];
        checkInMonth = CheckInDateSplits[1];
        checkInyear = CheckInDateSplits[0];
    }
    checkInday = AddPrecedingZero(checkInday); checkInMonth = AddPrecedingZero(checkInMonth);

    var CheckOutDate = document.getElementById('Cal2').value
    var checkOutday, checkOutMonth, checkOutyear
    var CheckOutDateSplits = CheckOutDate.split(GetDateSeperator());
    if (dfmt == "dd/mm/yyyy") {
        checkOutday = CheckOutDateSplits[0];
        checkOutMonth = CheckOutDateSplits[1];
        checkOutyear = CheckOutDateSplits[2];
    }
    else if (dfmt == "yyyy/mm/dd") {
        checkOutday = CheckOutDateSplits[2];
        checkOutMonth = CheckOutDateSplits[1];
        checkOutyear = CheckOutDateSplits[0];
    }

    checkOutday = AddPrecedingZero(checkOutday); checkOutMonth = AddPrecedingZero(checkOutMonth);

    document.getElementById('inDay').value = checkInday;
    document.getElementById('inMonth').value = checkInMonth;
    document.getElementById('inYear').value = checkInyear;

    document.getElementById('outDay').value = checkOutday;
    document.getElementById('outMonth').value = checkOutMonth;
    document.getElementById('outYear').value = checkOutyear;
}

function CheckIrrelevantDates() {
    var qs = new Querystring(location.search.substr(1))
    var inDay = qs.get("inDay"); var inMonth = qs.get("inMonth"); var inYear = qs.get("inYear"); var outDay = qs.get("outDay")
    var outMonth = qs.get("outMonth"); var outYear = qs.get("outYear"); var qsCheckInDate = qs.get("checkin");
    var qsCheckOutDate = qs.get("checkout");
    /*if ((typeof (inDay) == 'undefined' || inDay == null) && (typeof (qsCheckOutDate) == 'undefined' || qsCheckOutDate == null)) {
    //CheckInDate
    }*/

    if (typeof (qsCheckInDate) == 'undefined' || qsCheckInDate == null) {
        qsCheckInDate = varCheckInDate;
    }


    if (typeof (qsCheckOutDate) == 'undefined' || qsCheckOutDate == null) {
        qsCheckOutDate = varCheckOutDate;
    }


    if (typeof (inDay) == 'undefined' || inDay == null) {
        inYear = qsCheckInDate.substring(0, 4);
        inMonth = qsCheckInDate.substring(5, 7);
        inDay = qsCheckInDate.substring(8, 10);
        outYear = qsCheckOutDate.substring(0, 4);
        outMonth = qsCheckOutDate.substring(5, 7);
        outDay = qsCheckOutDate.substring(8, 10);
    }
    var DtCheckIn = new Date(inMonth + GetDateSeperator() + inDay + GetDateSeperator() + inYear);
    var DtCheckOut = new Date(outMonth + GetDateSeperator() + outDay + GetDateSeperator() + outYear);
    var one_day = 1000 * 60 * 60 * 24;

    var mnDate = new Date();
    mnDate.setTime(mnDate.getTime() - one_day);
    var minDate = new Date(mnDate.toDateString());
    var CurrentYear = mnDate.getFullYear();
    var MaxYear = CurrentYear + 2
    var mxDate = new Date("12/31/" + MaxYear);

    if (DtCheckIn > mxDate || DtCheckIn < minDate || DtCheckOut > mxDate || DtCheckOut < minDate || DtCheckIn > DtCheckOut) {
        var sDate = new Date();
        sDate.setTime(sDate.getTime() + one_day * 17);
        var eDate = new Date();
        eDate.setTime(eDate.getTime() + one_day * 19);
        var qString = location.search.substr(1)
        qString = remQStringName(qString, "page")
        qString = remQStringName(qString, "inDay")
        qString = remQStringName(qString, "inMonth")
        qString = remQStringName(qString, "inYear")
        qString = remQStringName(qString, "outDay")
        qString = remQStringName(qString, "outMonth")
        qString = remQStringName(qString, "outYear")
        inDay = sDate.getDate(); inDay = AddPrecedingZero(inDay);
        inMonth = sDate.getMonth() + 1; inMonth = AddPrecedingZero(inMonth);
        inYear = sDate.getFullYear();
        outDay = eDate.getDate(); outDay = AddPrecedingZero(outDay);
        outMonth = eDate.getMonth() + 1; outMonth = AddPrecedingZero(outMonth);
        outYear = eDate.getFullYear();
        var strCheckIn = DateFormat(inDay + GetDateSeperator() + inMonth + GetDateSeperator() + inYear);
        var strCheckOut = DateFormat(outDay + GetDateSeperator() + outMonth + GetDateSeperator() + outYear);
        qString += "&" + "inDay" + "=" + inDay;
        qString += "&" + "inMonth" + "=" + inMonth;
        qString += "&" + "inYear" + "=" + inYear;
        qString += "&" + "outDay" + "=" + outDay;
        qString += "&" + "outMonth" + "=" + outMonth;
        qString += "&" + "outYear" + "=" + outYear;
        qString = setQStringName(qString, "Checkin", new Array(strCheckIn))
        qString = setQStringName(qString, "Checkout", new Array(strCheckOut))
        location = location.pathname + "?" + qString
    }
}
/*
* Lazy Load - jQuery plugin for lazy loading images
*
* Copyright (c) 2007-2009 Mika Tuupola
*
* Licensed under the MIT license:
*   http://www.opensource.org/licenses/mit-license.php
*
* Project home:
*   http://www.appelsiini.net/projects/lazyload
*
* Version:  1.5.0
*
*/
(function($) {

    $.fn.lazyload = function(options) {
        var settings = {
            threshold: 0,
            failurelimit: 0,
            event: "scroll",
            effect: "show",
            container: window
        };

        if (options) {
            $.extend(settings, options);
        }

        /* Fire one scroll event per scroll. Not one scroll event per image. */
        var elements = this;
        if ("scroll" == settings.event) {
            $(settings.container).bind("scroll", function(event) {

                var counter = 0;
                elements.each(function() {
                    if ($.abovethetop(this, settings) ||
                        $.leftofbegin(this, settings)) {
                        /* Nothing. */
                    } else if (!$.belowthefold(this, settings) &&
                        !$.rightoffold(this, settings)) {
                        $(this).trigger("appear");
                    } else {
                        if (counter++ > settings.failurelimit) {
                            return false;
                        }
                    }
                });
                /* Remove image from array so it is not looped next time. */
                var temp = $.grep(elements, function(element) {
                    return !element.loaded;
                });
                elements = $(temp);
            });
        }

        this.each(function() {
            var self = this;

            /* Save original only if it is not defined in HTML. */
            if (undefined == $(self).attr("original")) {
                $(self).attr("original", $(self).attr("src"));
            }

            if ("scroll" != settings.event ||
                    undefined == $(self).attr("src") ||
                    settings.placeholder == $(self).attr("src") ||
                    ($.abovethetop(self, settings) ||
                     $.leftofbegin(self, settings) ||
                     $.belowthefold(self, settings) ||
                     $.rightoffold(self, settings))) {

                if (settings.placeholder) {
                    $(self).attr("src", settings.placeholder);
                } else {
                    $(self).removeAttr("src");
                }
                self.loaded = false;
            } else {
                self.loaded = true;
            }

            /* When appear is triggered load original image. */
            $(self).one("appear", function() {
                if (!this.loaded) {
                    $("<img />")
                        .bind("load", function() {
                            $(self)
                                .hide()
                                .attr("src", $(self).attr("original"))
                                [settings.effect](settings.effectspeed);
                            self.loaded = true;
                        })
                        .attr("src", $(self).attr("original"));
                };
            });

            /* When wanted event is triggered load original image */
            /* by triggering appear.                              */
            if ("scroll" != settings.event) {
                $(self).bind(settings.event, function(event) {
                    if (!self.loaded) {
                        $(self).trigger("appear");
                    }
                });
            }
        });

        /* Force initial check if images should appear. */
        $(settings.container).trigger(settings.event);

        return this;

    };

    /* Convenience methods in jQuery namespace.           */
    /* Use as  $.belowthefold(element, {threshold : 100, container : window}) */

    $.belowthefold = function(element, settings) {
        if (settings.container === undefined || settings.container === window) {
            var fold = $(window).height() + $(window).scrollTop();
        } else {
            var fold = $(settings.container).offset().top + $(settings.container).height();
        }
        return fold <= $(element).offset().top - settings.threshold;
    };

    $.rightoffold = function(element, settings) {
        if (settings.container === undefined || settings.container === window) {
            var fold = $(window).width() + $(window).scrollLeft();
        } else {
            var fold = $(settings.container).offset().left + $(settings.container).width();
        }
        return fold <= $(element).offset().left - settings.threshold;
    };

    $.abovethetop = function(element, settings) {
        if (settings.container === undefined || settings.container === window) {
            var fold = $(window).scrollTop();
        } else {
            var fold = $(settings.container).offset().top;
        }
        return fold >= $(element).offset().top + settings.threshold + $(element).height();
    };

    $.leftofbegin = function(element, settings) {
        if (settings.container === undefined || settings.container === window) {
            var fold = $(window).scrollLeft();
        } else {
            var fold = $(settings.container).offset().left;
        }
        return fold >= $(element).offset().left + settings.threshold + $(element).width();
    };
    /* Custom selectors for your convenience.   */
    /* Use as $("img:below-the-fold").something() */

    $.extend($.expr[':'], {
        "below-the-fold": "$.belowthefold(a, {threshold : 0, container: window})",
        "above-the-fold": "!$.belowthefold(a, {threshold : 0, container: window})",
        "right-of-fold": "$.rightoffold(a, {threshold : 0, container: window})",
        "left-of-fold": "!$.rightoffold(a, {threshold : 0, container: window})"
    });

})(jQuery);
/*
* Viewport - jQuery selectors for finding elements in viewport
*
* Copyright (c) 2008-2009 Mika Tuupola
*
* Licensed under the MIT license:
*   http://www.opensource.org/licenses/mit-license.php
*
* Project home:
*  http://www.appelsiini.net/projects/viewport
*
*/
(function($) {

    $.belowthefold = function(element, settings) {
        var fold = $(window).height() + $(window).scrollTop();
        return fold <= $(element).offset().top - settings.threshold;
    };

    $.abovethetop = function(element, settings) {
        var top = $(window).scrollTop();
        return top >= $(element).offset().top + $(element).height() - settings.threshold;
    };

    $.rightofscreen = function(element, settings) {
        var fold = $(window).width() + $(window).scrollLeft();
        return fold <= $(element).offset().left - settings.threshold;
    };

    $.leftofscreen = function(element, settings) {
        var left = $(window).scrollLeft();
        return left >= $(element).offset().left + $(element).width() - settings.threshold;
    };

    $.inviewport = function(element, settings) {
        return !$.rightofscreen(element, settings) && !$.leftofscreen(element, settings) && !$.belowthefold(element, settings) && !$.abovethetop(element, settings);
    };

    $.extend($.expr[':'], {
        "below-the-fold": function(a, i, m) {
            return $.belowthefold(a, { threshold: 0 });
        },
        "above-the-top": function(a, i, m) {
            return $.abovethetop(a, { threshold: 0 });
        },
        "left-of-screen": function(a, i, m) {
            return $.leftofscreen(a, { threshold: 0 });
        },
        "right-of-screen": function(a, i, m) {
            return $.rightofscreen(a, { threshold: 0 });
        },
        "in-viewport": function(a, i, m) {
            return $.inviewport(a, { threshold: 0 });
        }
    });


})(jQuery);

;(function( $ ){
	
	var $scrollTo = $.scrollTo = function( target, duration, settings ){
		$(window).scrollTo( target, duration, settings );
	};

	$scrollTo.defaults = {
		axis:'y',
		duration:1
	};

	// Returns the element that needs to be animated to scroll the window.
	// Kept for backwards compatibility (specially for localScroll & serialScroll)
	$scrollTo.window = function( scope ){
		return $(window).scrollable();
	};

	// Hack, hack, hack... stay away!
	// Returns the real elements to scroll (supports window/iframes, documents and regular nodes)
	$.fn.scrollable = function(){
		return this.map(function(){
			// Just store it, we might need it
			var win = this.parentWindow || this.defaultView,
				// If it's a document, get its iframe or the window if it's THE document
				elem = this.nodeName == '#document' ? win.frameElement || win : this,
				// Get the corresponding document
				doc = elem.contentDocument || (elem.contentWindow || elem).document,
				isWin = elem.setInterval;

			return elem.nodeName == 'IFRAME' || isWin && $.browser.safari ? doc.body
				: isWin ? doc.documentElement
				: this;
		});
	};

	$.fn.scrollTo = function( target, duration, settings ){
		if( typeof duration == 'object' ){
			settings = duration;
			duration = 0;
		}
		if( typeof settings == 'function' )
			settings = { onAfter:settings };
			
		settings = $.extend( {}, $scrollTo.defaults, settings );
		// Speed is still recognized for backwards compatibility
		duration = duration || settings.speed || settings.duration;
		// Make sure the settings are given right
		settings.queue = settings.queue && settings.axis.length > 1;
		
		if( settings.queue )
			// Let's keep the overall duration
			duration /= 2;
		settings.offset = both( settings.offset );
		settings.over = both( settings.over );

		return this.scrollable().each(function(){
			var elem = this,
				$elem = $(elem),
				targ = target, toff, attr = {},
				win = $elem.is('html,body');

			switch( typeof targ ){
				// A number will pass the regex
				case 'number':
				case 'string':
					if( /^([+-]=)?\d+(px)?$/.test(targ) ){
						targ = both( targ );
						// We are done
						break;
					}
					// Relative selector, no break!
					targ = $(targ,this);
				case 'object':
					// DOMElement / jQuery
					if( targ.is || targ.style )
						// Get the real position of the target 
						toff = (targ = $(targ)).offset();
			}
			$.each( settings.axis.split(''), function( i, axis ){
				var Pos	= axis == 'x' ? 'Left' : 'Top',
					pos = Pos.toLowerCase(),
					key = 'scroll' + Pos,
					old = elem[key],
					Dim = axis == 'x' ? 'Width' : 'Height',
					dim = Dim.toLowerCase();

				if( toff ){// jQuery / DOMElement
					attr[key] = toff[pos] + ( win ? 0 : old - $elem.offset()[pos] );

					// If it's a dom element, reduce the margin
					if( settings.margin ){
						attr[key] -= parseInt(targ.css('margin'+Pos)) || 0;
						attr[key] -= parseInt(targ.css('border'+Pos+'Width')) || 0;
					}
					
					attr[key] += settings.offset[pos] || 0;
					
					if( settings.over[pos] )
						// Scroll to a fraction of its width/height
						attr[key] += targ[dim]() * settings.over[pos];
				}else
					attr[key] = targ[pos];

				// Number or 'number'
				if( /^\d+$/.test(attr[key]) )
					// Check the limits
					attr[key] = attr[key] <= 0 ? 0 : Math.min( attr[key], max(Dim) );

				// Queueing axes
				if( !i && settings.queue ){
					// Don't waste time animating, if there's no need.
					if( old != attr[key] )
						// Intermediate animation
						animate( settings.onAfterFirst );
					// Don't animate this axis again in the next iteration.
					delete attr[key];
				}
			});			
			animate( settings.onAfter );			

			function animate( callback ){
				$elem.animate( attr, duration, settings.easing, callback && function(){
					callback.call(this, target, settings);
				});
			};
			function max( Dim ){
				var attr ='scroll'+Dim,
					doc = elem.ownerDocument;
				
				return win
						? Math.max( doc.documentElement[attr], doc.body[attr]  )
						: elem[attr];
			};
		}).end();
	};

	function both( val ){
		return typeof val == 'object' ? val : { top:val, left:val };
	};

})(jQuery);

var topScreenYPos;
var BottomScreenYPos;
var ImgPosArr = ""
var ImgPosArr1 = "";
var i = 0;
var strTemp;
window.onscroll = function() {
    scrollfunc()
}


function getDimensions() {
    if (window.innerHeight) {
        return window.innerHeight;
    }
    else {
        return document.documentElement.clientHeight;
    }    
} 


function scrollfunc() {    
    topScreenYPos = getXOffset();
    BottomScreenYPos = parseInt(getXOffset()) + parseInt(getDimensions());

    //document.title = topScreenYPos + "-" + BottomScreenYPos;
    //alert(topScreenYPos + "-" + BottomScreenYPos)    
        
    for (i = 0; i < ImgPosArr.length; i++) {
        ImgPosArr1 = ImgPosArr[i].split("<-->");
        if ((parseInt(ImgPosArr1[0]) > topScreenYPos) && (parseInt(ImgPosArr1[0]) < BottomScreenYPos)) {
            if (document.getElementById(ImgPosArr1[1]).src != "") {
                document.getElementById(ImgPosArr1[1]).src = "/HCRefreshAshx/ThumbNail.ashx?square=true&s=139&hid=" + document.getElementById(ImgPosArr1[1]).getAttribute("hid");
            }
        }
    }    
}

function findImagesPosY() {
    var all = document.getElementsByTagName('img');
    var x = "";
    for (var e = 0; e < all.length; e++) {
        if (all[e].className == "hotelthumbimg") {
            x = x + findPosY(all[e]) + "<-->" + "img" + e + ",";            
            all[e].id = "img" + e;
        }
    }
    document.getElementById("tmpImagePos").value = x;
    ImgPosArr = x.split(",");
}


function findPosY(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop + 18;
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
        }
    }
    return [curtop];
}


function getXOffset(){
    return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
}

$(document).ready(function() {
   
var qs = new Querystring(location.search.substr(1))
var IniMinRate = qs.get("IniMinRate")
var IniMaxRate = qs.get("IniMaxRate")

if (IniMinRate == undefined) {
    document.getElementById('IniHotelMinRate').value = IniHotelMinRate;
    document.getElementById('IniHotelMaxRate').value = IniHotelMaxRate;
}
else {
    document.getElementById('IniHotelMinRate').value = IniMinRate;
    document.getElementById('IniHotelMaxRate').value = IniMaxRate;
}

var qsSearchBy = qs.get("SearchBy")
if (qsSearchBy == 'Name') {
    document.getElementById('star3').disabled = 'true';
    document.getElementById('star4').disabled = 'true';
    document.getElementById('star5').disabled = 'true';
}
else {
    document.getElementById('star3').removeAttribute('disabled');
    document.getElementById('star4').removeAttribute('disabled');
    document.getElementById('star5').removeAttribute('disabled');
}

// <![CDATA[

// var GuestRating = new Control.Slider(['handle5-3','handle5-4'],'track1',{range: $R(1, 5),
// onSlide:function(v){document.getElementById('debug1').innerHTML= v.inspect()},
// onChange:function(v){document.getElementById('debug1').innerHTML= v.inspect()}});
// GuestRating.setValue(5,1);     
var qs = new Querystring(location.search.substr(1))
var minGRate = qs.get("minGRate")
var maxGRate = qs.get("maxGRate")
if (minGRate == undefined) {

}
else {
    GuestRating.setValue(parseInt(minGRate), 0);
    GuestRating.setValue(parseInt(maxGRate), 1);

}
// ]]>

var FacCount = FacilitiesCount
var filterQs = new Querystring(location.search.substr(1))
var facChkId = filterQs.get("facChk")
if (facChkId != undefined) {
    var arrfacChkId = facChkId.split(",")
    if (arrfacChkId.length > 0) {
        for (i = 0; i < arrfacChkId.length; i++) {
            if (document.getElementById("FACILITIES" + arrfacChkId[i]) != null) {
                document.getElementById("FACILITIES" + arrfacChkId[i]).checked = true;
            }
        }
    }
    else {
        document.getElementById("FACILITIESAll").checked = true;
    }
}
else {    
    document.getElementById("FACILITIESAll").checked = true;
}

var accChkId = filterQs.get("accChk")
if (accChkId != undefined && accChkId != "") {

    var arraccChkId = accChkId.split(",")
    if (arraccChkId.length > 0) {

        for (index = 0; index < arraccChkId.length; index++) {

            if (arraccChkId[index] != "") {
                var chkbox = document.getElementById("ACCOMMODATIONTYPE" + arraccChkId[index])

                if (chkbox != null) {
                    chkbox.checked = true;
                }
            }
        }
    }
    else {
        document.getElementById("ACCOMMODATIONTYPEAll").checked = true;
    }
}
else {

    document.getElementById("ACCOMMODATIONTYPEAll").checked = true;
}

});

function getSerachResultsBy(sortValue) {
    window.location.replace(replaceQueryString(replaceQueryString(window.location + "", "rpage", document.getElementById("rpage").value), "OrderBy", sortValue));
}$(document).ready(function(){
    initFlashMessages();
});

function initFlashMessages()
{
    if ($('.message').length) {
        $('.message').append('<a class="close" href="#">Close</a>');
		$('.message .close').click(function(){
		    $(this).parent().clearQueue().fadeOut(200);
			return false;
		});
		$('.message').delay('5000').fadeOut(200);
    }
}