
function initLoginBox()
{$('dSigninError').hide();window.setTimeout(focusLoginBox,700);}
function focusLoginBox()
{var loginForm=$('loginForm');var email=loginForm.down(".email");var password=loginForm.down(".password");try{if(isStrEmpty(email.value))
email.focus();else
password.focus();}catch(e){}}
function validateRequiredLogin(form){var isValid=true;$(form).down('.dSigninError').innerHTML='';var focusField=null;var i=0;var fields=new Array();var oRequired=new requiredLogin();for(var x in oRequired){var field=form[oRequired[x][0]];if(field.type=='text'||field.type=='textarea'||field.type=='file'||field.type=='select-one'||field.type=='radio'||field.type=='password'){var value='';if(field.type=="select-one"){var si=field.selectedIndex;if(si>=0){value=field.options[si].value;}}else{value=field.value;}
if(field.hasClassName("email")){if(!value.match(/((([^<>()[\]\\.,;:\s@\""]+(\.[^<>()[\]\\.,;:\s@\""]+)*)|(\"".+\""))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,})))/ig))
{isValid=false;$(form).down('.dSigninError').innerHTML=gHeaderStrings.email_error;$(form).down('.dSigninError').show();return isValid;}}
if(trim(value).length==0){if(i==0){focusField=field;}
fields[i++]=oRequired[x][1];isValid=false;}}}
if(fields.length>0){focusField.focus();$(form).down('.dSigninError').innerHTML=fields[0];$(form).down('.dSigninError').show()}
return isValid;}
function submitSigninForm(isAjax)
{var oForm=$('loginForm');if(validateRequiredLogin(oForm)){if(isAjax){sendAjaxLoginRequest(oForm);}
else
oForm.submit();}}
function sendAjaxLoginRequest(oForm)
{oForm=$(oForm);var opt={method:'post',parameters:{ajax:true},onSuccess:function(response){onLoginSuccess(oForm,response);},onFailure:function(){onLoginFailed(oForm);}};new JsonP.FormRequest(oForm,opt);}
function onLoginSuccess(oForm,response){if(response.error){if(response.error.indexOf('User is disabled')!=-1){showSuspended();}
else{onLoginFailed(oForm)}}
else if(response.message){if(oForm.down('.dSigninError')){oForm.down('.dSigninError').hide();}
closeSigninBox();handleSuccessfullLogin(response);googleTrackPage("/sign-in");}}
function onDirectRegistrationSuccess(response){if(handleFailureAjaxResponse(response,$("RegForm").down(".sError"),gCommonErrors)){return false;}else{handleSuccessfullLogin(response,0);googleTrackPage("/sign-up");return true;}}
function handleSuccessfullLogin(response){if(typeof(gS2SupportPackageDetails)!="undefined"&&response){gS2SupportPackageDetails.checkCoupons(response.prepaidPackageCoupons);gS2SupportPackageDetails.checkCoupons(response.tokenBasedCoupons);}
var oMessage=response.message.evalJSON();gCurrentUser=new User(oMessage.user);if(gCurrentUser.isSupporter){disableConnectButtons();}
if($("dHeader")){renderUserHeader(oMessage.user);renderMySpaceMenu(oMessage.menues);showOfflineMessageNotification(response.nbNewOfflineMessages);}
if(typeof(replaceBannerOnLogin)=="function"){replaceBannerOnLogin();}
resumeSession(gCurrentUser);}
function onLoginFailed(oForm){var signinError=oForm.down('.dSigninError');if(signinError){signinError.innerHTML=gHeaderStrings.badlogin;signinError.show();}}
var User=Class.create({initialize:function(user){this.id=user.id;var isPartner=user.domainName;this.displayUserName=isPartner?user.name:user.displayUserName;this.jabberUserName=isPartner?"":user.jabberUsername;this.jabberFullUserName=typeof(gJabberConnection)!=typeof(undefined)?gJabberConnection.addJabberDomainSuffix(this.jabberUserName):this.jabberUserName+"@"+g_jabber_domain+"/web";this.jabberPassword=isPartner?"":"supportspace-web";this.username=isPartner?user.name:user.username;this.isSupporter=(!isPartner&&user.userType=="supporter");this.isCustomer=(!isPartner&&user.userType=="customer");this.isTester=(!isPartner&&user.isTester)?true:false;this.inTestingPhase=(!isPartner&&user.inTestingPhase)?true:false;}});function disableConnectButtons()
{$$('.startSessionButton').each(function(btn){btn.replace('<img src="'+gStartSessionUrls.connect_disable+'"/>')})}
function renderUserHeader(user){buildUserRoleUI(user);showHelloUser(user);}
function resumeSession(user){if(user.isCustomer&&!getCookie("resumeNotNow")){getSessionResumeData({},true);}}
function getSessionResumeData(oButton,connectToJabberBeforeResume)
{if(typeof(supportManager)==typeof(undefined)){return;}
function startResumeSession(obj,oButton){gS2StartSession.resumeSession({id:obj['supporterId'],displayUserName:obj['supporterDisplayName'],photoUri:obj['photoUri']},obj['workflowId'],obj['supportRequestId'],oButton);}
supportManager.getSessionResumeBean(gCurrentUser.id,{callback:function(obj){if(obj['supporterId']){if(connectToJabberBeforeResume){gJabberConnection.doLogin({onConnect:function(){startResumeSession(obj,oButton);},errorHandler:function(){gS2StartSession.popupStartSession({status:'sorry',reason:'jabber_failure'});}});}else{startResumeSession(obj,oButton);}}},errorHandler:function(){}})}
function showSignin(){$('dSignin_1_1').show();$('dSignin_Disabled').hide();}
function showSuspended(){$('dSignin_1_1').hide();$('dSignin_Disabled').show();}
function openSigninBox(){if(!$('dSignin').open){moveSigninBox();showSignin();$('dSignin').open=true;new Effect.SlideDown($('dSignin'),{duration:1.2,queue:'end'});initLoginBox();}}
function closeSigninBox(){if(!$('dSignin')||!$('dSignin').visible())
return;new Effect.SlideUp($('dSignin'),{duration:1.2});window.setTimeout("$('dSignin').open = false;",1500);}
function moveSigninBox(){Position.clone($('headerSecondMenu'),$('dSignin'),{setWidth:false,setHeight:false,offsetLeft:-226,offsetTop:21})}
var lightbox=Class.create();lightbox.prototype={yPos:0,xPos:0,initialize:function(ctrl,overlay){this.content=ctrl.rel?ctrl.rel:(ctrl.getAttribute?ctrl.getAttribute("rel"):null);this.overlay=overlay?overlay:"overlay";this.context=ctrl.context?$(ctrl.context):$(document.body);},activate:function(){this.getScroll();this.setScroll(0,0);if(isIE6){this.hideSelects("hidden");}
this.addLightboxMarkup();this.displayLightbox("block");},hideSelects:function(_26e){var selects=this.context.select("select");for(var i=0;i<selects.length;i++){if(_26e=="visible"&&selects[i].style.display!="none"){selects[i].style.visibility="visible";}else{selects[i].style.visibility="hidden";}}},getScroll:function(){if(self.pageYOffset)
this.yPos=self.pageYOffset;else if(document.documentElement&&document.documentElement.scrollTop)
this.yPos=document.documentElement.scrollTop;else if(document.body)
this.yPos=document.body.scrollTop;},setScroll:function(x,y){window.scrollTo(x,y);},displayLightbox:function(displayStyle){if($(this.overlay)){$(this.overlay).style.display=displayStyle;}
if($(this.content)){$(this.content).style.display=displayStyle;}
if(displayStyle!="none")this.actions();},actions:function(){var _272=$$("lbAction");for(var i=0;i<_272.length;i++){Event.observe(_272[i],"click",this[_272[i].rel].bindAsEventListener(this),false);_272[i].onclick=function(){return false;};}},deactivate:function(content,overlay){this.setScroll(0,this.yPos);if(isIE6){this.hideSelects("visible");}
if(overlay){this.content=content;this.overlay=overlay;}
this.displayLightbox("none");},addLightboxMarkup:function(){var overlayHeight=Math.max(parseInt(document.body.scrollHeight),parseInt(document.body.clientWidth))+'px';if($(this.overlay)){$(this.overlay).style.height=overlayHeight;}
else{var overlay=document.createElement("div");overlay.id="overlay";overlay.style.height=overlayHeight;document.body.appendChild(overlay);}}};var oLightBox=null;function lightBoxOn(oElt,overlay){if(oLightBox){oLightBox.initialize(oElt,overlay);}
else{oLightBox=new lightbox(oElt,overlay);}
oLightBox.activate();}
function lightBoxOff(content,overlay){if(oLightBox){oLightBox.deactivate(content,overlay);}}
var gJsonPRequests=[];var JsonP={scriptCounter:1};JsonP.Base=Class.create({initialize:function(options){this.options={contentType:'text/javascript',encoding:'UTF-8',parameters:'',timeout:30};Object.extend(this.options,options||{});if(Object.isString(this.options.parameters))
this.options.parameters=this.options.parameters.toQueryParams();}});JsonP.Request=Class.create(JsonP.Base,{_complete:false,initialize:function($super,url,options){$super(options);this.url=url;this.noCacheIE='';this.headLoc=document.getElementsByTagName("head").item(0);this.options.parameters.onSuccess='gJsonPRequests['+JsonP.scriptCounter+'].onSuccess';this.options.parameters.onFailure='gJsonPRequests['+JsonP.scriptCounter+'].onFailure';gJsonPRequests[JsonP.scriptCounter]=this;this.scriptId='JscriptId'+JsonP.scriptCounter++;this.request(url);},request:function(url){this.url=url;var params=Object.clone(this.options.parameters);this.parameters=params;if(params=Object.toQueryString(params)){this.url+=(this.url.include('?')?'&':'?')+params;}
try{this.buildScriptTag();this.addScriptTag();this.startTimeout();}catch(e){throw e;}},buildScriptTag:function(){this.scriptObj=document.createElement("script");this.scriptObj.setAttribute("type","text/javascript");this.scriptObj.setAttribute("charset","utf-8");this.scriptObj.setAttribute("src",this.url+this.noCacheIE);this.scriptObj.setAttribute("id",this.scriptId);},removeScriptTag:function(){this.headLoc.removeChild(this.scriptObj);},addScriptTag:function(){this.headLoc.appendChild(this.scriptObj);},startTimeout:function(){this._complete=false;this.onTimeout.bind(this).delay(this.options.timeout);},onSuccess:function(response){this.onComplete();this.options['onSuccess'](response);},onFailure:function(response){this.onComplete();this.options['onFailure'](response);},onComplete:function(){this._complete=true;},onTimeout:function(){if(!this._complete){this.onFailure();}}});JsonP.FormRequest=Class.create({initialize:function(form,options){form=$(form),options=Object.clone(options||{});var params=options.parameters,action=form.readAttribute('action')||'';if(action.blank())action=window.location.href;options.parameters=form.serialize(true);if(params){if(Object.isString(params))params=params.toQueryParams();Object.extend(options.parameters,params);}
return new JsonP.Request(action,options);}});function header_init()
{if(typeof(gParamLocale)!=typeof(undefined)&&gParamLocale!=""){setLocaleCookies(gParamLocale);}
preloadImages(gHeaderUrls.home_over,gHeaderUrls.experts_over,gHeaderUrls.services_over);setVisible('sSearchBoxCategory',true);headerObserve();initExternalSearch();highlightRelevantCategory();resumeSession(gCurrentUser);}
function headerObserve()
{if($("dSigninMenu")){Event.observe('dSigninMenu','click',function(){openSigninBox($('dSigninMenu'));});}
observeLanguages("dHeader_1");}
function createHeaderMenus(){var mySpaceMenuLinks=eval(gMySpaceMenu);if(mySpaceMenuLinks){buildMenu(mySpaceMenuLinks);}}
function renderMySpaceMenu(menuesArr)
{if(!$("dMySpaceMenu"))
return;for(var j=0;j<menuesArr.length;j++)
{var linKey=menuesArr[j].linkName;menuesArr[j].linkName=g_mySpaceMenuStr[linKey];}
buildMenu(menuesArr);}
var closeMenuTimer;function buildMenu(menu){var mySpaceMenu=$('dMySpaceMenu');var mySpaceMenuContent=$('dMySpaceMenuContent');if(isIE6||isIE7){Position.clone(mySpaceMenu,mySpaceMenuContent,{setWidth:false,setHeight:false,offsetTop:20});}
var openMenu=function(evt){clearTimeout(closeMenuTimer);var currentMenuEffect=Effect.Queues.get('menu').effects[0];if(mySpaceMenuContent.visible()||currentMenuEffect){return;}
new Effect.BlindDown(mySpaceMenuContent,{queue:{scope:"menu",position:"end",limit:3},duration:0.4});};var closeMenu=function(evt){var toElt=evt.relatedTarget||evt.toElement;if(toElt&&(toElt.id=="dMySpaceMenu"||toElt.id=="dMySpaceMenuContent"||toElt.up("#dMySpaceMenuContent"))){return;};closeMenuTimer=setTimeout(function(){new Effect.BlindUp(mySpaceMenuContent,{queue:{scope:"menu",position:"end",limit:3},duration:0.4});},500);};Event.observe("dMySpaceMenu","mouseover",openMenu);Event.observe("dMySpaceMenuContent","mouseover",openMenu);Event.observe("dMySpaceMenu","mouseout",closeMenu);Event.observe("dMySpaceMenuContent","mouseout",closeMenu);var html="";var addOverClass=function(evt){var elt=evt.element();if(elt.hasClassName("over")){elt.addClassName("over");}};var removeOverClass=function(evt){var elt=evt.element();if(elt.hasClassName("over")){elt.removeClassName("over");}};for(var i=0;i<menu.length;i++){html+='<li><a href="'+gHeaderUrls.home+menu[i].linkUrl+'">'+menu[i].linkName+'</a></li>';}
mySpaceMenuContent.update(html);mySpaceMenuContent.select("li").each(function(menuitem){Event.observe(menuitem,"mouseover",addOverClass);Event.observe(menuitem,"mouseout",removeOverClass);});}
function buildUserRoleUI(user){if(!$('dHeaderLinks'))
return;for(var i=0;i<user.roles.length;i++){if(user.roles[i].authority=='contentadmin'||user.roles[i].authority=='serviceadmin'){$('dMySpaceMenu').update("Administrator");break;}
else if(user.roles[i].authority=='tester')
{gCurrentUser.isTester=true;break;}
else if(user.roles[i].authority=='report_editor'){try{gIsUserEditor=true;checkAndShowEditSolutionReportLink();}catch(e){}}}
$('dHeaderLinks').hide();$('dHeaderLinksAfterLogin').show();}
function showHelloUser(user){var welcomeDiv=$('dHeaderWelcome');if(welcomeDiv){var name=user.displayUserName?user.displayUserName:user.name;welcomeDiv.update(gHeaderStrings.hello+'&nbsp;'+name);}}
function selectHeaderMenu(selectedMenuId)
{if(selectedMenuId==""){selectedMenuId=gHeaderMenus.home;}
var afterLoginSuffix=gCurrentUser.id=="anonymous"?"":"After";if(selectedMenuId!=gHeaderMenus.help&&selectedMenuId!=gHeaderMenus.aboutus){afterLoginSuffix="";}
for(var key in gHeaderMenus)
{var menuId=gHeaderMenus[key];var oMenu=$(menuId+afterLoginSuffix);if(!oMenu)continue;var menuImg=oMenu.down("img");if(menuImg){if(menuId==selectedMenuId){menuImg.src=menuImg.src.replace("regular","pressed");Event.stopObserving(menuImg,"mouseover");Event.stopObserving(menuImg,"mouseout");}else{menuImg.src=menuImg.src.replace("pressed","regular");Event.observe(menuImg,"mouseover",function(event){$(Event.element(event)).src=$(Event.element(event)).src.replace("regular","mouse_over")});Event.observe(menuImg,"mouseout",function(event){$(Event.element(event)).src=$(Event.element(event)).src.replace("mouse_over","regular")});}}else{if(menuId==selectedMenuId){oMenu.className="mainlevel-trans selected";}else{oMenu.className="mainlevel-trans";}}}}
function showOfflineMessageNotification(nbNewOfflineMessages){if(!$('dMessageNotification')||!$('dHeaderMailNotification')){return;}
var divToShow=(nbNewOfflineMessages>0)?"mailNotification":"nomailNotification";var divToHide=(nbNewOfflineMessages<1)?"mailNotification":"nomailNotification";if(nbNewOfflineMessages>0){$("dMessageNotification").down("#nbMessages").innerHTML=nbNewOfflineMessages;Effect.Appear.delay(1,"dMessageNotification");}
$(divToShow).down(".nbNewOfflineMessagesHeader").innerHTML=nbNewOfflineMessages||0;$(divToHide).hide();$(divToShow).show();}
function closeMessageNotification(){if($("dMessageNotification")){$("dMessageNotification").hide();}}
function initExternalSearch(){if(!$('searchBoxQuery')){return;}
$('searchBoxQuery').cleared=false;Event.observe('searchBoxQuery','focus',clearFieldOnlyOneTime);Event.observe('dSearchBoxGoBtn','click',runExternalSearch);}
function runExternalSearch(){var searchValue=encodeURI($('searchBoxQuery').value);redirectToUrl(gCommonUrls.external_search+"?q="+searchValue);}
function highlightRelevantCategory(){if($("homePage")&&$("dHeader")){var homeLinkElement=$("dHeader").down(".headerCategories .headerHomeLink");if(homeLinkElement){homeLinkElement.addClassName("categorySelected");}}else{$("dTemplateBody").select(".leftPanel .getHelp li").each(function(category){if(window.location.href.include(category.down('a').href)){category.addClassName("categorySelected");throw $break;}});$("dHeader").select(".headerCategories .headerCategory").each(function(category){if(window.location.href.include(category.down('a').href)){category.addClassName("categorySelected");throw $break;}});}}
Object.extend(Function.prototype,{substr:function(){var __method=this;return function(){return"";}}});function S2StartSession(oStartSessionParams)
{this.popupElementId=oStartSessionParams&&oStartSessionParams['popupElement']?oStartSessionParams['popupElement']:'dPopupElement';this.popupElementParentId=oStartSessionParams&&oStartSessionParams['popupElementParentId']?oStartSessionParams['popupElementParentId']:'';this.origin=oStartSessionParams?oStartSessionParams['origin']:null;this.workflowId=oStartSessionParams?oStartSessionParams['workflowId']:-1;this.supportRequestId=oStartSessionParams?oStartSessionParams['supportRequestId']:-1;this.allowStartSession=true;this.disconnectedByUser=false;this.overlayLightBox=oStartSessionParams&&oStartSessionParams.overlay?oStartSessionParams.overlay:"overlay";this.isChoose4Me=false;}
S2StartSession.prototype=new Object;S2StartSession.prototype.popupStartSession=function(oStatus)
{if(!this.popupElement)
{this.popupElement=document.createElement('div');this.popupElement.id=this.popupElementId;this.popupElement.className='leightbox dPopupBox';this.popupElement=$(this.popupElement);if(this.popupElementParentId)
$(this.popupElementParentId).appendChild(this.popupElement)
else
document.body.appendChild(this.popupElement)}
if(!this.popupElement.up||!this.popupElement.up())
{if(this.popupElementParentId)
$(this.popupElementParentId).appendChild(this.popupElement)
else
document.body.appendChild(this.popupElement)}
if($(this.popupElementId))
this.popupElement=$(this.popupElementId)
this.fillPopupElement(oStatus);lightBoxOn(this.buttonElement,this.overlayLightBox);}
S2StartSession.prototype.startConnectingFlow=function()
{if(this.disconnectedByUser)
return;var callType='requestCall';if(this.origin.originExtraData&&this.origin.originExtraData.solutionId)
callType='requestCallForPackage';new Ajax.Request(gStartSessionUrls.start_support_request,{parameters:{'callType':callType,'currentCustomerId':gCurrentUser.id,'supporterId':this.supporter.id,'searchId':this.searchId,'Origin':Object.toJSON(this.origin)},onSuccess:function(response){var WorkflowIdAndSupportRequestId=response.responseText;var wsa=WorkflowIdAndSupportRequestId.split('###');this.startPolling(wsa[0],wsa[1]);googleTrackPage("/contacting-expert");}.bind(this),onFailure:function(response){var errorStatus=response.status;switch(errorStatus){case 770:this.handleSupporterNotOnline("offline");break;case 771:this.handleUserNotAllowedToPerformSession();break;case 772:getSessionResumeData(this.buttonElement,false);break;case 773:this.handleLoginRequiredError();break;case 774:this.popupStartSession({status:'sorry',reason:'accessdenied'});break;default:this.popupStartSession({status:'sorry',reason:response.statusText});}}.bind(this)});};S2StartSession.prototype.startConsultFlow=function(){this.popupStartSession({status:'calling',reason:'consult'});supportRequestFlow.inviteSupporterForConsult(this.workflowId,this.supporter.id,{callback:function(){this.expertStatePeriodExec=new PeriodicalExecuter(this.handleConsultFlowState.bind(this),3);}.bind(this),exceptionHandler:function(errorString,exception){if(exception.javaClassName)
{if(exception.message.indexOf("(JOB_OFFER_CREATION)")>-1||exception.message.indexOf("(PAY)")>-1||exception.message.indexOf("(AGREE_JOB_OFFER)")>-1)
this.popupStartSession({status:'sorry',reason:'joboffer_consult'});if(exception.javaClassName.indexOf("UserNotOnlineException")>-1)
this.handleSupporterNotOnline(errorString,exception);}}.bind(this)});}
S2StartSession.prototype.handleConsultFlowState=function(pe)
{supportRequestFlow.getActiveProcessCurrentState(this.workflowId,{callback:function(state){switch(state)
{case"CONSULTING":this.expertStatePeriodExec.stop();var desktop=gSessionContextManager.getSupporterSessionByWorkflowId(this.workflowId).getSupporterDesktop();desktop.getConsultWidget().showConsultWindow();desktop.getSearchWidget().hidePopupBox();break;case"SUPPORT_REQUEST_ACCEPTED":case"IN_SESSION":this.expertStatePeriodExec.stop();lightBoxOff();break;default:}}.bind(this),errorHandler:function(errorString,exception){}});}
S2StartSession.prototype.cancelJabberEstablishing=function(disconnectedByUser)
{this.allowStartSession=true;this.disconnectedByUser=disconnectedByUser?true:false;lightBoxOff();gJabberConnection.jabberDisconnect();}
S2StartSession.prototype.cancelConnection=function()
{var cancelConnectionCbk=function(){if(this.expertStatePeriodExec){this.expertStatePeriodExec.stop();}
this.cancelJabberEstablishing(false);}.bind(this);supportRequestFlow.cancelSupportRequest(this.workflowId,{callback:cancelConnectionCbk,errorHandler:cancelConnectionCbk});}
S2StartSession.prototype.cancelConsult=function()
{var cancelConnectionCbk=function(){if(this.expertStatePeriodExec)
this.expertStatePeriodExec.stop();lightBoxOff();}.bind(this);supportRequestFlow.stopConsult(this.workflowId,{callback:cancelConnectionCbk,errorHandler:cancelConnectionCbk});}
S2StartSession.prototype.startPolling=function(workflowId,supportRequestId)
{this.popupStartSession({status:'calling',reason:'customer'});this.setWorkflowId(workflowId);this.setSupportRequestId(supportRequestId);this.expertStatePeriodExec=new PeriodicalExecuter(this.getExpertStateFromServer.bind(this),3);}
S2StartSession.prototype.getExpertStateFromServer=function()
{supportRequestFlow.getActiveProcessCurrentState(this.workflowId,{callback:function(state)
{this.updatePopupElement(state)}.bind(this),errorHandler:function(errorString,exception){}});}
S2StartSession.prototype.updatePopupElement=function(state)
{switch(state)
{case"C4ME_NO_ANSWER":case"SUPPORTER_NOT_AVAILABLE":this.expertStatePeriodExec.stop();this.popupStartSession({status:"sorry",reason:"unavailable"});break;case"SUPPORTER_OFFLINE":this.expertStatePeriodExec.stop();this.popupStartSession({status:"sorry",reason:"offline"});break;case"CUSTOMER_CANCELED":break;case"SUPPORT_REQUEST_ACCEPTED":this.expertStatePeriodExec.stop();this.fillPopupElement({status:"success"});break;default:}}
S2StartSession.prototype.openServicePage=function()
{lightBoxOff();saveSessionEvent({user:gCurrentUser,workflowId:this.workflowId,event:{action:SE_SP_OPEN,description:"Opening Service Page"},sessionIdList:[-1]});lightBoxOn({rel:"dOverlayServicePage"});new Ajax.Request(gStartSessionUrls.start_session_light,{parameters:{workflowId:this.workflowId,supportRequestId:this.supportRequestId},method:'post',onSuccess:function(transport){this.updateExpertCell("busy");$('dOverlayServicePage').update(transport.responseText);var afterRender=function(){initCustomerSession();};afterRender.defer();}.bind(this),onFailure:function(response){logme("Failed to open service page");}});}
S2StartSession.prototype.handleSupporterNotOnline=function(status)
{this.popupStartSession({status:'sorry',reason:status});this.updateExpertCell(status);}
S2StartSession.prototype.updateExpertCell=function(status){if(!this.expertCell)return;var dExpertStatus=this.expertCell.down('.expertStatusImage')
if(dExpertStatus)
{var dExpertStatusImg=dExpertStatus.down('img');if(dExpertStatusImg)
dExpertStatusImg.src=getSupporterStatusImg(status);}
var dExpertStatusText=this.expertCell.down('.expertStatusText')
if(dExpertStatusText)
dExpertStatusText.innerHTML=getSupporterStatusTextHtml(status);var dSearchExpertStart=this.expertCell.down('.startSessionButton')
if(dSearchExpertStart)
{disableObject(dSearchExpertStart,true);var btnImg=dSearchExpertStart.src?dSearchExpertStart:dSearchExpertStart.down("img");btnImg.replace('<img src="'+gStartSessionUrls.connect_disable+'"/>');}}
S2StartSession.prototype.handleUserNotAllowedToPerformSession=function()
{this.popupStartSession({status:"sorry",reason:"nomoresession"});var dSearchExpertStart=this.expertCell&&this.expertCell.down('.startSessionButton');if(dSearchExpertStart){dSearchExpertStart.hide();}}
S2StartSession.prototype.handleLoginRequiredError=function(){gSignupOrSignin.display({ju:this.supporter.jabberUsername},lightBoxOff);}
S2StartSession.prototype.fillPopupElement=function(oPopupStatus)
{var supporterPicture=getSupporterPicture(this.supporter);var supporterPictureWidth=50;var supporterPictureHeight=55;if(this.popupElement.down(".dPopupCloseBtn")){this.popupElement.down(".dPopupCloseBtn").remove();}
var dCloseButton=document.createElement("div");dCloseButton.className="dPopupCloseBtn";var dCloseImg=document.createElement("img");dCloseImg.src=gSessionUrls.close_regular;Event.observe(dCloseImg,'mousedown',function(){dCloseImg.src=gSessionUrls.close_press});Event.observe(dCloseImg,'mouseout',function(){dCloseImg.src=gSessionUrls.close_regular});Event.observe(dCloseImg,'mouseup',function(){dCloseImg.src=gSessionUrls.close_regular});Event.observe(dCloseButton,'click',lightBoxOff.bind(this));dCloseButton.appendChild(dCloseImg);var dContainer=this.popupElement.down(".container")?this.popupElement.down(".container"):document.createElement("div");dContainer.className='container';var dActions=document.createElement("div");dActions.className='dPopupActions';var oButtonParams=null;var cancelButton=null;var cancelString="&nbsp;&nbsp;"+gCommonStrings.cancel+"&nbsp;&nbsp;";var okButton=null;var okString="&nbsp;&nbsp;&nbsp;&nbsp;"+gCommonStrings.ok+"&nbsp;&nbsp;&nbsp;&nbsp;";var html='';switch(oPopupStatus.status)
{case'jabber_connection':this.popupElement.className='leightbox dPopupBox dPleaseWaitBox';oButtonParams={'text':cancelString,'onclick':this.cancelJabberEstablishing.bind(this)}
cancelButton=createGenericButton(oButtonParams);dActions.appendChild(cancelButton);Event.observe(dCloseButton,'click',this.cancelJabberEstablishing.bind(this));dContainer.innerHTML='<div class="dPopupExpertPicture"><img src="'+supporterPicture+'" alt="" width="'+supporterPictureWidth+'" height="'+supporterPictureHeight+'"/></div>'+'<div class="dPopupText">'+gStartSessionStrings.establishing+'...</div>'+'<div class="dConnecting"><img class="clock" src="'+gStartSessionUrls.connecting+'" align="absmiddle" alt=""/></div>';break;case'calling':this.popupElement.className='leightbox dPopupBox dPleaseWaitBox';if(oPopupStatus.reason=='consult')
{this.popupElement.addClassName("consult");oButtonParams={'text':cancelString,'onclick':this.cancelConsult.bind(this)}
cancelButton=createGenericButton(oButtonParams);dActions.appendChild(cancelButton);Event.observe(dCloseButton,'click',this.cancelConsult.bind(this));}
else
{oButtonParams={'text':cancelString,'onclick':this.cancelConnection.bind(this)}
cancelButton=createGenericButton(oButtonParams);dActions.appendChild(cancelButton);Event.observe(dCloseButton,'click',this.cancelConnection.bind(this));}
var callingText;if(this.isChoose4Me){callingText=gStartSessionStrings.c4me_calling;}else{callingText=gStartSessionStrings.calling.replace(/###SUPPORTERNAME###/g,this.supporter.displayUserName);}
html='<div class="dPopupExpertPicture"><img src="'+supporterPicture+'" alt="" width="'+supporterPictureWidth+'" height="'+supporterPictureHeight+'"/></div>'+'<div class="dPopupText">'+callingText+'...</div>'+'<div class="dConnecting"><img class="clock" src="'+gStartSessionUrls.connecting+'" align="absmiddle" alt=""/></div>';dContainer.innerHTML=html;break;case'success':this.openServicePage();break;case'sorry':this.popupElement.className='leightbox dPopupBox dSorryBox';switch(oPopupStatus.reason)
{case'browser':dContainer.innerHTML='<div class="dPopupExpertPicture"><img src="'+supporterPicture+'" alt="" width="'+supporterPictureWidth+'" height="'+supporterPictureHeight+'"/></div>'+'<div class="dPopupText">'+gStartSessionStrings.browser_not_supported+'</div>';break;case'joboffer_consult':this.popupElement.addClassName("consult");dContainer.innerHTML='<div class="dPopupExpertPicture"><img src="'+supporterPicture+'" alt="" width="'+supporterPictureWidth+'" height="'+supporterPictureHeight+'"/></div>'+'<div class="dPopupText">'+gStartSessionStrings.sorry_consult_joboffer+'</div>';break;case'busy':case'offline':case'online4Customer':if(gCurrentUser.isSupporter){oButtonParams={'text':okString,'onclick':lightBoxOff.bind(this)}}else{Event.observe(dCloseButton,'click',this.cancelJabberEstablishing.bind(this));oButtonParams={'text':okString,'onclick':this.cancelJabberEstablishing.bind(this)}}
okButton=createGenericButton(oButtonParams);dActions.innerHTML='<a style="float: left; padding-right: 20px;" class="linkTxt" href="'+gCommonUrls.leave_message+this.supporter.jabberUsername+'"><img src="'+gStartSessionUrls.leave_message_icon+'" width="16" height="14" class="linkImg icon leaveMessage" align="absmiddle" alt=""/>'+gCommonStrings.leave_message+'</a>';dActions.appendChild(okButton);var statustext=(oPopupStatus.reason=='busy'||oPopupStatus.reason=='online4Customer')?gStartSessionStrings.expert_busy:gStartSessionStrings.expert_offline;html='<div class="dPopupExpertPicture"><img src="'+supporterPicture+'" alt="" width="'+supporterPictureWidth+'" height="'+supporterPictureHeight+'"/></div>'+'<div class="dPopupText">'+statustext+'</div>';dContainer.innerHTML=html.replace(/###SUPPORTERNAME###/g,this.supporter.displayUserName);break;case'unavailable':oButtonParams={'text':"&nbsp;"+gStartSessionStrings.retry+"&nbsp;",'onclick':this.startConnectingFlow.bind(this)}
var tryAgainButton=createGenericButton(oButtonParams);dActions.appendChild(tryAgainButton);oButtonParams={'text':okString,'onclick':this.cancelJabberEstablishing.bind(this)}
var diffExpertButton=createGenericButton(oButtonParams);dActions.appendChild(diffExpertButton);Event.observe(dCloseButton,'click',this.cancelJabberEstablishing.bind(this));var expert_unavailable_msg;if(this.isChoose4Me){expert_unavailable_msg=gStartSessionStrings.c4me_expert_unavailable;}else{expert_unavailable_msg=gStartSessionStrings.expert_unavailable.replace(/###SUPPORTERNAME###/g,this.supporter.displayUserName);}
dContainer.innerHTML='<div class="dPopupExpertPicture"><img src="'+supporterPicture+'" alt="" width="'+supporterPictureWidth+'" height="'+supporterPictureHeight+'"/></div>'+'<div class="dPopupText">'+expert_unavailable_msg+'</div>';break;case'pending':this.popupElement.className='leightbox dPopupBox dWelcomeBackBox';oButtonParams={'text':gStartSessionStrings.not_now,'onclick':this.resumeSessionNotNowHandler.bind(this)}
var notNowButton=createGenericButton(oButtonParams);dActions.appendChild(notNowButton);oButtonParams={'text':gStartSessionStrings.resume_now,'onclick':this.openServicePage.bind(this)}
var resumeNowButton=createGenericButton(oButtonParams);dActions.appendChild(resumeNowButton);Event.observe(dCloseButton,'click',this.cancelJabberEstablishing.bind(this));var pendingSession=gStartSessionStrings.pending.replace(/###SUPPORTERNAME###/g,this.supporter.displayUserName);dContainer.innerHTML='<div class="dPopupExpertPicture"><img src="'+supporterPicture+'" alt="" width="'+supporterPictureWidth+'" height="'+supporterPictureHeight+'"/></div>'+'<div class="dPopupText">'+pendingSession+'</div>';break;case'nomoresession':oButtonParams={'text':okString,'onclick':this.cancelJabberEstablishing.bind(this)}
okButton=createGenericButton(oButtonParams);dActions.appendChild(okButton);Event.observe(dCloseButton,'click',this.cancelJabberEstablishing.bind(this));dContainer.innerHTML='<div class="dPopupExpertPicture"><img src="'+supporterPicture+'" alt="" width="'+supporterPictureWidth+'" height="'+supporterPictureHeight+'"/></div>'+'<div class="dPopupText">'+gStartSessionStrings.service_close+'</div>';break;case'accessdenied':oButtonParams={'text':okString,'onclick':this.cancelJabberEstablishing.bind(this)}
okButton=createGenericButton(oButtonParams);dActions.appendChild(okButton);Event.observe(dCloseButton,'click',this.cancelJabberEstablishing.bind(this));dContainer.innerHTML='<div class="dPopupExpertPicture"><img src="'+supporterPicture+'" alt="" width="'+supporterPictureWidth+'" height="'+supporterPictureHeight+'"/></div>'+'<div class="dPopupText">'+gStartSessionStrings.access_denied+'</div>';break;case'jabber_failure':this.popupElement.className='leightbox dPopupBox simpleBox';dActions.innerHTML='<a style="float:left" target="_blank" href="'+gStartSessionStrings.update_flash_url+'"><img src="'+gStartSessionUrls.update_flash_icon+'" width="16" height="16" class="linkImg icon" align="absmiddle" alt=""/>'+gStartSessionStrings.update_flash+'</a>'+'<a style="float:right" href="'+gCommonUrls.leave_message+this.supporter.jabberUsername+'"><img src="'+gStartSessionUrls.leave_message_icon+'" width="16" height="14" class="linkImg icon" align="absmiddle" alt=""/>'+gCommonStrings.leave_message+'</a>';dContainer.innerHTML='<div class="dPopupExpertPicture"><img src="'+supporterPicture+'" alt="" width="'+supporterPictureWidth+'" height="'+supporterPictureHeight+'"/></div>'+'<div class="dPopupText linkTxt" onclick="redirectToUrl(\''+gCommonUrls.faq+'#connectionissues\')">'+gStartSessionStrings.connection_failure+'</div>';logme("Jabber Connection failed: "+oPopupStatus.reason);Event.observe(dCloseButton,'click',this.cancelJabberEstablishing.bind(this));break;case'ska_failure':oButtonParams={'text':gStartSessionStrings.retry,'onclick':function(){gS2StartSession.connectAndStartSession();}}
var retryButton=createGenericButton(oButtonParams);dActions.appendChild(retryButton);dContainer.innerHTML='<div class="dPopupExpertPicture"><img src="'+supporterPicture+'" alt="" width="'+supporterPictureWidth+'" height="'+supporterPictureHeight+'"/></div>'+'<div class="dPopupText">&nbsp;&nbsp;'+gStartSessionStrings.ska_failure+'&nbsp;&nbsp;</div>';logme("SELF_KEEP_ALIVE failure");Event.observe(dCloseButton,'click',this.cancelJabberEstablishing.bind(this));gJabberConnection.justReconnectOnce=true;break;case'blocker':dContainer.innerHTML='<div class="dPopupExpertPicture"><img src="'+supporterPicture+'" alt="" width="'+supporterPictureWidth+'" height="'+supporterPictureHeight+'"/></div>'+'<div class="dPopupText">'+gStartSessionStrings.popup_blocker+'</div>'+'<div style="clear:both"></div>';Event.observe(dCloseButton,'click',this.cancelJabberEstablishing.bind(this));break;default:dContainer.innerHTML='<div class="dPopupExpertPicture"><img src="'+supporterPicture+'" alt="" width="'+supporterPictureWidth+'" height="'+supporterPictureHeight+'"/></div>'+'<div class="dPopupText">'+gStartSessionStrings.connecting_error+'</div>'+'<div style="clear:both"></div>';Event.observe(dCloseButton,'click',this.cancelJabberEstablishing.bind(this));break;}
break;}
dContainer.appendChild(dActions);this.popupElement.appendChild(dContainer);this.popupElement.appendChild(dCloseButton);}
S2StartSession.prototype.startSession=function(expertCellId,supporterId,searchId,buttonElement){this.setButtonElement(buttonElement);if(supporterId)
{var supporter=getSupporter(supporterId);this.setSupporter(supporter);}
this.setExpertCellElement(expertCellId);this.setSearchId(searchId);this.connectAndStartSession();}
S2StartSession.prototype.startC4MeSession=function(buttonElement){this.setButtonElement(buttonElement);this.isChoose4Me=true;this.setSupporter({jabberUsername:"c4me",id:"",displayUserName:""});this.connectAndStartSession();}
S2StartSession.prototype.startSolutionSession=function(expertCellId,supporterId,searchId,buttonElement,oExtraData){this.setOriginExtraData(oExtraData);this.startSession(expertCellId,supporterId,searchId,buttonElement);}
S2StartSession.prototype.connectAndStartSession=function()
{if(!Prototype.Browser.IE&&!Prototype.Browser.Firefox&&!Prototype.Browser.WebKit)
{this.popupStartSession({status:'sorry',reason:'browser'});return;}
if(gCheckPopupBlocker&&popupBlockerEnabled()){this.popupStartSession({status:'sorry',reason:'blocker'});return;}
gSecuredAction.execute({ju:this.supporter.jabberUsername},function(){lightBoxOff();this.popupStartSession({status:'jabber_connection'});this.disconnectedByUser=false;gJabberConnection.doLogin({onConnect:function(){if(this.allowStartSession){this.allowStartSession=false;this.startConnectingFlow();}}.bind(this),errorHandler:function(){this.popupStartSession({status:'sorry',reason:'jabber_failure'});}.bind(this)});}.bind(this));}
S2StartSession.prototype.markCustomerConnectedToSession=function(){var isSuccess=false;supportManager.markCustomerConnectedToSession(this.workflowId,{async:false,callback:function(){isSuccess=true;}.bind(this),errorHandler:function(err){alert("An error occured. Please refresh the page. ["+err+"]");}});return isSuccess;}
S2StartSession.prototype.resumeSession=function(supporter,workflowId,supportRequestId,buttonElement){this.setButtonElement(buttonElement);this.setSupporter(supporter);this.setWorkflowId(workflowId);this.setSupportRequestId(supportRequestId);if(!Prototype.Browser.IE&&!Prototype.Browser.Firefox&&!Prototype.Browser.WebKit)
{this.popupStartSession({status:'sorry',reason:'browser'});return;}
this.popupStartSession({status:'sorry',reason:'pending'});}
S2StartSession.prototype.resumeSessionNotNowHandler=function(){this.cancelJabberEstablishing();setCookie("resumeNotNow","true",null,gHeaderUrls.base_url);}
S2StartSession.prototype.startConsult=function(expertCellId,supporterId,searchId,buttonElement,workflowId){if(supporterId)
{var supporter=getSupporter(supporterId);this.setSupporter(supporter);}
this.setButtonElement(buttonElement);this.setExpertCellElement(expertCellId);this.setSearchId(searchId);this.setWorkflowId(workflowId);var consultWidget=gSessionContextManager.getSupporterSessionByWorkflowId(this.workflowId).getSupporterDesktop().getConsultWidget();consultWidget.setConsultant(this.supporter);consultWidget.setJabberUsernameForConsult(this.supporter.jabberUsername);consultWidget.setDisplayUsernameForConsult(this.supporter.displayUserName);this.startConsultFlow();}
S2StartSession.prototype.forwardSession=function(supporterId,workflowId)
{this.setSupporter({id:supporterId});this.startPolling(workflowId)}
S2StartSession.prototype.setButtonElement=function(buttonElement){this.buttonElement=$(buttonElement);this.buttonElement.rel=this.popupElementId;}
S2StartSession.prototype.setExpertCellElement=function(expertCellId){this.expertCell=$(expertCellId);}
S2StartSession.prototype.setSearchId=function(searchId){this.searchId=searchId?searchId:-1;}
S2StartSession.prototype.setSupporter=function(supporter){this.supporter=supporter;}
S2StartSession.prototype.setWorkflowId=function(workflowId)
{this.workflowId=workflowId;}
S2StartSession.prototype.setSupportRequestId=function(supportRequestId)
{this.supportRequestId=supportRequestId;}
S2StartSession.prototype.setOriginType=function(originType)
{this.origin.originType=originType;}
S2StartSession.prototype.setOriginExtraData=function(oExtraData)
{this.origin.originExtraData=oExtraData;}
function S2AutoSuggest(searchType,searchInputId,callbackFunction,actionFunction,searchDelay,errorFieldId)
{this.s2AutoCompleter=new S2AutoCompleter(searchType,searchInputId,callbackFunction,actionFunction,searchDelay,errorFieldId,this);this.s2AutoCompleteFiller=new S2AutoCompleteFiller(this.s2AutoCompleter);}
S2AutoSuggest.prototype=new Object;S2AutoSuggest.prototype.setSearchType=function(searchType)
{this.s2AutoCompleter.setSearchType(searchType)}
S2AutoSuggest.prototype.setSearchDelay=function(searchDelay)
{this.s2AutoCompleter.setSearchDelay(searchDelay)}
S2AutoSuggest.prototype.setSearchInputId=function(searchInputId)
{this.s2AutoCompleter.setSearchInputId(searchInputId)
this.s2AutoCompleteFiller.setSearchInputId(searchInputId)}
S2AutoSuggest.prototype.setResults=function(resultsArray)
{this.s2AutoCompleteFiller.setResults(resultsArray)}
S2AutoSuggest.prototype.displayResults=function()
{this.s2AutoCompleteFiller.displayResults()}
S2AutoSuggest.prototype.setResultsIds=function(resultsIds)
{this.s2AutoCompleteFiller.setResultsIds(resultsIds)}
S2AutoSuggest.prototype.getResultsIds=function()
{return this.s2AutoCompleteFiller.getResultsIds();}
S2AutoSuggest.prototype.getFilteredIds=function()
{return this.s2AutoCompleteFiller.getFilteredIds();}
S2AutoSuggest.prototype.getSelectedValues=function()
{return this.s2AutoCompleteFiller.getSelectedValues();}
S2AutoSuggest.prototype.setSelectedValue=function(selectedVal)
{return this.s2AutoCompleteFiller.setSelectedValue(selectedVal);}
S2AutoSuggest.prototype.hideResults=function()
{return this.s2AutoCompleteFiller.hideResults();}
function S2AutoCompleter(searchType,searchInputId,callbackFunction,actionFunction,searchDelay,errorFieldId,s2AutoSuggestObj)
{this.searchType=searchType;this.searchInput=$(searchInputId);this.searchInputId=this.searchInput.id?this.searchInput.id:this.searchInput.className;this.callbackFunction=callbackFunction;this.actionFunction=actionFunction;if(isUndefined(searchDelay))
searchDelay=200;this.searchDelay=searchDelay;this.errorFieldId=errorFieldId;this.pe=null;this.lastQueryValue="";this.forceQuery=false;this.inTransaction=false;var searchInput=$(searchInputId);Event.observe(searchInput,'focus',this.startMainLoop.bindAsEventListener(this));Event.observe(searchInput,'blur',this.stopMainLoop.bindAsEventListener(this));this.resultsDiv=document.createElement('DIV');this.resultsDiv.className='dResultsAutoComplete';this.resultsDiv=$(this.resultsDiv)
Element.hide(this.resultsDiv)
this.resultsDiv.style.zIndex=10000;this.dShadowRight=document.createElement('DIV');this.dShadowRight.className='dResultAutoCompleteShadowRight'
Element.hide(this.dShadowRight)
this.dShadowBottom=document.createElement('DIV');this.dShadowBottom.className='dResultAutoCompleteShadowBottom'
Element.hide(this.dShadowBottom)
document.body.appendChild(this.resultsDiv);document.body.appendChild(this.dShadowRight);document.body.appendChild(this.dShadowBottom);this.s2AutoSuggestObj=s2AutoSuggestObj;}
S2AutoCompleter.prototype=new Object;S2AutoCompleter.prototype.startMainLoop=function()
{new PeriodicalExecuter(this.mainLoop.bind(this),this.searchDelay/1000);}
S2AutoCompleter.prototype.stopMainLoop=function()
{if(this.pe)
this.pe.stop();}
S2AutoCompleter.prototype.setSearchType=function(searchType)
{this.searchType=searchType;}
S2AutoCompleter.prototype.setSearchDelay=function(searchDelay)
{this.searchDelay=searchDelay;}
S2AutoCompleter.prototype.setSearchInputId=function(searchInputId)
{this.searchInput=$(searchInputId);this.searchInputId=this.searchInput.id?this.searchInput.id:this.searchInput.className;Event.observe(this.searchInput,'focus',this.startMainLoop.bindAsEventListener(this));Event.observe(this.searchInput,'blur',this.stopMainLoop.bindAsEventListener(this));}
S2AutoCompleter.prototype.sendAjaxQuery=function()
{this.ajaxQueryRunning=true;if(!runAutoSearch(this.lastQueryValue))
{var clearQueryValue=removeBadForAutoSuggest(this.lastQueryValue);autoCompleteManager.getJsonResult(clearQueryValue,this.searchType,{callback:function(result){this.ajaxQueryRunning=false;this.callbackFunction(result);}.bind(this),errorHandler:function(errorString,exception){this.ajaxQueryRunning=false;}.bind(this)});}
else
this.ajaxQueryRunning=false;}
S2AutoCompleter.prototype.mainLoop=function(pe)
{this.pe=pe;if(!this.searchInput||!this.searchType){this.stopMainLoop();return;}
if(this.searchInput.value.length>0)
{if(this.lastQueryValue!=this.searchInput.value||this.forceQuery)
{this.lastQueryValue=this.searchInput.value
this.sendAjaxQuery(this.searchInput);this.forceQuery=false;}}
else
{this.lastQueryValue=this.searchInput.value
this.hideResults();Element.hide(this.errorFieldId);}}
S2AutoCompleter.prototype.hideResults=function()
{this.s2AutoSuggestObj.s2AutoCompleteFiller.hideResults();}
function S2AutoCompleteFiller(s2AutoCompleter)
{this.s2AutoCompleter=s2AutoCompleter;this.searchType=s2AutoCompleter.searchType;this.searchInput=s2AutoCompleter.searchInput;this.searchInputId=s2AutoCompleter.searchInputId;this.resultsDiv=s2AutoCompleter.resultsDiv;this.dShadowRight=s2AutoCompleter.dShadowRight;this.dShadowBottom=s2AutoCompleter.dShadowBottom;this.actionFunction=s2AutoCompleter.actionFunction;this.resultsArray=[];this.resultsIds=[];this.selectedValues={};this.index=-1;this.entryCount=0;Event.observe(this.searchInput,'keydown',this.onKeyPressed.bindAsEventListener(this));this.iframeId="autosuggest_iframe_"+this.searchInputId;}
S2AutoCompleteFiller.prototype=new Object;S2AutoCompleteFiller.prototype.setSearchInputId=function(searchInputId)
{this.searchInputId=searchInputId;this.searchInput=$(searchInputId);}
S2AutoCompleteFiller.prototype.setSearchInput=function(searchInput)
{this.searchInput=searchInput;this.searchInputId=searchInput.id;}
S2AutoCompleteFiller.prototype.setResults=function(resultsArray)
{this.s2AutoCompleter.ajaxQueryRunning=false;this.resultsArray=resultsArray;}
S2AutoCompleteFiller.prototype.setResultsIds=function(resultsIds)
{this.resultsIds=resultsIds;this.filteredIds=resultsIds;this.selectedValues[this.searchInputId]=null;}
S2AutoCompleteFiller.prototype.getResultsIds=function()
{return this.resultsIds;}
S2AutoCompleteFiller.prototype.getFilteredIds=function()
{return this.filteredIds;}
S2AutoCompleteFiller.prototype.getSelectedValues=function()
{return this.selectedValues;}
S2AutoCompleteFiller.prototype.setSelectedValues=function(selectedValues)
{this.selectedValues=selectedValues;}
S2AutoCompleteFiller.prototype.displayResults=function()
{this.index=-1;Position.clone(this.searchInput,this.resultsDiv,{setWidth:false,setHeight:false,offsetTop:this.searchInput.offsetHeight+2})
var width=this.searchInput.offsetWidth-2;this.resultsDiv.innerHTML="";this.entryCount=this.resultsArray.length;for(var i=0;i<this.resultsArray.length;i++)
{var dResult=document.createElement('DIV');dResult.className="dResultAutoComplete";Element.setStyle(dResult,{width:width+"px"});var dResult_1=document.createElement('DIV');dResult_1.className="dResultAutoComplete_1";var dResult_2=document.createElement('DIV');dResult_2.className="dResultAutoComplete_2";var textResult=document.createTextNode(this.resultsArray[i]);var nobr1=document.createElement('NOBR');nobr1.appendChild(textResult);dResult_1.appendChild(nobr1);dResult.appendChild(dResult_1);dResult.resVal=this.resultsArray[i]
dResult.idVal=this.resultsIds[i]
dResult.index=i;dResult_1.idVal=this.resultsIds[i]
dResult_1.resVal=this.resultsArray[i]
dResult_1.index=i;nobr1.idVal=this.resultsIds[i];nobr1.resVal=this.resultsArray[i];nobr1.index=i;if(i==0)
{var textSuggestion=document.createTextNode('');var nobr2=document.createElement('NOBR');nobr2.appendChild(textSuggestion);dResult_2.appendChild(nobr2);dResult.appendChild(dResult_2);dResult_2.idVal=this.resultsIds[i]
dResult_2.resVal=this.resultsArray[i]
dResult_2.index=i;nobr2.idVal=this.resultsIds[i];nobr2.resVal=this.resultsArray[i];nobr2.index=i;}
Event.observe(document.body,'click',this.onClickBody.bindAsEventListener(this));Event.observe(dResult,'click',this.onClickResult.bindAsEventListener(this));Event.observe(dResult,'mouseover',this.onMouseOverResult.bindAsEventListener(this));Event.observe(dResult,'mouseout',this.onMouseOutResult.bindAsEventListener(this));this.resultsDiv.appendChild(dResult);}
if(this.iframe)
{this.iframe.hide()}
else
{this.iframe=document.createElement('iframe');this.iframe.id=this.iframeId;this.iframe.src="javascript:false"
this.iframe.style.position="absolute";this.iframe.zIndex=-1;$(document.body).appendChild(this.iframe);}
var resultsWidth=Element.getWidth(this.resultsDiv);var resultsHeight=Element.getHeight(this.resultsDiv);$(this.iframe).setStyle({width:resultsWidth,height:resultsHeight,top:this.resultsDiv.style.top,left:this.resultsDiv.style.left,opacity:0});this.iframe.show();if(this.resultsArray.length>0)
{Element.show(this.resultsDiv);var shadowWidth=Element.getWidth(this.resultsDiv);var shadowHeight=Element.getHeight(this.resultsDiv);Position.clone(this.resultsDiv,this.dShadowRight,{setWidth:false,offsetLeft:shadowWidth,offsetTop:2})
$(this.dShadowRight).setStyle({height:shadowHeight-2,opacity:0.5});Position.clone(this.resultsDiv,this.dShadowBottom,{setHeight:false,offsetLeft:2,offsetTop:shadowHeight})
$(this.dShadowBottom).setStyle({opacity:0.5});Element.show(this.dShadowRight);Element.show(this.dShadowBottom);}
else
{Element.hide(this.resultsDiv)
Element.hide(this.dShadowRight);Element.hide(this.dShadowBottom);}}
S2AutoCompleteFiller.prototype.setSelectedValue=function(selectedVal)
{this.selectedValues[this.searchInputId]=selectedVal;this.filteredIds=[selectedVal];}
S2AutoCompleteFiller.prototype.setCurrentEntry=function(idVal,resVal)
{this.searchInput.value=resVal;this.setSelectedValue(idVal);this.s2AutoCompleter.lastQueryValue=resVal;}
S2AutoCompleteFiller.prototype.hideResults=function()
{this.resultsDiv.hide();this.dShadowRight.hide();this.dShadowBottom.hide();if(this.iframe)
this.iframe.hide();}
S2AutoCompleteFiller.prototype.onClickBody=function()
{this.hideResults();}
S2AutoCompleteFiller.prototype.onClickResult=function(evt)
{var dResult=Event.element(evt);this.setCurrentEntry(dResult.idVal,dResult.resVal);this.hideResults();}
S2AutoCompleteFiller.prototype.onMouseOverResult=function(evt)
{var dResult=Event.element(evt);this.index=dResult.index;this.render();}
S2AutoCompleteFiller.prototype.onMouseOutResult=function(evt)
{var dResult=Event.element(evt);Element.removeClassName(dResult,"dResultAutoCompleteHover")}
S2AutoCompleteFiller.prototype.markPrevious=function()
{if(this.index>0)
this.index--;else
this.index=this.entryCount-1;}
S2AutoCompleteFiller.prototype.markNext=function()
{if(this.index<this.entryCount-1)
this.index++;else
this.index=0;}
S2AutoCompleteFiller.prototype.getEntry=function(index)
{return this.resultsDiv.childNodes[index];}
S2AutoCompleteFiller.prototype.getCurrentEntry=function()
{return this.getEntry(this.index);}
S2AutoCompleteFiller.prototype.render=function()
{if(this.entryCount>0)
for(var i=0;i<this.entryCount;i++)
if(i==this.index)
Element.addClassName(this.getEntry(i),"dResultAutoCompleteHover")
else
Element.removeClassName(this.getEntry(i),"dResultAutoCompleteHover");}
S2AutoCompleteFiller.prototype.onKeyPressed=function(evt)
{if(this.s2AutoCompleter.ajaxQueryRunning)return;var elt=Event.element(evt);if(elt.id!=this.searchInputId)return;switch(evt.keyCode){case Event.KEY_RETURN:this.hideResults();if(this.actionFunction)
this.actionFunction();Event.stop(evt);break;case Event.KEY_TAB:if(Element.visible(this.resultsDiv))
{this.hideResults();Event.stop(evt);}
break;case Event.KEY_ESC:Element.hide(this.resultsDiv)
Element.hide(this.dShadowRight);Element.hide(this.dShadowBottom);Event.stop(evt);break;case Event.KEY_LEFT:case Event.KEY_RIGHT:break;case Event.KEY_UP:if(!Element.visible(this.resultsDiv))
{this.s2AutoCompleter.forceQuery=true;return;}
this.markPrevious();this.render();var dResult=this.getCurrentEntry();if(dResult&&!isUndefined(dResult))
this.setCurrentEntry(dResult.idVal,dResult.resVal);if(navigator.appVersion.indexOf('AppleWebKit')>0)Event.stop(evt);break;case Event.KEY_DOWN:if(!Element.visible(this.resultsDiv))
{this.s2AutoCompleter.forceQuery=true;return;}
this.markNext();this.render();var dResult=this.getCurrentEntry();if(dResult&&!isUndefined(dResult))
this.setCurrentEntry(dResult.idVal,dResult.resVal);if(navigator.appVersion.indexOf('AppleWebKit')>0)Event.stop(evt);break;}}
var invalidSearchCharactersForNotifying=/\<|\>|\"|\'|\:|\%|\;|\{|\}|\[|\]|\&|\!|\^|\+|\#|\?|\@/g;var invalidSearchCharacters=/\<|\>|\"|\'|\:|\%|\;|\{|\}|\[|\]|\&|\!|\^|\+|\#|\?|\@|\(|\)|\s+\*/g;function runAutoSearch(str){return(str.charAt(0)==' '||str.charAt(0)=='-'||str.charAt(0)=='*'||str.charAt(0).match(invalidSearchCharacters))}
function hasBadCharactersForNotifying(str){if(str.charAt(0)==' '||str.charAt(0)=='*'){return true;}
return str.match(invalidSearchCharactersForNotifying);}
function hasBadCharactersForRemove(str){if(str.charAt(0)==' '||str.charAt(0)=='*'){return true;}
return str.match(invalidSearchCharacters);}
function removeBad(strTemp){strTemp=strTemp.replace(invalidSearchCharacters," ");strTemp=strTemp.replace(/\b\s{2,}\b/g," ");strTemp=strTemp.replace(/^\s/g,"");if(strTemp.charAt(0)==' '||strTemp.charAt(0)=='*'){return'';}
return strTemp;}
function removeBadForAutoSuggest(strTemp){strTemp=strTemp.replace(invalidSearchCharacters," ");strTemp=strTemp.replace(/\b\s{2,}\b/g," ");strTemp=strTemp.replace(/\s{1,}-/g,"-");strTemp=strTemp.replace(/^\s/g,"");if(strTemp.charAt(0)==' '||strTemp.charAt(0)=='*'){return'';}
return strTemp;}
if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(autoCompleteManager==null)var autoCompleteManager={};autoCompleteManager._path=''+JAWR.jawr_dwr_path+'';autoCompleteManager.getJsonResult=function(p0,p1,callback){dwr.engine._execute(autoCompleteManager._path,'autoCompleteManager','getJsonResult',p0,p1,callback);}