
﻿SwissSuggest=function(){var OutputBox=document.createElement('div');var ControlObjects=new Object();var CurrentElement=null;var LostElement=null;var LastValue='';var DroppedValue='';var ResultMark=null;var ResultItems=0;var ResultCache=new Object();var CurrentKeyCode=0;var CapturedEvents=new Array();var ServerProtocol='http';if(window.location.protocol=='https:'){ServerProtocol='https';}
OutputBox.className='layer';OutputBox.style.backgroundColor='#f8f8f8';OutputBox.style.border='none';OutputBox.style.display='none';OutputBox.style.fontSize='10px';OutputBox.style.overflow='hidden';OutputBox.innerHTML='<div style="border:1px solid #adadad;"></div>'+'<!--[if lte IE 6.5]>'+' <iframe style="display:block; filter:mask(); height:3000px; left:0px; '+'   position:absolute; top:0px; width:3000px; z-index:-1;"'+'  src="'+ServerProtocol+'://booking.swiss.com/web/controls_R2/misc/IEFrameWarningBypass.htm">'+' </iframe>'+'<![endif]-->';this.Init=function(info){ControlObjects[info.id]=info;if($(info.id)){EventListener($(info.id),'focus',BasicHandler);EventListener($(info.id),'keydown',EventHandler);EventListener($(info.id),'keyup',RequestHandler);EventListener($(info.id),'blur',CloseOutputBox);}}
this.S=function(d){if(d!=null){if(d.q!=DroppedValue){return;}}
OutputBox.getElementsByTagName('div')[0].innerHTML='';if(d==null){var tmpCacheId=CurrentElement.value.toUpperCase()+"*"+ControlObjects[CurrentElement.id].module;ResultCache[tmpCacheId]={'data':null,'count':0}
CloseOutputBox();return;}
var cnt=0;var style=null;for(n=0;n<d.r.length;n++){switch(d.r[n].c){case'*c':var item=d.r[n].i.split('*');var desc=null;style='padding:5px 5px 5px 14px;';if(item.length>1){desc='<img src="'+ServerProtocol+'://www.swiss.com/Style%20Library/images/language/'+item[0]+'.gif"'+' alt="" style="position:relative;top:2px;" /> '+item[1];}
else{desc=item[0];}
OutputBox.getElementsByTagName('div')[0].innerHTML+='<div style="padding:8px 5px 3px 5px;">'+desc+':</div>';break;case'**':style='padding:5px;';break;default:style='padding:5px;';var content='<div id="sri.'+cnt+'" style="cursor:pointer;height:13px;position:relative;'+style+'"'+' onmousedown="javascript:SwissSuggest.ClickItem(\''+d.r[n].c+'\');"'+' onmouseover="javascript:SwissSuggest.MarkItem('+cnt+');">'+d.r[n].i+'</div>'+'<input id="src.'+cnt+'" type="hidden" value="'+d.r[n].c+'" />';OutputBox.getElementsByTagName('div')[0].innerHTML+=content;cnt++;break;}}
var tmpCacheId=CurrentElement.value.toUpperCase()+"*"+ControlObjects[CurrentElement.id].module;ResultCache[tmpCacheId]={'data':OutputBox.getElementsByTagName('div')[0].innerHTML,'count':cnt-1}
ResultItems=cnt-1;SwissSuggest.MarkItem(0);OutputBox.style.display='block';}
this.MarkItem=function(id){if(ResultMark!=null){if($('sri.'+ResultMark)){$('sri.'+ResultMark).style.backgroundImage='none';$('sri.'+ResultMark).style.color='#000';}}
if($('sri.'+id)){var linerWidth=ControlObjects[CurrentElement.id].width.replace(/px/g,'');$('sri.'+id).style.backgroundImage='url('+ServerProtocol+'://www.swiss.com/Style%20Library/'+'images/buttons/autosuggest_mOver_'+linerWidth+'x23.gif)';$('sri.'+id).style.backgroundRepeat='no-repeat';ResultMark=id;}}
this.ClickItem=function(id){CurrentElement.value=id;LastValue=CurrentElement.value;CloseOutputBox();}
function RequestHandler(){var requestDemand=true;if(Trim(LastValue)==Trim(CurrentElement.value)){requestDemand=false;}
if(CurrentKeyCode==13){document.getElementsByTagName('form')[0].onsubmit=CapturedEvents['submit'];CurrentElement.onkeypress=CapturedEvents['keypress'];CapturedEvents['submit']=null;CapturedEvents['keypress']=null;requestDemand=false;}
if(CurrentElement.value.length==0){LastValue='';CloseOutputBox();return;}
if(requestDemand){var oHeader=document.getElementsByTagName('head')[0];var oScript=document.createElement('script');var tmpSearchValue=CurrentElement.value;tmpSearchValue=tmpSearchValue.replace('<','');tmpSearchValue=tmpSearchValue.replace('>','');tmpSearchValue=tmpSearchValue.replace('&','');oScript.setAttribute('type','text/javascript');oScript.setAttribute('src',ServerProtocol+'://booking.swiss.com/web/suggest.aspx'+'?q='+encodeURIComponent(tmpSearchValue)+'&c='+ControlObjects[CurrentElement.id].country+'&l='+ControlObjects[CurrentElement.id].language+'&m='+ControlObjects[CurrentElement.id].module);oHeader.appendChild(oScript);LastValue=CurrentElement.value;DroppedValue=tmpSearchValue;}}
function EventHandler(e){if(window.event){CurrentKeyCode=window.event.keyCode;}
else if(e){CurrentKeyCode=e.which;}
else{CurrentKeyCode=0;}
if(CurrentKeyCode==0){return;}
if(OutputBox.style.display!='none'){if((CurrentKeyCode==9||CurrentKeyCode==13)&&ResultMark!=null){CurrentElement.value=$('src.'+ResultMark).value;LastValue=CurrentElement.value;if(CurrentKeyCode==13){CapturedEvents['submit']=document.getElementsByTagName('form')[0].onsubmit;CapturedEvents['keypress']=CurrentElement.onkeypress;document.getElementsByTagName('form')[0].onsubmit=function(){return false;void(0);}
CurrentElement.onkeypress=function(){return false;void(0);}}
CloseOutputBox();}
if(CurrentKeyCode==27){CloseOutputBox();}
if(CurrentKeyCode==38){if(ResultMark==null||!$('sri.'+(ResultMark-1))){SwissSuggest.MarkItem(ResultItems);}
else{SwissSuggest.MarkItem(ResultMark-1);}}
if(CurrentKeyCode==40){if(ResultMark==null||!$('sri.'+(ResultMark+1))){SwissSuggest.MarkItem(0);}
else{SwissSuggest.MarkItem(ResultMark+1);}}}}
function BasicHandler(e){if(window.event){CurrentElement=window.event.srcElement;}
else if(e){CurrentElement=e.target;}
else{return;}
if(typeof CurrentElement.id=='undefined'){CurrentElement=LostElement;}
OutputBox.id='sgOut_'+CurrentElement.id;OutputBox.style.left=ControlObjects[CurrentElement.id].left;OutputBox.style.top=ControlObjects[CurrentElement.id].top;OutputBox.style.width=ControlObjects[CurrentElement.id].width;if(!$(OutputBox.id)){$('wrapper').insertBefore(OutputBox,$('wrapper').firstChild);}
LostElement=CurrentElement;LastValue=CurrentElement.value;}
function CloseOutputBox(){ResultMark=null;OutputBox.style.display='none';}
function Trim(value){return value.replace(/^\s\s*/,'').replace(/\s\s*$/,'');}
function $(id){return document.getElementById(id);}
function EventListener(obj,type,task){if(obj.addEventListener){obj.addEventListener(type,task,false);return true;}
else if(obj.attachEvent){var r=obj.attachEvent('on'+type,task);return r;}
else{return false;}}}
function S(d){SwissSuggest.S(d);}