
JADE={version:"5.1",isCCI:false,siteArray:new Array(),agentCode:'HWTKED',userName:null,hideShow:true};JADE.siteArray['sunloveragent']='http://www.agents.sunloverholidays.com/';JADE.siteArray['nswagent']='http://www.agents.nswholidays.com.au/';JADE.siteArray['travelpoint']='http://www.travelpoint.com.au/';sniffer={version:'2.0',versionMajor:0,ver:0.0,browser:null,OS:null,isSupported:false,_construct:function(){this.agentStr=navigator.userAgent.toLowerCase();this.appVer=navigator.appVersion.toLowerCase();if(document.getElementById&&document.createElement){this.isSupported=true;}
this.browser=this.searchString(this.dataBrowser)||null;this.ver=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||null;this.OS=this.searchString(this.dataOS)||null;if(this.browser=='Opera'){this.isOpera=true;}
if(this.browser=='Safari'){this.isSafari=true;this.safariBuild=this.version;str_pos=this.agentStr.indexOf('version/');if(str_pos){this.safariVer=this.agentStr.substr((str_pos+8));this.safariVer=this.safariVer.substring(0,this.safariVer.indexOf(" "));}
if(!this.safariVer){this.safariVer=this.safariBuild;}
this.ver=this.safariVer;}
if(this.browser=='Chrome'){this.isSafari=false;this.isChrome=true;this.chromeBuild=this.version;str_pos=this.agentStr.indexOf('chrome/');if(str_pos){this.chromeVer=this.agentStr.substr((str_pos+7));this.chromeVer=this.chromeVer.substring(0,this.chromeVer.indexOf(" "));}
if(!this.chromeVer){this.chromeVer=this.chromeBuild;}
this.ver=this.chromeVer;}
if(this.browser=='Mozilla'){this.isMozilla=true;}
if(this.browser=='Firefox'){this.isFirefox=true;}
if(this.browser=='Netscape'){this.isNS=true;if(!this.ver){this.ver=navigator.vendorSub;}
if(this.ver>=6){this.isNS6up=true;}}
if(this.browser=='Internet Explorer'){this.isIE=true;if(this.ver>=5){this.isIE5up=true;}
if(this.ver>=5.5){this.isIE5_5up=true;}
if(this.ver>=6){this.isIE6up=true;}
if(this.ver>=7){this.isIE7up=true;}
if(this.ver>=8){this.isIE8up=true;}
if(this.isIE7up&&!this.isIE8up){if(window.XDomainRequest){this.isIE8As7=true;}}}
if(this.OS=='Windows'){this.isWin=true;}
if(this.OS=='Windows 2000'){this.isWin=true;this.isWin2k=true;}
if(this.OS=='Windows XP'){this.isWin=true;this.isWinXP=true;this.isWinXPSP2=(window.navigator.userAgent.indexOf("SV1")!=-1);}
if(this.OS=='Windows Vista'){this.isWin=true;this.isWinVista=true;}
if(this.OS=='Mac'){this.isMac=true;}
if(this.OS=='Linux'){this.isLinux=true;}
if(this.OS=='Ubuntu'){this.isLinux=true;this.isUbuntu=true;}
this.versionMajor=parseInt(this.ver);},searchString:function(data){for(var i=0;i<data.length;i++){var dataString=data[i].string;var dataProp=data[i].prop;this.versionSearchString=data[i].versionSearch||data[i].identity;if(dataString){if(dataString.indexOf(data[i].subString)!=-1){return data[i].identity;}}else if(dataProp){return data[i].identity;}}},searchVersion:function(dataString){var index=dataString.indexOf(this.versionSearchString);if(index==-1){return;}
return parseFloat(dataString.substring(index+this.versionSearchString.length+1));},dataBrowser:[{string:navigator.vendor,subString:"Apple",identity:"Safari"},{string:navigator.userAgent,subString:"Chrome",identity:"Chrome"},{prop:window.opera,identity:"Opera"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"Firebird",identity:"Firebird"},{string:navigator.userAgent,subString:"Phoenix",identity:"Phoenix"},{string:navigator.userAgent,subString:"MSIE",identity:"Internet Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],dataOS:[{string:navigator.userAgent,subString:"Windows NT 6.0",identity:"Windows Vista"},{string:navigator.userAgent,subString:"Windows NT 5.1",identity:"Windows XP"},{string:navigator.userAgent,subString:"Windows NT 5.0",identity:"Windows 2000"},{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.vendor,subString:"Ubuntu",identity:"Ubuntu"},{string:navigator.platform,subString:"Linux",identity:"Linux"}],breifDescription:function(){var browser=this.browser;if(browser=='Internet Explorer'){browser='IE'
if(this.isIE8As7){var browser='IE8 as '+this.ver}}
var os=this.OS;if(this.isWinXPSP2){os=os+'(SP2)';}
return browser+' '+this.ver+' on '+os;}};sniffer._construct();JSManager=function(application,ver)
{if(!application&&window.JSTESTS){application='JSTESTS';ver=JSTESTS.version;}
this.application=application;this.version=ver;this.defaultDir="";this.includedJSArray=new Array();this.includedJSArray[0]=new Array();this.includedJSArray[0][0]="Document.js";this.includedJSArray[0][1]="JADE - JavaScript And DHTML Extensions";this.includedJSArray[0][2]=JADE.version;this.includedJSArray[0][3]=true;this.includedJSArray[0][4]=false;this.includedCSSArray=[];}
JSManager.prototype.setApplication=function(application,ver)
{this.application=application;this.version=ver;}
JSManager.prototype.getApplicationName=function()
{return this.application;}
JSManager.prototype.getApplicationVersion=function()
{return this.version;}
JSManager.prototype.addVersion=function(filename,module,ver)
{var added=false;for(var i=0;i<this.includedJSArray.length;i++){if(this.includedJSArray[i][0]==filename){this.includedJSArray[i][1]=module;this.includedJSArray[i][2]=ver;added=true;}}
if(!added){var newRecord=this.includedJSArray.length;this.includedJSArray[newRecord]=new Array();this.includedJSArray[newRecord][0]=filename;this.includedJSArray[newRecord][1]=module;this.includedJSArray[newRecord][2]=ver;this.includedJSArray[newRecord][3]=false;this.includedJSArray[newRecord][4]=true;}}
JSManager.prototype.getVersion=function(elName,usemodule)
{var aEl=usemodule?1:0;for(var i=0;i<this.includedJSArray.length;i++){if(this.includedJSArray[i][aEl]==elName){return this.includedJSArray[i][2];}}}
JSManager.prototype.setVersion=function(version,elName,usemodule)
{var aEl=usemodule?1:0;for(var i=0;i<this.includedJSArray.length;i++){if(this.includedJSArray[i][aEl]==elName){this.includedJSArray[i][2]=version;}}}
JSManager.prototype.getmodule=function(filename)
{for(var i=0;i<this.includedJSArray.length;i++){if(this.includedJSArray[i][0]==filename){return this.includedJSArray[i][1];}}}
JSManager.prototype.showVersions=function()
{str="<div class='JSVersions'>";str+="<h2 class='JSVersionHeader'>Version Numbers</h2>";for(var i=0;i<this.includedJSArray.length;i++){str+="<p class='JSPara'><b class='JSModule'>"+this.includedJSArray[i][1]+"</b> <span class='JSVersion'>"+this.includedJSArray[i][2]+'</span></p>';}
str+="</div>";return str;}
JSManager.prototype.setLoaded=function(filename)
{for(var i=0;i<this.includedJSArray.length;i++){if(this.includedJSArray[i][0]==filename){this.includedJSArray[i][3]=true;}}}
JSManager.prototype.isLoaded=function(filename)
{for(var i=0;i<this.includedJSArray.length;i++){if(this.includedJSArray[i][0]==filename){return this.includedJSArray[i][3];}}
return false;}
JSManager.prototype.isIncluded=function(filename)
{for(var i=0;i<this.includedJSArray.length;i++){if(this.includedJSArray[i][0]==filename){return true;}}
return false;}
JSManager.prototype.isAllLoaded=function()
{for(var i=0;i<this.includedJSArray.length;i++){if(this.includedJSArray[i][3]==false){return false;}}
return true;}
JSManager.prototype.waitForLoaded=function(filename,fn)
{if(!this.isLoaded(filename)){var callwrapper=new CCallWrapper(this,10,'waitForLoaded',filename,fn);CCallWrapper.asyncExecute(callwrapper);}else{fn();}}
JSManager.prototype.waitForAllLoaded=function(fn)
{if(!this.isAllLoaded()){var callwrapper=new CCallWrapper(this,10,'waitForAllLoaded',fn);CCallWrapper.asyncExecute(callwrapper);}else{fn();}}
JSManager.prototype.js_include_dom=function(script_filename,dir)
{dir=dir?dir:"";if(dir.length!=0){script_filename=dir+"/"+script_filename;}else{if(this.defaultDir.length!=0){script_filename=this.defaultDir+"/"+script_filename;}}
var op7=(navigator.userAgent.indexOf("Opera 7")!=-1);if(document.getElementsByTagName&&document.createTextNode&&!op7){var html_doc=document.getElementsByTagName('head').item(0);var js=document.createElement('script');js.type="text/javascript";js.src=script_filename;js.language="javascript";if(!html_doc.appendChild(js)){document.write('<script src="'+script_filename+'" type="text/javascript" language="JavaScript"></script>');}}else{document.write('<script src="'+script_filename+'" type="text/javascript" language="JavaScript"></script>');}
return false;}
JSManager.prototype.css_include_dom=function(css_file,dir)
{dir=dir?dir:"";if(dir.length!=0){css_file=dir+"/"+css_file;}else{if(this.defaultDir.length!=0){css_file=this.defaultDir+"/"+css_file;}}
var op7=(navigator.userAgent.indexOf("Opera 7")!=-1);if(document.getElementsByTagName&&document.createTextNode&&!op7){var html_doc=document.getElementsByTagName('head').item(0);var css=document.createElement('link');css.rel="stylesheet";css.type="text/css";css.href=css_file;if(!html_doc.appendChild(css)){document.write('<link href="'+css_file+'" rel="stylesheet" type="text/css" />');}}else{document.write('<link href="'+css_file+'" rel="stylesheet" type="text/css" />');}
return false;}
JSManager.prototype.include=function(script_filename,dir,type)
{type=type?type:"JS";if(type=="CSS"){if(!in_array(script_filename,this.includedCSSArray)){this.includedCSSArray[this.includedCSSArray.length]=script_filename;this.css_include_dom(script_filename,dir);}}else{if(!in_array(script_filename,this.includedJSArray)){var newRecord=this.includedJSArray.length;this.includedJSArray[newRecord]=new Array();this.includedJSArray[newRecord][0]=script_filename;this.includedJSArray[newRecord][1]="Unknown";this.includedJSArray[newRecord][2]="0.1a";this.includedJSArray[newRecord][3]=false;this.includedJSArray[newRecord][4]=false;this.js_include_dom(script_filename,dir);}}}
JSManager.prototype.required=function()
{for(var i=0;i<arguments.length;i++){this.include(arguments[i]);}}
JSManager.prototype.setDefaultDirectory=function(dir)
{this.defaultDir=dir;}
function in_array(needle,haystack)
{for(var i=0;i<haystack.length;i++){if(haystack[i][0]==needle)return true;}
return false;}
JSLib=new JSManager();function CCallWrapper(aObjectReference,aDelay,aMethodName,aArgument0,aArgument1,aArgument2,aArgument3,aArgument4,aArgument5,aArgument6,aArgument7,aArgument8,aArgument9)
{this.mId='CCallWrapper_'+(CCallWrapper.mCounter++);this.mObjectReference=aObjectReference;this.mDelay=aDelay;this.mTimerId=0;this.mMethodName=aMethodName;this.mArgument0=aArgument0;this.mArgument1=aArgument1;this.mArgument2=aArgument2;this.mArgument3=aArgument3;this.mArgument4=aArgument4;this.mArgument5=aArgument5;this.mArgument6=aArgument6;this.mArgument7=aArgument7;this.mArgument8=aArgument8;this.mArgument9=aArgument9;CCallWrapper.mPendingCalls[this.mId]=this;}
CCallWrapper.prototype.execute=function()
{this.mObjectReference[this.mMethodName](this.mArgument0,this.mArgument1,this.mArgument2,this.mArgument3,this.mArgument4,this.mArgument5,this.mArgument6,this.mArgument7,this.mArgument8,this.mArgument9);delete CCallWrapper.mPendingCalls[this.mId];}
CCallWrapper.prototype.cancel=function()
{clearTimeout(this.mTimerId);delete CCallWrapper.mPendingCalls[this.mId];}
CCallWrapper.asyncExecute=function(callwrapper)
{CCallWrapper.mPendingCalls[callwrapper.mId].mTimerId=setTimeout('CCallWrapper.mPendingCalls["'+callwrapper.mId+'"].execute()',callwrapper.mDelay);}
CCallWrapper.mCounter=0;CCallWrapper.mPendingCalls={};function addLoadListener(fn)
{if(typeof window.addEventListener!='undefined'){window.addEventListener('load',fn,false);}
else if(typeof document.addEventListener!='undefined'){document.addEventListener('load',fn,false);}
else if(typeof window.attachEvent!='undefined'){window.attachEvent('onload',fn);}
else{var oldfn=window.onload;if(typeof window.onload!='function'){window.onload=fn;}
else{window.onload=function()
{oldfn();fn();};}}}
function addUnloadListener(fn)
{if(typeof window.addEventListener!='undefined'){window.addEventListener('unload',fn,false);}
else if(typeof document.addEventListener!='undefined'){document.addEventListener('unload',fn,false);}
else if(typeof window.attachEvent!='undefined'){window.attachEvent('onunload',fn);}
else{var oldfn=window.onunload;if(typeof window.onunload!='function'){window.onunload=fn;}
else{window.onunload=function()
{oldfn();fn();};}}}
function vd(object)
{alert(var_dump(object));}
function var_dump(obj)
{if(typeof obj=="object"){return"Type: "+typeof(obj)+((obj.constructor)?"\nConstructor: "+obj.constructor:"")+"\nValue: "+obj;}else{return"Type: "+typeof(obj)+"\nValue: "+obj;}}
var Dumper=(function(){var maxIterations=1000;var maxDepth=-1;var iterations=0;var indent=1;var indentText=" ";var newline="\n";var object=null;var properties=null;function args(a,index){var myargs=new Array();for(var i=index;i<a.length;i++){myargs[myargs.length]=a[i];}
return myargs;}
function pad(len){var ret="";for(var i=0;i<len;i++){ret+=indentText;}
return ret;}
function string(o){var level=1;var indentLevel=indent;var ret="";if(arguments.length>1&&typeof(arguments[1])=="number"){level=arguments[1];indentLevel=arguments[2];if(o==object){return"[original object]";}}
else{iterations=0;object=o;if(arguments.length>1){var list=arguments;var listIndex=1;if(typeof(arguments[1])=="object"){list=arguments[1];listIndex=0;}
for(var i=listIndex;i<list.length;i++){if(properties==null){properties=new Object();}
properties[list[i]]=1;}}}
if(iterations++>maxIterations){return"[Max Iterations Reached]";}
if(maxDepth!=-1&&level>(maxDepth+1)){return"...";}
if(typeof(o)=="undefined"){return"[undefined]";}
if(o==null){return"[null]";}
if(o==window){return"[window]";}
if(o==window.document){return"[document]";}
if(typeof(o)=="function"){return"[function]";}
if(typeof(o)=="boolean"){return(o)?"true":"false";}
if(typeof(o)=="string"){return"'"+o+"'";}
if(typeof(o)=="number"){return o;}
if(typeof(o)=="object"){if(typeof(o.length)=="number"){if(maxDepth!=-1&&level>maxDepth){return"[ ... ]";}
ret="[";for(var i=0;i<o.length;i++){if(i>0){ret+=","+newline+pad(indentLevel);}
else{ret+=newline+pad(indentLevel);}
ret+=string(o[i],level+1,indentLevel-0+indent);}
if(i>0){ret+=newline+pad(indentLevel-indent);}
ret+="]";return ret;}
else{if(maxDepth!=-1&&level>maxDepth){return"{ ... }";}
ret="{";var count=0;for(i in o){if(o==object&&properties!=null&&properties[i]!=1){}
else{if(typeof(o[i])!="unknown"){var processAttribute=true;if(o.ownerDocument||o.tagName||(o.nodeType&&o.nodeName)){processAttribute=false;if(i=="tagName"||i=="nodeName"||i=="nodeType"||i=="id"||i=="className"){processAttribute=true;}}
if(processAttribute){if(count++>0){ret+=","+newline+pad(indentLevel);}
else{ret+=newline+pad(indentLevel);}
ret+="'"+i+"' => "+string(o[i],level+1,indentLevel-0+i.length+6+indent);}}}}
if(count>0){ret+=newline+pad(indentLevel-indent);}
ret+="}";return ret;}}}
string.popup=function(o){var w=window.open("about:blank");w.document.open();w.document.writeln("<HTML><BODY><PRE>");w.document.writeln(string(o,args(arguments,1)));w.document.writeln("</PRE></BODY></HTML>");w.document.close();};string.alert=function(o){alert(string(o,args(arguments,1)));};string.write=function(o){var argumentsIndex=1;var d=document;if(arguments.length>1&&arguments[1]==window.document){d=arguments[1];argumentsIndex=2;}
var temp=indentText;indentText="&nbsp;";d.write(string(o,args(arguments,argumentsIndex)));indentText=temp;};string.setMaxIterations=function(i){maxIterations=i;};string.setMaxDepth=function(i){maxDepth=i;};return string;})();function popUp(url){var width=arguments[1]?arguments[1]:455;var height=arguments[2]?arguments[2]:500;var scrollbars=arguments[3]=='no'?'no':'yes';var popup=window.open(url,'info','top=20,left=20,scrollbars='+scrollbars+',width='+width+',height='+height+',resizable=yes');popup.focus();return false;}
var undefined;function isUndefined(property)
{return(typeof property=='undefined');}
if(isUndefined(Array.prototype.pop)==true){Array.prototype.pop=function()
{var lastItem=undefined;if(this.length>0){lastItem=this[this.length-1];this.length--;}
return lastItem;}}
if(isUndefined(Array.prototype.push)==true){Array.prototype.push=function()
{var currentLength=this.length;for(var i=0;i<arguments.length;i++){this[currentLength+i]=arguments[i];}
return this.length;}}
if(isUndefined(Array.prototype.splice)==true)
{Array.prototype.splice=function(start,deleteCount)
{if(deleteCount==null||deleteCount=='')
deleteCount=this.length-start;var tempArray=this.copy();for(var i=start;i<start+arguments.length-2;i++)
{this[i]=arguments[i-start+2];}
for(var i=start+arguments.length-2;i<this.length-deleteCount+arguments.length-2;i++)
{this[i]=tempArray[i+deleteCount-arguments.length+2];}
this.length=this.length-deleteCount+(arguments.length-2);return tempArray.slice(start,start+deleteCount);}}
if(isUndefined(Array.prototype.copy)==true)
{Array.prototype.copy=function()
{var copy=new Array();for(var i=0;i<this.length;i++)
{copy[i]=this[i];}
return copy;}}
function getElementById(id)
{if(document.getElementById){return document.getElementById(id);}
if(document.all){return document.all(id);}}
function aotGetElementsByClassName(className,parentElm,tagName,fn)
{tagName=tagName||"*";parentElm=parentElm||document;var objColl=parentElm.getElementsByTagName(tagName);if(!objColl.length&&tagName=="*"&&parentElm.all){objColl=parentElm.all;}
var arr=new Array();var delim=className.indexOf('|')!=-1?'|':' ';var arrClass=className.split(delim);for(var i=0,j=objColl.length;i<j;i++){var arrObjClass=objColl[i].className.split(' ');if(delim==' '&&arrClass.length>arrObjClass.length){continue;}
var c=0;comparisonLoop:for(var k=0,l=arrObjClass.length;k<l;k++){for(var m=0,n=arrClass.length;m<n;m++){if(arrClass[m]==arrObjClass[k]){c++;}
if((delim=='|'&&c==1)||(delim==' '&&c==arrClass.length)){arr.push(objColl[i]);if(fn){fn(objColl[i]);}
break comparisonLoop;}}}}
return arr;}
function aotGetElementsByTagName(tagName,parentEle)
{var list=null;tagName=tagName||'*';parentEle=parentEle||document;if(sniffer.isIE4||sniffer.isIE5){if(tagName=='*'){list=parentEle.all;}else{list=parentEle.all.tags(tagName);}}else if(parentEle.getElementsByTagName){list=parentEle.getElementsByTagName(tagName);}
return list||new Array();}
function aotGetElementsByAttribute(sTag,sAtt,sRE,fn)
{var a;var list;var found=new Array();var re=new RegExp(sRE,'i');list=aotGetElementsByTagName(sTag);for(var i=0;i<list.length;++i){a=list[i].getAttribute(sAtt);if(!a){a=list[i][sAtt];}
if(typeof(a)=='string'&&a.search(re)!=-1){found[found.length]=list[i];if(fn){fn(list[i]);}}}
return found;}
function discardElement(element)
{var garbageBin=document.getElementById('IELeakGarbageBin');if(!garbageBin){garbageBin=document.createElement('div');garbageBin.id='IELeakGarbageBin';garbageBin.style.display="none";document.body.appendChild(garbageBin);}
garbageBin.appendChild(element);garbageBin.innerHTML='';}
function isNumeric(val)
{return(parseFloat(val,10)==(val*1));}
function turnOnHourglass()
{document.body.style.cursor="wait";}
function turnOffHourglass()
{document.body.style.cursor="default";}
setSelectOptions=function(select,options){var selected=arguments[2]?arguments[2]:0;clearSelectOptions(select);i=0;for(i=0;i<options.length;i++){select.options[i]=options[i];if(i==selected){select.options[i].selected=true;}}
return select;}
clearSelectOptions=function(select){select.options.length=0;}
var wasSubmitted=false;function submitOnce(btn)
{if(wasSubmitted==true){alert("Request already submitted, please wait....");}else{btn.className='btn_disable';btn.blur();wasSubmitted=true;}}
function changeClass(id,cssClass){var identity=getElementById(id);if(identity){identity.className=cssClass;}}
function doChangeClasses(fld)
{if(fld&&typeof fld=='object'){argStr=fld.value;}else{argStr=fld;}
argStr=argStr.replace(/\s+/g,'');if(argStr.length==0){return;}
var argArray=argStr.split(',');for(var i=0;i<argArray.length;i++){if(i%2==0){if((i+1)!=argArray.length){changeClass(argArray[i],argArray[i+1]);}}}}
function getMousePos(e)
{var docX=0;var docY=0;if(e){if(typeof(e.pageX)=='number'){docX=e.pageX;docY=e.pageY;}else{docX=e.clientX;docY=e.clientY;}}else{e=window.event;docX=e.clientX;docY=e.clientY;if(document.documentElement&&(document.documentElement.scrollTop||document.documentElement.scrollLeft)){docX+=document.documentElement.scrollLeft;docY+=document.documentElement.scrollTop;}else if(document.body&&(document.body.scrollTop||document.body.scrollLeft)){docX+=document.body.scrollLeft;docY+=document.body.scrollTop;}}
return[docX,docY];}
document.winWidth=800;document.winHeight=600;function getWindowHeight()
{var myHeight=0;if(typeof(window.innerHeight)=='number')
{myHeight=window.innerHeight;}
else if(document.documentElement&&document.documentElement.clientHeight)
{myHeight=document.documentElement.clientHeight;}
else if(document.body&&document.body.clientHeight)
{myHeight=document.body.clientHeight;}
return myHeight;}
function getWindowWidth()
{var myWidth=0;if(typeof(window.innerWidth)=='number')
{myWidth=window.innerWidth;}
else if(document.documentElement&&document.documentElement.clientWidth)
{myWidth=document.documentElement.clientWidth;}
else if(document.body&&document.body.clientWidth)
{myWidth=document.body.clientWidth;}
return myWidth;}
function storePageSize()
{document.winHeight=getWindowHeight();document.winWidth=getWindowWidth();}
addLoadListener(storePageSize);window.onresize=storePageSize;function getPageSize()
{var scrollWidth=document.winHeight;var scrollHeight=document.winWidth;var test1=document.body.scrollHeight;var test2=document.body.offsetHeight;if(test1>test2){scrollWidth=document.body.scrollWidth;scrollHeight=document.body.scrollHeight;}else{scrollWidth=document.body.offsetWidth;scrollHeight=document.body.offsetHeight;}
return[scrollWidth,scrollHeight];}
function getPagePosScroll(full)
{full=full?full:false;var x;var y;if(self.pageYOffset)
{x=self.pageXOffset;y=self.pageYOffset;}
else if(document.documentElement&&document.documentElement.scrollTop)
{x=document.documentElement.scrollLeft;y=document.documentElement.scrollTop;}
else if(document.body)
{x=document.body.scrollLeft;y=document.body.scrollTop;}
if(full){x=x+document.winWidth;y=y+document.winHeight;}
return[x,y];}
document.onMouseMoveHandlers=new Array();document.onClickHandlers=new Array();document.onClickHandlersActive=new Array();document.onKeyUpHandlers=new Array();document.KEY_LEFT=37;document.KEY_UP=38;document.KEY_RIGHT=39;document.KEY_DOWN=40;document.KEY_ENTER=13;document.KEY_TAB=9;document.KEY_DEL=46;document.KEY_BACKSPACE=8;document.stopBubble=function(e)
{if(!e){e=window.event;}
if(document.all){window.event.cancelBubble=true;window.event.returnValue=false;}else if(e.preventDefault){e.cancelBubble=true;e.stopPropagation();e.preventDefault();}
return false;}
document.addOnMouseMoveHandler=function(handler)
{if(!document.isSetOnMouseMoveHandler(handler)){document.onMouseMoveHandlers[document.onMouseMoveHandlers.length]=handler;}}
document.isSetOnMouseMoveHandler=function(handler)
{for(var i=0;i<document.onMouseMoveHandlers.length;i++){if(document.onMouseMoveHandlers[i]==handler){return true;}}
return false;}
document.removeOnMouseMoveHandler=function(handler)
{for(var i=0;i<document.onMouseMoveHandlers.length;i++){if(document.onMouseMoveHandlers[i]==handler){document.onMouseMoveHandlers.splice(i,1);return true;}}
return false;}
document.addOnClickHandler=function(handler)
{if(!document.isSetOnClickHandler(handler)){document.onClickHandlers[document.onClickHandlers.length]=handler;}
document.activateOnClickHandler(handler);}
document.isSetOnClickHandler=function(handler)
{for(var i=0;i<document.onClickHandlers.length;i++){if(document.onClickHandlers[i]==handler){return true;}}
return false;}
document.removeOnClickHandler=function(handler)
{for(var i=0;i<document.onClickHandlers.length;i++){if(document.onClickHandlers[i]==handler){document.onClickHandlers.splice(i,1);document.onClickHandlersActive.splice(i,1);return true;}}
return false;}
document.deactivateOnClickHandler=function(handler)
{for(var i=0;i<document.onClickHandlers.length;i++){if(document.onClickHandlers[i]==handler){document.onClickHandlersActive[i]=false;return true;}}
return false;}
document.activateOnClickHandler=function(handler)
{for(var i=0;i<document.onClickHandlers.length;i++){if(document.onClickHandlers[i]==handler){document.onClickHandlersActive[i]=true;return true;}}
return false;}
document.addOnKeyUpHandler=function(handler)
{if(!document.isSetOnKeyUpHandler(handler)){document.onKeyUpHandlers[document.onKeyUpHandlers.length]=handler;}}
document.isSetOnKeyUpHandler=function(handler)
{for(var i=0;i<document.onKeyUpHandlers.length;i++){if(document.onKeyUpHandlers[i]==handler){return true;}}
return false;}
document.removeOnKeyUpHandler=function(handler)
{for(var i=0;i<document.onKeyUpHandlers.length;i++){if(document.onKeyUpHandlers[i]==handler){document.onKeyUpHandlers.splice(i,1);return true;}}
return false;}
document.onmousemove=function(e)
{if(!document.onMouseMoveHandlers){return false;}
for(var i=0;i<document.onMouseMoveHandlers.length;i++){if(typeof document.onMouseMoveHandlers[i]=="function"){document.onMouseMoveHandlers[i](e);}else{eval(document.onMouseMoveHandlers[i]+'(e)');}}}
document.onclick=function(e)
{if(!document.onClickHandlers){return false;}
for(var i=0;i<document.onClickHandlers.length;i++){if(document.onClickHandlersActive[i]){if(typeof document.onClickHandlers[i]=="function"){document.onClickHandlers[i](e);}else{eval(document.onClickHandlers[i]+'(e)');}}}}
document.onkeypress=function(e)
{if(!document.onKeyUpHandlers){return false;}
var code;if(!e){var e=window.event;}
if(!e){return true;}
if(e.keyCode){code=e.keyCode;}else if(e.which){code=e.which;}
e.bcKeyCode=code;for(var i=0;i<this.onKeyUpHandlers.length;i++){if(typeof document.onKeyUpHandlers[i]=="function"){document.onKeyUpHandlers[i](e);}else{eval(document.onKeyUpHandlers[i]+'(e)');}}}
function htmlEncode(s)
{}
function tidyOnExit()
{document.onMouseMoveHandlers=null;document.onClickHandlers=null;document.onClickHandlersActive=null;document.onKeyUpHandlers=null;if(window.DhtmlLayer){DhtmlLayer.tidyOnExit();}}
addUnloadListener(tidyOnExit);idGroup=function()
{this.ids=new Array();this.useVisability=false;if(arguments.length>0){for(var i=0;i<arguments.length;i++){this.ids[i]=arguments[i];}}}
idGroup.prototype.setUseVisability=function(value)
{this.useVisability=value;}
idGroup.prototype.addIds=function()
{if(arguments.length>0){for(var i=0;i<arguments.length;i++){this.ids[this.ids.length]=arguments[i];}}}
idGroup.prototype.showOne=function(id)
{if(this.ids.length>0){for(var i=0;i<this.ids.length;i++){var el=document.getElementById(this.ids[i]);if(el){if(id==this.ids[i]){if(this.useVisability){el.visibility='visible';}else{el.style.display='block';}}else{if(this.useVisability){el.visibility='hidden';}else{el.style.display='none';}}}}}}
idGroup.prototype.showMultiple=function(ids)
{var showIds=new Array();showIds=ids.split(',');if(this.ids.length>0){for(var i=0;i<this.ids.length;i++){var el=document.getElementById(this.ids[i]);if(el){if(this.useVisability){el.visibility='hidden';}else{el.style.display='none';}
for(var j=0;j<showIds.length;j++){if(showIds[j]==this.ids[i]){if(this.useVisability){el.visibility='visible';}else{el.style.display='block';}}}}}}}
idGroup.prototype.showOneUsingField=function(fld)
{var id=fld.value;if(id.length>0){this.showOne(id);}}
pageIDGroupColection=function()
{this.idGroupsCount=0;this.idGroups=new Array();}
var PageIDGroupColection=new pageIDGroupColection();pageIDGroupColection.prototype.newGroup=function()
{this.idGroupsCount++;this.idGroups[this.idGroupsCount]=new idGroup();return this.idGroupsCount;}
pageIDGroupColection.prototype.addIds=function(group,id)
{this.idGroups[group].addIds(id);}
pageIDGroupColection.prototype.showOneUsingField=function(group,fld)
{this.idGroups[group].showOneUsingField(fld);}
pageIDGroupColection.prototype.showOne=function(group,id)
{this.idGroups[group].showOne(id);}
function initShowHideA(showing,className)
{if(!document.getElementById){return false;}
className=(className)?className:'showHideControl';showing=(showing)?showing:'';var linksContainer=aotGetElementsByClassName(className);if(linksContainer){var idGroupNo=PageIDGroupColection.newGroup();for(var i=0;i<linksContainer.length;i++){var links=aotGetElementsByTagName('a',linksContainer[i]);for(var j=0;j<links.length;j++){if(links[j].href.match(/#(\w.+)/)){var id=links[j].href.match(/#(\w.+)/)[1];var obj=document.getElementById(id);if(obj){PageIDGroupColection.addIds(idGroupNo,id);if(showing==id){obj.style.display='block';}else{obj.style.display='none';}
links[j].idGroupNo=idGroupNo;links[j].showId=id;links[j].orgOnClick=links[j].onclick;links[j].onclick=function(){PageIDGroupColection.showOne(this.idGroupNo,this.showId);if(typeof this.orgOnClick=="function"){this.orgOnClick();}
return false;}}}}}}}
function initShowHideSelect(id)
{if(!document.getElementById){return false;}
id=(id)?id:'showHideSelect';var sel=document.getElementById(id);if(sel){sel.idGroupNo=PageIDGroupColection.newGroup();var opts=sel.options;for(var i=0;i<opts.length;i++){var id=opts[i].value;var obj=document.getElementById(id);if(obj){PageIDGroupColection.addIds(sel.idGroupNo,id);if(opts[i].selected){obj.style.display='block';}else{obj.style.display='none';}}}
sel.orgOnchange=sel.onchange;sel.onchange=function(){PageIDGroupColection.showOneUsingField(this.idGroupNo,this);if(typeof this.orgOnchange=="function"){this.orgOnchange();}}}}
function initShowHide()
{if(!JADE.hideShow){return false;}
initShowHideA(showingID);initShowHideSelect();}
var showingID='';addLoadListener(initShowHide);function GET(argname)
{query=unescape(location.search.substring(1));pairs=query.split("&");for(i=0;i<pairs.length;i++){key=pairs[i].split("=")[0];value=pairs[i].split("=")[1];if(key==argname){return value;}}
return"";}
function makeQueryString()
{var args=makeQueryString.arguments;var searchString="?";var pair;for(var i=0;i<args.length;i++){pair=escape(args[i++])+"=";pair+=escape(args[i]);searchString+=pair+"&";}
return searchString.substring(0,searchString.length-1);}
function getStyle(el,styleProp)
{var x=document.getElementById(el);if(x.currentStyle)
var y=x.currentStyle[styleProp];else if(window.getComputedStyle)
var y=document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);return y;}
if(GET('JSVERSION')=="1"){}
var DOM=(function(){var dom={};dom.addPX=function(value){return parseInt(value)+"px";}
dom.removeChildrenFromNode=function(node){while(node.hasChildNodes()){node.removeChild(node.firstChild);}}
dom.removeNode=function(o){if(o!=null&&o.parentNode&&o.parentNode.removeChild){for(var i in o){if(typeof(o[i])=="function"){o[i]=null;}}
o.parentNode.removeChild(o);return true;}
return false;}
return dom;})();var CSS=(function(){var css={};css.getCuomputedStyleOrValue=function(el,attribute,defaultValue){var computedAttribute=getStyle(el,attribute);if(computedAttribute&&computedAttribute!='auto'&&parseInt(computedAttribute)>0){return parseInt(computedAttribute);}else{return defaultValue;}}
css.getCSSRule=function(ruleName,deleteFlag){ruleName=ruleName.toLowerCase();if(document.styleSheets){for(var i=0;i<document.styleSheets.length;i++){var styleSheet=document.styleSheets[i];var ii=0;var cssRule=false;do{if(styleSheet.cssRules){cssRule=styleSheet.cssRules[ii];}else{cssRule=styleSheet.rules[ii];}
if(cssRule){if(!cssRule.selectorText){return false;}
if(cssRule.selectorText.toLowerCase()==ruleName){if(deleteFlag=='delete'){if(styleSheet.cssRules){styleSheet.deleteRule(ii);}else{styleSheet.removeRule(ii);}
return true;}else{return cssRule;}}}
ii++;}while(cssRule)}}
return false;}
css.killCSSRule=function(ruleName){return CSS.getCSSRule(ruleName,'delete');}
css.addCSSRule=function(ruleName){if(document.styleSheets){if(!CSS.getCSSRule(ruleName)){if(document.styleSheets[0].addRule){document.styleSheets[0].addRule(ruleName,null,0);}else{document.styleSheets[0].insertRule(ruleName+' { }',0);}}}
return CSS.getCSSRule(ruleName);}
return css;})();var SCREEN=(function(){var screen={};screen.getPageBigestSize=function(){var pagePos=getPagePosScroll(true);var pageSize=getPageSize();var w=pagePos[0];var h=pagePos[1];if(pageSize[0]>w){w=pageSize[0];}
if(pageSize[1]>h){h=pageSize[1];}
w=parseInt(w);h=parseInt(h);return[w,h];}
return screen;})();function parseURL(data){var e=/((http|ftp):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+\.[^#?\s]+)(#[\w\-]+)?/;if(data.match(e)){return{url:RegExp['$&'],protocol:RegExp.$2,host:RegExp.$3,path:RegExp.$4,file:RegExp.$6,hash:RegExp.$7};}else{return{url:"",protocol:"",host:"",path:"",file:"",hash:""};}}
function parseFilename(data){data=data.replace(/^\s|\s$/g,"");if(data.match(/([^\/\\]+)\.(asp|html|htm|shtml|php)$/i)){return{filename:RegExp.$1,ext:RegExp.$2};}else{return{filename:null,ext:null};}}
function StringBuffer(){this.buffer=[];}
StringBuffer.prototype.append=function append(string){this.buffer.push(string);return this;};StringBuffer.prototype.toString=function toString(){return this.buffer.join("");};shortcut={'all_shortcuts':{},'add':function(shortcut_combination,callback,opt){var default_options={'type':'keydown','propagate':false,'disable_in_input':false,'target':document,'keycode':false}
if(!opt){opt=default_options;}else{for(var dfo in default_options){if(typeof opt[dfo]=='undefined'){opt[dfo]=default_options[dfo];}}}
var ele=opt.target
if(typeof opt.target=='string'){ele=document.getElementById(opt.target);}
var ths=this;shortcut_combination=shortcut_combination.toLowerCase();var func=function(e){e=e||window.event;if(opt['disable_in_input']){var element;if(e.target){element=e.target;}else{if(e.srcElement){element=e.srcElement;}}
if(element.nodeType==3){element=element.parentNode;}
if(element.tagName=='INPUT'||element.tagName=='TEXTAREA'){return;}}
if(e.keyCode){code=e.keyCode;}else{if(e.which){code=e.which;}}
var character=String.fromCharCode(code).toLowerCase();if(code==188){character=",";}
if(code==190){character=".";}
var keys=shortcut_combination.split("+");var kp=0;var shift_nums={"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":":","'":"\"",",":"<",".":">","/":"?","\\":"|"}
var special_keys={'esc':27,'escape':27,'tab':9,'space':32,'return':13,'enter':13,'backspace':8,'scrolllock':145,'scroll_lock':145,'scroll':145,'capslock':20,'caps_lock':20,'caps':20,'numlock':144,'num_lock':144,'num':144,'pause':19,'break':19,'insert':45,'home':36,'delete':46,'end':35,'pageup':33,'page_up':33,'pu':33,'pagedown':34,'page_down':34,'pd':34,'left':37,'up':38,'right':39,'down':40,'f1':112,'f2':113,'f3':114,'f4':115,'f5':116,'f6':117,'f7':118,'f8':119,'f9':120,'f10':121,'f11':122,'f12':123}
var modifiers={shift:{wanted:false,pressed:false},ctrl:{wanted:false,pressed:false},alt:{wanted:false,pressed:false},meta:{wanted:false,pressed:false}};if(e.ctrlKey){modifiers.ctrl.pressed=true;}
if(e.shiftKey){modifiers.shift.pressed=true;}
if(e.altKey){modifiers.alt.pressed=true;}
if(e.metaKey){modifiers.meta.pressed=true;}
for(var i=0;k=keys[i],i<keys.length;i++){if(k=='ctrl'||k=='control'){kp++;modifiers.ctrl.wanted=true;}else if(k=='shift'){kp++;modifiers.shift.wanted=true;}else if(k=='alt'){kp++;modifiers.alt.wanted=true;}else if(k=='meta'){kp++;modifiers.meta.wanted=true;}else if(k.length>1){if(special_keys[k]==code){kp++;}}else if(opt['keycode']){if(opt['keycode']==code){kp++;}}else{if(character==k){kp++;}else{if(shift_nums[character]&&e.shiftKey){character=shift_nums[character];if(character==k){kp++;}}}}}
if(kp==keys.length&&modifiers.ctrl.pressed==modifiers.ctrl.wanted&&modifiers.shift.pressed==modifiers.shift.wanted&&modifiers.alt.pressed==modifiers.alt.wanted&&modifiers.meta.pressed==modifiers.meta.wanted){callback(e);if(!opt['propagate']){e.cancelBubble=true;e.returnValue=false;if(e.stopPropagation){e.stopPropagation();e.preventDefault();}
return false;}}}
this.all_shortcuts[shortcut_combination]={'callback':func,'target':ele,'event':opt['type']};if(ele.addEventListener){ele.addEventListener(opt['type'],func,false);}else if(ele.attachEvent){ele.attachEvent('on'+opt['type'],func);}else{ele['on'+opt['type']]=func;}},'remove':function(shortcut_combination){shortcut_combination=shortcut_combination.toLowerCase();var binding=this.all_shortcuts[shortcut_combination];delete(this.all_shortcuts[shortcut_combination]);if(!binding){return;}
var type=binding['event'];var ele=binding['target'];var callback=binding['callback'];if(ele.detachEvent){ele.detachEvent('on'+type,callback);}else if(ele.removeEventListener){ele.removeEventListener(type,callback,false);}else{ele['on'+type]=false;}}}
shortcut.add("Ctrl+Shift+v",function(){var app=JSLib.getApplicationName();if(app==undefined){app='';}
var appVersion=JSLib.getApplicationVersion();if(app){app+=' ';if(appVersion){app+='V'+appVersion+' ';}}
var str="<h3>"+app+"Version Dump:</h3>";for(var i=0;i<JSLib.includedJSArray.length;i++){str+='<b>'+JSLib.includedJSArray[i][1]+'</b> '+JSLib.includedJSArray[i][2]+'<br />';}
JADE.infoWindow.write(str);JADE.infoWindow.writeTitle('Version Dump:');JADE.infoWindow.toggle();return false;});shortcut.add("Ctrl+Shift+d",function(){var str="<h3>Event and Layer Information:</h3>";var pSize=getPageSize();var spSize=getPagePosScroll(false);var spSize2=getPagePosScroll(true);str+="<p>Page size = "+pSize[0]+" x "+pSize[1]+", Scroll = "+spSize[0]+" x "+spSize[1]+" ("+spSize2[0]+" x "+spSize2[1]+")</p>";str+="<p>Global Path Prefix is "+globPathPrefix+"</p>";if(window.AjaxRequest){str+="<P>AJAX Transport: ";if(AjaxRequest.NotSupported){str+="Not supported.<br />";}else{if(AjaxRequest.NativeSupport){str+="Native support.<br />";}else{str+="Supported.<br />";if(AjaxRequest.xmlHttpRequestVersion){str+="   XMLHTTP = "+AjaxRequest.xmlHttpRequestVersion+'<br />';}}
str+="Number AjaxRequests "+AjaxRequest.numActiveAjaxRequests;str+=" / "+AjaxRequest.numAjaxRequests+'<br />';}
str+='</p>';}
str+="onMouseMove handlers = "+document.onMouseMoveHandlers.length+'<br />';str+="onClick handlers = "+document.onClickHandlers.length+'<br />';str+="onClick active handlers = "+document.onClickHandlersActive.length+'<br />';str+="onKeyUp handlers = "+document.onKeyUpHandlers.length+'<br />';if(window.DhtmlLayer_layers){str+="<p>";str+="DHTML Layers = "+DhtmlLayer_layers.length+'<br />';for(var i=0;i<DhtmlLayer_layers.length;i++){obj=DhtmlLayer_layers[i];str+="    "+obj.layerID+' ';if(obj.isVisible()){str+="Visible";}else{str+="Hidden";}
pos=Position.get(obj.getLayer());str+=", L = "+pos.left;str+=", T = "+pos.top;str+=", W = "+pos.width;str+=", H = "+pos.height;str+=", Class = "+obj.cssClass;str+='<br />';}
str+='</p>';}
if(location.search){str+="<p>Query:<br />";query=location.search.substring(1);pairs=query.split("&");for(i=0;i<pairs.length;i++){key=pairs[i].split("=")[0];value=pairs[i].split("=")[1];str+="   "+key+" = "+value+"<br />";}
str+='</p>';}
if(window.PRELOADED_IMAGES){str+="<p>Preloaded Images:<br />";str+="  Images loaded "+PRELOADED_IMAGES.numImagesLoaded+" of "+PRELOADED_IMAGES.numImagesToLoad+"<br />";if(PRELOADED_IMAGES.numErrors>0){str+="  "+PRELOADED_IMAGES.numErrors+" errors:<br />";for(var i=0;i<PRELOADED_IMAGES.numErrors;i++){var url=PRELOADED_IMAGES.errorArray[i];var parsedURL=parseURL(url);var filename=parsedURL.path+parsedURL.file;str+="    "+filename+"<br />";}}
str+='</p>';}
JADE.infoWindow.write(str);JADE.infoWindow.writeTitle('Information');JADE.infoWindow.toggle();return false;});JADE.infoWindow={'containerEl':null,'titleEl':null,'contentEl':null,'iframeEl':null,'width':650,'height':300,'show':function(){var fullPageSize=getPagePosScroll(true);var scrollOffset=getPagePosScroll(false);var midX=(fullPageSize[0]-scrollOffset[0])/2;var midY=(fullPageSize[1]-scrollOffset[1])/2;JADE.infoWindow.containerEl.style.left=(midX-(JADE.infoWindow.width/2))+scrollOffset[0]+"px";JADE.infoWindow.containerEl.style.top=(midY-(JADE.infoWindow.height/2))+scrollOffset[1]+"px";JADE.infoWindow.containerEl.style.display='block';if(JADE.infoWindow.iframeEl){JADE.infoWindow.iframeEl.style.left=JADE.infoWindow.containerEl.style.left;JADE.infoWindow.iframeEl.style.top=JADE.infoWindow.containerEl.style.top;JADE.infoWindow.iframeEl.style.display='block';}},'hide':function(){JADE.infoWindow.containerEl.style.display='none';if(JADE.infoWindow.iframeEl){JADE.infoWindow.iframeEl.style.display='none';}},'toggle':function(){if(JADE.infoWindow.containerEl.style.display=='none'){JADE.infoWindow.show();}else{JADE.infoWindow.hide();}},'write':function(text){JADE.infoWindow.create();JADE.infoWindow.contentEl.innerHTML=text;},'writeTitle':function(text){JADE.infoWindow.create();JADE.infoWindow.titleEl.innerHTML=text;},'append':function(text){JADE.infoWindow.create();JADE.infoWindow.contentEl.innerHTML+=text;},'clear':function(){if(JADE.infoWindow.containerEl){JADE.infoWindow.contentEl.innerHTML='';}},'create':function(){if(JADE.infoWindow.containerEl){return;}else{JADE.infoWindow.containerEl=document.createElement('div');JADE.infoWindow.containerEl.id='AOTInfoWindow';JADE.infoWindow.containerEl.className='JADEWindowContainer';JADE.infoWindow.containerEl.style.position='absolute';JADE.infoWindow.containerEl.style.visibility='visible';JADE.infoWindow.containerEl.style.display='none';JADE.infoWindow.containerEl.style.width=JADE.infoWindow.width;JADE.infoWindow.containerEl.style.zIndex='9999';var winStr='<div class="JADEWindowShadow"></div>';winStr+='<div class="JADEWindow">';winStr+='<div class="JADEWindowTitleBar">';winStr+='<span class="JADEWindowTitleBarText" id="AOTInfoWindowTitle">Information</span>';winStr+='<a href="#" onclick="JADE.infoWindow.hide(); return false;">Close</a>';winStr+='</div>';winStr+='<div class="JADEWindowClientArea" id="AOTInfoWindowContent" style="height:'+JADE.infoWindow.height+'px;">';winStr+='</div>';winStr+='</div>';JADE.infoWindow.containerEl.innerHTML=winStr;document.body.appendChild(JADE.infoWindow.containerEl);JADE.infoWindow.contentEl=document.getElementById('AOTInfoWindowContent');JADE.infoWindow.titleEl=document.getElementById('AOTInfoWindowTitle');if(!CSS.getCSSRule('.JADEWindowContainer')){JADE.infoWindow.containerEl.style.background='#FFF';JADE.infoWindow.containerEl.style.border='1px solid black';JADE.infoWindow.contentEl.style.overflow='auto';JADE.infoWindow.titleEl.style.background='#00F';}
if(sniffer.isIE5_5up&&!sniffer.isIE7up){JADE.infoWindow.iframeEl=document.createElement('iframe');if(document.location.protocol=="https:"){var blankFile=globPathPrefix+'/globals/blank.html';JADE.infoWindow.iframeEl.setAttribute('src',blankFile);}else{JADE.infoWindow.iframeEl.setAttribute('src','JavaScript:void(0);');}
JADE.infoWindow.iframeEl.setAttribute('id','infoWindow_iframe');JADE.infoWindow.iframeEl.setAttribute('frameborder','0');JADE.infoWindow.iframeEl.setAttribute('scrolling','no');JADE.infoWindow.iframeEl.style.position='absolute';JADE.infoWindow.iframeEl.style.filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';JADE.infoWindow.iframeEl.style.zIndex=JADE.infoWindow.containerEl.style.zIndex-1;JADE.infoWindow.iframeEl.style.visibility=JADE.infoWindow.containerEl.style.visibility;JADE.infoWindow.iframeEl.style.display=JADE.infoWindow.containerEl.style.display;JADE.infoWindow.iframeEl.style.width=JADE.infoWindow.containerEl.style.width;JADE.infoWindow.iframeEl.style.height='350px';if(JADE.infoWindow.containerEl.nextSibling){JADE.infoWindow.containerEl.parentNode.insertBefore(JADE.infoWindow.iframeEl,JADE.infoWindow.containerEl.nextSibling);}else{JADE.infoWindow.containerEl.parentNode.appendChild(JADE.infoWindow.iframeEl);}}}
return false;}}
shortcut.add("Ctrl+k",function(){JADE.cli.toggle();return false;});JADE.cli={version:'1.0',cmdVersion:'0.1','containerEl':null,'iframeEl':null,'errorEl':null,'value':null,'width':650,'height':55,'syntaxArray':null,'show':function(){JADE.cli.create();var fullPageSize=getPagePosScroll(true);var scrollOffset=getPagePosScroll(false);var midX=(fullPageSize[0]-scrollOffset[0])/2;var midY=(fullPageSize[1]-scrollOffset[1])/2;JADE.cli.containerEl.style.left=(midX-(JADE.cli.width/2))+scrollOffset[0]+"px";JADE.cli.containerEl.style.top=(midY-(JADE.cli.height/2))+scrollOffset[1]+"px";JADE.cli.containerEl.style.display='block';if(JADE.cli.iframeEl){JADE.cli.iframeEl.style.left=JADE.cli.containerEl.style.left;JADE.cli.iframeEl.style.top=JADE.cli.containerEl.style.top;JADE.cli.iframeEl.style.display='block';}
document.cliForm.cliInput.focus();},'hide':function(){JADE.cli.containerEl.style.display='none';if(JADE.cli.iframeEl){JADE.cli.iframeEl.style.display='none';}},'toggle':function(){if(!JADE.isCCI){return false;}
if(!JADE.cli.containerEl){JADE.cli.create();}
if(JADE.cli.containerEl.style.display=='none'){JADE.cli.show();}else{JADE.cli.hide();}},'showError':function(error){if(JADE.cli.errorEl){JADE.cli.errorEl.innerHTML=error;}},'create':function(){if(JADE.cli.containerEl){return;}else{JADE.cli.containerEl=document.createElement('div');JADE.cli.containerEl.id='cli';JADE.cli.containerEl.className='cliClass';JADE.cli.containerEl.style.position='absolute';JADE.cli.containerEl.style.visibility='visible';JADE.cli.containerEl.style.display='none'
JADE.cli.containerEl.style.width=JADE.cli.width;JADE.cli.containerEl.style.height=JADE.cli.height;JADE.cli.containerEl.style.zIndex='9998';JADE.cli.containerEl.innerHTML='<span>Virtual Keyboard</span> <span id="cliError">&nbsp;</span><form name="cliForm" id="cliForm" action="#"  method="post" onsubmit="JADE.doCLI(); return false;"><input type="text" name="cliInput" id="cliInput" size="100" maxlength="255" /><input type="submit" name="cliSubmit" id="cliSubmit" value="Do" /></form>';document.body.appendChild(JADE.cli.containerEl);if(sniffer.isIE5_5up&&!sniffer.isIE7up){JADE.cli.iframeEl=document.createElement('iframe');if(document.location.protocol=="https:"){var blankFile=globPathPrefix+'/globals/blank.html';JADE.cli.iframeEl.setAttribute('src',blankFile);}else{JADE.cli.iframeEl.setAttribute('src','JavaScript:void(0);');}
JADE.cli.iframeEl.setAttribute('id','cli_iframe');JADE.cli.iframeEl.setAttribute('frameborder','0');JADE.cli.iframeEl.setAttribute('scrolling','no');JADE.cli.iframeEl.style.position='absolute';JADE.cli.iframeEl.style.filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';JADE.cli.iframeEl.style.zIndex=JADE.cli.containerEl.style.zIndex-1;JADE.cli.iframeEl.style.visibility=JADE.cli.containerEl.style.visibility;JADE.cli.iframeEl.style.display=JADE.cli.containerEl.style.display;JADE.cli.iframeEl.style.width='680px';JADE.cli.iframeEl.style.height='115px';if(JADE.cli.containerEl.nextSibling){JADE.cli.containerEl.parentNode.insertBefore(JADE.cli.iframeEl,JADE.cli.containerEl.nextSibling);}else{JADE.cli.containerEl.parentNode.appendChild(JADE.cli.iframeEl);}}
document.addOnClickHandler('JADE.cli.clickCheck');shortcut.add("tab",function(){JADE.cli.showHint();return false;},{'target':JADE.cli.containerEl});JADE.cli.errorEl=document.getElementById('cliError');}
return false;},'clickCheck':function(e){var target=(e&&e.target)||(event&&event.srcElement);if(checkParent(target)){JADE.cli.hide();}
function checkParent(t)
{while(t.parentNode){if(t==JADE.cli.containerEl||t==JADE.infoWindow.containerEl){return false;}
t=t.parentNode;}
return true;}},'crateSyntaxArray':function(){if(!JADE.cli.syntaxArray){JADE.cli.syntaxArray=new Array();JADE.cli.syntaxArray["vb"]="View Booking = vb [slsl795642]";JADE.cli.syntaxArray["vq"]="View Quite = vq [qusl149913]";JADE.cli.syntaxArray["b"]="Brochure (Accom Only) = b[r | i] [22/12 25/12] pacbne";JADE.cli.syntaxArray["sd"]="Service Details = sd [22/12 25/12] BNEACTERBNEHTLI";JADE.cli.syntaxArray["ac"]="Accommodation Search = ac | accom [pacbne | s pacbne | l z5 | h equinox [22/12 25/12 [r | p | n | s |a] [3 [1 0 5]]]]";JADE.cli.syntaxArray["car"]="Hire Car Search = car | cars z5 [aviaus] [20/6 9:00 21/6 12:30 [r | p | a]]";JADE.cli.syntaxArray["tran"]="Transfers Search = tran | transfer | transfers [airbne | s airbne | l r35 [22/4 [a | p | d | r [family] [r | p | a]]]]";JADE.cli.syntaxArray["tour"]="Tours Search = tour | tours [d | e | x arigld | s arigld | l r36 [15/6 [dinner] [r | p | a]]]";JADE.cli.syntaxArray["attr"]="Attractions Search = attr | attraction | attractions [wetgld | s wetgld | l r34 [22/3 [pensioner] [r | p | a]]]";JADE.cli.syntaxArray["op"]="Online Payments = op";JADE.cli.syntaxArray["i"]="Itinerary = i (Also use Current Quote = cq)";JADE.cli.syntaxArray["cq"]="Current Quote = cq (Also use Itinerary = i)";JADE.cli.syntaxArray["sq"]="Saved Quotes = sq [qusl149824 | r qusl149824 | n smith | a karen | c tim 21/1 1/2 | t 2/2 11/2 | e 1/2 14/2]";JADE.cli.syntaxArray["sb"]="Saved Bookings = sb [slsl851450 | r slsl851450 | n smith | a karen | c tim 21/1 1/2 | t 2/2 11/2]";JADE.cli.syntaxArray["site"]="Site = site sl | nsw | tp [Command string]";JADE.cli.syntaxArray["nq"]="New Quote = nq (also use New Booking = nb)";JADE.cli.syntaxArray["nb"]="New Booking = nb (also use New Quote = nq)";if(JADE.isCCI){JADE.cli.syntaxArray["lo"]="Logout (Back to CCI)= lo | logout";}else{JADE.cli.syntaxArray["lo"]="Logout = lo | logout";}
JADE.cli.syntaxArray["version"]="Version = version";JADE.cli.syntaxArray["info"]="Site Info = info";JADE.cli.syntaxArray["help"]="Help = help[+] | h[+] [Command string]";}},'getSyntax':function(cmd){JADE.cli.crateSyntaxArray();return JADE.cli.syntaxArray[cmd];},'getHelp':function(){JADE.cli.crateSyntaxArray();var str="<h3>Help:</h3>";str+="<p>Commands are formed by a set of mnemonics separated by spaces. Commands can be entered in lowercase and will be converted if required.</p>";str+="<ul class='helpTab'>";str+="<li id='helpNav1' class='selected'><a href='#' onclick='JADE.cli.toggleHelp(2); return false;'>Command Hint</a></li>";str+="<li id='helpNav2'><a href='#' onclick='JADE.cli.toggleHelp(1); return false;'>Detailed Help</a></li>";str+="</ul>";str+="<div id='cciHelp1' class='helpPanel'>";if(JADE.isCCI){str+="<p><b>CCI cross site commands:</b><br />";str+="The general syntax is <i>CCI site mnumonic Agent code Command string</i>";str+="<pre>e.g. tm tvlmat bn</pre>";str+="Entering just the CCI site mnemonic will switch to that site using the current Agent Code";str+="<pre>e.g. nsw</pre>";str+="Entering a CCI site followed by a 6 character Agent Code will switch to that site and Agent";str+="<pre>e.g. sl hwtked</pre>";str+="Note: If you enter an invalid Agent Code you will be redirected to the CCI site switcher.";str+="</p>";str+="<p>Valid CCI site mnemonics are:";str+="<ul>";str+="<li>sl for Sunlover Agent</li>";str+="<li>nsw for NSW Agent</li>";str+="<li>tp for Travelpoint Agent</li>";str+="<li>aot for AOTonline</li>";str+="<li>shi for SHIonline</li>";str+="<li>tm for Travelmate Agent</li>";str+="</ul></p>";str+="<p><b>Accessing non-CCI sites:</b><br />";str+="Use the <i>site</i> keyword to access a non-CCI site from within the CCI<br />";str+="The general syntax is site <i>Site mnemonic Command string</i>";str+="<pre>e.g. site sl bn</pre>";str+="Note that the Agent Code used in the CCI is NOT transferred to site.  The site will use the Agent you logged in with last.<br />";str+="Entering just the Site mnemonic will switch to that site.";str+="<pre>e.g. nsw</pre></p>";str+="<p>Valid Site mnemonics are:";str+="<ul><li>sl for Sunlover Agent</li>";str+="<li>nsw for NSW Agent</li>";str+="<li>tp for Travelpoint</li></ul>";str+="</p>";str+="<p><b>Logout</b><br />";str+="When in the CCI the logout command (<i>lo</i>) will return you to the CCI site switcher.</p>";}
str+="<p><b>Using Help</b><br />";str+="Entering <i>help</i> shows the Command Hint Page<br />";str+="Entering <i>help+</i> shows The Detailed Help Page (this page) <br />";str+="Entering <i>help Command displays</i> the syntax for the entered command.<br />";str+="Pressing <TAB> will guess what command you are typing and show its syntax if it can.";str+="</p>";str+="<p><b>Dates</b><br />";str+="Dates can be entered in the following formats.<br />";str+="d/m, d-m (current year is assumed)<br />";str+="d/m/yy, d-mm-yy, d/m/yyyy, d-mm-yyyy<br />";str+="When a command can take a from-to date pair then the to-date can be specified as the number of days.<br />";str+="<pre>e.g. b 22/12 25/12 PACBNE could be entered b 22/12 3 PACBNE </pre>";str+="If not supplied then the appropriate default dates are used.</p>";str+="<p><b>Adults and children</b><br />";str+="If a command can take the number of adults and ages of children travelling, then they can appear at the end of the command string.<br />";str+="The first number is assumed to be the number of adults and each following number the age of the child.<br />";str+="<pre>e.g. ac 22/12 25/12 Z5 3 1 0 5 12</pre> will search for accommodation for 3 adults and 4 children aged 1 year, less than 1 (infant) , 5 years and 12 years.<br />";str+="If not supplied then the appropriate defaults are used.</p>";str+="</div>";str+="<div id='cciHelp2' class='helpPanel'><p><b>Commands:</b><ul>";for(var cmd in JADE.cli.syntaxArray){if(cmd!='copy'){str+="<li>"+JADE.cli.getSyntax(cmd)+"</li>";}}
str+="</ul></p>";str+="<p><b>Command Syntax Key:</b>";str+="<pre>| is or, [] is optional</pre>";str+="e.g.";str+="<pre>a|b is a or b</pre>";str+="<pre>a[z] is either a or az</pre>";str+="<pre>a[z|x] is one of a or az or ax</pre>";str+="</p></div>";str+="<p style='text-align:right'>Copyright &copy; 2008 The AOT Group.</p>";return str;},'paramError':function(str,cmd){var message=JADE.cli.getSyntax(cmd);if(message){var pat=/\((.*?)\)/;message=message.replace(pat,'');var a=new Array();a=message.split(" = ");var name=a.shift();message=a.join(" = ");}else{message='Unknown command.';}
JADE.cli.showError(str+'! '+message);return false;},'showHint':function(){var commandLine=document.cliForm.cliInput.value;var a=new Array();a=commandLine.split(" ");var cmd=a.shift();if(cmd){return JADE.cli.paramError('Hint',cmd);}},'isDate':function(dateStr){var datePat=/^(\d{1,2})(\/|-|)(\d{1,2})((\/|-)(\d{2,4}))?$/;var matchArray=dateStr.match(datePat);if(matchArray==null){return false;}
var day=matchArray[1];var month=matchArray[3];var year=matchArray[6];if(!year){var d=new Date();year=d.getFullYear();}
if(year.length==2){year='20'+year;}
if(month<1||month>12){return false;}
if(day<1||day>31){return false;}
if((month==4||month==6||month==9||month==11)&&day==31){return false;}
if(month==2){var isleap=(year%4==0&&(year%100!=0||year%400==0));if(day>29||(day==29&&!isleap)){return false;}}
return year+'-'+month+'-'+day;},'isTime':function(timeStr){var timePat=/^(([0-9])|([0-1][0-9])|([2][0-3])):(([0-9])|([0-5][0-9]))$/;var matchArray=timeStr.match(timePat);if(matchArray==null){return false;}
var hour=matchArray[1];var minutes=matchArray[5];return hour+':'+minutes+':00';},'isNumber':function(val)
{if(isNaN(val)){return false;}else{return true;}},'addDays':function(dateStr,days)
{var tmpDate=new Date();var d=new Array();d=dateStr.split("-");tmpDate.setFullYear(d[0],d[1]-1,d[2]);tmpDate.setDate(tmpDate.getDate()+parseInt(days));var ret=tmpDate.getFullYear()+'-'+(tmpDate.getMonth()+1)+'-'+tmpDate.getDate();return ret;},'toggleHelp':function(num){var helpEl1=document.getElementById('cciHelp1');var helpEl2=document.getElementById('cciHelp2');var helpNavEl1=document.getElementById('helpNav1');var helpNavEl2=document.getElementById('helpNav2');if(num==1){helpEl1.style.display='block';helpEl2.style.display='none';helpNavEl1.className='';helpNavEl2.className='selected';}else{helpEl1.style.display='none';helpEl2.style.display='block';helpNavEl1.className='selected';helpNavEl2.className='';}}}
JADE.doCLI=function(){JADE.cli.cmdVersion='3.3 (CCI)';function getOrderBy(a){var order='';switch(a){case'r':order='ORDER_PREFERRED_SUPPLIER';break;case'p':order='ORDER_INDICATIVE_RATE';break;case'n':order='ORDER_SUPPLIER_NAME';break;case's':order='ORDER_STAR_RATING';break;case'a':order='ORDER_AVAILABILITY';break;default:order='ORDER_PREFERRED_SUPPLIER';break;}
return'&orderBy='+order;}
var validCmd=true;var commandLine=document.cliForm.cliInput.value;if(!commandLine){JADE.cli.hide();return false;}
commandLine=commandLine.toLowerCase();var baseUrl=JADE.siteArray['current'];var pageUrl="index.php";var site='';var cciSite='';var cciAgent=JADE.agentCode;var a=new Array();a=commandLine.split(" ");var cmd=a.shift();if(cmd=='sl')cciSite='cci-sunloveragent';if(cmd=='nsw')cciSite='cci-nswagent';if(cmd=='tp')cciSite='cci-travelpointagent';if(cmd=='aot')cciSite='cci-aotonline';if(cmd=='shi')cciSite='cci-shionline';if(cmd=='tm')cciSite='cci-travelmateagent';if(cciSite){if(a.length>0){if(cciSite=='travelmateagent'){a[0]='TVLMAT';}
if(a[0].length==6){cciAgent=a.shift();cciAgent=cciAgent.toUpperCase();}else{cciAgent=JADE.agentCode;}}
cmd=a.shift();}
if(cmd=='site'){var cmd=a.shift();if(cmd=='sl')site='sunloveragent';if(cmd=='nsw')site='nswagent';if(cmd=='tp')site='travelpoint';cmd=a.shift();}
JADE.cli.showError('');switch(cmd){case'help':case'h':case'help+':case'h+':if(a.length>=1){return JADE.cli.paramError('Help',a[0]);}
var str=JADE.cli.getHelp();JADE.infoWindow.write(str);JADE.infoWindow.writeTitle('CLI Help');JADE.infoWindow.toggle();var helpEl1=document.getElementById('cciHelp1');var helpEl2=document.getElementById('cciHelp2');var helpNavEl1=document.getElementById('helpNav1');var helpNavEl2=document.getElementById('helpNav2');if(cmd=='help+'||cmd=='h+'){helpEl1.style.display='block';helpEl2.style.display='none';helpNavEl1.style.className='selected';helpNavEl2.style.className='';}else{helpEl1.style.display='none';helpEl2.style.display='block';helpNavEl1.style.className='';helpNavEl2.style.className='selected';}
validCmd=false;break;case'logout':case'lo':var pageUrl="index.php";pageUrl+='?logout=yes';if(JADE.isCCI){baseUrl=JADE.siteArray['cci'];pageUrl="site_switcher.php";}
break;case'version':var pageUrl="index.php";pageUrl+='?VERSION';break;case'info':var str="<p>";if(JADE.isCCI){str+="Hello <b>"+JADE.userName+"</b>,<br />";str+="You are loggen in as CCI Agent Code "+JADE.agentCode+" on ";str+=JSLib.getApplicationName()+"<br />";}else{str+="Application = "+JSLib.getApplicationName()+"<br />";}
var browserInfo=sniffer.breifDescription();str+="Your browser is "+browserInfo+"<br />";if(window.screen){str+="Your screen size is "+screen.width+" ("+screen.availWidth+") x "+screen.height+" ("+screen.availHeight+") Colour depth = "+screen.colorDepth+"<br />";}
str+="</p><p style='position: absolute; bottom: 3px;'><small>CLI Version = "+JADE.cli.version+" Version of Loaded Commands = "+JADE.cli.cmdVersion+"</small></p>";JADE.infoWindow.write(str);JADE.infoWindow.writeTitle('Information:');JADE.infoWindow.toggle();validCmd=false;break;case'op':var pageUrl="onlinepay.php";break;case'i':case'cq':var pageUrl="itinerary.php";break;case'vb':if(a[0]){var pageUrl="view_booking.php";pageUrl+='?bookingRef='+a[0].toUpperCase();}else{var pageUrl="list_bookings.php";}
break;case'b':case'bi':case'br':var pageUrl="accommodation/brochure.php";if(cmd=='bi'){pageUrl+='?panel=info';}else{pageUrl+='?panel=rooms';}
cmd='b';if(a.length==1){if(a[0].length==6){pageUrl+='&supplierCode='+a[0].toUpperCase();}else{return JADE.cli.paramError('Tourplan supplier code must be 6 characters in length.',cmd);}}else{if(a.length==3){var c1=JADE.cli.isDate(a[0]);if(c1){pageUrl+='&dateFrom='+c1;}else{return JADE.cli.paramError('Error from',cmd);}
var c2=JADE.cli.isDate(a[1]);if(c2){pageUrl+='&checkout='+c2;}else{if(JADE.cli.isNumber(a[1])){c2=JADE.cli.addDays(c1,a[1]);pageUrl+='&checkout='+c2;}else{return JADE.cli.paramError('Error checkout',cmd);}}
if(a[2].length==6){pageUrl+='&supplierCode='+a[2].toUpperCase();}else{return JADE.cli.paramError('Tourplan supplier code must be 6 characters in length.',cmd);}}else{return JADE.cli.paramError('Incorect parameters',cmd);}}
break;case'sd':pageUrl="accommodation/service_details.php";if(a.length==1){pageUrl+='?opt='+a[0].toUpperCase();}else{if(a.length==3){var c1=JADE.cli.isDate(a[0]);if(c1){pageUrl+='?dateFrom='+c1;}else{return JADE.cli.paramError('Error from',cmd);}
var c2=JADE.cli.isDate(a[1]);if(c2){pageUrl+='&checkout='+c2;}else{if(JADE.cli.isNumber(a[1])){c2=JADE.cli.addDays(c1,a[1]);pageUrl+='&checkout='+c2;}else{return JADE.cli.paramError('Error checkout',cmd);}}
pageUrl+='&opt='+a[2].toUpperCase();}else{return JADE.cli.paramError('Incorect parameters',cmd);}}
break;case'vq':if(a[0]){var pageUrl="itinerary.php";if(a[0].length>6){a[0]=a[0].substring(4);}
pageUrl+='?quoteId='+a[0];}else{var pageUrl="/list_quotes.php";}
break;case'nq':case'nb':var pageUrl="accommodation/?resetSearch=t";break;case'sq':var pageUrl="itinerary.php";if(a[0]){if(a.length>1){pageUrl="list_quotes.php";pageUrl+="?latestVersion=true&submit=1";switch(a[0]){case'r':pageUrl+="&searchcriteria=Quote+Reference";pageUrl+="&strQuoteRef="+a[1];break;case'n':pageUrl+="&searchcriteria=Booking+Name+%28contains%29";pageUrl+="&bookingName="+a[1];break;case'a':pageUrl+="&searchcriteria=Agent+Ref";pageUrl+="&agentRef="+a[1];break;case'c':if(a.length!=4){return JADE.cli.paramError('Incorect parameters',cmd);}
pageUrl+="&searchcriteria=Consultant";pageUrl+="&consultant="+a[1];var c1=JADE.cli.isDate(a[2]);if(c1){var dateArray=new Array;dateArray=c1.split('-');pageUrl+='&dateFrom_month='+dateArray[0]+'-';if(dateArray[1].length==1){pageUrl+='0';}
pageUrl+=dateArray[1];pageUrl+='&dateFrom_day='+dateArray[2];}else{return JADE.cli.paramError('Error from',cmd);}
var c2=JADE.cli.isDate(a[3]);if(c2){var dateArray=new Array;dateArray=c2.split('-');pageUrl+='&checkout_month='+dateArray[0]+'-';if(dateArray[1].length==1){pageUrl+='0';}
pageUrl+=dateArray[1];pageUrl+='&checkout_day='+dateArray[2];}else{return JADE.cli.paramError('Error to',cmd);}
break;case't':if(a.length!=3){return JADE.cli.paramError('Incorect parameters',cmd);}
pageUrl+="&searchcriteria=Travel+Date";var c1=JADE.cli.isDate(a[1]);if(c1){var dateArray=new Array;dateArray=c1.split('-');pageUrl+='&dateFrom_month='+dateArray[0]+'-';if(dateArray[1].length==1){pageUrl+='0';}
pageUrl+=dateArray[1];pageUrl+='&dateFrom_day='+dateArray[2];}else{return JADE.cli.paramError('Error from',cmd);}
var c2=JADE.cli.isDate(a[2]);if(c2){var dateArray=new Array;dateArray=c2.split('-');pageUrl+='&checkout_month='+dateArray[0]+'-';if(dateArray[1].length==1){pageUrl+='0';}
pageUrl+=dateArray[1];pageUrl+='&checkout_day='+dateArray[2];}else{return JADE.cli.paramError('Error to',cmd);}
break;case'e':if(a.length!=3){return JADE.cli.paramError('Incorect parameters',cmd);}
pageUrl+="&searchcriteria=Date+Entered";var c1=JADE.cli.isDate(a[1]);if(c1){var dateArray=new Array;dateArray=c1.split('-');pageUrl+='&enteredFrom_month='+dateArray[0]+'-';if(dateArray[1].length==1){pageUrl+='0';}
pageUrl+=dateArray[1];pageUrl+='&enteredFrom_day='+dateArray[2];}else{return JADE.cli.paramError('Error from',cmd);}
var c2=JADE.cli.isDate(a[2]);if(c2){var dateArray=new Array;dateArray=c2.split('-');pageUrl+='&enteredTo_month='+dateArray[0]+'-';if(dateArray[1].length==1){pageUrl+='0';}
pageUrl+=dateArray[1];pageUrl+='&enteredTo_day='+dateArray[2];}else{return JADE.cli.paramError('Error to',cmd);}
break;default:return JADE.cli.paramError('Incorect parameters',cmd);break;}}else{var quoteRef=a[0];if(!JADE.cli.isNumber(quoteRef)){quoteRef=quoteRef.substring(4);}
pageUrl+='?quoteId='+quoteRef;}}else{pageUrl="list_quotes.php";}
break;case'sb':var pageUrl="view_booking.php";if(a[0]){if(a.length>1){pageUrl="list_bookings.php?submit.x=0&submit.y=0";switch(a[0]){case'r':pageUrl+="&searchcriteria=Booking+Reference";pageUrl+="&bookingRef="+a[1];break;case'n':pageUrl+="&searchcriteria=Booking+Name+%28contains%29";pageUrl+="&bookingName="+a[1];pageUrl+="&dateFrom_month=2005-01&dateFrom_day=1";break;case'a':pageUrl+="&searchcriteria=Agent+Ref";pageUrl+="&agentRef="+a[1];break;case'c':if(a.length!=4){return JADE.cli.paramError('Incorect parameters',cmd);}
pageUrl+="&searchcriteria=Consultant";pageUrl+="&consultant="+a[1];var c1=JADE.cli.isDate(a[2]);if(c1){var dateArray=new Array;dateArray=c1.split('-');pageUrl+='&dateFrom_month='+dateArray[0]+'-';if(dateArray[1].length==1){pageUrl+='0';}
pageUrl+=dateArray[1];pageUrl+='&dateFrom_day='+dateArray[2];}else{return JADE.cli.paramError('Error from',cmd);}
var c2=JADE.cli.isDate(a[3]);if(c2){var dateArray=new Array;dateArray=c2.split('-');pageUrl+='&checkout_month='+dateArray[0]+'-';if(dateArray[1].length==1){pageUrl+='0';}
pageUrl+=dateArray[1];pageUrl+='&checkout_day='+dateArray[2];}else{return JADE.cli.paramError('Error to',cmd);}
break;case't':if(a.length!=3){return JADE.cli.paramError('Incorect parameters',cmd);}
pageUrl+="&searchcriteria=Travel+Date";var c1=JADE.cli.isDate(a[1]);if(c1){var dateArray=new Array;dateArray=c1.split('-');pageUrl+='&dateFrom_month='+dateArray[0]+'-';if(dateArray[1].length==1){pageUrl+='0';}
pageUrl+=dateArray[1];pageUrl+='&dateFrom_day='+dateArray[2];}else{return JADE.cli.paramError('Error from',cmd);}
var c2=JADE.cli.isDate(a[2]);if(c2){var dateArray=new Array;dateArray=c2.split('-');pageUrl+='&checkout_month='+dateArray[0]+'-';if(dateArray[1].length==1){pageUrl+='0';}
pageUrl+=dateArray[1];pageUrl+='&checkout_day='+dateArray[2];}else{return JADE.cli.paramError('Error to',cmd);}
break;default:return JADE.cli.paramError('Incorect parameters',cmd);break;}}else{pageUrl+='?bookingRef='+a[0].toUpperCase();;}}else{pageUrl="list_bookings.php";}
break;case'ac':case'accom':var pageUrl="accommodation/search_results.php";if(a.length==0){pageUrl="accommodation/index.php";break;}
if(a.length==1){pageUrl+='?supplierCode='+a[0].toUpperCase();pageUrl+='&location=';pageUrl+='&keywords=';}else{if(a[0].length!=1){a.reverse()
a.push('s');a.reverse()}
switch(a[0]){case'l':pageUrl+='?location='+a[1].toUpperCase();pageUrl+='&keywords=';break;case'h':pageUrl+='?keywords='+a[1].toUpperCase().replace(/_/,' ');pageUrl+='&location=';pageUrl+='&supplierCode=';break;case's':pageUrl+='?supplierCode='+a[1].toUpperCase();pageUrl+='&location=';pageUrl+='&keywords=';break;}
if(a.length>3){var c1=JADE.cli.isDate(a[2]);if(c1){pageUrl+='&dateFrom='+c1;}else{return JADE.cli.paramError('Error from',cmd);}
var c2=JADE.cli.isDate(a[3]);if(c2){pageUrl+='&checkout='+c2;}else{if(JADE.cli.isNumber(a[3])){c2=JADE.cli.addDays(c1,a[3]);pageUrl+='&checkout='+c2;}else{return JADE.cli.paramError('Error checkout',cmd);}}
if(a.length>4){if(!JADE.cli.isNumber(a[4])){pageUrl+=getOrderBy(a[4]);a.splice(4,0,' ');}}
if(a.length>5){pageUrl+='&adults='+a[5];if(a.length>6){var numChildren=a.length-6;pageUrl+='&children='+numChildren;for(var c=1;c<=numChildren;c++){pageUrl+='&childAge'+c+'='+a[(c+5)];}}}}}
break;case'car':case'cars':var pageUrl="cars/search_results.php";if(a.length==0){pageUrl="cars/index.php";break;}
if(a.length>1){pageUrl+='?location='+a[0].toUpperCase();pageUrl+='&supplierCode=';}
if(a.length>2){var c1=JADE.cli.isDate(a[1]);if(!c1){pageUrl+='?supplierCode='+a[1].toUpperCase();pageUrl+='&location=';}else{a.splice(1,0,' ');}}
if(a.length>3){var c1=JADE.cli.isDate(a[2]);var t1=JADE.cli.isTime(a[3]);if(!c1){return JADE.cli.paramError('Error pickup',cmd);}
if(!t1){return JADE.cli.paramError('Error pickup time',cmd);}
pageUrl+='&dateFrom='+c1+' '+t1;var c2=JADE.cli.isDate(a[4]);var t2=JADE.cli.isTime(a[5]);if(!c2){return JADE.cli.paramError('Error dropoff',cmd);}
if(!t2){return JADE.cli.paramError('Error dropoff time',cmd);}
pageUrl+='&checkout='+c2+' '+t2;}
if(a.length>6){pageUrl+=getOrderBy(a[6]);}
break;case'tran':case'transfer':case'transfers':var pageUrl="transfers/search_results.php";if(a.length==0){pageUrl="transfers/index.php";break;}
if(a.length==1){pageUrl+='?supplierCode='+a[0].toUpperCase();pageUrl+='&location=';}else{if(a[0].length!=1){a.reverse()
a.push('s');a.reverse()}
switch(a[0]){case'l':pageUrl+='?location='+a[1].toUpperCase();pageUrl+='&supplierCode=';break;case's':pageUrl+='?supplierCode='+a[1].toUpperCase();pageUrl+='&location=';break;}
if(a.length>2){var c1=JADE.cli.isDate(a[2]);if(c1){pageUrl+='&dateFrom='+c1;}else{return JADE.cli.paramError('Error date',cmd);}
if(a.length>3){switch(a[3]){case'a':tranType='any';break;case'p':tranType='TAH';break;case'd':tranType='THA';break;case'r':tranType='TRATRO';break;default:tranType='any';break;}
pageUrl+='&optionClass='+tranType;}else{pageUrl+='&optionClass=any';}
if(a.length>4){if(a[4].length==1&&a[4]!=' '){a[5]=a[4];a[4]='';}else{pageUrl+='&keywords='+a[4].toUpperCase().replace(/_/,' ');}}
if(a.length>5){pageUrl+=getOrderBy(a[5]);}}}
break;case'tour':case'tours':var pageUrl="tours/search_results.php";if(a.length==0){pageUrl="tours/index.php";break;}
switch(a[0]){case'd':pageUrl+='?tourType='+'TOURS_DAY';break;case'e':case'x':pageUrl+='?tourType='+'TOURS_EXTENDED';break;default:pageUrl+='?tourType='+'TOURS_DAY';break;}
if(a.length==2){pageUrl+='&supplierCode='+a[1].toUpperCase();pageUrl+='&location=';}else{if(a[1].length!=1){a.reverse()
a.push('s');a.reverse()}
switch(a[1]){case'l':pageUrl+='?location='+a[2].toUpperCase();pageUrl+='&supplierCode=';break;case's':pageUrl+='?supplierCode='+a[2].toUpperCase();pageUrl+='&location=';break;}
if(a.length>3){var c1=JADE.cli.isDate(a[3]);if(c1){pageUrl+='&dateFrom='+c1;}else{return JADE.cli.paramError('Error date',cmd);}
if(a.length>4){if(a[4].length==1&&a[4]!=' '){a[5]=a[4];a[4]='';}else{pageUrl+='&keywords='+a[4].toUpperCase().replace(/_/,' ');}}
if(a.length>5){pageUrl+=getOrderBy(a[5]);}}}
break;case'attr':case'attraction':case'attractions':var pageUrl="attractions/search_results.php";if(a.length==0){pageUrl="attractions/index.php";break;}
if(a.length==1){pageUrl+='?supplierCode='+a[0].toUpperCase();pageUrl+='&location=';}else{if(a[0].length!=1){a.reverse()
a.push('s');a.reverse()}
switch(a[0]){case'l':pageUrl+='?location='+a[1].toUpperCase();pageUrl+='&supplierCode=';break;case's':pageUrl+='?supplierCode='+a[1].toUpperCase();pageUrl+='&location=';break;}
if(a.length>2){var c1=JADE.cli.isDate(a[2]);if(c1){pageUrl+='&dateFrom='+c1;}else{return JADE.cli.paramError('Error start',cmd);}
if(a.length>3){if(a[3].length==1&&a[3]!=' '){a[4]=a[3];a[3]='';}else{pageUrl+='&keywords='+a[3].toUpperCase().replace(/_/,' ');}}
if(a.length>4){pageUrl+=getOrderBy(a[4]);}}}
break;default:if(cciSite||site){if(cmd){JADE.cli.showError('Unknown command');validCmd=false;}}else{JADE.cli.showError('Unknown command');validCmd=false;}}
if(!validCmd){return true;}else{if(cciSite){var orgPageUrl=pageUrl;baseUrl=JADE.siteArray['cci'];pageUrl="site_switcher.php";pageUrl+='?site='+cciSite;pageUrl+='&agentCode='+cciAgent;pageUrl+='&switchSite=1';if(orgPageUrl){pageUrl+='&page='+orgPageUrl;}}
if(site){baseUrl=JADE.siteArray[site];}
var url=baseUrl+pageUrl;window.location=url;return false;}}
if(window.JSLib){JSLib.setLoaded("Document.js");}
if(window.JSLib){JSLib.addVersion("ClassUtil.js","Class Functions","1.1");}
Function.prototype.Extends=function(fnSuper)
{var prop;if(this==fnSuper){alert("Error - cannot derive from self");return;}
for(prop in fnSuper.prototype){if(typeof(fnSuper.prototype[prop])=="function"&&!this.prototype[prop]){this.prototype[prop]=fnSuper.prototype[prop];}}
this.prototype[fnSuper.StName()]=fnSuper;}
Function.prototype.StName=function()
{var st;st=this.toString();st=st.substring(st.indexOf(" ")+1,st.indexOf("("));if(st.charAt(0)=="("){st="function ...";}
return st;}
Function.prototype.Override=function(fnSuper,stMethod)
{this.prototype[fnSuper.StName()+"_"+stMethod]=fnSuper.prototype[stMethod];}
if(window.JSLib){JSLib.setLoaded("ClassUtil.js");}
if(window.JSLib){JSLib.addVersion("Date.js","Date Functions","1.1");}
var JANUARY=0;var FEBRUARY=1;var MARCH=2;var APRIL=3;var MAY=4;var JUNE=5;var JULY=6;var AUGUST=7;var SEPTEMBER=8;var OCTOBER=9;var NOVEMBER=10;var DECEMBER=11;var SUNDAY=0;var MONDAY=1;var TUESDAY=2;var WEDNESDAY=3;var THURSDAY=4;var FRIDAY=5;var SATURDAY=6;Date.prototype.getCivilianHours=function()
{return(this.getHours()<12)?this.getHours():this.getHours()-12;}
Date.prototype.getMeridiem=function()
{return(this.getHours()<12)?"AM":"PM";}
Date.prototype.to_s=Date.prototype.toString;Date.prototype.dayDiff=function(date)
{var oneDay=(1000*60*60*24);return Math.ceil((this.getTime()-date.getTime())/(oneDay));}
Date.prototype.dayDiff_time=function(date)
{var oneDay=1000*60*60*24;var difference_ms=Math.abs(this.getTime()-date.getTime());return Math.round(difference_ms/oneDay);}
Date.prototype.isDayLightSaving=function(date)
{var rightNow=new Date();var date1=new Date(rightNow.getFullYear(),0,1,0,0,0,0);var date2=new Date(rightNow.getFullYear(),6,1,0,0,0,0);var temp=date1.toGMTString();var date3=new Date(temp.substring(0,temp.lastIndexOf(" ")-1));var temp=date2.toGMTString();var date4=new Date(temp.substring(0,temp.lastIndexOf(" ")-1));var hoursDiffStdTime=(date1-date3)/(1000*60*60);var hoursDiffDaylightTime=(date2-date4)/(1000*60*60);if(hoursDiffDaylightTime==hoursDiffStdTime){return false;}else{return true;}}
Date.prototype.minDiff=function(date)
{var oneMin=1000*60;return Math.ceil((this.getTime()-date.getTime())/(oneMin));}
Date.prototype.addMilliseconds=function(ms)
{return new Date(new Date().setTime(this.getTime()+(ms)));}
Date.prototype.addSeconds=function(s)
{return new Date(this.getFullYear(),this.getMonth(),this.getDate(),this.getHours(),this.getMinutes(),this.getSeconds()+s);}
Date.prototype.addMinutes=function(m)
{return new Date(this.getFullYear(),this.getMonth(),this.getDate(),this.getHours(),this.getMinutes()+m,this.getSeconds());}
Date.prototype.addHours=function(h)
{return new Date(this.getFullYear(),this.getMonth(),this.getDate(),this.getHours()+h,this.getMinutes(),this.getSeconds());}
Date.prototype.addDays=function(d)
{return new Date(this.getFullYear(),this.getMonth(),this.getDate()+d,this.getHours(),this.getMinutes(),this.getSeconds());}
Date.prototype.addWeeks=function(w)
{var d=w*7;return new Date(this.getFullYear(),this.getMonth(),this.getDate()+d,this.getHours(),this.getMinutes(),this.getSeconds());}
Date.prototype.addMonths=function(m)
{return new Date(this.getFullYear(),this.getMonth()+m,this.getDate(),this.getHours(),this.getMinutes(),this.getSeconds());}
Date.prototype.addYears=function(y)
{return new Date(this.getFullYear()+y,this.getMonth(),this.getDate(),this.getHours(),this.getMinutes(),this.getSeconds());}
Date.prototype.getMonthName=function()
{var index=(0==arguments.length)?this.getMonth():arguments[0];switch(index)
{case JANUARY:return"January";case FEBRUARY:return"February";case MARCH:return"March";case APRIL:return"April";case MAY:return"May";case JUNE:return"June";case JULY:return"July";case AUGUST:return"August";case SEPTEMBER:return"September";case OCTOBER:return"October";case NOVEMBER:return"November";case DECEMBER:return"December";default:throw"Invalid month index: "+index.toString();}}
Date.prototype.getMonthAbbreviation=function()
{var index=(0==arguments.length)?this.getMonth():arguments[0];switch(index)
{case JANUARY:return"Jan";case FEBRUARY:return"Feb";case MARCH:return"Mar";case APRIL:return"Apr";case MAY:return"May";case JUNE:return"Jun";case JULY:return"Jul";case AUGUST:return"Aug";case SEPTEMBER:return"Sep";case OCTOBER:return"Oct";case NOVEMBER:return"Nov";case DECEMBER:return"Dec";default:throw"Invalid month index: "+index.toString();}}
Date.prototype.getDayName=function()
{var index=(0==arguments.length)?this.getDay():arguments[0];switch(index)
{case SUNDAY:return"Sunday";case MONDAY:return"Monday";case TUESDAY:return"Tuesday";case WEDNESDAY:return"Wednesday";case THURSDAY:return"Thursday";case FRIDAY:return"Friday";case SATURDAY:return"Saturday";default:throw"Invalid day index: "+index.toString();}}
Date.prototype.getDayAbbreviation=function()
{var index=(0==arguments.length)?this.getDay():arguments[0];switch(index)
{case SUNDAY:return"Sun";case MONDAY:return"Mon";case TUESDAY:return"Tue";case WEDNESDAY:return"Wed";case THURSDAY:return"Thu";case FRIDAY:return"Fri";case SATURDAY:return"Sat";default:throw"Invalid day index: "+index.toString();}}
Date.prototype.getDaysInMonth=function()
{var month=arguments[0]!=null?arguments[0]:this.getMonth();var year=arguments[1]!=null?arguments[1]:this.getFullYear();switch(month)
{case JANUARY:return 31;case FEBRUARY:return Date.isLeapYear(year)?29:28;case MARCH:return 31;case APRIL:return 30;case MAY:return 31;case JUNE:return 30;case JULY:return 31;case AUGUST:return 31;case SEPTEMBER:return 30;case OCTOBER:return 31;case NOVEMBER:return 30;case DECEMBER:return 31;default:throw"Invalid month index: "+index.toString();}}
Date.prototype.isLeapYear=function()
{if(0==this.getFullYear()%400)return true;if(0==this.getFullYear()%100)return false;return(0==this.getFullYear()%4)?true:false;}
Date.isLeapYear=function(year)
{if(0==year%400)return true;if(0==year%100)return false;return(0==year%4)?true:false;}
Date.prototype.getFirstDayOfMonth=function()
{return new Date(this.getFullYear(),this.getMonth(),1,12,0,0);}
Date.prototype.getLastDayOfMonth=function()
{return new Date(this.getFullYear(),this.getMonth(),this.getDaysInMonth(),12,0,0);}
Date.prototype.clone=function()
{var dt=new Date();dt.setTime(this.getTime());return dt;}
Date.prototype.zeroTime=function()
{var dt=this.clone();dt.setHours(0);dt.setMinutes(0);dt.setSeconds(0);dt.setMilliseconds(0);return dt;}
Date.prototype.noonTime=function()
{var dt=this.clone();dt.setHours(12);dt.setMinutes(0);dt.setSeconds(0);dt.setMilliseconds(0);return dt;}
Date.prototype.endTime=function()
{var dt=this.clone();dt.setHours(23);dt.setMinutes(59);dt.setSeconds(59);dt.setMilliseconds(999);return dt;}
Date.prototype.format=function(fs)
{fs=fs.replace(/%YYYY/,this.getFullYear().toString());fs=fs.replace(/%YY/,this.getFullYear().toString().substr(2,2));fs=fs.replace(/%MMMM/,this.getMonthName(this.getMonth()).toString());fs=fs.replace(/%MMM/,this.getMonthAbbreviation(this.getMonth()).toString());fs=fs.replace(/%MM/,(this.getMonth()+1)>9?(this.getMonth()+1).toString():"0"+(this.getMonth()+1).toString());fs=fs.replace(/%M/,(this.getMonth()+1).toString());fs=fs.replace(/%DDDD/,this.getDayName(this.getDay()).toString());fs=fs.replace(/%DDD/,this.getDayAbbreviation(this.getDay()).toString());fs=fs.replace(/%DD/,this.getDate()>9?this.getDate().toString():"0"+this.getDate().toString());fs=fs.replace(/%D/,this.getDate().toString());fs=fs.replace(/%HH/,this.getHours()>9?this.getHours().toString():"0"+this.getHours().toString());fs=fs.replace(/%H/,this.getHours().toString());fs=fs.replace(/%hh/,this.getCivilianHours()>9?this.getCivilianHours().toString():"0"+this.getCivilianHours().toString());fs=fs.replace(/%h/,this.getCivilianHours());fs=fs.replace(/%mm/,this.getMinutes()>9?this.getMinutes().toString():"0"+this.getMinutes().toString());fs=fs.replace(/%m/,this.getMinutes().toString());fs=fs.replace(/%ss/,this.getSeconds()>9?this.getSeconds().toString():"0"+this.getSeconds().toString());fs=fs.replace(/%s/,this.getSeconds().toString());fs=fs.replace(/%nnn/,this.getMilliseconds().toString());fs=fs.replace(/%p/,this.getMeridiem());return fs;}
Date.prototype.toString=function()
{if(0==arguments.length||1<arguments.length)return this.to_s();return this.format(arguments[0].toString());}
if(window.JSLib){JSLib.setLoaded("Date.js");}
if(window.JSLib){JSLib.addVersion("String.js","String Functions","1.2");}
String.prototype.trim=function()
{return this.replace(/^\s+|\s+$/g,"");}
String.prototype.ltrim=function(){return this.replace(/^\s+/,"");}
String.prototype.rtrim=function(){return this.replace(/\s+$/,"");}
function formatNumber(num,prefix){prefix=prefix||'';num+='';var splitStr=num.split('.');var splitLeft=splitStr[0];var splitRight=splitStr.length>1?'.'+splitStr[1]:'';var regx=/(\d+)(\d{3})/;while(regx.test(splitLeft)){splitLeft=splitLeft.replace(regx,'$1'+','+'$2');}
return prefix+splitLeft+splitRight;}
function unformatNumber(num){return num.replace(/([^0-9\.\-])/g,'')*1;}
if(window.JSLib){JSLib.setLoaded("String.js");}
if(window.JSLib){JSLib.addVersion("Image.js","Image Functions","2.0");}
var IMG_STATE_GLOBAL=0;var IMG_STATE_NORMAL=1;var IMG_STATE_OVER=2;var IMG_STATE_DOWN=3;var IMG_STATE_DISABLED=4;var PRELOADED_ARRAY=new Array();var PRELOADED_ARRAY_COUNTER=-1;imageCollection=function(preloadId)
{this.preloadId=preloadId;this.normalImg=null;this.overImg=null;this.downImg=null;this.disabledImg=null;}
imageCollection.prototype.addImage=function(state,filename)
{switch(state){case IMG_STATE_NORMAL:this.normalImg=new Image();this.normalImg.preloadId=this.preloadId;this.normalImg.onload=doImageLoad;this.normalImg.onerror=doImageError;this.normalImg.src=filename;break;case IMG_STATE_OVER:this.overImg=new Image();this.overImg.preloadId=this.preloadId;this.overImg.onload=doImageLoad;this.overImg.onerror=doImageError;this.overImg.src=filename;break;case IMG_STATE_DOWN:this.downImg=new Image();this.downImg.preloadId=this.preloadId;this.downImg.onload=doImageLoad;this.downImg.onerror=doImageError;this.downImg.src=filename;break;case IMG_STATE_DISABLED:this.disabledImg=new Image();this.disabledImg.preloadId=this.preloadId;this.disabledImg.onload=doImageLoad;this.disabledImg.onerror=doImageError;this.disabledImg.src=filename;break;}
function doImageError()
{PRELOADED_ARRAY[this.preloadId].doOnError(this.src);}
function doImageLoad()
{PRELOADED_ARRAY[this.preloadId].doOnLoad(this.src);}}
preloadCollection=function()
{PRELOADED_ARRAY_COUNTER++;this.preloadId=PRELOADED_ARRAY_COUNTER;this.allImagesLoaded=false;this.numImagesToLoad=0;this.numImagesLoaded=0;this.onImageLoad=null;this.onComplete=null;this.imageArray=new Array();this.errorArray=new Array();this.numErrors=0;this.storedElArray=new Array();this.storedParentArray=new Array();this.useALTStatus=false;this.forceBlankStatus=false;PRELOADED_ARRAY[this.preloadId]=this;}
preloadCollection.prototype.addImage=function(id,filename)
{if(typeof this.imageArray[id]!="object"){this.imageArray[id]=new imageCollection(this.preloadId);}
this.imageArray[id].addImage(IMG_STATE_GLOBAL,filename);}
preloadCollection.prototype.loadImageSequence=function(id,prefix,ex,start,end,dir)
{for(var i=start;i<=end;i++){var filename=dir+prefix+i+"."+ex;this.addImage(id,filename);}}
preloadCollection.prototype.addImageRoll=function(id,state,filename)
{if(typeof this.imageArray[id]!="object"){this.imageArray[id]=new imageCollection(this.preloadId);}
this.imageArray[id].addImage(state,filename);}
preloadCollection.prototype.getImage=function(id,state)
{if(!this.imageArray[id]){return null;}
switch(state){case IMG_STATE_NORMAL:if(this.imageArray[id].normalImg){if(!this.imageArray[id].normalImg.complete){return null;}else{return this.imageArray[id].normalImg.src;}}else{return null;}
break;case IMG_STATE_OVER:if(this.imageArray[id].overImg){if(!this.imageArray[id].overImg.complete){return null;}else{return this.imageArray[id].overImg.src;}}else{return null;}
break;case IMG_STATE_DOWN:if(this.imageArray[id].downImg){if(!this.imageArray[id].downImg.complete){return null;}else{return this.imageArray[id].downImg.src;}}else{return null;}
break;case IMG_STATE_DISABLED:if(this.imageArray[id].disabledImg){if(!this.imageArray[id].disabledImg.complete){return null;}else{return this.imageArray[id].disabledImg.src;}}else{return null;}
break;default:return null;}}
preloadCollection.prototype.swapImage=function(id,imgId,state,message)
{if(document.images&&document.getElementById){if(!window.PRELOADED_IMAGES){return;}
var imgObj=document.getElementById(id);if(imgObj.disabled){var disImage=this.getImage(imgId,IMG_STATE_DISABLED);if(disImage!=null){imgObj.src=disImage;}}else{if(imgObj.filters&&imgObj.filters.length>0){imgObj.filters[0].apply();}
var newImage=this.getImage(imgId,state);if(newImage!=null){if(state==IMG_STATE_OVER){this.checkNormal(id,imgId)}
imgObj.src=newImage;}
if(imgObj.filters&&imgObj.filters.length>0){imgObj.filters[0].play();}}
if(this.setUseALTStatus){var altMessage=imgObj.alt;window.setTimeout('window.status="'+altMessage+'"',1);}}
if(message){window.setTimeout('window.status="'+message+'"',1);}else{if(this.forceBlankStatus){window.setTimeout('window.status=" "',1);}}}
preloadCollection.prototype.setImageDesabled=function(id,imgId,value)
{var imgObj=document.getElementById(id);if(imgObj.tagName=="INPUT"){imgObj.disabled=value;this.swapImage(id,imgId,IMG_STATE_NORMAL);}else{if(value){var linkObj=imgObj.parentNode;this.storedElArray[id]=linkObj;var linkParent=linkObj.parentNode;this.storedParentArray[id]=linkParent;var img=this.getImage(imgId,IMG_STATE_DISABLED);if(img==null){var newEl=document.createElement('span');}else{var newEl=document.createElement('img');newEl.alt="Disabled. "+imgObj.alt;newEl.src=img;}
newEl.id=id;linkParent.replaceChild(newEl,linkObj);}else{this.storedParentArray[id].replaceChild(this.storedElArray[id],imgObj);}}}
preloadCollection.prototype.doOnComplete=function(filename)
{}
preloadCollection.prototype.doOnLoad=function(filename)
{this.numImagesLoaded++;if(this.numImagesToLoad>0){if(this.numImagesToLoad==this.numImagesLoaded){this.allImagesLoaded=true;}}}
preloadCollection.prototype.doOnError=function(file)
{this.errorArray[this.numErrors]=file;this.numErrors++;}
preloadCollection.prototype.checkNormal=function(id,imgId)
{var normImage=this.getImage(imgId,IMG_STATE_NORMAL);if(normImage==null){var imgObj=document.getElementById(id);var filename=imgObj.src;this.imageArray[imgId].addImage(IMG_STATE_NORMAL,filename);}}
preloadCollection.prototype.hilight=function(id,imgId,message)
{this.swapImage(id,imgId,IMG_STATE_OVER,message);}
preloadCollection.prototype.norm=function(id,imgId,message)
{this.swapImage(id,imgId,IMG_STATE_NORMAL,message);}
preloadCollection.prototype.down=function(id,imgId,message)
{this.swapImage(id,imgId,IMG_STATE_DOWN,message);}
preloadCollection.prototype.up=function(id,imgId,message)
{this.swapImage(id,imgId,IMG_STATE_OVER,message);}
preloadCollection.prototype.setForceBlankStatus=function(value)
{this.forceBlankStatus=value;}
preloadCollection.prototype.setUseALTStatus=function(value)
{this.useALTStatus=value;}
var PRELOADED_IMAGES=new preloadCollection();changeState=function(btnId,state)
{btn=getElementById(btnId);btn.disabled=state;btn.onmouseout();}
if(window.JSLib){JSLib.setLoaded("Image.js");}
if(window.JSLib){JSLib.addVersion("AjaxRequest.js","Ajax Request","2.0");}
function AjaxRequest(){var req=new Object();req.timeout=null;req.generateUniqueUrl=true;req.url=window.location.href;req.method="GET";req.async=true;req.username=null;req.password=null;req.parameters=new Object();req.requestIndex=AjaxRequest.numAjaxRequests++;req.responseReceived=false;req.groupName=null;req.queryString="";req.responseText=null;req.responseXML=null;req.status=null;req.statusText=null;req.aborted=false;req.elementId=null;req.ahahName=null;req.refreshDelay=0;req.xmlHttpRequest=null;this.NotSupported=false;this.NativeSupport=false;this.xmlHttpRequestVersion=null;req.onTimeout=null;req.onLoading=null;req.onLoaded=null;req.onInteractive=null;req.onComplete=null;req.onSuccess=null;req.onError=null;req.onGroupBegin=null;req.onGroupEnd=null;req.xmlHttpRequest=AjaxRequest.getXmlHttpRequest();if(req.xmlHttpRequest==null){AjaxRequest.NotSupported=true;return null;}
req.xmlHttpRequest.onreadystatechange=function(){if(req==null||req.xmlHttpRequest==null){return;}
if(req.xmlHttpRequest.readyState==1){req.onLoadingInternal(req);}
if(req.xmlHttpRequest.readyState==2){req.onLoadedInternal(req);}
if(req.xmlHttpRequest.readyState==3){req.onInteractiveInternal(req);}
if(req.xmlHttpRequest.readyState==4){req.onCompleteInternal(req);}};req.onLoadingInternalHandled=false;req.onLoadedInternalHandled=false;req.onInteractiveInternalHandled=false;req.onCompleteInternalHandled=false;req.onLoadingInternal=function(){if(req.onLoadingInternalHandled){return;}
AjaxRequest.numActiveAjaxRequests++;if(AjaxRequest.numActiveAjaxRequests==1&&typeof(window['AjaxRequestBegin'])=="function"){AjaxRequestBegin();}
if(req.groupName!=null){if(typeof(AjaxRequest.numActiveAjaxGroupRequests[req.groupName])=="undefined"){AjaxRequest.numActiveAjaxGroupRequests[req.groupName]=0;}
AjaxRequest.numActiveAjaxGroupRequests[req.groupName]++;if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName]==1&&typeof(req.onGroupBegin)=="function"){req.onGroupBegin(req.groupName);}}
if(typeof(req.onLoading)=="function"){req.onLoading(req);}
req.onLoadingInternalHandled=true;};req.onLoadedInternal=function(){if(req.onLoadedInternalHandled){return;}
if(typeof(req.onLoaded)=="function"){req.onLoaded(req);}
req.onLoadedInternalHandled=true;};req.onInteractiveInternal=function(){if(req.onInteractiveInternalHandled){return;}
if(typeof(req.onInteractive)=="function"){req.onInteractive(req);}
req.onInteractiveInternalHandled=true;};req.onCompleteInternal=function(){if(req.onCompleteInternalHandled||req.aborted){return;}
req.onCompleteInternalHandled=true;AjaxRequest.numActiveAjaxRequests--;if(AjaxRequest.numActiveAjaxRequests==0&&typeof(window['AjaxRequestEnd'])=="function"){AjaxRequestEnd(req.groupName);}
if(req.groupName!=null){AjaxRequest.numActiveAjaxGroupRequests[req.groupName]--;if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName]==0&&typeof(req.onGroupEnd)=="function"){req.onGroupEnd(req.groupName);}}
req.responseReceived=true;req.status=req.xmlHttpRequest.status;req.statusText=req.xmlHttpRequest.statusText;req.responseText=req.xmlHttpRequest.responseText;req.responseXML=req.xmlHttpRequest.responseXML;if(typeof(req.onComplete)=="function"){req.onComplete(req);}
if(req.xmlHttpRequest.status==200&&typeof(req.onSuccess)=="function"){req.onSuccess(req);}
else if(typeof(req.onError)=="function"){req.onError(req);}
delete req.xmlHttpRequest['onreadystatechange'];req.xmlHttpRequest=null;};req.onTimeoutInternal=function(){if(req!=null&&req.xmlHttpRequest!=null&&!req.onCompleteInternalHandled){req.aborted=true;req.xmlHttpRequest.abort();AjaxRequest.numActiveAjaxRequests--;if(AjaxRequest.numActiveAjaxRequests==0&&typeof(window['AjaxRequestEnd'])=="function"){AjaxRequestEnd(req.groupName);}
if(req.groupName!=null){AjaxRequest.numActiveAjaxGroupRequests[req.groupName]--;if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName]==0&&typeof(req.onGroupEnd)=="function"){req.onGroupEnd(req.groupName);}}
if(typeof(req.onTimeout)=="function"){req.onTimeout(req);}
delete req.xmlHttpRequest['onreadystatechange'];req.xmlHttpRequest=null;}};req.process=function(){if(req.xmlHttpRequest!=null){if(req.generateUniqueUrl&&req.method=="GET"){req.parameters["AjaxRequestUniqueId"]=new Date().getTime()+""+req.requestIndex;}
if(location.search.indexOf('showwidgets')>=0)req.parameters["showwidgets"]='';var content=null;for(var i in req.parameters){if(i!="toJSONString"){if(req.queryString.length>0){req.queryString+="&";}
req.queryString+=encodeURIComponent(i)+"="+encodeURIComponent(req.parameters[i]);}}
if(req.method=="GET"){if(req.queryString.length>0){req.url+=((req.url.indexOf("?")>-1)?"&":"?")+req.queryString;}}
if(req.method=="HEAD"){if(req.queryString.length>0){req.url+=((req.url.indexOf("?")>-1)?"&":"?")+req.queryString;}}
req.xmlHttpRequest.open(req.method,req.url,req.async,req.username,req.password);if(req.method=="POST"){if(typeof(req.xmlHttpRequest.setRequestHeader)!="undefined"){req.xmlHttpRequest.setRequestHeader('Content-type','application/x-www-form-urlencoded');}
content=req.queryString;}
if(req.timeout>0){setTimeout(req.onTimeoutInternal,req.timeout);}
req.xmlHttpRequest.send(content);}};req.handleArguments=function(args){for(var i in args){if(i!="toJSONString"){if(typeof(req[i])=="undefined"){req.parameters[i]=args[i];}else{req[i]=args[i];}}}};req.getAllResponseHeaders=function(){if(req.xmlHttpRequest!=null){if(req.responseReceived){return req.xmlHttpRequest.getAllResponseHeaders();}
alert("Cannot getAllResponseHeaders because a response has not yet been received");}};req.getResponseHeader=function(headerName){if(req.xmlHttpRequest!=null){if(req.responseReceived){return req.xmlHttpRequest.getResponseHeader(headerName);}
alert("Cannot getResponseHeader because a response has not yet been received");}};return req;}
AjaxRequest.getXmlHttpRequest=function(){if(window.XMLHttpRequest){AjaxRequest.NativeSupport=true;return new XMLHttpRequest();}
else if(window.ActiveXObject){/*@cc_on @*//*@if (@_jscript_version >= 5)
        var tryActiveXVersion = [
            'Msxml2.XMLHTTP.5.0',
            'Msxml2.XMLHTTP.4.0',
            'MSXML2.XMLHTTP.3.0',
            'MSXML2.XMLHTTP',
            'Microsoft.XMLHTTP'
        ];
        for (var iVn = 0; iVn < tryActiveXVersion.length; iVn++) {
            AjaxRequest.xmlHttpRequestVersion = tryActiveXVersion[iVn];
            try {
                return new ActiveXObject(tryActiveXVersion[iVn]);
            } catch (objException) {};
        }
        AjaxRequest.xmlHttpRequestVersion = "ActiveX control not found";
        return null;
        @end @*/}else{AjaxRequest.xmlHttpRequestVersion=null;return null;}};AjaxRequest.isActive=function(){return(AjaxRequest.numActiveAjaxRequests>0);};AjaxRequest.get=function(args){AjaxRequest.doRequest("GET",args);};AjaxRequest.post=function(args){AjaxRequest.doRequest("POST",args);};AjaxRequest.head=function(args){AjaxRequest.doRequest("HEAD",args);};AjaxRequest.doRequest=function(method,args){if(typeof(args)!="undefined"&&args!=null){var myRequest=new AjaxRequest();myRequest.method=method;myRequest.handleArguments(args);myRequest.process();}};AjaxRequest.submit=function(theform,args){var myRequest=new AjaxRequest();if(myRequest==null){return false;}
var serializedForm=AjaxRequest.serializeForm(theform);myRequest.method=theform.method.toUpperCase();myRequest.url=theform.action;myRequest.handleArguments(args);myRequest.queryString=serializedForm;myRequest.process();return true;};AjaxRequest.serializeForm=function(theform){var els=theform.elements;var len=els.length;var queryString="";this.addField=function(name,value){if(queryString.length>0){queryString+="&";}
queryString+=encodeURIComponent(name)+"="+encodeURIComponent(value);};for(var i=0;i<len;i++){var el=els[i];if(!el.disabled){switch(el.type){case'text':case'password':case'hidden':case'textarea':this.addField(el.name,el.value);break;case'select-one':if(el.selectedIndex>=0){this.addField(el.name,el.options[el.selectedIndex].value);}
break;case'select-multiple':for(var j=0;j<el.options.length;j++){if(el.options[j].selected){this.addField(el.name,el.options[j].value);}}
break;case'checkbox':case'radio':if(el.checked){this.addField(el.name,el.value);}
break;}}}
return queryString;};AjaxRequest.numActiveAjaxRequests=0;AjaxRequest.numActiveAjaxGroupRequests=new Object();AjaxRequest.numAjaxRequests=0;
if(window.JSLib){JSLib.addVersion("googleMaps.js","Google Maps (2."+G_API_VERSION+") wrapper and extensions","4.0");}
JADE.googleMap={version:"4.0",apiVersion:"2."+G_API_VERSION,map:null,masterMarker:false,staticMarkersArray:new Array(),dynamicMarkersArray:new Array(),supplierCodeToNameArray:new Array(),latLngArray:new Array(),cluster:null,ovControl:null,client:null,overlayInstance:null,SVmarker:null,SVlastMarkerLocation:null,SVpanorama:null,SVfullScreen:false,hasStreetViewOverlay:false,hasStreetView:false,streetViewType:0,streetViewPanAdded:false,gDirections:false,inDebug:false,hasContainer:false,hasMenu:false,hasSideBar:false,hasBottomBar:false,hasFooter:false,waitControl:null,loadingControl:null,hasLayerControl:false,hasDrivingDirections:false,cancelMoveEnd:false,divId:null,morePanel:null,moreButton:null,svButton:null,mapType:0,moreCount:0,maximised:false,orgWidth:null,orgHeight:null,orgSVType:null,jasonDate:false,savedPos:new Array(),lookForSupplierCode:null,isAccomSearchResults:false,'_construct':function(){JSLib.setVersion(JADE.googleMap.version,'googleMaps.js');if(GET('GMDEBUG')){JADE.googleMap.inDebug=true;if(JADE.googleMap.inDebug){GLog.write('AOT Google Maps v'+JADE.googleMap.version+', API v'+JADE.googleMap.apiVersion+' - DEBUG MODE!','#FF0000');}}
addUnloadListener(GUnload);var buttonCss=CSS.addCSSRule('.gmButton');buttonCss.style.border='1px #000000 solid';buttonCss.style.fontFamily='Arial, sans-serif';buttonCss.style.fontSize='12px';buttonCss.style.padding='1px';buttonCss.style.backgroundColor='#FFFFFF';buttonCss.style.textAlign='center';buttonCss.style.cursor='pointer';var supplierCss=CSS.addCSSRule('.gmSupplierInfo');supplierCss.style.border='1px #CCCCCC solid';supplierCss.style.width='215px';supplierCss.style.height='150px';supplierCss.style.overflow='auto';supplierCss.style.padding='5px';var supplierPCss=CSS.addCSSRule('.gmSupplierInfo p');supplierPCss.style.fontSize='12px';var clusterCss=CSS.addCSSRule('.gmCluster');clusterCss.style.border='1px #CCCCCC solid';clusterCss.style.width='275px';clusterCss.style.height='200px';clusterCss.style.overflow='auto';},setHtmlWindowInfo:function(str){var point=new GLatLng(this.latLngArray[0].lat,this.latLngArray[0].lng);var icon=createClassMarkerIcon('AC');var marker=createMarker(point,str,icon);JADE.googleMap.map.addOverlay(marker);},setLatLng:function(lat,lng){latLng=new Object();latLng.lat=lat;latLng.lng=lng;this.latLngArray[this.latLngArray.length]=latLng;},setCentre:function(lat,lng){latLng=new Object();latLng.lat=lat;latLng.lng=lng;this.latLngArray[0]=latLng;},setIsSearchResults:function(value){value=(value)?true:false;JADE.googleMap.isAccomSearchResults=value;var supplierCss=CSS.getCSSRule('.gmSupplierInfo');if(supplierCss){supplierCss.style.width='500px';if(sniffer.isFirefox){supplierCss.style.width='510px';}}},savePos:function(){var center=JADE.googleMap.map.getCenter();var zoom=JADE.googleMap.map.getZoom();JADE.googleMap.savedPos.splice(0,2,center,zoom);},restorePos:function(){if(JADE.googleMap.savedPos.length>0){JADE.googleMap.map.setCenter(JADE.googleMap.savedPos[0],JADE.googleMap.savedPos[1]);}},restorePos2:function(){if(JADE.googleMap.savedPos.length>0){JADE.googleMap.map.setCenter(new GLatLng(JADE.googleMap.latLngArray[0].lat,JADE.googleMap.latLngArray[0].lng),JADE.googleMap.savedPos[1]);}},removeMap:function(divId){var el=document.getElementById(divId);if(el){el.parentNode.removeChild(el);}
var containerEl=document.getElementById('map-container');if(containerEl){containerEl.parentNode.removeChild(containerEl);}},addMap2:function(divId,zoomValue,arg){if(arg.container){JADE.googleMap.hasContainer=true;if(arg.menu){JADE.googleMap.hasMenu=true;}
if(arg.sideBar){JADE.googleMap.hasSideBar=true;}
if(arg.bottomBar){JADE.googleMap.hasBottomBar=true;}
if(arg.footer){JADE.googleMap.hasFooter=true;}}
JADE.googleMap.appendMapDom(divId);JADE.googleMap.addMap(divId,zoomValue);},appendMapDom:function(divId){var mapEl=document.getElementById(divId);var parent=mapEl.parentNode;if(mapEl){var mapTableEl=document.createElement('table');mapTableEl.id='map-container';mapTableEl.className='map-container-class';if(mapEl.style.width=='100%'){mapTableEl.style.width=mapEl.style.width;}
var newRow=mapTableEl.insertRow(-1);var newCell=newRow.insertCell(0);if(JADE.googleMap.hasSideBar){newCell.colSpan=2;}
newCell.innerHTML='<div id="map-menu"></div>';var newRow=mapTableEl.insertRow(-1);var newCell=newRow.insertCell(0);newCell.appendChild(mapEl);var svEl=document.createElement('div');svEl.id="map-svDiv";svEl.style.width=mapEl.style.width;svEl.style.height=mapEl.style.height;svEl.style.display='none';svEl.innerHTML='Loading Street View...';newCell.appendChild(svEl);if(JADE.googleMap.hasSideBar){var newCell=newRow.insertCell(1);if(JADE.googleMap.hasBottomBar){newCell.rowSpan=2;}
newCell.innerHTML='<div id="map-sidebar"></div>';}
if(JADE.googleMap.hasBottomBar){var newRow=mapTableEl.insertRow(-1);var newCell=newRow.insertCell(0);newCell.innerHTML='<div id="map-bottombar"></div>';}
if(JADE.googleMap.hasFooter){var newRow=mapTableEl.insertRow(-1);var newCell=newRow.insertCell(0);newCell.innerHTML='<div id="map-footer"></div>';if(JADE.googleMap.hasSideBar){newCell.colSpan=2;}}
parent.appendChild(mapTableEl);}},hideMap:function(){var el=document.getElementById(JADE.googleMap.divId);if(el){el.style.display='none';}
var el=document.getElementById('map-svDiv');if(el){el.style.display='none';}
if(JADE.googleMap.hasSideBar){var el=document.getElementById('map-sidebar');el.style.display='none';}
if(JADE.googleMap.hasBottomBar){var el=document.getElementById('map-bottombar');el.style.display='none';}
if(JADE.googleMap.hasFooter){var el=document.getElementById('map-footer');el.style.display='none';}
JADE.googleMap.setMenu({show:1});},showMap:function(){JADE.googleMap.cancelMoveEnd=true;var el=document.getElementById(JADE.googleMap.divId);el.style.display='block';if(JADE.googleMap.hasSideBar){var el=document.getElementById('map-sidebar');el.style.display='block';}
if(JADE.googleMap.hasBottomBar){var el=document.getElementById('map-bottombar');el.style.display='block';}
if(JADE.googleMap.hasFooter){var el=document.getElementById('map-footer');el.style.display='block';}
if(JADE.googleMap.maximised){JADE.googleMap.setMenu({close:1});}else{JADE.googleMap.setMenu({close:1,streetview:1});}
JADE.googleMap.mapType=0;},showStreetview:function(){var el=document.getElementById('gmMenu2');if(el){el.className='';}
var el=document.getElementById('gmMenu3');if(el){el.className='gmMenuActive';}
var svEl=document.getElementById('map-svDiv');svEl.style.display='block';var mapEl=document.getElementById(JADE.googleMap.divId);mapEl.style.display='none';if(!JADE.googleMap.streetViewPanAdded){if(JADE.googleMap.inDebug){GLog.write('Creating Street View Panorama.');}
var svLatLng=new GLatLng(JADE.googleMap.latLngArray[0].lat,JADE.googleMap.latLngArray[0].lng);if(JADE.googleMap.inDebug){GLog.write('Street View LatLng: '+svLatLng);}
var pano=new GStreetviewClient();pano.getNearestPanoramaLatLng(svLatLng,JADE.googleMap.setupBigStreetView);}
JADE.googleMap.hasStreetView=true;JADE.googleMap.mapType=1;},setupBigStreetView:function(newlatlng){if(JADE.googleMap.inDebug){GLog.write('  in setupBigStreetView');}
var svLatLng=new GLatLng(JADE.googleMap.latLngArray[0].lat,JADE.googleMap.latLngArray[0].lng);var svEl=document.getElementById("map-svDiv");SVpanorama=new GStreetviewPanorama(svEl);JADE.googleMap.SVpanorama=SVpanorama;GEvent.addListener(JADE.googleMap.SVpanorama,"error",JADE.googleMap.handleSVErrors);if(newlatlng){var distance=svLatLng.distanceFrom(newlatlng);if(JADE.googleMap.inDebug){GLog.write('Original: '+svLatLng+' Changed to: '+newlatlng);GLog.write('Distance from: '+distance+'m');}
JADE.googleMap.SVpanorama.setLocationAndPOV(svLatLng,{yaw:JADE.googleMap.bearing(svLatLng,newlatlng)-180.0});}else{JADE.googleMap.SVpanorama.setLocationAndPOV(svLatLng,null);}
JADE.googleMap.streetViewPanAdded=true;},bearing:function(from,to){var degreesPerRadian=180.0/Math.PI;var radiansPerDegree=Math.PI/180.0;var lat1=from.latRadians();var lon1=from.lngRadians();var lat2=to.latRadians();var lon2=to.lngRadians();var angle=-Math.atan2(Math.sin(lon1-lon2)*Math.cos(lat2),Math.cos(lat1)*Math.sin(lat2)-Math.sin(lat1)*Math.cos(lat2)*Math.cos(lon1-lon2));if(angle<0.0){angle+=Math.PI*2.0;}
angle=angle*degreesPerRadian;angle=angle.toFixed(1);return angle;},handleSVErrors:function(errorCode){if(JADE.googleMap.streetViewType==1){svEl=document.getElementById('pano');}else{svEl=document.getElementById('map-svDiv');}
if(errorCode==600){if(svEl){svEl.innerHTML='Street View is not available for this location.';}
return;}
if(errorCode==603){if(svEl){svEl.innerHTML='Error: Flash does not appear to be supported by your browser.';}
return;}
if(JADE.googleMap.inDebug){GLog.write('Street View Error: '+errorCode);}},hideStreetview:function(){var el=document.getElementById('gmMenu3');if(el){el.className='';}
var el=document.getElementById('gmMenu2');if(el){el.className='gmMenuActive';}
if(JADE.googleMap.SVpanorama){JADE.googleMap.SVpanorama=null;}
var svEl=document.getElementById('map-svDiv');svEl.style.display='none';var mapEl=document.getElementById(JADE.googleMap.divId);mapEl.style.display='block';},setMenu:function(arg){if(JADE.googleMap.hasMenu){var el=document.getElementById('map-menu');if(el){var html='<ul id="gmMenuList">';if(arg.show){html='<ul id="gmMenuList">';html+='<li id="gmMenu1"><a href="#" onclick="JADE.googleMap.showMap(); return false;">Open Map</a></li>';html+='</ul>';el.innerHTML=html;return;}
if(arg.close){html+='<li id="gmMenu1"><a href="#" onclick="JADE.googleMap.hideMap(); return false;">Close</a></li>';}
if(arg.streetview){html+='<li id="gmMenu2" class="gmMenuActive" onclick="JADE.googleMap.hideStreetview(); return false;"><a href="#">Map</a></li>';html+='<li id="gmMenu3"><a href="#" onclick="JADE.googleMap.showStreetview(); return false;">Street View</a></li>';JADE.googleMap.streetViewType=2;}
html+='</ul>';el.innerHTML=html;}}},setSideBar:function(html){if(JADE.googleMap.hasSideBar){var el=document.getElementById('map-sidebar');if(el){el.innerHTML=html;}}},setBottomBar:function(html){if(JADE.googleMap.hasBottomBar){var el=document.getElementById('map-bottombar');if(el){el.innerHTML=html;}}},setFooter:function(html){if(JADE.googleMap.hasFooter){var el=document.getElementById('map-footer');if(el){el.innerHTML='<span style="float:left">'+html+'</span>';}}},undock:function(){var mapEl=document.getElementById(JADE.googleMap.divId);var svEl=document.getElementById('map-svDiv');var containerEl=document.getElementById('map-container');JADE.googleMap.orgSVType=JADE.googleMap.streetViewType;JADE.googleMap.streetViewType=1;if(svEl.style.display=='block'){if(!JADE.googleMap.hasStreetViewOverlay){var firstLatLng=this.latLngArray[0];JADE.googleMap.addStreetView(firstLatLng.lat,firstLatLng.lng);if(!JADE.googleMap.overlayInstance){JADE.googleMap.overlayInstance=new GStreetviewOverlay();JADE.googleMap.map.addOverlay(this.overlayInstance);}
JADE.googleMap.hasStreetViewOverlay=true;}}
mapEl.style.display='block';svEl.style.display='none';JADE.googleMap.orgwidth=mapEl.style.width;JADE.googleMap.orgHeight=mapEl.style.height;mapEl.style.width='700px';mapEl.style.height='500px';svEl.style.width=mapEl.style.width;svEl.style.height=mapEl.style.height;if(JADE.googleMap.SVpanorama){JADE.googleMap.SVpanorama.checkResize();}
containerEl.style.position='absolute';JADE.googleMap.setMenu({close:0});addStreetViewControl();JADE.googleMap.activateMore();JADE.googleMap.maximised=true;if(JADE.googleMap.hasMenu){var el=document.getElementById('map-max');if(el){el.innerHTML='<a href="#" onclick="JADE.googleMap.dock(); return false;">view small map</a>';}}},dock:function(){var mapEl=document.getElementById(JADE.googleMap.divId);var svEl=document.getElementById('map-svDiv');var containerEl=document.getElementById('map-container');containerEl.style.position='relative';JADE.googleMap.streetViewType=JADE.googleMap.orgSVType;if(JADE.googleMap.orgwidth){mapEl.style.width=JADE.googleMap.orgwidth;svEl.style.width=JADE.googleMap.orgwidth;}
if(JADE.googleMap.orgHeight){mapEl.style.height=JADE.googleMap.orgHeight;svEl.style.height=JADE.googleMap.orgHeight;}
if(JADE.googleMap.SVpanorama){JADE.googleMap.SVpanorama.checkResize();}
JADE.googleMap.map.checkResize();if(JADE.googleMap.hasStreetViewOverlay){mapEl.style.display='none';svEl.style.display='block';JADE.googleMap.map.removeOverlay(JADE.googleMap.SVmarker);if(JADE.googleMap.overlayInstance){JADE.googleMap.map.removeOverlay(JADE.googleMap.overlayInstance);JADE.googleMap.overlayInstance=null;}
JADE.googleMap.hasStreetViewOverlay=false;}else{mapEl.style.display='block';svEl.style.display='none';}
JADE.googleMap.setMenu({close:0,streetview:1});addStreetViewControl();JADE.googleMap.activateMore();JADE.googleMap.maximised=false;if(JADE.googleMap.hasMenu){var el=document.getElementById('map-max');if(el){el.innerHTML='<a href="#" onclick="JADE.googleMap.undock(); return false;">view large map</a>'}}},showSupplier:function(supplierCode){JADE.googleMap.showWait();document.getElementById(JADE.googleMap.divId).scrollIntoView(true);var rePosed=false;if(supplierCode){rePosed=true;JADE.googleMap.restorePos();}
JADE.googleMap.showWait();supplierCode=(supplierCode)?supplierCode:JADE.googleMap.lookForSupplierCode;JADE.googleMap.lookForSupplierCode=supplierCode;if(!JADE.googleMap.jasonDate||rePosed){setTimeout("JADE.googleMap.showSupplier()",10);return;}
JADE.googleMap.showWait();var title=JADE.googleMap.supplierCodeToNameArray[supplierCode];var found=false;if(!title){alert('A map for this hotel is currently not available.');if(JADE.googleMap.inDebug){GLog.write('Supplier Code: '+supplierCode+'. Not on map!');}
JADE.googleMap.hideWait();return false;}
for(var i=0;i<JADE.googleMap.cluster._mapMarkers.length;i++){JADE.googleMap.showWait();if(JADE.googleMap.cluster._mapMarkers[i].getTitle()==title){JADE.googleMap.cancelMoveEnd=true;JADE.googleMap.cluster.triggerClick(i);JADE.googleMap.cancelMoveEnd=true;found=true;break;}}
if(!found){if(JADE.googleMap.inDebug){GLog.write('Supplier: '+title+' ('+supplierCode+'). Not Found!');}}
JADE.googleMap.hideWait();},addMap:function(divId,zoomValue){JADE.googleMap.divId=divId;zoomValue=zoomValue?zoomValue:15;if(GBrowserIsCompatible()){if(this.latLngArray.length==0||!this.latLngArray[0].lat||!this.latLngArray[0].lng){JADE.googleMap.removeMap(divId);return false;}
var mapEl=document.getElementById(JADE.googleMap.divId);var orgDisplay=null;if(mapEl){if(mapEl.style.display!='block'&&mapEl.style.display!='inline'&&mapEl.style.width=='100%'){orgDisplay=mapEl.style.display;mapEl.style.display='block';}}
JADE.googleMap.client=new GStreetviewClient();JADE.googleMap.map=new GMap2(document.getElementById(divId));JADE.googleMap.map.setCenter(new GLatLng(JADE.googleMap.latLngArray[0].lat,JADE.googleMap.latLngArray[0].lng),zoomValue);JADE.googleMap.savePos();if(orgDisplay){mapEl.style.display=orgDisplay;}
JADE.googleMap.map.addMapType(G_PHYSICAL_MAP);JADE.googleMap.map.addControl(new GHierarchicalMapTypeControl(true));JADE.googleMap.map.addControl(new GLargeMapControl());JADE.googleMap.ovControl=new GOverviewMapControl();JADE.googleMap.map.addControl(JADE.googleMap.ovControl);setTimeout("JADE.googleMap.checkOverview()",100);_mPreferMetric=true;var mapScaleControl=new GScaleControl(125);var bottomRight=new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(5,20));JADE.googleMap.map.addControl(mapScaleControl,bottomRight);new GKeyboardHandler(JADE.googleMap.map);JADE.googleMap.map.enableContinuousZoom();JADE.googleMap.map.enableDoubleClickZoom();JADE.googleMap.map.hideControls();GEvent.addListener(JADE.googleMap.map,"mouseover",function(){if(!JADE.googleMap.SVfullScreen){JADE.googleMap.map.showControls();}});GEvent.addListener(JADE.googleMap.map,"mouseout",function(){if(!JADE.googleMap.waitControl){JADE.googleMap.map.hideControls();}else{if(!JADE.googleMap.waitControl.isVisible){JADE.googleMap.map.hideControls();}}});GEvent.addListener(JADE.googleMap.map,"zoomend",function(){JADE.googleMap.map.closeInfoWindow();});if(GET('GMDEBUG')=='DUX'){showDuck();}}else{JADE.googleMap.removeMap(divId);return false;}},activateDrivingDirections:function(){JADE.googleMap.hasDrivingDirections=true;},activateMore:function(){createMore();JADE.googleMap.hasLayerControl=true;},activateStreetView:function(){addStreetViewControl();JADE.googleMap.hasStreetView=true;JADE.googleMap.streetViewType=1;},checkOverview:function(){overmap=JADE.googleMap.ovControl;if(overmap){JADE.googleMap.ovControl.hide();}else{setTimeout("JADE.googleMap.checkOverview()",100);}},getMapBounds:function(how){how=how?true:false;var bounds=JADE.googleMap.map.getBounds();var southWest=bounds.getSouthWest();var northEast=bounds.getNorthEast();if(how){s='?';}else{s='&';}
s=s+'maxLng='+northEast.lng()+'&minLng='+southWest.lng();s=s+'&maxLat='+northEast.lat()+'&minLat='+southWest.lat();return s;},setupLoading:function(message){message=message?message:'Loading Markers...';JADE.googleMap.loadingControl=new HtmlControl('<div style="background: #FFFFFF; border: 1px #000000 solid"><p>'+message+'</p></div>',{visible:false});JADE.googleMap.map.addControl(JADE.googleMap.loadingControl,new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(7,50)));},showLoading:function(){if(!JADE.googleMap.loadingControl){JADE.googleMap.setupLoading();}
JADE.googleMap.loadingControl.setVisible(true);},hideLoading:function(){if(JADE.googleMap.loadingControl){JADE.googleMap.loadingControl.setVisible(false);}},setupWait:function(message){message=message?message:'Please wait...';JADE.googleMap.waitControl=new HtmlControl('<div style="background: #FFFFFF; border: 1px #000000 solid"><p>'+message+'</p></div>',{visible:false});JADE.googleMap.map.addControl(JADE.googleMap.waitControl);},showWait:function(){if(!JADE.googleMap.waitControl){JADE.googleMap.setupWait();}
JADE.googleMap.waitControl.setVisible(true);},hideWait:function(){if(JADE.googleMap.waitControl){JADE.googleMap.waitControl.setVisible(false);}},setClustering:function(value){value=value?true:false;JADE.googleMap.cluster.clusteringEnabled=value;JADE.googleMap.cluster.refresh(true);},setZoom:function(zoomLevel){JADE.googleMap.map.setZoom(zoomLevel);},changeMapSize:function(dx,dy){var mapel=map.getContainer();var width=parseInt(mapEl.style.width);var height=parseInt(mapEl.style.height);if(width<150){width=150;resizable=false;}
if(height<150){height=150;resizable=false;}
mapel.style.width=(width+dx)+"px";mapel.style.height=(height+dy)+"px";map.checkResize();},resizeMap:function(){var mapEl=document.getElementById(JADE.googleMap.divId);mapEl.style.width="10px";mapEl.style.width="100%";JADE.googleMap.map.checkResize();},addWatchResize:function(){if(window.attachEvent){window.attachEvent("onresize",JADE.googleMap.resizeMap);}else{window.addEventListener("resize",JADE.googleMap.resizeMap,false);}},importanceOrder:function(marker,b)
{if(marker.getPoint()){return GOverlay.getZIndex(marker.getPoint().lat())+marker.importance*1000000;}
return 1;},addMarker:function(lat,lng,info,title,showOnOver,supplierCode,type,noLink){if(!JADE.googleMap.map){return false;}
showOnOver=showOnOver?true:false;noLink=noLink?true:false;type=type?type:'AC';var point=new GLatLng(lat,lng);var icon=createMarkerIcon("#00FF00");var icon2=createMarkerIcon('#FFFFFF','#AAAAAA');var normImage=icon.image;var overImage=icon2.image;markerOptions={title:title,icon:icon};var marker=new GMarker(point,markerOptions);JADE.googleMap.staticMarkersArray[this.staticMarkersArray.length]=marker;if(supplierCode){GEvent.addListener(marker,"click",function(){marker.openInfoWindowHtml('<div class="gmSupplierInfo" id="gmSupplier_'+supplierCode+'"><h3>Loading...</h3><b>'+title+'</b></div>');});GEvent.addListener(marker,'infowindowopen',function(){getSupplierInfo(supplierCode,type,noLink);});}else{if(info){GEvent.addListener(marker,"click",function(){marker.openInfoWindowHtml(info);});}}
GEvent.addListener(marker,'mouseover',function(){marker.setImage(overImage);if(showOnOver){marker.openInfoWindowHtml(info);}});GEvent.addListener(marker,'mouseout',function(){marker.setImage(normImage);if(showOnOver){marker.closeInfoWindow();}});JADE.googleMap.map.addOverlay(marker);},addStreetView:function(lat,lng){var latlng=new GLatLng(lat,lng);var guyIcon=new GIcon(G_DEFAULT_ICON);guyIcon.image="http://maps.google.com/intl/en_us/mapfiles/cb/man_arrow-0.png";guyIcon.transparent="http://maps.google.com/intl/en_us/mapfiles/cb/man-pick.png";guyIcon.imageMap=[26,13,30,14,32,28,27,28,28,36,18,35,18,27,16,26,16,20,16,14,19,13,22,8];guyIcon.iconSize=new GSize(49,52);guyIcon.iconAnchor=new GPoint(25,35);guyIcon.infoWindowAnchor=new GPoint(25,5);JADE.googleMap.SVmarker=new GMarker(latlng,{icon:guyIcon,draggable:true,zIndexProcess:JADE.googleMap.importanceOrder});JADE.googleMap.SVmarker.importance=99;JADE.googleMap.map.addOverlay(this.SVmarker);JADE.googleMap.SVlastMarkerLocation=latlng;GEvent.addListener(this.SVmarker,"dragend",JADE.googleMap.onDragEnd);GEvent.addListener(this.SVmarker,"click",JADE.googleMap.openPanoramaBubble);this.toggleOverlay();},onDragEnd:function(){var latlng=JADE.googleMap.SVmarker.getLatLng();if(JADE.googleMap.SVpanorama){JADE.googleMap.client.getNearestPanorama(latlng,JADE.googleMap.onResponse);}},onResponse:function(response){if(response.code!=200){JADE.googleMap.SVmarker.setLatLng(JADE.googleMap.lastMarkerLocation);}else{var latlng=new GLatLng(response.Location.lat,response.Location.lng);JADE.googleMap.SVmarker.setLatLng(latlng);JADE.googleMap.lastMarkerLocation=latlng;JADE.googleMap.openPanoramaBubble();}},openPanoramaBubble:function(){var contentNode=document.createElement('div');contentNode.style.textAlign='center';contentNode.style.width='300px';contentNode.style.height='300px';contentNode.innerHTML='Loading panorama...';JADE.googleMap.SVmarker.openInfoWindow("<span style='font-size: 10px;'>Street View</span><div id='pano' style='width:200px;height:200px;'></div>",{maxContent:contentNode,maxTitle:"Full screen"});SVpanorama=new GStreetviewPanorama(document.getElementById("pano"));JADE.googleMap.SVpanorama=SVpanorama;JADE.googleMap.SVpanorama.setLocationAndPOV(JADE.googleMap.SVmarker.getLatLng(),null);GEvent.addListener(JADE.googleMap.SVpanorama,"error",JADE.googleMap.handleSVErrors);GEvent.addListener(JADE.googleMap.SVpanorama,"newpano",JADE.googleMap.onNewLocation);GEvent.addListener(JADE.googleMap.SVpanorama,"yawchanged",JADE.googleMap.onYawChange);var iw=JADE.googleMap.map.getInfoWindow();GEvent.addListener(iw,"maximizeend",function(){JADE.googleMap.SVpanorama.setContainer(contentNode);window.setTimeout("JADE.googleMap.SVpanorama.checkResize()",5);JADE.googleMap.SVfullScreen=true;});GEvent.addListener(iw,"restoreend",function(){JADE.googleMap.SVfullScreen=false;});GEvent.addListener(iw,"closeclick",function(){JADE.googleMap.SVfullScreen=false;});},onNewLocation:function(lat,lng){var latlng=new GLatLng(lat,lng);JADE.googleMap.SVmarker.setLatLng(latlng);},onYawChange:function(newYaw){var GUY_NUM_ICONS=16;var GUY_ANGULAR_RES=360/GUY_NUM_ICONS;if(newYaw<0){newYaw+=360;}
guyImageNum=Math.round(newYaw/GUY_ANGULAR_RES)%GUY_NUM_ICONS;guyImageUrl="http://maps.google.com/intl/en_us/mapfiles/cb/man_arrow-"+guyImageNum+".png";JADE.googleMap.SVmarker.setImage(guyImageUrl);},toggleOverlay:function(){if(!JADE.googleMap.overlayInstance){JADE.googleMap.overlayInstance=new GStreetviewOverlay();JADE.googleMap.map.addOverlay(this.overlayInstance);}else{JADE.googleMap.map.removeOverlay(this.overlayInstance);JADE.googleMap.overlayInstance=null;}},toggleStreetView:function(){if(!JADE.googleMap.hasStreetViewOverlay){var center=JADE.googleMap.map.getCenter();JADE.googleMap.addStreetView(center.lat(),center.lng());if(!JADE.googleMap.overlayInstance){JADE.googleMap.overlayInstance=new GStreetviewOverlay();JADE.googleMap.map.addOverlay(this.overlayInstance);}
JADE.googleMap.hasStreetViewOverlay=true;}else{JADE.googleMap.map.removeOverlay(JADE.googleMap.SVmarker);if(JADE.googleMap.overlayInstance){JADE.googleMap.map.removeOverlay(JADE.googleMap.overlayInstance);JADE.googleMap.overlayInstance=null;}
JADE.googleMap.hasStreetViewOverlay=false;}}};var markerClassTypes=new Array('AC','AT','CH','PI','airport','ferry','bowlingClub','trainStation','cinema','entertainment','golfCourse','library','lighthouse','nationalPark','parking','racecourse','restArea','skiing','winery');var markerClasses=new Array();markerClasses['AC']=new Array('Accommodation','AC');markerClasses['AT']=new Array('Attractions','AT');markerClasses['CH']=new Array('Car Hire','CH');markerClasses['PI']=new Array('Point Of Intrest','bluePin');markerClasses['airport']=new Array('Airports','airport');markerClasses['ferry']=new Array('Ferries','ferry');markerClasses['bowlingClub']=new Array('Bowling Clubs','pinkPin');markerClasses['trainStation']=new Array('Train Stations','train');markerClasses['cinema']=new Array('Cinemas','movies');markerClasses['entertainment']=new Array('Entertainment','arts');markerClasses['golfCourse']=new Array('Golf Courses','golf');markerClasses['library']=new Array('Libraries','purplePin');markerClasses['lighthouse']=new Array('Lighthouses','lighthouse');markerClasses['nationalPark']=new Array('National Parks','tree');markerClasses['parking']=new Array('Parking','parking');markerClasses['racecourse']=new Array('Racecourses','horse');markerClasses['restArea']=new Array('Rest Areas','picnic');markerClasses['skiing']=new Array('Skiing Centers','ski');markerClasses['winery']=new Array('Wineries','bar');var stdMarkers=new Array();stdMarkers['train']=new Array('http://maps.google.com/mapfiles/ms/micons/rail.png','.shadow');stdMarkers['bus']=new Array('http://maps.google.com/mapfiles/ms/micons/bus.png','.shadow');stdMarkers['taxi']=new Array('http://maps.google.com/mapfiles/ms/micons/cabs.png','.shadow');stdMarkers['ferry']=new Array('http://maps.google.com/mapfiles/ms/micons/ferry.png','.shadow');stdMarkers['helicopter']=new Array('http://maps.google.com/mapfiles/ms/micons/helicopter.png','.shadow');stdMarkers['airport']=new Array('http://maps.google.com/mapfiles/ms/micons/plane.png','.shadow');stdMarkers['subway']=new Array('http://maps.google.com/mapfiles/ms/micons/subway.png','.shadow');stdMarkers['tram']=new Array('http://maps.google.com/mapfiles/ms/micons/tram.png','.shadow');stdMarkers['disabled']=new Array('http://maps.google.com/mapfiles/ms/micons/wheel_chair_accessible.png','.shadow');stdMarkers['tree']=new Array('http://maps.google.com/mapfiles/ms/micons/tree.png','.shadow');stdMarkers['ski']=new Array('http://maps.google.com/mapfiles/ms/micons/ski.png','.shadow');stdMarkers['picnic']=new Array('http://maps.google.com/mapfiles/ms/micons/picnic.png','.shadow');stdMarkers['golf']=new Array('http://maps.google.com/mapfiles/ms/micons/golfer.png','.shadow');stdMarkers['redCar']=new Array('http://maps.google.com/mapfiles/kml/pal4/icon15.png','s');stdMarkers['bar']=new Array('http://maps.google.com/mapfiles/ms/micons/bar.png','.shadow');stdMarkers['horse']=new Array('http://maps.google.com/mapfiles/ms/micons/horsebackriding.png','.shadow');stdMarkers['parking']=new Array('http://maps.google.com/mapfiles/ms/micons/parkinglot.png','.shadow');stdMarkers['bluePin']=new Array('http://maps.google.com/mapfiles/ms/micons/blue-pushpin.png','.shadow');stdMarkers['purplePin']=new Array('http://maps.google.com/mapfiles/ms/micons/purple-pushpin.png','.shadow');stdMarkers['pinkPin']=new Array('http://maps.google.com/mapfiles/ms/micons/pink-pushpin.png','.shadow');stdMarkers['lighthouse']=new Array('http://maps.google.com/mapfiles/kml/pal3/icon28.png','s');stdMarkers['arts']=new Array('http://maps.google.com/mapfiles/ms/micons/arts.png','.shadow');stdMarkers['movies']=new Array('http://maps.google.com/mapfiles/ms/micons/movies.png','.shadow');function getMarkersShadow(name)
{var MarkerPart=stdMarkers[name][0];var shadowPart=stdMarkers[name][1];var urlArray=MarkerPart.split(".");if(urlArray.length<2){return null;}
urlArray[urlArray.length-2]=urlArray[urlArray.length-2]+shadowPart;var url=urlArray.join(".");return url;}
function showMarkerClasses()
{for(var i=0;i<markerClassTypes.length;i++){var type=markerClassTypes[i];if(type!='AC'&&type!='AT'&&type!='CH'){var markerStr=markerClasses[type][1];document.write('<span>'+'<input type="checkbox" name="mClass" id="mClass" value="1" />'+'<img src="'+stdMarkers[markerStr][0]+'" />'+markerClasses[type][0]+'</span><br />');}}}
function createIcon(iconUrl,shadowUrl)
{var baseIcon=new GIcon();baseIcon.iconAnchor=new GPoint(9,34);baseIcon.infoWindowAnchor=new GPoint(9,2);baseIcon.infoShadowAnchor=new GPoint(18,25);var icon=new GIcon(baseIcon);icon.image=iconUrl;icon.shadow=shadowUrl;return icon;}
function createEarthIcon(iconUrl,shadowUrl)
{var baseIcon=new GIcon();baseIcon.iconSize=new GSize(32,32);baseIcon.shadowSize=new GSize(56,32);baseIcon.iconAnchor=new GPoint(16,32);baseIcon.infoWindowAnchor=new GPoint(16,0);var icon=new GIcon(baseIcon,iconUrl,null,shadowUrl);return icon;}
function createStdIcon(type)
{var iconUrl=stdMarkers[type][0];var shadowUrl=getMarkersShadow(type);if(stdMarkers[type][1]=='s'){var icon=createEarthIcon(iconUrl,shadowUrl);}else{var icon=createIcon(iconUrl,shadowUrl);}
return icon;}
function createMarkerIcon(primaryColour,cornerColour,strokeColour,size)
{primaryColour=primaryColour?primaryColour:"#FF0000";cornerColour=cornerColour?cornerColour:"#FFFFFF";strokeColour=strokeColour?strokeColour:"#000000";size=size?size:32;var iconOptions={};iconOptions.width=size;iconOptions.height=size;iconOptions.primaryColor=primaryColour;iconOptions.strokeColor=strokeColour;iconOptions.cornerColor=cornerColour;var icon=MapIconMaker.createMarkerIcon(iconOptions);return icon;}
function createLabeledMarkerIcon(primaryColour,label,star,labelColour,strokeColour,starPrimaryColour,starStrokeColour)
{primaryColour=primaryColour?primaryColour:"#FF0000";labelColour=labelColour?labelColour:"#000000";strokeColour=strokeColour?strokeColour:"#000000";if(star){starPrimaryColour=starPrimaryColour?starPrimaryColour:"#FFFF00";starStrokeColour=starStrokeColour?starStrokeColour:"#0000FF";}
var iconOptions={};iconOptions.primaryColor=primaryColour;iconOptions.strokeColor=strokeColour;iconOptions.label=label;iconOptions.labelColor=labelColour;if(star){iconOptions.addStar=true;iconOptions.starPrimaryColor=starPrimaryColour;iconOptions.starStrokeColor=starStrokeColour;}
var icon=MapIconMaker.createLabeledMarkerIcon(iconOptions);return icon;}
function createFlatMarkerIcon(primaryColour,label,circle,labelColour,width,height,labelSize)
{primaryColour=primaryColour?primaryColour:"#FF0000";labelColour=labelColour?labelColour:"#000000";shape=circle?'circle':'roundrect';width=width?width:50;height=height?height:width;labelSize=labelSize?labelSize:0;var iconOptions={};iconOptions.width=width;iconOptions.height=height;iconOptions.primaryColor=primaryColour;iconOptions.label=label;iconOptions.labelColor=labelColour;iconOptions.labelSize=labelSize;iconOptions.shape=shape;var icon=MapIconMaker.createFlatIcon(iconOptions);return icon;}
function createClusterMarkerIcon()
{var icon=createFlatMarkerIcon('#FF66FF','Group',false,'#000000',50,25);return icon;}
function createClusterOverMarkerIcon()
{var icon=createFlatMarkerIcon('#FFFFFF','Group',false,'#000000',50,25);return icon;}
function createClassMarkerIcon(type,label,star)
{var primaryColour="#FF0000";var labelColour="#000000";switch(type)
{case'AC':primaryColour="#00FF00";break;case'AA':primaryColour="#FF9999";break;case'AT':primaryColour="#0000FF";labelColour="#CCCCCC";break;case'PI':primaryColour="#009900";break;case'CH':primaryColour="#FFFF00";break;case'XX':primaryColour="#FFFFFF";break;default:return null;}
var icon=createLabeledMarkerIcon(primaryColour,label,star,labelColour)
return icon;}
var MapIconMaker={};MapIconMaker.createMarkerIcon=function(opts){var width=opts.width||32;var height=opts.height||32;var primaryColor=opts.primaryColor||"#ff0000";var strokeColor=opts.strokeColor||"#000000";var cornerColor=opts.cornerColor||"#ffffff";var baseUrl="http://chart.apis.google.com/chart?cht=mm";var iconUrl=baseUrl+"&chs="+width+"x"+height+"&chco="+cornerColor.replace("#","")+","+
primaryColor.replace("#","")+","+
strokeColor.replace("#","")+"&ext=.png";var icon=new GIcon(G_DEFAULT_ICON);icon.image=iconUrl;icon.iconSize=new GSize(width,height);icon.shadowSize=new GSize(Math.floor(width*1.6),height);icon.iconAnchor=new GPoint(width/2,height);icon.infoWindowAnchor=new GPoint(width/2,Math.floor(height/12));icon.printImage=iconUrl+"&chof=gif";icon.mozPrintImage=iconUrl+"&chf=bg,s,ECECD8"+"&chof=gif";iconUrl=baseUrl+"&chs="+width+"x"+height+"&chco="+cornerColor.replace("#","")+","+
primaryColor.replace("#","")+","+
strokeColor.replace("#","");icon.transparent=iconUrl+"&chf=a,s,ffffff11&ext=.png";icon.imageMap=[width/2,height,(7/16)*width,(5/8)*height,(5/16)*width,(7/16)*height,(7/32)*width,(5/16)*height,(5/16)*width,(1/8)*height,(1/2)*width,0,(11/16)*width,(1/8)*height,(25/32)*width,(5/16)*height,(11/16)*width,(7/16)*height,(9/16)*width,(5/8)*height];for(var i=0;i<icon.imageMap.length;i++){icon.imageMap[i]=parseInt(icon.imageMap[i]);}
return icon;};MapIconMaker.createFlatIcon=function(opts){var width=opts.width||32;var height=opts.height||32;var primaryColor=opts.primaryColor||"#ff0000";var shadowColor=opts.shadowColor||"#000000";var label=MapIconMaker.escapeUserText_(opts.label)||"";var labelColor=opts.labelColor||"#000000";var labelSize=opts.labelSize||0;var shape=opts.shape||"circle";var shapeCode=(shape==="circle")?"it":"itr";var baseUrl="http://chart.apis.google.com/chart?cht="+shapeCode;var iconUrl=baseUrl+"&chs="+width+"x"+height+"&chco="+primaryColor.replace("#","")+","+
shadowColor.replace("#","")+"ff,ffffff01"+"&chl="+label+"&chx="+labelColor.replace("#","")+","+labelSize;var icon=new GIcon(G_DEFAULT_ICON);icon.image=iconUrl+"&chf=bg,s,00000000"+"&ext=.png";icon.iconSize=new GSize(width,height);icon.shadowSize=new GSize(0,0);icon.iconAnchor=new GPoint(width/2,height/2);icon.infoWindowAnchor=new GPoint(width/2,height/2);icon.printImage=iconUrl+"&chof=gif";icon.mozPrintImage=iconUrl+"&chf=bg,s,ECECD8"+"&chof=gif";icon.transparent=iconUrl+"&chf=a,s,ffffff01&ext=.png";icon.imageMap=[];if(shapeCode==="itr"){icon.imageMap=[0,0,width,0,width,height,0,height];}else{var polyNumSides=8;var polySideLength=360/polyNumSides;var polyRadius=Math.min(width,height)/2;for(var a=0;a<(polyNumSides+1);a++){var aRad=polySideLength*a*(Math.PI/180);var pixelX=polyRadius+polyRadius*Math.cos(aRad);var pixelY=polyRadius+polyRadius*Math.sin(aRad);icon.imageMap.push(parseInt(pixelX),parseInt(pixelY));}}
return icon;};MapIconMaker.createLabeledMarkerIcon=function(opts){var primaryColor=opts.primaryColor||"#DA7187";var strokeColor=opts.strokeColor||"#000000";var starPrimaryColor=opts.starPrimaryColor||"#FFFF00";var starStrokeColor=opts.starStrokeColor||"#0000FF";var label=MapIconMaker.escapeUserText_(opts.label)||"";var labelColor=opts.labelColor||"#000000";var addStar=opts.addStar||false;var pinProgram=(addStar)?"pin_star":"pin";var baseUrl="http://chart.apis.google.com/chart?cht=d&chdp=mapsapi&chl=";var iconUrl=baseUrl+pinProgram+"'i\\"+"'["+label+"'-2'f\\"+"hv'a\\]"+"h\\]o\\"+
primaryColor.replace("#","")+"'fC\\"+
labelColor.replace("#","")+"'tC\\"+
strokeColor.replace("#","")+"'eC\\";if(addStar){iconUrl+=starPrimaryColor.replace("#","")+"'1C\\"+
starStrokeColor.replace("#","")+"'0C\\";}
iconUrl+="Lauto'f\\";var icon=new GIcon(G_DEFAULT_ICON);icon.image=iconUrl+"&ext=.png";icon.iconSize=(addStar)?new GSize(23,39):new GSize(21,34);return icon;};MapIconMaker.escapeUserText_=function(text){if(text===undefined){return null;}
text=text.replace(/@/,"@@");text=text.replace(/\\/,"@\\");text=text.replace(/'/,"@'");text=text.replace(/\[/,"@[");text=text.replace(/\]/,"@]");return encodeURIComponent(text);};process_json=function(doc,status){if(JADE.googleMap.inDebug){GLog.write('Processing JSON file','#00FF00');}
JADE.googleMap.jasonDate=false;JADE.googleMap.showLoading();if(status!=0&&status!=200){if(status==-1){alert('Our site is currently experiencing a high level of activity.\n\nPlease try again later.');}
if(JADE.googleMap.inDebug){GLog.write('AJAX Error: '+status);}
JADE.googleMap.hideLoading();return null;}
if(doc.match(/^\<div\>/)){doc=doc.replace(/^\<div\>/,'');doc=doc.replace(/\<\/div\>\s$/,'');}
try{var jsonData=eval('('+doc+')');}catch(err){JADE.googleMap.hideLoading();if(JADE.googleMap.inDebug){GLog.write('JSON data error: '+err.message+'. Doc: '+doc);}
return false;}
JADE.googleMap.dynamicMarkersArray=new Array();JADE.googleMap.supplierCodeToNameArray=new Array();if(JADE.googleMap.inDebug){GLog.write('JASON markers: '+jsonData.markers.length);}
for(var i=0;i<jsonData.markers.length;i++){var point=new GLatLng(jsonData.markers[i].lat,jsonData.markers[i].lng);var icon=createClassMarkerIcon(jsonData.markers[i].type,jsonData.markers[i].label,jsonData.markers[i].prefered);var icon2=createClassMarkerIcon('XX',jsonData.markers[i].label,jsonData.markers[i].prefered);var marker=createSupplierMarker(point,jsonData.markers[i].info,icon,icon2,jsonData.markers[i].name,jsonData.markers[i].type);if(jsonData.markers[i].center){JADE.googleMap.setCentre(jsonData.markers[i].lat,jsonData.markers[i].lng);}}
var clusterIcon=createMarkerIcon('#00FF00','#FFFFFF',"#000000",52);var clusterOverIcon=createMarkerIcon('#FFFFFF','#AAAAAA',"#000000",52);if(!JADE.googleMap.cluser){JADE.googleMap.cluster=new ClusterMarker(JADE.googleMap.map,{clusterMarkerTitle:'There is more than one item located here.\nClick to see more information.',clusterMarkerClick:myClusterClick,clusterMarkerIcon:clusterIcon,clusterOverMarkerIcon:clusterOverIcon});}
JADE.googleMap.cluster.removeMarkers();var jointMarkerArray=JADE.googleMap.dynamicMarkersArray.concat(JADE.googleMap.staticMarkersArray);JADE.googleMap.cluster.addMarkers(jointMarkerArray);JADE.googleMap.cluster.refresh(true);JADE.googleMap.hideLoading();JADE.googleMap.jasonDate=true;}
function createMarker(point,html,icon,title){var marker=new GMarker(point,{title:title,icon:icon});JADE.googleMap.dynamicMarkersArray.push(marker);GEvent.addListener(marker,"click",function(){marker.openInfoWindowHtml(html);});return marker;}
function createSupplierMarker(point,supplierCode,icon,icon2,title,type,noLink){noLink=noLink?true:false;var marker=new GMarker(point,{title:title,icon:icon});JADE.googleMap.dynamicMarkersArray.push(marker);JADE.googleMap.supplierCodeToNameArray[supplierCode]=title;var normImage=icon.image;var overImage=icon2.image;GEvent.addListener(marker,"click",function(){JADE.googleMap.cancelMoveEnd=true;marker.openInfoWindowHtml('<div class="gmSupplierInfo" id="gmSupplier_'+supplierCode+'"><h3>Loading...</h3><b>'+title+'</b></div>');JADE.googleMap.cancelMoveEnd=true;});GEvent.addListener(marker,'infowindowopen',function(){getSupplierInfo(supplierCode,type,noLink);});GEvent.addListener(marker,'mouseover',function(){marker.setImage(overImage);});GEvent.addListener(marker,'mouseout',function(){marker.setImage(normImage);});return marker;}
function getSupplierInfo(supplierCode,type,noLink)
{type=type?type:'AC';noLink=noLink?true:false;var file=globPathPrefix+'/globals/ajax/googlemaps_supplier_info.xml';file+='?supplierCode='+supplierCode;file+='&type='+type;if(noLink){file+='&noLink=1';}
if(JADE.googleMap.isAccomSearchResults){file+='&searchresults=1';}
var id='gmSupplier_'+supplierCode;var innerDiv=document.getElementById(id);if(innerDiv){AjaxRequest.get({'url':file,'elementId':id,'onSuccess':function(req){var optEl=document.getElementById(req.elementId);optEl.innerHTML=req.responseText;},'timeout':10000,'onTimeout':function(req){var optEl=document.getElementById(req.elementId);optEl.innerHTML='<div id="gmSupplier_'+req.elementId+'"><p>Our site is currently experiencing a high level of activity.<br />Please try again later.</p></div>';},'onError':function(req){var optEl=document.getElementById(req.elementId);optEl.innerHTML='<div id="gmSupplier_'+req.elementId+'"><p><b>Ajax Error!</b><br />Status = '+req.statusText+'.</p></div>';}});}}
function ClusterMarker($map,$options)
{this._map=$map;this._mapMarkers=[];this._iconBounds=[];this._clusterMarkers=[];this._eventListeners=[];if(typeof($options)==='undefined'){$options={};}
this.borderPadding=($options.borderPadding)?$options.borderPadding:256;this.clusteringEnabled=($options.clusteringEnabled===false)?false:true;if($options.clusterMarkerClick){this.clusterMarkerClick=$options.clusterMarkerClick;}
if($options.clusterMarkerIcon){this.clusterMarkerIcon=$options.clusterMarkerIcon;}else{this.clusterMarkerIcon=new GIcon();this.clusterMarkerIcon.image='http://maps.google.com/mapfiles/arrow.png';this.clusterMarkerIcon.iconSize=new GSize(39,34);this.clusterMarkerIcon.iconAnchor=new GPoint(9,31);this.clusterMarkerIcon.infoWindowAnchor=new GPoint(9,31);this.clusterMarkerIcon.shadow='http://www.google.com/intl/en_us/mapfiles/arrowshadow.png';this.clusterMarkerIcon.shadowSize=new GSize(39,34);}
if($options.clusterOverMarkerIcon){this.clusterOverMarkerIcon=$options.clusterOverMarkerIcon;}else{this.clusterOverMarkerIcon=null;}
this.clusterMarkerTitle=($options.clusterMarkerTitle)?$options.clusterMarkerTitle:'Click to zoom in and see %count markers';if($options.fitMapMaxZoom){this.fitMapMaxZoom=$options.fitMapMaxZoom;}
this.intersectPadding=($options.intersectPadding)?$options.intersectPadding:-8;if($options.markers){this.addMarkers($options.markers);}
GEvent.bind(this._map,'moveend',this,this._moveEnd);GEvent.bind(this._map,'zoomend',this,this._zoomEnd);GEvent.bind(this._map,'maptypechanged',this,this._mapTypeChanged);}
ClusterMarker.prototype.addMarkers=function($markers)
{var i;if(!$markers[0]){var $numArray=[];for(i in $markers){$numArray.push($markers[i]);}
$markers=$numArray;}
for(i=$markers.length-1;i>=0;i--){$markers[i]._isVisible=false;$markers[i]._isActive=false;$markers[i]._makeVisible=false;}
this._mapMarkers=this._mapMarkers.concat($markers);}
ClusterMarker.prototype._clusterMarker=function($clusterGroupIndexes)
{function $newClusterMarker($location,$icon,$title){return new GMarker($location,{icon:$icon,title:$title});}
var $clusterGroupBounds=new GLatLngBounds(),i,$clusterMarker,$clusteredMarkers=[],$marker,$this=this,$mapMarkers=this._mapMarkers;for(i=$clusterGroupIndexes.length-1;i>=0;i--){$marker=$mapMarkers[$clusterGroupIndexes[i]];$marker.index=$clusterGroupIndexes[i];$clusterGroupBounds.extend($marker.getLatLng());$clusteredMarkers.push($marker);}
$clusterMarker=$newClusterMarker($clusterGroupBounds.getCenter(),this.clusterMarkerIcon,this.clusterMarkerTitle.replace(/%count/gi,$clusterGroupIndexes.length));$clusterMarker.clusterGroupBounds=$clusterGroupBounds;this._eventListeners.push(GEvent.addListener($clusterMarker,'click',function(){$this.clusterMarkerClick({clusterMarker:$clusterMarker,clusteredMarkers:$clusteredMarkers});}));if(this.clusterOverMarkerIcon){var overImage=this.clusterOverMarkerIcon.image;var normImage=this.clusterMarkerIcon.image;this._eventListeners.push(GEvent.addListener($clusterMarker,'mouseover',function(){$clusterMarker.setImage(overImage);}));this._eventListeners.push(GEvent.addListener($clusterMarker,'mouseout',function(){$clusterMarker.setImage(normImage);}));}
$clusterMarker._childIndexes=$clusterGroupIndexes;for(i=$clusterGroupIndexes.length-1;i>=0;i--){$mapMarkers[$clusterGroupIndexes[i]]._parentCluster=$clusterMarker;}
return $clusterMarker;}
ClusterMarker.prototype.clusterMarkerClick=function($args)
{this._map.setCenter($args.clusterMarker.getLatLng(),this._map.getBoundsZoomLevel($args.clusterMarker.clusterGroupBounds));}
ClusterMarker.prototype._filterActiveMapMarkers=function()
{var $borderPadding=this.borderPadding,$mapZoomLevel=this._map.getZoom(),$mapProjection=this._map.getCurrentMapType().getProjection(),$mapPointSw,$activeAreaPointSw,$activeAreaLatLngSw,$mapPointNe,$activeAreaPointNe,$activeAreaLatLngNe,$activeAreaBounds=this._map.getBounds(),i,$marker,$uncachedIconBoundsIndexes=[],$oldState,$mapMarkers=this._mapMarkers,$iconBounds=this._iconBounds;if($borderPadding){$mapPointSw=$mapProjection.fromLatLngToPixel($activeAreaBounds.getSouthWest(),$mapZoomLevel);$activeAreaPointSw=new GPoint($mapPointSw.x-$borderPadding,$mapPointSw.y+$borderPadding);$activeAreaLatLngSw=$mapProjection.fromPixelToLatLng($activeAreaPointSw,$mapZoomLevel);$mapPointNe=$mapProjection.fromLatLngToPixel($activeAreaBounds.getNorthEast(),$mapZoomLevel);$activeAreaPointNe=new GPoint($mapPointNe.x+$borderPadding,$mapPointNe.y-$borderPadding);$activeAreaLatLngNe=$mapProjection.fromPixelToLatLng($activeAreaPointNe,$mapZoomLevel);$activeAreaBounds.extend($activeAreaLatLngSw);$activeAreaBounds.extend($activeAreaLatLngNe);}
this._activeMarkersChanged=false;if(typeof($iconBounds[$mapZoomLevel])==='undefined'){this._iconBounds[$mapZoomLevel]=[];this._activeMarkersChanged=true;for(i=$mapMarkers.length-1;i>=0;i--){$marker=$mapMarkers[i];$marker._isActive=$activeAreaBounds.containsLatLng($marker.getLatLng())?true:false;$marker._makeVisible=$marker._isActive;if($marker._isActive){$uncachedIconBoundsIndexes.push(i);}}}else{for(i=$mapMarkers.length-1;i>=0;i--){$marker=$mapMarkers[i];$oldState=$marker._isActive;$marker._isActive=$activeAreaBounds.containsLatLng($marker.getLatLng())?true:false;$marker._makeVisible=$marker._isActive;if(!this._activeMarkersChanged&&$oldState!==$marker._isActive){this._activeMarkersChanged=true;}
if($marker._isActive&&typeof($iconBounds[$mapZoomLevel][i])==='undefined'){$uncachedIconBoundsIndexes.push(i);}}}
return $uncachedIconBoundsIndexes;}
ClusterMarker.prototype._filterIntersectingMapMarkers=function()
{var $clusterGroup,i,j,$mapZoomLevel=this._map.getZoom(),$mapMarkers=this._mapMarkers,$iconBounds=this._iconBounds;for(i=$mapMarkers.length-1;i>0;i--)
{if($mapMarkers[i]._makeVisible){$clusterGroup=[];for(j=i-1;j>=0;j--){if($mapMarkers[j]._makeVisible&&$iconBounds[$mapZoomLevel][i].intersects($iconBounds[$mapZoomLevel][j])){$clusterGroup.push(j);}}
if($clusterGroup.length!==0){$clusterGroup.push(i);for(j=$clusterGroup.length-1;j>=0;j--){$mapMarkers[$clusterGroup[j]]._makeVisible=false;}
this._clusterMarkers.push(this._clusterMarker($clusterGroup));}}}}
ClusterMarker.prototype.fitMapToMarkers=function()
{var $mapMarkers=this._mapMarkers,$markersBounds=new GLatLngBounds(),i;for(i=$mapMarkers.length-1;i>=0;i--){$markersBounds.extend($mapMarkers[i].getLatLng());}
var $fitMapToMarkersZoom=this._map.getBoundsZoomLevel($markersBounds);if(this.fitMapMaxZoom&&$fitMapToMarkersZoom>this.fitMapMaxZoom){$fitMapToMarkersZoom=this.fitMapMaxZoom;}
this._map.setCenter($markersBounds.getCenter(),$fitMapToMarkersZoom);this.refresh();}
ClusterMarker.prototype._mapTypeChanged=function()
{this.refresh(true);}
ClusterMarker.prototype._moveEnd=function()
{if(!this._cancelMoveEnd){this.refresh();}else{this._cancelMoveEnd=false;}}
ClusterMarker.prototype._zoomEnd=function()
{this._cancelMoveEnd=true;this.refresh(true);}
ClusterMarker.prototype._preCacheIconBounds=function($indexes,$mapZoomLevel)
{var $mapProjection=this._map.getCurrentMapType().getProjection(),i,$marker,$iconSize,$iconAnchorPoint,$iconAnchorPointOffset,$iconBoundsPointSw,$iconBoundsPointNe,$iconBoundsLatLngSw,$iconBoundsLatLngNe,$intersectPadding=this.intersectPadding,$mapMarkers=this._mapMarkers;for(i=$indexes.length-1;i>=0;i--){$marker=$mapMarkers[$indexes[i]];$iconSize=$marker.getIcon().iconSize;$iconAnchorPoint=$mapProjection.fromLatLngToPixel($marker.getLatLng(),$mapZoomLevel);$iconAnchorPointOffset=$marker.getIcon().iconAnchor;$iconBoundsPointSw=new GPoint($iconAnchorPoint.x-$iconAnchorPointOffset.x-$intersectPadding,$iconAnchorPoint.y-$iconAnchorPointOffset.y+$iconSize.height+$intersectPadding);$iconBoundsPointNe=new GPoint($iconAnchorPoint.x-$iconAnchorPointOffset.x+$iconSize.width+$intersectPadding,$iconAnchorPoint.y-$iconAnchorPointOffset.y-$intersectPadding);$iconBoundsLatLngSw=$mapProjection.fromPixelToLatLng($iconBoundsPointSw,$mapZoomLevel);$iconBoundsLatLngNe=$mapProjection.fromPixelToLatLng($iconBoundsPointNe,$mapZoomLevel);this._iconBounds[$mapZoomLevel][$indexes[i]]=new GLatLngBounds($iconBoundsLatLngSw,$iconBoundsLatLngNe);}}
ClusterMarker.prototype.refresh=function($forceFullRefresh)
{var i,$marker,$zoomLevel=this._map.getZoom(),$uncachedIconBoundsIndexes=this._filterActiveMapMarkers();if(this._activeMarkersChanged||$forceFullRefresh){this._removeClusterMarkers();if(this.clusteringEnabled){if($uncachedIconBoundsIndexes.length>0){this._preCacheIconBounds($uncachedIconBoundsIndexes,$zoomLevel);}
if($zoomLevel<this._map.getCurrentMapType().getMaximumResolution()){this._resetOffsettedMarkers();this._filterIntersectingMapMarkers();}else{this._offsetIntersectingMapMarkers();}}
for(i=this._clusterMarkers.length-1;i>=0;i--){this._map.addOverlay(this._clusterMarkers[i]);}
for(i=this._mapMarkers.length-1;i>=0;i--){$marker=this._mapMarkers[i];if(!$marker._isVisible&&$marker._makeVisible){this._map.addOverlay($marker);$marker._isVisible=true;}
if($marker._isVisible&&!$marker._makeVisible){this._map.removeOverlay($marker);$marker._isVisible=false;}}}}
ClusterMarker.prototype._offsetIntersectingMapMarkers=function()
{var $clusterGroup,i,j,$marker,$mapZoomLevel=this._map.getZoom(),$mapMarkers=this._mapMarkers,$iconBounds=this._iconBounds;var $clusterGroups=[];for(i=$mapMarkers.length-1;i>0;i--){if($mapMarkers[i]._makeVisible){$clusterGroup=[];for(j=i-1;j>=0;j--){if($mapMarkers[j]._makeVisible&&$iconBounds[$mapZoomLevel][i].intersects($iconBounds[$mapZoomLevel][j])){$clusterGroup.push(j);}}
if($clusterGroup.length!==0){$clusterGroup.push(i);for(j=$clusterGroup.length-1;j>=0;j--){$mapMarkers[$clusterGroup[j]]._makeVisible=false;}
$clusterGroups.push($clusterGroup);}}}
if($clusterGroups.length!==0){var $lc=this._map.getCurrentMapType().getTextColor();for(i=$clusterGroups.length-1;i>=0;i--){$clusterGroup=$clusterGroups[i];var $icon=$mapMarkers[$clusterGroup[0]].getIcon();var $markerspace=Math.min($icon.iconSize.width,$icon.iconSize.height)*2;var $count=$clusterGroup.length;var $perimeter=$count*$markerspace;var $radius=$perimeter/2/Math.PI;if($radius<$markerspace){$radius=$markerspace;}
var $slice=(2*Math.PI)/$count;for(j=$clusterGroup.length-1;j>=0;j--){$marker=$mapMarkers[$clusterGroup[j]];$marker._makeVisible=true;$poi=$marker.poi||$marker.getLatLng();if($poi==$marker.getLatLng()){$dx=Math.round(Math.sin($slice*(j+1))*$radius);$dy=Math.round(Math.cos($slice*(j+1))*$radius);$pt=this._map.fromLatLngToDivPixel($poi);$pt.x+=$dx;$pt.y+=$dy;$marker.setLatLng(this._map.fromDivPixelToLatLng($pt));var $pts=new Array();$pts[0]=$poi;$pts[1]=this._map.fromDivPixelToLatLng($pt);$marker.line=new GPolyline($pts,$lc,1,1.0);orgTitle=$marker.getTitle();$marker.poi=$poi;this._map.addOverlay($marker.line);}}}}}
ClusterMarker.prototype._resetOffsettedMarkers=function()
{var $poi,$marker,$mapMarkers=this._mapMarkers,$maxzoom=this._map.getCurrentMapType().getMaximumResolution();for(i=$mapMarkers.length-1;i>0;i--){$marker=$mapMarkers[i];$poi=$marker.poi||$marker.getLatLng();if($poi!=$marker.getLatLng()){$marker.setLatLng($poi);if($marker.line!=null){this._map.removeOverlay($marker.line);}}}}
ClusterMarker.prototype._removeClusterMarkers=function()
{var i,j,$map=this._map,$eventListeners=this._eventListeners,$clusterMarkers=this._clusterMarkers,$childIndexes,$mapMarkers=this._mapMarkers;for(i=$clusterMarkers.length-1;i>=0;i--){$childIndexes=$clusterMarkers[i]._childIndexes;for(j=$childIndexes.length-1;j>=0;j--){delete $mapMarkers[$childIndexes[j]]._parentCluster;}
$map.removeOverlay($clusterMarkers[i]);}
for(i=$eventListeners.length-1;i>=0;i--){GEvent.removeListener($eventListeners[i]);}
this._clusterMarkers=[];this._eventListeners=[];}
ClusterMarker.prototype.removeMarkers=function()
{var i,$mapMarkers=this._mapMarkers,$map=this._map;for(i=$mapMarkers.length-1;i>=0;i--){if($mapMarkers[i]._isVisible){$map.removeOverlay($mapMarkers[i]);}
delete $mapMarkers[i]._isVisible;delete $mapMarkers[i]._isActive;delete $mapMarkers[i]._makeVisible;}
this._removeClusterMarkers();this._mapMarkers=[];this._iconBounds=[];}
ClusterMarker.prototype.triggerClick2=function(title)
{found=false;for(var i=0;i<this._mapMarkers.length;i++){if(this._mapMarkers[i].getTitle()==title){JADE.googleMap.cancelMoveEnd=true;this.triggerClick(i);JADE.googleMap.cancelMoveEnd=true;found=true;break;}}}
ClusterMarker.prototype.triggerClick=function($index)
{JADE.googleMap.showWait();var $marker=this._mapMarkers[$index];if($marker._isVisible){GEvent.trigger($marker,'click');}
else if($marker._isActive){var $clusteredMarkersIndexes=$marker._parentCluster._childIndexes;var $intersectDetected=true;var $uncachedIconBoundsIndexes;var i;var $mapZoomLevel=this._map.getZoom();var $clusteredMarkerIndex;var $iconBounds=this._iconBounds;var $mapMaxZoomLevel=this._map.getCurrentMapType().getMaximumResolution();while($intersectDetected&&$mapZoomLevel<$mapMaxZoomLevel){$intersectDetected=false;$mapZoomLevel++;if(typeof($iconBounds[$mapZoomLevel])==='undefined'){$iconBounds[$mapZoomLevel]=[];this._preCacheIconBounds($clusteredMarkersIndexes,$mapZoomLevel);}else{$uncachedIconBoundsIndexes=[];for(i=$clusteredMarkersIndexes.length-1;i>=0;i--){if(typeof($iconBounds[$mapZoomLevel][$clusteredMarkersIndexes[i]])==='undefined'){$uncachedIconBoundsIndexes.push($clusteredMarkersIndexes[i]);}}
if($uncachedIconBoundsIndexes.length>=1){this._preCacheIconBounds($uncachedIconBoundsIndexes,$mapZoomLevel);}}
for(i=$clusteredMarkersIndexes.length-1;i>=0;i--){$clusteredMarkerIndex=$clusteredMarkersIndexes[i];if($clusteredMarkerIndex!==$index&&$iconBounds[$mapZoomLevel][$clusteredMarkerIndex].intersects($iconBounds[$mapZoomLevel][$index])){$intersectDetected=true;break;}}}
this._map.setCenter($marker.getLatLng(),$mapZoomLevel);JADE.googleMap.cancelMoveEnd=true;this.triggerClick($index);}else{this._map.setCenter($marker.getLatLng());JADE.googleMap.cancelMoveEnd=true;this.triggerClick($index);}
if(JADE.googleMap.hasStreetViewOverlay){var latlng=$marker.getLatLng();JADE.googleMap.SVmarker.setLatLng(latlng);}
JADE.googleMap.hideWait();}
function myClusterClick(args)
{JADE.googleMap.cancelMoveEnd=true;JADE.googleMap.cluster.defaultClickAction=function(){JADE.googleMap.map.setCenter(args.clusterMarker.getLatLng(),JADE.googleMap.map.getBoundsZoomLevel(args.clusterMarker.clusterGroupBounds));delete JADE.googleMap.cluster.defaultClickAction;}
var html='<div class="gmCluster"><p>Click on an item below for more details or <a href="#" onclick="JADE.googleMap.cluster.defaultClickAction(); return false;">zoom in</a> for a closer look.</p><br /><table>';for(i=0;i<args.clusteredMarkers.length;i++){var marker=args.clusteredMarkers[i];var iconFile=marker.getIcon().image;html+='<tr><td><img src="'+iconFile+'" /></td> <td valign="top"> <a href="#" onclick="JADE.googleMap.cluster.triggerClick2(\''+args.clusteredMarkers[i].getTitle()+'\'); return false;">'+args.clusteredMarkers[i].getTitle()+'</a></td></tr>';}
html+='</table><br /></div>';JADE.googleMap.map.openInfoWindowHtml(args.clusterMarker.getLatLng(),html);}
function HtmlControl(html,options)
{this.html=html;this.isVisible=true;this.isPrintable=false;this.isSelectable=false;if(options){this.isVisible=(options.visible===false)?false:true;this.isPrintable=(options.printable===true)?true:false;this.isSelectable=(options.selectable===true)?true:false;}}
HtmlControl.prototype=new GControl();HtmlControl.prototype.initialize=function(map)
{this.div=document.createElement('div');this.div.innerHTML=this.html;this.setVisible(this.isVisible);map.getContainer().appendChild(this.div);return this.div;}
HtmlControl.prototype.getDefaultPosition=function()
{return new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(7,30));}
HtmlControl.prototype.selectable=function()
{return this.isSelectable;}
HtmlControl.prototype.printable=function()
{return this.isPrintable;}
HtmlControl.prototype.setVisible=function(bool)
{this.div.style.display=bool?'':'none';this.isVisible=bool;}
HtmlControl.prototype.visible=function()
{return this.isVisible;}
function toggleClustering()
{if(enableClustering){enableClustering=false;}else{enableClustering=true;}
JADE.googleMap.setClustering(enableClustering);}
function addStreetViewControl()
{if(JADE.googleMap.svType==2){if(JADE.googleMap.svButton){JADE.googleMap.map.removeControl(JADE.googleMap.map.svButton);}}
var html='<div id="svButon" class="gmButton" style="width: 67px;">';if(JADE.googleMap.hasStreetViewOverlay){html+='<b>Street View</b></div>';}else{html+='Street View</div>';}
var pos=new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(154,7));JADE.googleMap.svButton=new HtmlControl(html);JADE.googleMap.map.addControl(JADE.googleMap.svButton,pos);GEvent.addDomListener(document.getElementById('svButon'),"click",function(){JADE.googleMap.toggleStreetView();var button=document.getElementById('svButon');var html='Street View';if(JADE.googleMap.hasStreetViewOverlay){html='<b>'+html+'</b>';}
button.innerHTML=html;});}
function showDuck()
{var file=globPathPrefix+'/libimages/dux2.gif';var html='<div id="iResDuck"style="width: 199px; height:207;"><img src="'+file+'" width="169" height="207" alt="iRes" /></div>';var pos=new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(7,7));JADE.googleMap.map.addControl(new HtmlControl(html),pos);}
function ResizeControl()
{}
ResizeControl.prototype=new GControl();ResizeControl.prototype.initialize=function(map){var resizeButton=document.createElement("div");resizeButton.setAttribute("style","width:20px; height:20px; background-image:url('resize.gif')");resizeButton.innerHTML="+";resizeButton.onmousedown=function(){resizable=true;}
resizeButton.onmouseup=function(){resizable=false;}
var container=map.getContainer();container.appendChild(resizeButton);var terms=container.firstChild.nextSibling.nextSibling;terms.style.marginRight="25px";return resizeButton;}
ResizeControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(0,0));}
function createMore()
{if(JADE.googleMap.hasLayerControl){if(JADE.googleMap.map.morePanel){JADE.googleMap.map.removeControl(JADE.googleMap.map.morePanel);}
if(JADE.googleMap.map.moreButton){JADE.googleMap.map.removeControl(JADE.googleMap.map.moreButton);}}
var html='<div id="moreButon" class="gmButton" style="width: 70px;">More...</div>';var pos=new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(154,7));if(JADE.googleMap.streetViewType==1){pos=new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(227,7));}
moreButton=new HtmlControl(html);JADE.googleMap.map.moreButton=moreButton;JADE.googleMap.map.addControl(moreButton,pos);html='<div id="morePanel" class="gmButton" style="width: 95px;">';html+='<div style="text-align: left;">';html+='<input type="checkbox" id="layerT1" onclick="toggleLayer(\'layerT1\');"><label for="layerT1">Photos</label><br />';html+='<input type="checkbox" id="layerT2" onclick="toggleLayer(\'layerT2\');"><label for="layerT2">Wikipedia</label><br />';html+='</div><hr style="border: 0; width: 80%;" />';html+='<span id="gmHideAll" style="color:#CCCCCC; font-size: 10px">Hide All</span>';html+='</div>';var pos=new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(128,25));if(JADE.googleMap.streetViewType==1){pos=new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(201,25));}
morePanel=new HtmlControl(html,{visible:false});JADE.googleMap.map.morePanel=morePanel;JADE.googleMap.map.addControl(morePanel,pos);GEvent.addDomListener(document.getElementById('morePanel'),'mouseover',function(){morePanel.setVisible(true);});GEvent.addDomListener(document.getElementById('morePanel'),'mouseout',function(){morePanel.setVisible(false);});GEvent.addDomListener(document.getElementById('moreButon'),'mouseover',function(){morePanel.setVisible(true);});GEvent.addDomListener(document.getElementById('moreButon'),'mouseout',function(){morePanel.setVisible(false);});GEvent.addDomListener(document.getElementById('moreButon'),'click',function(){doMoreClick();});}
var layers=[];layers['layerT1']=new GLayer("com.panoramio.all");layers['layerT2']=new GLayer("org.wikipedia.en");layers.length=2;function toggleLayer(id)
{var el=document.getElementById(id);if(el){if(el.checked){JADE.googleMap.moreCount++;JADE.googleMap.map.addOverlay(layers[id]);}else{JADE.googleMap.moreCount--;JADE.googleMap.map.removeOverlay(layers[id]);}
updateMore(JADE.googleMap.moreCount);updateHideAll();}}
function doMoreClick()
{if(JADE.googleMap.moreCount!=0){for(var i=0;i<layers.length;i++){var el=document.getElementById("layerT"+(i+1));if(el){if(el.checked){el.checked='';el.onclick();}}}
JADE.googleMap.moreCount=0;}else{for(var i=0;i<layers.length;i++){var el=document.getElementById("layerT"+(i+1));if(el){if(!el.checked){el.checked=true;el.onclick();}}}
JADE.googleMap.moreCount=layers.length;}
updateMore(JADE.googleMap.moreCount);updateHideAll();}
function updateMore(count)
{var button=document.getElementById('moreButon');var html='More...';if(count){html='<b>'+html+' ('+count+')</b>';}
button.innerHTML=html;}
function updateHideAll()
{var el=document.getElementById('gmHideAll');if(el){if(JADE.googleMap.moreCount){html='<a href="#" onclick="hideAllLayers(); return false;">Hide All</a>';}else{html='Hide All';}
el.innerHTML=html;}}
function hideAllLayers()
{for(var i=0;i<layers.length;i++){var el=document.getElementById("layerT"+(i+1));if(el){if(el.checked){el.checked='';el.onclick();}}}}
function addSuppliers(type)
{type=type?type:'AC';var file=globPathPrefix+'/globals/ajax/googlemaps_supplier_markers.xml';file=file+'?type='+type;file=file+JADE.googleMap.getMapBounds();if(JADE.googleMap.isAccomSearchResults){file+='&searchresults=1';}
JADE.googleMap.jasonDate=false;GDownloadUrl(file,process_json);GEvent.bind(JADE.googleMap.map,'moveend',this,doMoveEnd);}
function addSupplier(supplierCode)
{if(JADE.googleMap.cluster){JADE.googleMap.cluster.removeMarkers();}
var file=globPathPrefix+'/globals/ajax/googlemaps_supplier_marker.xml';file=file+'?supplierCode='+supplierCode;JADE.googleMap.jasonDate=false;GDownloadUrl(file,process_json);}
function doMoveEnd()
{if(!JADE.googleMap.cancelMoveEnd){JADE.googleMap.showLoading();if(JADE.googleMap.cluster){JADE.googleMap.cluster.removeMarkers();}
var file=globPathPrefix+'/globals/ajax/googlemaps_supplier_markers.xml';file=file+"?type=AC";file=file+JADE.googleMap.getMapBounds();if(JADE.googleMap.isAccomSearchResults){file+='&searchresults=1';}
JADE.googleMap.jasonDate=false;GDownloadUrl(file,process_json);}else{JADE.googleMap.cancelMoveEnd=false;}}
JADE.googleMap._construct();if(window.JSLib){JSLib.setLoaded("googleMaps.js");}
if(window.JSLib){JSLib.addVersion("DhtmlLayer.js","DHTML Layers","2.1");}
var DhtmlLayer_layers=new Array();var DhtmlLayer_pageNeedsIFrame=false;function DhtmlLayer(objName)
{this.layerID=arguments[1]?arguments[1]:'DhtmlLayer_layer_'+DhtmlLayer_layers.length;this.objName=objName;this.offsetX=10;this.offsetY=10;this.isMouseover=false;this.hasIframe=false;this.cssClass='DhtmlLayer';this.imgIcon='/libimages/icon.gif';this.imgIconWidth=16;this.imgIconHeight=16;this.isDragable=false;this.globalId=DhtmlLayer_layers.length;this.onlyOne=false;this.documentHide=false;if(sniffer.isIE5_5up&&(!sniffer.isIE7up||DhtmlLayer_pageNeedsIFrame)){if(DhtmlLayer_pageNeedsIFrame){this.enableIframe();}else{var selectTags=document.getElementsByTagName("select");this.enableIframe();}}
DhtmlLayer_layers[DhtmlLayer_layers.length]=this;this.scrollWithPage=false;this.sx=0;this.sy=0;}
DhtmlLayer.prototype.setClassName=function(className)
{if(this.getLayer()){this.cssClass=className;this.getLayer().className=className;}else{this.cssClass=className;}}
DhtmlLayer.prototype.setHTML=function(html)
{this.getLayer().innerHTML=html;}
DhtmlLayer.prototype.addHTML=function(html)
{this.getLayer().innerHTML+=html;}
DhtmlLayer.prototype.setOnlyOne=function(value)
{this.onlyOne=value;}
DhtmlLayer.prototype.setDocumentHide=function(value)
{this.documentHide=value;}
DhtmlLayer.prototype.writeIconHTML=function()
{var text=arguments[0]?arguments[0]:'';var url=arguments[1]?arguments[1]:false;document.write('<a href="#" onClick="'+
this.objName+'.IconWriteClick(event); '+'this.blur(); return false;" class="'+
this.cssClass+'_icon" '+'onmouseover="'+this.objName+'.setMouseover(true);" '+'onmouseout="'+this.objName+'.setMouseover(false);">');if(!url){document.write('<img src="'+this.imgIcon+'" border="0" alt="'+text+'" width="'+this.imgIconWidth+'" height="'+this.imgIconHeight+'" /></a>');}else{document.write(text+'</a>');}}
DhtmlLayer.prototype.IconWriteClick=function(e)
{obj=this;mousePos=getMousePos(e);var x=mousePos[0]+obj.offsetX;var y=mousePos[1]+obj.offsetY;if(sniffer.isIE){var pScroll=getPagePosScroll(false);x=x+pScroll[0];y=y+pScroll[1];}
obj.setLayerPosition(x,y);obj.keepOnPage();obj.show();document.stopBubble(e);return false;}
DhtmlLayer.prototype.writeIconDOM=function()
{var element=arguments[0]?arguments[0]:this.getLayer();var text=arguments[1]?arguments[1]:'';var url=arguments[2]?arguments[2]:false;var iconPos=arguments[3]?arguments[3]:"topleft";if(element==null){element=document.body;}
var a=document.createElement('a');a.setAttribute('href','#');a.className=this.cssClass+'_icon';a.dhtmlLayer=this.globalId;a.onclick=doIconClick;a.onmouseover=doMouseOver;a.onmouseout=doMouseOut;function doIconClick(e)
{var obj=DhtmlLayer_layers[this.dhtmlLayer];mousePos=getMousePos(e);var x=mousePos[0]+obj.offsetX;var y=mousePos[1]+obj.offsetY
obj.setLayerPosition(x,y);obj.keepOnPage();obj.show();this.blur();document.stopBubble(e);return false;}
function doMouseOver(e)
{var obj=DhtmlLayer_layers[this.dhtmlLayer]
obj.setMouseover(true);}
function doMouseOut(e)
{var obj=DhtmlLayer_layers[this.dhtmlLayer]
obj.setMouseover(false);}
a.style.position='absolute';if(url){linkText=document.createTextNode(text);a.appendChild(linkText);}else{var img=document.createElement('img');img.setAttribute('src',this.imgIcon);img.setAttribute('border','0');img.setAttribute('width',this.imgIconWidth);img.setAttribute('height',this.imgIconHeight);img.setAttribute('alt',text);a.appendChild(img);}
if(element!=document.body&&element!=document.documentElement)
{if(iconPos){if(iconPos=="center"){var pos=Position.getCenter(element);}
if(iconPos=="topleft"){var pos=Position.get(element);}
if(iconPos=="topright"){var pos=Position.getVH(element,'top','right');}
if(iconPos=="bottomright"){var pos=Position.getVH(element,'bottom','right');}
if(iconPos=="bottomleft"){var pos=Position.getVH(element,'bottom','left');}
if(pos.width>0){Position.set(a,pos.left,pos.top)}}}
element.appendChild(a);}
DhtmlLayer.prototype.initLayer=function()
{var layer=this.getLayer();if(layer==null){alert('Cannot initialise layer!\n In obj, '+this.objName);return false;}
layer.style.zIndex='999';layer.style.position='absolute';layer.style.visibility='hidden';if(this.hasIframe){this.writeIframe();}}
DhtmlLayer.prototype.writeLayerHTML=function()
{var html='<div class="'+this.cssClass+'" '+'id="'+this.layerID+'" onmouseover="'+this.objName+'.setMouseover(true)" onmouseout="'+this.objName+'.setMouseover(false)"></div>';window.document.write(html);this.initLayer();}
DhtmlLayer.prototype.writeLayerDOM=function()
{element=arguments[0]?arguments[0]:document.body;var div=document.createElement('div');div.className=this.cssClass;div.setAttribute('id',this.layerID);div.layerObjName=this.objName;div.dhtmlLayer=this.globalId;div.onmouseover=doMouseOver;div.onmouseout=doMouseOut;element.appendChild(div);this.initLayer();function doMouseOver(e)
{var obj=DhtmlLayer_layers[this.dhtmlLayer]
obj.setMouseover(true);}
function doMouseOut(e)
{var obj=DhtmlLayer_layers[this.dhtmlLayer]
obj.setMouseover(false);}}
DhtmlLayer.prototype.writeIframe=function()
{if(!this.getIframe()){var layer=this.getLayer();var iframe=document.createElement('iframe');if(document.location.protocol=="https:"){var blankFile=globPathPrefix+'/globals/blank.html';iframe.setAttribute('src',blankFile);}else{iframe.setAttribute('src','JavaScript:void(0);');}
iframe.setAttribute('id',this.layerID+'_iframe');iframe.setAttribute('frameborder','0');iframe.setAttribute('scrolling','no');iframe.style.position='absolute';iframe.style.filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';iframe.style.zIndex=layer.style.zIndex-1;iframe.style.visibility='hidden';if(layer.nextSibling){layer.parentNode.insertBefore(iframe,layer.nextSibling);}else{layer.parentNode.appendChild(iframe);}}}
DhtmlLayer.prototype.enableIframe=function()
{this.hasIframe=true;}
DhtmlLayer.prototype.disableIframe=function()
{var iframe=this.getIframe().style.visibility='hidden';this.hasIframe=false;}
DhtmlLayer.prototype.setCssClass=function(cssClass)
{this.cssClass=cssClass;}
DhtmlLayer.prototype.setIcon=function(imgIcon,w,h)
{this.imgIcon=imgIcon;if(w){this.imgIconWidth=w;}
if(h){this.imgIconHeight=h;}}
DhtmlLayer.prototype.hide=function()
{var el=this.getLayer();el.style.visibility='hidden';if(this.hasIframe){this.getIframe().style.visibility='hidden';}
if(this.documentHide){document.deactivateOnClickHandler(this.objName+'.hide');}}
DhtmlLayer.prototype.show=function()
{if(this.onlyOne){DhtmlLayer.hideIfCan();}
this.getLayer().style.visibility='visible';if(this.hasIframe){this.getIframe().style.width=this.getLayer().offsetWidth;this.getIframe().style.height=this.getLayer().offsetHeight;this.getIframe().style.visibility='visible';}
if(this.documentHide){document.addOnClickHandler(this.objName+'.hide');}}
DhtmlLayer.prototype.setOffsetX=function(Xoffset)
{this.offsetX=Xoffset;}
DhtmlLayer.prototype.setOffsetY=function(Yoffset)
{this.offsetY=Yoffset;}
DhtmlLayer.prototype.setLayerPositionToMouse=function(e,pos)
{pos=pos?pos:'left';var mousePos=getMousePos(e);var x=mousePos[0];var y=mousePos[1];if(pos=='left'){x=x+this.offsetX;y=y+this.offsetY;}
if(pos=='right'){var layer=this.getLayer();var pos=Position.get(layer);x=x-pos.width;x=x+this.offsetX;}
if(pos=='center'){var layer=this.getLayer();var pos=Position.get(layer);x=x-(pos.width/2);x=x+this.offsetX;y=y-(pos.height/2);y=y+this.offsetY;}
if(pos=='centertop'){var layer=this.getLayer();var pos=Position.get(layer);x=x-(pos.width/2);x=x+this.offsetX;}
this.setLayerPosition(x,y);}
DhtmlLayer.prototype.notOverlapMouse=function(e)
{var mousePos=getMousePos(e);var layer=this.getLayer();var pos=Position.get(layer);var x=pos.left;var y=pos.top;if(mousePos[0]>=pos.left&&mousePos[0]<=pos.width){x=mousePos[0]+1;}
if(mousePos[1]>=pos.top&&mousePos[1]<=pos.height){y=mousePos[1]+1;}
if(y!=pos.top||x!=pos.left){this.setLayerPosition(x,y);}}
DhtmlLayer.prototype.keepOnPage=function(nudge,useOffset)
{nudge=nudge?nudge:false;useOffset=useOffset?useOffset:true;var layer=this.getLayer();var pos=Position.get(layer);var pagePos=getPagePosScroll(true);var x=pos.left;var y=pos.top;if((pos.top+pos.height)>pagePos[1]){if(!nudge&&(pos.top-pos.height)>=0){y=y-pos.height;if(useOffset){y=y-(this.offsetY+5);}}else{y=pagePos[1]-(pos.height+3);}}
if((pos.left+pos.width)>pagePos[0]){if(!nudge&&(pos.left-pos.width)>=0){x=x-pos.width;}else{x=pagePos[0]-(pos.width+3);}}
if(y<0){y=0;}
if(x<0){x=0;}
if(y!=pos.top||x!=pos.left){this.setLayerPosition(x,y);}}
DhtmlLayer.prototype.setLayerPosition=function(x,y)
{Position.set(this.getLayer(),x,y);if(this.hasIframe){Position.set(this.getIframe(),x,y);}}
DhtmlLayer.prototype.setLayerPosToElement=function(element,center)
{if(center){var pos=Position.getCenter(element);}else{var pos=Position.get(element);}
this.setLayerPosition(pos);}
DhtmlLayer.prototype.setLayerPositionNoScroll=function()
{if(this.scrollWithPage){var pagePos=getPagePosScroll(false);var scrollPos=this.getScrollXY()
var x=scrollPos[0];var y=scrollPos[1];x=x+pagePos[0];y=y+pagePos[1];this.setLayerPosition(x,y);var callwrapperL=new CCallWrapper(this,300,'setLayerPositionNoScroll');CCallWrapper.asyncExecute(callwrapperL);}}
DhtmlLayer.prototype.setScrollWithPage=function(value,x,y)
{this.scrollWithPage=value;this.sx=x;this.sy=y;}
DhtmlLayer.prototype.getScrollWithPage=function()
{return this.scrollWithPage;}
DhtmlLayer.prototype.getScrollXY=function()
{return[this.sx,this.sy];}
DhtmlLayer.prototype.setLayerDimension=function(width,height)
{if(isNumeric(width)){width=parseInt(width)+'px';}
if(isNumeric(height)){height=parseInt(height)+'px';}
this.getLayer().style.width=width;this.getLayer().style.height=height;if(this.hasIframe){this.getIframe().style.width=this.getLayer().style.width;this.getIframe().style.height=this.getLayer().style.height;}}
DhtmlLayer.prototype.setLayerWidth=function(width)
{if(isNumeric(width)){width=parseInt(width)+'px';}
this.getLayer().style.width=width;if(this.hasIframe){this.getIframe().style.width=this.getLayer().style.width;}}
DhtmlLayer.prototype.isVisible=function()
{return this.getLayer().style.visibility=='visible'?true:false;}
DhtmlLayer.prototype.toggleVisible=function()
{if(this.isVisible()){this.hide();}else{this.show();}}
DhtmlLayer.prototype.setMouseover=function(b)
{this.isMouseover=b;}
DhtmlLayer.prototype.getMouseover=function(b)
{return this.isMouseover;}
DhtmlLayer.prototype.getLayer=function()
{return DhtmlLayer.getElementById(this.layerID);}
DhtmlLayer.prototype.getIframe=function()
{return DhtmlLayer.getElementById(this.layerID+'_iframe');}
DhtmlLayer.prototype.applyCssFilters=function()
{if(sniffer.isIE6up&&sniffer.isWin){var dx=" progid:DXImageTransform.Microsoft.";this.getLayer().style.filter="revealTrans()"+dx+"Fade(Overlap=1.00 enabled=0)"+dx+"Inset(enabled=0)"+dx+"Iris(irisstyle=PLUS,motion=in enabled=0)"+dx+"Iris(irisstyle=PLUS,motion=out enabled=0)"+dx+"Iris(irisstyle=DIAMOND,motion=in enabled=0)"+dx+"Iris(irisstyle=DIAMOND,motion=out enabled=0)"+dx+"Iris(irisstyle=CROSS,motion=in enabled=0)"+dx+"Iris(irisstyle=CROSS,motion=out enabled=0)"+dx+"Iris(irisstyle=STAR,motion=in enabled=0)"+dx+"Iris(irisstyle=STAR,motion=out enabled=0)"+dx+"RadialWipe(wipestyle=CLOCK enabled=0)"+dx+"RadialWipe(wipestyle=WEDGE enabled=0)"+dx+"RadialWipe(wipestyle=RADIAL enabled=0)"+dx+"Pixelate(MaxSquare=35,enabled=0)"+dx+"Slide(slidestyle=HIDE,Bands=25 enabled=0)"+dx+"Slide(slidestyle=PUSH,Bands=25 enabled=0)"+dx+"Slide(slidestyle=SWAP,Bands=25 enabled=0)"+dx+"Spiral(GridSizeX=16,GridSizeY=16 enabled=0)"+dx+"Stretch(stretchstyle=HIDE enabled=0)"+dx+"Stretch(stretchstyle=PUSH enabled=0)"+dx+"Stretch(stretchstyle=SPIN enabled=0)"+dx+"Wheel(spokes=16 enabled=0)"+dx+"GradientWipe(GradientSize=1.00,wipestyle=0,motion=forward enabled=0)"+dx+"GradientWipe(GradientSize=1.00,wipestyle=0,motion=reverse enabled=0)"+dx+"GradientWipe(GradientSize=1.00,wipestyle=1,motion=forward enabled=0)"+dx+"GradientWipe(GradientSize=1.00,wipestyle=1,motion=reverse enabled=0)"+dx+"Zigzag(GridSizeX=8,GridSizeY=8 enabled=0)"+dx+"Alpha(enabled=0)"+dx+"Dropshadow(OffX=3,OffY=3,Positive=true,enabled=0)"+dx+"Shadow(strength=3,direction=135,enabled=0)";}}
DhtmlLayer.prototype.stopFilters=function()
{if(sniffer.isIE6up&&sniffer.isWin){layer=this.getLayer();for(Index=28;Index<31;Index++){layer.filters[Index].enabled=0;}
for(s=0;s<28;s++){if(layer.filters[s].status==2){layer.filters[s].stop();}}}}
DhtmlLayer.prototype.doTransition=function(transition,duration)
{if(sniffer.isIE6up&&sniffer.isWin){layer=this.getLayer();if(transition==51){transition=parseInt(Math.random()*50);}
var applyTrans=(transition>-1&&transition<24&&duration>0)?1:0;var advFilters=(transition>23&&transition<51&&duration>0)?1:0;var which=(applyTrans)?0:(advFilters)?transition-23:0;if(applyTrans||advFilters){if(applyTrans){layer.filters[0].transition=transition;}
layer.filters[which].duration=duration;layer.filters[which].apply();}
if(applyTrans||advFilters){layer.filters[which].play();}}}
DhtmlLayer.prototype.enableShadow=function(colour,shadowType)
{if(sniffer.isIEup&&sniffer.isWin){if(shadowType=1){filterNo=29;}else{filterNo=30;}
this.getLayer().filters[filterNo].enabled=1;this.getLayer().filters[filterNo].color=colour;}}
DhtmlLayer.prototype.enableOpacity=function(amount)
{if(sniffer.isIE6up&&sniffer.isWin){if(amount>0&&amount<100){this.getLayer().filters[28].enabled=1;this.getLayer().filters[28].opacity=amount;}}}
DhtmlLayer.getElementById=function(id)
{return getElementById(id);}
DhtmlLayer.hideAll=function()
{for(var i=0;i<DhtmlLayer_layers.length;i++){obj=DhtmlLayer_layers[i];obj.hide();}}
DhtmlLayer.hideIfCan=function()
{for(var i=0;i<DhtmlLayer_layers.length;i++){obj=DhtmlLayer_layers[i];if(obj.documentHide){obj.hide();}}}
DhtmlLayer.tidyOnExit=function()
{for(var i=0;i<DhtmlLayer_layers.length;i++){obj=DhtmlLayer_layers[i];if(obj.getLayer()){var layer=obj.getLayer();discardElement(layer);}
obj=null;}}
var Position=(function()
{function resolveObject(s)
{if(document.getElementById&&document.getElementById(s)!=null){return document.getElementById(s);}else if(document.all&&document.all[s]!=null){return document.all[s];}else if(document.anchors&&document.anchors.length&&document.anchors.length>0&&document.anchors[0].x){for(var i=0;i<document.anchors.length;i++){if(document.anchors[i].name==s){return document.anchors[i];}}}}
var pos={};pos.set=function(o,left,top)
{if(typeof(o)=="string"){o=resolveObject(o);}
if(o==null||!o.style){return false;}
if(typeof(left)=="object"){var pos=left;left=pos.left;top=pos.top;}
o.style.left=left+"px";o.style.top=top+"px";return true;};pos.get=function(o)
{var fixBrowserQuirks=true;if(typeof(o)=="string"){o=resolveObject(o);}
if(o==null){return null;}
var left=0;var top=0;var width=0;var height=0;var parentNode=null;var offsetParent=null;offsetParent=o.offsetParent;var originalObject=o;var el=o;while(el.parentNode!=null){el=el.parentNode;if(el.offsetParent==null){}else{var considerScroll=true;if(fixBrowserQuirks&&window.opera){if(el==originalObject.parentNode||el.nodeName=="TR"){considerScroll=false;}}
if(considerScroll){if(el.scrollTop&&el.scrollTop>0){top-=el.scrollTop;}
if(el.scrollLeft&&el.scrollLeft>0){left-=el.scrollLeft;}}}
if(el==offsetParent){left+=o.offsetLeft;if(el.clientLeft&&el.nodeName!="TABLE"){left+=el.clientLeft;}
top+=o.offsetTop;if(el.clientTop&&el.nodeName!="TABLE"){top+=el.clientTop;}
o=el;if(o.offsetParent==null){if(o.offsetLeft){left+=o.offsetLeft;}
if(o.offsetTop){top+=o.offsetTop;}}
offsetParent=o.offsetParent;}}
if(originalObject.offsetWidth){width=originalObject.offsetWidth;}
if(originalObject.offsetHeight){height=originalObject.offsetHeight;}
return{'left':left,'top':top,'width':width,'height':height};};pos.getCenter=function(o)
{var c=this.get(o);if(c==null){return null;}
c.left=c.left+(c.width/2);c.top=c.top+(c.height/2);return c;};pos.getVH=function(o,v,h)
{var c=this.get(o);if(c==null){return null;}
if(h=='left'){c.left=c.left;}
if(h=='right'){c.left=c.left+(c.width);}
if(h=='center'){c.left=c.left+(c.width/2);}
if(v=='top'){c.top=c.top;}
if(v=='bottom'){c.top=c.top+(c.height);}
if(v=='center'){c.top=c.top+(c.height/2);}
return c;};return pos;})();function findPosX(obj)
{var pos=Position.get(obj);return(pos.left);}
function findPosY(obj)
{var pos=Position.get(obj);return(pos.top);}
DhtmlLayer.setPageNeedsIFrame=function(val)
{DhtmlLayer_pageNeedsIFrame=val;}
DhtmlLayer.getPageNeedsIFrame=function()
{return DhtmlLayer_pageNeedsIFrame;}
if(window.JSLib){JSLib.setLoaded("DhtmlLayer.js");}
if(window.JSLib){JSLib.addVersion("Tooltip.js","Tool Tip","2.0");}
ToolTip.Extends(DhtmlLayer);function ToolTip()
{var obj=arguments[1]?arguments[1]:false;if(obj==false){obj=document.body;}
var objName="ToolTipObj"
this.DhtmlLayer(objName);this.setCssClass('ToolTip');if(obj){this.writeLayerDOM(obj);}else{this.writeLayerHTML();}
this.setOffsetX(-10);this.setOffsetY(10);this.toolTipCanMove=true;this.toolTip1stPos=false;this.applyCssFilters();}
ToolTip.Override(DhtmlLayer,'show');ToolTip.prototype.show=function(t,s)
{document.removeOnMouseMoveHandler(tooltip.followMouse);this.stopFilters();var ab="";var ap="";var titCol=(s[0])?"color='"+s[0]+"'":"";var txtCol=(s[1])?"color='"+s[1]+"'":"";var titBgCol=(s[2])?"bgcolor='"+s[2]+"'":"";var txtBgCol=(s[3])?"bgcolor='"+s[3]+"'":"";var titBgImg=(s[4])?"background='"+s[4]+"'":"";var txtBgImg=(s[5])?"background='"+s[5]+"'":"";var titTxtAli=(s[6]&&s[6].toLowerCase()!="left")?"align='"+s[6]+"'":"";var txtTxtAli=(s[7]&&s[7].toLowerCase()!="left")?"align='"+s[7]+"'":"";var add_height=(s[15])?"height='"+s[15]+"'":"";if(!s[8]){s[8]="Verdana,Arial,Helvetica";}
if(!s[9]){s[9]="Verdana,Arial,Helvetica";}
if(!s[12]){s[12]=1;}
if(!s[13]){s[13]=1;}
if(!s[14]){s[14]=200;}
if(!s[16]){s[16]=0;}
if(!s[17]){s[17]=0;}
if(!s[18]){s[18]=10;}
if(!s[19]){s[19]=10;}
hs=s[11].toLowerCase();if(navigator.productSub==20001108){if(s[2]){ab="style='border:"+s[16]+"px solid"+" "+s[2]+"'";}
ap="style='padding:"+s[17]+"px "+s[17]+"px "+s[17]+"px "+s[17]+"px'";}
this.DhtmlLayer_hide();if(s[25]>0){tooltip.wait(s[25]);}
if(typeof t=='string'){var orgT=t;t=new Array();t=orgT.split(',');if(t.length<2){t[1]=t[0];t[0]="";}}
var closeLink="";if(hs=="sticky2"){closeLink="<td align='right'><font size='"+s[12]+"' face='"+s[8]+"'><a href='javascript:void(0)' onClick='stickyhide()' style='text-decoration:none;color:"+s[0]+"'><b>Close</b></a></font></td>";var title=(t[0]||hs=="sticky")?"<TABLE WIDTH='100%' BORDER='0' CELLPADDING='0' CELLSPACING='0'><TR><TD "+
titTxtAli+"><FONT SIZE='"+s[12]+"' FACE='"+s[8]+"' "+titCol+"><B>"+t[0]+"</B></FONT></TD>"+closeLink+"</TR></TABLE>":"";}
var title=(t[0])?"<table width='100%' border='0' cellpadding='0' cellspacing='0'><tr><td "+
titTxtAli+"><font size='"+s[12]+"' face='"+s[8]+"' "+titCol+"><b>"+t[0]+"</b></font></td>"+closeLink+"</tr></table>":"";var txt="<table "+titBgImg+" "+ab+" width='"+s[14]+"' border='0' cellpadding='"+s[16]+"' cellspacing='0' "+
titBgCol+" ><tr><td>"+title+"<table width='100%' "+add_height+" border='0' cellpadding='"+s[17]+"' cellspacing='0' "+
txtBgCol+" "+txtBgImg+"><tr><td "+txtTxtAli+" "+ap+" valign='top'><font size='"+s[13]+"' face='"+s[9]+"' "+txtCol+">"+t[1]+"</font></td></tr></table></td></tr></table>";if(isNumeric(s[14])){this.setLayerWidth(s[14]);}else{if(sniffer.isIE){this.setLayerWidth(null);}}
if(s[20]){tooltip.doTransition(s[20],s[21]);}
if(s[22]){tooltip.enableOpacity(45);}
if(s[24]){if(s[23].toLowerCase()=="simple"){tooltip.enableShadow(s[24],1)}
if(s[23].toLowerCase()=="complex"){tooltip.enableShadow(s[24],2)}}
this.setHTML(txt);this.setOffsetX(s[18]);this.setOffsetY(s[19]);if(hs=='sticky'||hs=='sticky2'){this.toolTipCanMove=false;}else{this.toolTipCanMove=true;}
if(s[10].toLowerCase()=='fixed'){this.setLayerPosition(s[18],s[19]);}else if(s[10].toLowerCase()=='float'){this.setLayerPosition(s[18],s[19]);this.setScrollWithPage(true,s[18],s[19]);this.setLayerPositionNoScroll();}else{this.toolTip1stPos=true;this.toolTipCanMove=false;document.addOnMouseMoveHandler(tooltip.followMouse);}
this.DhtmlLayer_show();}
ToolTip.Override(DhtmlLayer,'hide');ToolTip.prototype.hide=function(force)
{force=force?force:false;if(typeof force!="boolean"){force=false;}
if(this.getMouseover()&&!force){return false;}
if(this.isVisible()){document.removeOnMouseMoveHandler(tooltip.followMouse);this.DhtmlLayer_hide();this.setLayerPosition(-1000,-1000);this.setHTML("");}}
ToolTip.prototype.followMouse=function(e)
{tooltip.setLayerPositionToMouse(e);tooltip.keepOnPage();if(this.toolTip1stPos||this.toolTipCanMove){tooltip.setLayerPositionToMouse(e);tooltip.keepOnPage(true);}
if(!this.toolTipCanMove){document.removeOnMouseMoveHandler(tooltip.followMouse);}
this.toolTip1stPos=false;}
ToolTip.prototype.wait=function(Amount)
{var d=new Date();while(1){mill=new Date();diff=mill-d;if(diff>Amount){break;}}}
function createToolTip()
{tooltip=new ToolTip();}
addLoadListener(createToolTip);var Style=[];var Text=[];function stm(text,tStyle,el)
{if(el){var images=el.getElementsByTagName('img');for(var i=0;i<images.length;i++){images[i].alt='';}}
if(window.tooltip){tooltip.show(text,tStyle);}}
function htm()
{if(window.tooltip){tooltip.hide(false);}}
function stickyhide()
{if(window.tooltip){tooltip.hide(true);}}
function applyCssFilter()
{}
if(window.JSLib){JSLib.setLoaded("Tooltop.js");}
var FiltersEnabled=0;var TT_HOME_PAGE=0;var TT_PSP=1;var TT_SF_LOCATION=2;var TT_SF_CHECKIN=3;var TT_SF_CHECKOUT=4;var TT_MORE_INFO=5;var TT_STAR_RATING=6;var TT_SD_UPDATE=7;var TT_ON_CONF=8;var TT_CCC=9;var TT_ENETT=10;var TT_MD=11;var TT_SM=12;var TT_RATE_AC=13;var TT_RATE_TOUR=14;var TT_RATE_PT=15;var Accommodation_OK=16;var Accommodation_RQ=17;var Accommodation_NO=18;var Transfers_OK=19;var Transfers_RQ=20;var Transfers_NO=21;var Tours_OK=22;var Tours_RQ=23;var Tours_NO=24;var TT_AC_BR_RATE=25;var Attractions_OK=26;var Attractions_RQ=27;var Attractions_NO=28;var Cars_OK=29;var Cars_RQ=30;var Cars_NO=31;var TT_RATE_ANR=32;var TT_RATE_ACL=33;var TT_RATE_Cars=34;var TT_RATE_Family=35;Text[TT_HOME_PAGE]=["","Click here to go to the Home Page."];Text[TT_PSP]=["Recommended","All suppliers that we work with are "+"leaders in their particular rating "+"category, however, there are a number that provide extra levels of "+"service and value to our customers. <br/>  These we classify as our "+"Recommended or Preferred Partners and for your convenience "+"these are listed first when you sort the search results by &acute;Recommended&acute;"];Text[TT_SF_LOCATION]=["","Select the location to search"];Text[TT_SF_CHECKIN]=["","Check-in means the first night of your stay"];Text[TT_SF_CHECKOUT]=["","Check-out means the day after the final night of your stay"];Text[TT_MORE_INFO]=["","Displays Brochure page"];Text[TT_STAR_RATING]=["","Star-rating of property"];Text[TT_SD_UPDATE]=["","Update details for the selected room and dates"];Text[TT_ON_CONF]=["On Confirmation","Select <strong>On Confirmation</strong>"+" to withhold payment until the booking is confirmed"];Text[TT_CCC]=["Credit Card","Pay for the booking using a credit or debit card"];Text[TT_ENETT]=["eNett Transaction","Use <strong>eNett debit</strong> to pay for the booking"];Text[TT_MD]=["Money Direct","Use <strong>Money Direct</strong> to pay for the booking"];Text[TT_SM]=["Smart Money","Use <strong>Smart Money</strong> to pay for the booking"];Text[TT_RATE_AC]=["","Total Cost per room/apartment for 2 adults."];Text[TT_RATE_Cars]=["","Indicative rate per day, in A$, including applicable taxes"];Text[TT_RATE_TOUR]=["","Indicative rate per tour, in A$, including applicable taxes"];Text[TT_RATE_PT]=["","Indicative rate per transfer, in A$, including applicable taxes"];Text[TT_RATE_ANR]=["","Nightly rate per room/apartment for 2 Adults."];Text[Accommodation_OK]=["Instant Confirmation","The Accommodation is "+"available now & can be confirmed instantly."];Text[Accommodation_RQ]=["On Request","It may take up to 24 "+"hours to confirm (or decline) the Accommodation."];Text[Accommodation_NO]=["Not Available","This room is not "+"available for the date and guest combination you have selected."];Text[Transfers_OK]=["Instant Confirmation","The Transfer is<br/>"+"available now & can be confirmed instantly."];Text[Transfers_RQ]=["On Request","It may take up to 24<br/>"+"hours to confirm (or decline) the Transfer."];Text[Transfers_NO]=["Not Available","The Transfer cannot<br/>"+"be confirmed for the chosen dates."];Text[Tours_OK]=["Instant Confirmation","The Tour is<br/>"+"available now & can be confirmed instantly."];Text[Tours_RQ]=["On Request","It may take up to 24<br/>"+"hours to confirm (or decline) the Tour."];Text[Tours_NO]=["Not Available","The Tour cannot<br/>"+"be confirmed for the chosen dates."];Text[Attractions_OK]=["Instant Confirmation","The Attraction is "+"available now & can be confirmed instantly."];Text[Attractions_RQ]=["On Request","It may take up to 24<br/>"+"hours to confirm (or decline) the Attraction."];Text[Attractions_NO]=["Not Available","The Attraction cannot<br/>"+"be confirmed for the chosen dates."];Text[Cars_OK]=["Instant Confirmation","The Car is<br/>"+"available now & can be confirmed instantly."];Text[Cars_RQ]=["On Request","It may take up to 24<br/>"+"hours to confirm (or decline) the Car."];Text[Cars_NO]=["Not Available","The Car cannot<br/>"+"be confirmed for the chosen dates."];Text[TT_RATE_Family]=["","Indicative rate per family, in A$, including applicable taxes"];Style[0]=["white","black","#000000","lightyellow","","","","","","","","sticky","","","none","",1,2,-10,10,"","","","","",250];Style[1]=["white","black","#000000","lightyellow","","","","","","","","sticky","","",150,"",1,2,-10,10,"","","","","",250];Style[2]=["white","black","#000000","lightyellow","","","","","","","","sticky","","",200,"",1,2,-10,10,"","","","","",250];Style[3]=["white","black","#000000","lightyellow","","","","","","","","sticky","","",250,"",1,2,-10,10,"","","","","",250];Style[4]=["white","black","#000000","lightyellow","","","","","","","fixed","","","",200,"",2,2,368,240,"","","","","",250];applyCssFilter();