var version = '5.3.1';function SOAPClientParameters(){var _pl=new Array();this.add=function(name,value){_pl[name]=value;return this;};this.toXml=function(){var xml="";for(var p in _pl)xml+="<"+p+">"+SOAPClientParameters._serialize(_pl[p])+"</"+p+">";return xml;};};SOAPClientParameters._serialize=function(o){var s="";if(!o && o !=false)return "";switch(typeof(o)){case "string":	s+=o.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");break;case "number":	case "boolean":	s+=o.toString();break;case "object":	if(SOAPClientParameters._isType(o,"Date")){var year=o.getFullYear().toString();var month=(o.getMonth()+1).toString();month=(month.length==1)? "0"+month : month;var date=o.getDate().toString();date=(date.length==1)? "0"+date : date;var hours=o.getHours().toString();hours=(hours.length==1)? "0"+hours : hours;var minutes=o.getMinutes().toString();minutes=(minutes.length==1)? "0"+minutes : minutes;var seconds=o.getSeconds().toString();seconds=(seconds.length==1)? "0"+seconds : seconds;var milliseconds=o.getMilliseconds().toString();var tzminutes=Math.abs(o.getTimezoneOffset());var tzhours=0;while(tzminutes >=60){tzhours++;tzminutes -=60;}tzminutes=(tzminutes.toString().length==1)? "0"+tzminutes.toString(): tzminutes.toString();tzhours=(tzhours.toString().length==1)? "0"+tzhours.toString(): tzhours.toString();var timezone=((o.getTimezoneOffset()< 0)? "+" : "-")+tzhours+":"+tzminutes;s+=year+"-"+month+"-"+date+"T"+hours+":"+minutes+":"+seconds+"."+milliseconds+timezone;}else if(SOAPClientParameters._isType(o,"Array")){for(var p in o){if(!isNaN(p)){var type=typeof(o[p]);if(o[p] !=null){(/function\s+(\w*)\s*\(/ig).exec(o[p].constructor.toString());type=RegExp.$1;}switch(type){case "":	type=typeof(o[p]);case "String":	type="string";break;case "Number":	type="int";break;case "Boolean":	type="boolean";break;case "Date":	type="dateTime";break;case "Array":	if(o[p].length > 0){switch(typeof(o[p][0])){case "string":	type="ArrayOfString";break;case "number":	type="ArrayOfInt";break;case "boolean":	type="ArrayOfBoolean";break;case "object":	if(SOAPClientParameters._isType(o[p][0],"Date")){type="ArrayOfDateTime";break;}else{type="ArrayOfAnyType";break;}}}}s+="<"+type+">"+SOAPClientParameters._serialize(o[p])+"</"+type+">"}else	s+="<"+p+">"+SOAPClientParameters._serialize(o[p])+"</"+p+">"}}else	for(var p in o)if(typeof(o[p])!="function")s+="<"+p+">"+SOAPClientParameters._serialize(o[p])+"</"+p+">";break;default:	throw new Error(500,"SOAPClientParameters: type '"+typeof(o)+"' is not supported");}return s;};SOAPClientParameters._isType=function(o,type){return eval(type+'.prototype.isPrototypeOf(o)');};function SOAPClient(){};SOAPClient.invoke=function(url,method,parameters,async,callback){if(async)SOAPClient._loadWsdl(url,method,parameters,async,callback);else	return SOAPClient._loadWsdl(url,method,parameters,async,callback);};SOAPClient.Timeout=60000;SOAPClient.Headers=[];SOAPClient_cacheWsdl=new Array();SOAPClient._loadWsdl=function(url,method,parameters,async,callback){var wsdl=SOAPClient_cacheWsdl[url];if(wsdl)return SOAPClient._sendSoapRequest(url,method,parameters,async,callback,wsdl);var xmlHttp=SOAPClient._getXmlHttp();xmlHttp.open("GET",url+"?wsdl",async);if(async){var tHandle=setTimeout(function(){SOAPClient._onTimeout(xmlHttp,async,callback);xmlHttp=null;},SOAPClient.Timeout);xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){clearTimeout(tHandle);SOAPClient._onLoadWsdl(url,method,parameters,async,callback,xmlHttp);xmlHttp=null;}}}xmlHttp.send(null);if(!async)return SOAPClient._onLoadWsdl(url,method,parameters,async,callback,xmlHttp);};SOAPClient._onLoadWsdl=function(url,method,parameters,async,callback,req){if(req.status >=400){SOAPClient._onError(req,async,req.status,req.status+' '+req.statusText,callback);return;}var wsdl=req.responseXML;var ns=(wsdl.documentElement.attributes["targetNamespace"]+""=="undefined")? wsdl.documentElement.attributes.getNamedItem("targetNamespace").nodeValue : wsdl.documentElement.attributes["targetNamespace"].value;wsdl=SOAPClient._getTypesFromWsdl(wsdl);wsdl["targetNamespace"]=ns;SOAPClient_cacheWsdl[url]=wsdl;return SOAPClient._sendSoapRequest(url,method,parameters,async,callback,wsdl);};SOAPClient._sendSoapRequest=function(url,method,parameters,async,callback,wsdl){var ns=wsdl.targetNamespace;var sr="<?xml version=\"1.0\" encoding=\"utf-8\"?>"+"<soap:Envelope "+"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "+"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" "+"xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"+"<soap:Body>"+"<"+method+" xmlns=\""+ns+"\">"+parameters.toXml()+"</"+method+"></soap:Body></soap:Envelope>";var xmlHttp=SOAPClient._getXmlHttp();xmlHttp.open("POST",url,async);var soapaction=((ns.lastIndexOf("/")!=ns.length - 1)? ns+"/" : ns)+method;xmlHttp.setRequestHeader("SOAPAction",soapaction);xmlHttp.setRequestHeader("Content-Type","text/xml; charset=utf-8");for(var val in SOAPClient.Headers){xmlHttp.setRequestHeader(val,SOAPClient.Headers[val]);}if(async){var tHandle=setTimeout(function(){SOAPClient._onTimeout(xmlHttp,async,callback);xmlHttp=null;},SOAPClient.Timeout);xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){clearTimeout(tHandle);SOAPClient._onSendSoapRequest(method,async,callback,wsdl,xmlHttp);xmlHttp=null;}}}xmlHttp.send(sr);if(!async)return SOAPClient._onSendSoapRequest(method,async,callback,wsdl,xmlHttp);};SOAPClient._onTimeout=function(xmlHttp,async,callback){if(xmlHttp !=null){xmlHttp.onreadystatechange=function(){};xmlHttp.abort();}SOAPClient._onError(xmlHttp,async,500,'A network timeout occurred',callback);};SOAPClient._onError=function(xmlHttp,async,status,message,callback){var o=new Error(status,message);if(!async && !callback)throw o;if(callback)callback(o);};SOAPClient._onSendSoapRequest=function(method,async,callback,wsdl,req){var o=null;var nd=SOAPClient._getElementsByTagName(req.responseXML,method+"Result",req);if(nd.length==0){if(SOAPClient._getElementsByTagName(req.responseXML,"faultcode",req).length > 0){SOAPClient._onError(req,async,req.status,req.status+' '+req.statusText+SOAPClient._getElementsByTagName(req.responseXML,"faultstring",req)[0].childNodes[0].nodeValue,callback);return;}else if(req.status >=400){SOAPClient._onError(req,async,req.status,req.status+' '+req.statusText,callback);return;}}else	o=SOAPClient._soapresult2object(nd[0],wsdl);if(callback)callback(o,req.responseXML);if(!async)return o;};SOAPClient._soapresult2object=function(node,wsdlTypes){return SOAPClient._node2object(node,wsdlTypes);};SOAPClient._node2object=function(node,wsdlTypes){if(node==null)return null;if(node.nodeType==3 || node.nodeType==4)return SOAPClient._extractValue(node,wsdlTypes);if(node.childNodes.length==1 &&(node.childNodes[0].nodeType==3 || node.childNodes[0].nodeType==4))return SOAPClient._node2object(node.childNodes[0],wsdlTypes);var isarray=SOAPClient._getTypeFromWsdl(node.nodeName,wsdlTypes).toLowerCase().indexOf("arrayof")!=-1;if(!isarray){var obj=null;if(node.hasChildNodes())obj=new Object();var totalText='';for(var i=0;i < node.childNodes.length;i++){if(node.childNodes[i].nodeName=='#text'){for(i;i < node.childNodes.length;i++){if(node.childNodes[i].nodeName !='#text')break;totalText+=SOAPClient._node2object(node.childNodes[i],wsdlTypes);}return totalText;}else{var p=SOAPClient._node2object(node.childNodes[i],wsdlTypes);obj[node.childNodes[i].nodeName]=p;}}return obj;}else{var l=new Array();for(var i=0;i < node.childNodes.length;i++)l[l.length]=SOAPClient._node2object(node.childNodes[i],wsdlTypes);return l;}return null;};SOAPClient._extractValue=function(node,wsdlTypes){var value=node.nodeValue;switch(SOAPClient._getTypeFromWsdl(node.parentNode.nodeName,wsdlTypes).toLowerCase()){default:	case "s:string":	return(value !=null)? value+"" : "";case "s:boolean":	return value+""=="true";case "s:int":	case "s:long":	return(value !=null)? parseInt(value+"",10): 0;case "s:double":	return(value !=null)? parseFloat(value+""): 0;case "s:datetime":	if(value==null)return null;else{value=value+"";value=value.substring(0,(value.lastIndexOf(".")==-1 ? value.length : value.lastIndexOf(".")));value=value.replace(/T/gi," ");value=value.replace(/-/gi,"/");var d=new Date();d.setTime(Date.parse(value));return d;}}};SOAPClient._getTypesFromWsdl=function(wsdl){var wsdlTypes=new Array();var ell=SOAPClient._getElementsByTagName(wsdl,"s:element");var useNamedItem=true;if(ell.length==0){ell=SOAPClient._getElementsByTagName(wsdl,"element");useNamedItem=false;}for(var i=0;i < ell.length;i++){if(useNamedItem){if(ell[i].attributes.getNamedItem("name")!=null && ell[i].attributes.getNamedItem("type")!=null)wsdlTypes[ell[i].attributes.getNamedItem("name").nodeValue]=ell[i].attributes.getNamedItem("type").nodeValue;}else{if(ell[i].attributes["name"] !=null && ell[i].attributes["type"] !=null)wsdlTypes[ell[i].attributes["name"].value]=ell[i].attributes["type"].value;}}return wsdlTypes;};SOAPClient._getTypeFromWsdl=function(elementname,wsdlTypes){var type=wsdlTypes[elementname]+"";return(type=="undefined")? "" : type;};SOAPClient._getElementsByTagName=function(document,tagName,req){try{return document.selectNodes(".//*[local-name()=\""+tagName+"\"]");}catch(ex){}try{return document.getElementsByTagName(tagName);}catch(ex){if(req){document=new DOMParser().parseFromString(req.responseText,"text/xml");return document.getElementsByTagName(tagName);}else	throw ex;}};SOAPClient._getXmlHttp=function(){try{if(window.XMLHttpRequest){var req=new XMLHttpRequest();if(req.readyState==null){req.readyState=1;req.addEventListener("load",function(){req.readyState=4;if(typeof req.onreadystatechange=="function")req.onreadystatechange();},false);}return req;}if(window.ActiveXObject)return new ActiveXObject(SOAPClient._getXmlHttpProgID());}catch(ex){}throw new Error("Your browser does not support XmlHttp objects");};SOAPClient._getXmlHttpProgID=function(){if(SOAPClient._getXmlHttpProgID.progid)return SOAPClient._getXmlHttpProgID.progid;var progids=["MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];var o;for(var i=0;i < progids.length;i++){try{o=new ActiveXObject(progids[i]);return SOAPClient._getXmlHttpProgID.progid=progids[i];}catch(ex){};}throw new Error("Could not find an installed XML parser");};function Cookie(name,sVals,exp){this.Name=name;this.Value=null;this.Values=new Object();this.Expires=(exp)?exp:null;this.Path='/';this.Secure=false;this.Domain=GetDomain();if(sVals !=null){var nvc=(typeof(sVals)=="string")?sVals.split('&'):null;if(nvc !=null && nvc.length > 0 && nvc[0].indexOf('=')> -1){for(var i=0;i<nvc.length;i++){var nv=nvc[i].split('=');this.Values[nv[0]]=nv[1];}}else	this.Value=sVals;}this.Save=function(){var v='';for(var n in this.Values){v+='&'+n+'='+escape(this.Values[n]);}if(v=='')v=escape(this.Value);else v=v.substr(1);var me=this.Name+'='+v+((this.Expires==null)?"":(";expires="+this.Expires.toGMTString()))+";path="+this.Path+((this.Domain==null)?"":(";domain="+this.Domain))+((this.Secure)?";secure;":";");document.cookie=me;};this.Delete=function(){this.Expires=new Date(1970,0,2);this.Save();};};function GetCookies(){var all=new Object();if(document.cookie !=""){var cookies=document.cookie.split("; ");for(i=0;i< cookies.length;i++){var c=cookies[i];var idx=c.indexOf('=');var N=c.substr(0,idx);var V='';if(c.length > idx+1)V=unescape(c.substring(idx+1,c.length));all[N]=new Cookie(N,V);}}return all;};function GetCookie(name){return GetCookies()[name];};function ShowCookies(){var cookies=GetCookies();var sCookie='';for(var crumb in cookies){sCookie+='Name: '+cookies[crumb].Name+'\n';sCookie+='Value: '+cookies[crumb].Value+'\n';for(var values in cookies[crumb].Values){sCookie+=" "+values+": ";sCookie+=cookies[crumb].Values[values]+"\n";}}alert(sCookie);}function GetDomain(){var url=document.domain;var end="";var s=url.indexOf('.');if(url.indexOf('.')> -1){end=url.substr(url.lastIndexOf('.'));url=url.substring(0,url.lastIndexOf('.'));}if(url.indexOf('.')> -1){url=url.substr(url.lastIndexOf('.')+1);}url=url+end;if(url.indexOf('.')==-1){url=null;}if(url &&(/^[0-9]+.[0-9]+$/g).test(url))return null;return url;};function AreCookiesEnabled(){var n="Test";var c=new Cookie(n,n);c.Save();c=GetCookie(n);if(c)c.Delete();return(c !=null && c.Value==n)? true : false;};function AddListener(obj,evt,cb){if(obj.attachEvent){obj.attachEvent(evt,cb);}else if(obj.addEventListener){evt=(evt.toLowerCase().indexOf("on")==0)?evt.substr(2):evt;obj.addEventListener(evt,cb,false);}};function $(id){return document.getElementById(id);};function IsNumeric(o){return(typeof o=='number' && isFinite(o));};function Display(id,show){var el=$(id);el.style.display=(show)?'inline':'none';};function ToggleChildrenDisplay(obj){var cn=obj.childNodes;for(var i=0;i<cn.length;i++){var vis='inline';if(cn[i].tagName=='TR')vis='block';if(cn[i].style){cn[i].style.display=(cn[i].style.display=='none')?vis:'none';}}};function trim(s){return(s !=null)?s.replace(/^\s*|\s*$/g,""):s;}function DisableInputs(disable){var tags=[ 'input','textarea' ];for(var j=0;j<tags.length;j++){var inputs=document.getElementsByTagName(tags[j]);for(var i=0;i<inputs.length;i++){inputs[i].disabled=disable;}}};function GetErrorMessage(e){if(e.fileName)return e.fileName;else if(e.message)return e.message;else	return e.toString();};function AgentRequest(input,isAppEvent,user){this.Input=input;this.InputType="Typed";this.UnitID=null;this.Args=[];};function User(){this.ID=-1;this.Email=null;this.IPAddress=null;this.Name="Anonymous";};function TrainMeMessage(){this.Name='';this.Email='';this.Group='';this.Feedback='';this.Issues=[];this.Attributes=[];};function AgentService(){}AgentService.url='AgentProxy.asmx';AgentService.HandleError=function(e){throw e;};AgentService.WSInvoke=function(method,pl,cb,async){if(async !=false)async=true;try{SOAPClient.invoke(this.url,method,pl,async,cb);}catch(e){AgentService.HandleError(e);}};AgentService.SendRequest=function(sessionID,userInput,cb){if(userInput.Input !=null){if(userInput.Input.length > 200){return null;}userInput.Input=userInput.Input.replace(/\</g,"less than");userInput.Input=userInput.Input.replace(/\>/g,"greater than");if(userInput.Input.replace(' ','').length==0){return null;}}var pl=new SOAPClientParameters();pl.add('sessionID',sessionID);pl.add('request',userInput);this.WSInvoke("GetResponse",pl,cb);};AgentService.DoAppEvent=function(sessionID,cb,name){var args=AgentService.DoAppEvent.arguments;var params=[];for(var i=3;i < args.length;i++){params.push(args[i]);}var pl=new SOAPClientParameters();pl.add('sessionID',sessionID);pl.add('name',name);pl.add('parameters',params);AgentService.WSInvoke("DoAppEvent",pl,cb);};AgentService.EndSession=function(sessionID,cb,async){var pl=new SOAPClientParameters();pl.add('sessionID',sessionID);this.WSInvoke("EndSession",pl,cb,async);};AgentService.TrainAgent=function(sessionID,msg,cb){var pl=new SOAPClientParameters();pl.add('sessionID',sessionID);pl.add('msg',msg);return this.WSInvoke("TrainAgent",pl,cb);};function Agent(){};Agent.SessionID=null;Agent.IsSoundEnabled=true;Agent.IsChatMode=false;Agent.IsDebugMode=false;Agent.LastResponse=null;Agent.StaffName='Staff';Agent.IsAgent=false;Agent._FlashID='tts';Agent._SoundList=[];Agent._SoundIndex=0;Agent._SoundKillTimeout=90000;Agent._SoundTimeoutRef=null;Agent._IsDisposed=false;Agent.Init=function(){if(Agent.LastResponse)setTimeout(Agent.ShowWelcome,100);};AddListener(window,"onload",Agent.Init);Agent.ShowWelcome=function(){Agent._OnResponse(Agent.LastResponse);};Agent.Dispose=function(evt){try{if(Agent.IsAgent){if(!Agent._IsDisposed){AgentService.EndSession(Agent.SessionID,null,false);Agent._IsDisposed=true;}}}catch(e){}};AddListener(window,"onunload",Agent.Dispose);Agent.User=new User();Agent.User.Name='User';Agent.SendRequest=function(input,type,unitID){input=trim(input);if(input==null || input==''){if(Agent.IsDebugMode)alert('Error: empty input');return;}var userInput=new AgentRequest(input);if(type)userInput.InputType=type;if(unitID)userInput.UnitID=unitID;Agent.fireEvent("OnBeforeQuestionSent",userInput);AgentService.SendRequest(Agent.SessionID,userInput,Agent._OnResponse);Agent.fireEvent("OnQuestionSent",userInput);};Agent.DoAppEvent=function(name){var args2=[];args2.push(Agent.SessionID);args2.push(Agent._OnResponse);args2.push(name);var args=Agent.DoAppEvent.arguments;for(var i=1;i<args.length;i++){args2.push(args[i]);}Agent.callFunction(AgentService.DoAppEvent,args2);Agent.fireEvent("OnAppEventSent",name);};Agent.EnableSound=function(enabled){Agent.IsSoundEnabled=enabled;Agent.fireEvent("OnSoundToggled",enabled);};Agent.PlaySoundList=function(list){if(list){Agent._SoundIndex=0;Agent._SoundList=list;}var url=Agent._SoundList[Agent._SoundIndex];Agent._SoundIndex++;if(url)Agent.PlaySound(url);};Agent.PlaySound=function(url){Agent.fireEvent("OnPlaySound",url);};Agent.StopSound=function(){Agent._SoundIndex=1000;$(Agent._FlashID).innerHTML='';};Agent.Redirect=function(url){Agent.fireEvent("OnRedirect",url);};Agent.Ignore=function(o){if(o)o.Ignore=true;};Agent._CheckError=function(o){if(o instanceof Error){if(GetErrorMessage(o)!='A network timeout occurred'){throw o;}else if(AgentTemplate){Agent.Ignore(o);AgentTemplate.AppendResponse('Error',o.message);}}};Agent._OnResponse=function(r){try{Agent._CheckError(r);if(r==null){throw new Error(-1,'agent response was null');}}catch(e){Agent.fireEvent("OnError",GetErrorMessage(e));return;}Agent._TriggerCalls(r,r.ClientScriptCalls);if(r && !r.Ignore){Agent.fireEvent("OnAgentResponse",r);Agent.LastResponse=r;}};Agent._TriggerCalls=function(r,evts){try{if(evts && evts.length){for(var i=0;i<evts.length;i++){Agent.fireEvent("OnAppCall",r,evts[i]);}}}catch(e){Agent.fireEvent("OnError",GetErrorMessage(e));}};Agent._OnDoTrainMe=function(e){if(e instanceof Error)alert('Error: '+GetErrorMessage(e));else if(typeof(e)=='string')alert(e);Agent.fireEvent("OnTrainMeSent",e);if(!Agent.IsAgent){Agent.SessionID=null;setTimeout('window.close()',0);}};Agent._OnSoundToggled=function(enabled){if(enabled){var calls=Agent.LastResponse.ClientScriptCalls;if(Agent.LastResponse !=null && calls.length > 0){for(var p in calls)if(calls[p].Name=="TTSFile")Agent.fireEvent("OnPlaySound",calls[p].Value);}}else{Agent.StopSound();}};Agent._OnPlaySound=function(url){var obj='<OBJECT ID="FlashMovie" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,0,0" WIDTH="2" HEIGHT="1" VIEWASTEXT>'+'<PARAM NAME="movie" VALUE="'+url+'"><PARAM NAME="quality" VALUE="low"><PARAM NAME="play" VALUE="true"><PARAM NAME="loop" VALUE="false">'+'<EMBED PLAY="true" LOOP="false" QUALITY="low" SWLIVECONNECT="true" WIDTH="1" HEIGHT="2" NAME="FlashMovie" SRC="'+url+'" TYPE="application/x-shockwave-flash" PLUGINSPAGE="https://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED>'+'</OBJECT>';$(Agent._FlashID).innerHTML=obj;if(Agent._SoundTimeoutRef !=null){clearTimeout(Agent._SoundTimeoutRef);}if(this.KillTimeout > 0){Agent._SoundTimeoutRef=setTimeout(Agent.StopSound,Agent._SoundKillTimeout);}setTimeout(Agent._CheckPlaySound,30);};Agent._CheckPlaySound=function(){var movie=window.document.FlashMovie;try{if(movie && movie.IsPlaying())setTimeout(Agent._CheckPlaySound,30);else	Agent.fireEvent("OnSoundCompleted");}catch(e){Agent.fireEvent("OnSoundCompleted");}};Agent.Events=[];Agent.CreateEvent=function(name){name=name.toLowerCase();if(Agent.Events[name] !=null)alert('Event already exists: '+name);else{Agent.Events[name]=[];}};Agent._getCBList=function(evt){evt=evt.toLowerCase();if(Agent.Events[evt] !=null){return Agent.Events[evt];}else	return [];};Agent.attachEvent=function(evt,cb){Agent._getCBList(evt).push(cb);};Agent.fireEvent=function(evt){var list=Agent._getCBList(evt);var args=Agent.fireEvent.arguments;var args2=[];for(var i=1;i<args.length;i++){args2.push(args[i]);}for(var i=0;i<list.length;i++){Agent.callFunction(list[i],args2);}};Agent.callFunction=function(func,args){var s='';for(var i=0;i<args.length;i++){s+=',args['+i+']';}s=(s.length > 1)?s.substr(1):'';eval('func('+s+');');};Agent.CreateEvent("OnBeforeQuestionSent");Agent.CreateEvent("OnQuestionSent");Agent.CreateEvent("OnAppEventSent");Agent.CreateEvent("OnAgentResponse");Agent.CreateEvent("OnPlaySound");Agent.CreateEvent("OnSoundCompleted");Agent.CreateEvent("OnSoundToggled");Agent.CreateEvent("OnAppCall");Agent.CreateEvent("OnRedirect");Agent.CreateEvent("OnError");Agent.CreateEvent("OnTrainMeSent");Agent.CreateEvent("OnChatStarted");Agent.CreateEvent("OnChatStaffConnected");Agent.CreateEvent("OnChatEnded");Agent.CreateEvent("OnChatResponse");Agent.CreateEvent("OnChatSent");Agent.CreateEvent("OnStaffTyping");Agent.attachEvent("OnSoundToggled",Agent._OnSoundToggled);Agent.attachEvent("OnPlaySound",Agent._OnPlaySound);Agent.attachEvent("OnSoundCompleted",Agent.PlaySoundList);function ChatService(){}ChatService.url='ChatProxy.asmx';ChatService.HandleError=function(e){throw e;};ChatService.WSInvoke=function(method,pl,cb,async){if(async !=false)async=true;try{SOAPClient.invoke(this.url,method,pl,async,cb);}catch(e){AgentService.HandleError(e);}};ChatService.RequestChat=function(sessionID,cb){var pl=new SOAPClientParameters();pl.add('sessionID',sessionID);this.WSInvoke("RequestChat",pl,cb);};ChatService.RequestChatQueue=function(sessionID,queueID,cb){var pl=new SOAPClientParameters();pl.add('sessionID',sessionID);pl.add('queueID',queueID);this.WSInvoke("RequestChatQueue",pl,cb);};ChatService.CheckQueueStatus=function(queueID,cb){var pl=new SOAPClientParameters();pl.add('queueID',queueID);this.WSInvoke("CheckQueueStatus",pl,cb);};ChatService.CheckChatRequestStatus=function(sessionID,cb){var pl=new SOAPClientParameters();pl.add('sessionID',sessionID);this.WSInvoke("PollForStaffConnected",pl,cb);};ChatService.SendResponse=function(sessionID,input,cb){var pl=new SOAPClientParameters();pl.add('sessionID',sessionID);pl.add('request',input);this.WSInvoke("SendResponse",pl,cb);};ChatService.GetChatMessages=function(sessionID,cb){var pl=new SOAPClientParameters();pl.add('sessionID',sessionID);this.WSInvoke("PollForResponses",pl,cb);};ChatService.EndChat=function(sessionID,cb,async){var pl=new SOAPClientParameters();pl.add('sessionID',sessionID);this.WSInvoke("EndChat",pl,cb,async);};function Chat(){};Chat.Dispose=function(evt){try{if(Chat.IsConnected || Agent.IsChatMode){Chat.IsConnected=false;Agent.IsChatMode=false;ChatService.EndChat(Agent.SessionID,null,false);}}catch(e){}};AddListener(window,"onunload",Chat.Dispose);Chat.ChatStaffEndedMsg='Chat session ended by operator';Chat.IsConnected=false;Chat.TimerRef=null;Chat.Start=function(queueID){Agent.IsChatMode=true;if(!queueID)ChatService.RequestChat(Agent.SessionID,Chat._StartedChat);else	ChatService.RequestChatQueue(Agent.SessionID,queueID,Chat._StartedChat);};Chat.SendMessage=function(input){if(Chat.IsConnected){var msg=new AgentRequest(input);ChatService.SendResponse(Agent.SessionID,msg,Chat._MessageSent);}else{alert("Error: Cannot send chat response unless chat is started");}};Chat.End=function(reason,endChat){if(Chat.TimerRef !=null){clearTimeout(Chat.TimerRef);}if(Chat.IsConnected || Agent.IsChatMode){Chat.IsConnected=false;ChatService.EndChat(Agent.SessionID,Chat._EndedChat);}Agent.IsChatMode=false;Agent.fireEvent("OnChatEnded",reason);};Chat._StartedChat=function(r){if(r instanceof Error){Chat.End('error occurred');return;}if(r=='Open' || r==true){Chat._CheckChatRequestStatus();Agent.fireEvent("OnChatStarted",r);}else if(r=='Busy'){Chat.End('No Available Operators');}else{Chat.End('Service Unavailable');}};Chat._EndedChat=function(reason){};Chat._MessageSent=function(){Agent.fireEvent("OnChatSent");};Chat._CheckChatRequestStatus=function(){ChatService.CheckChatRequestStatus(Agent.SessionID,Chat._ChatServerCheck);};Chat._ChatServerCheck=function(r){if(r instanceof Error){Chat.End('error occurred');throw r;}if(r !=null){Chat.IsConnected=true;Agent.StaffName=r.DisplayName;Agent.fireEvent("OnChatStaffConnected",r.DisplayName);Chat._GetChatMessages();}else{Chat.TimerRef=setTimeout(Chat._CheckChatRequestStatus,1000);}};Chat._GetChatMessages=function(){ChatService.GetChatMessages(Agent.SessionID,Chat._CheckChatMessages);};Chat._CheckChatMessages=function(r){if(r instanceof Error){Chat.End('error occurred');throw r;}var endMsg=null;if(r !=null && r.length > 0){for(var i=0;i < r.length;i++){var m=r[i].Response;if(r[i].Staff !=null && r[i].Staff.DisplayName){Agent.StaffName=r[i].Staff.DisplayName;}Agent._TriggerCalls(r[i],r[i].ClientScriptCalls);if(m){if(Chat.IsConnected){Agent.fireEvent("OnChatResponse",Agent.StaffName,m);}else{endMsg=m;}}}}if(Chat.IsConnected){Chat.TimerRef=setTimeout(Chat._GetChatMessages,1000);}else{endMsg=(endMsg)?endMsg:Chat.ChatStaffEndedMsg;Chat.End(endMsg);}};function AgentTemplate(){}AgentTemplate.AgentName='ActiveAgent';AgentTemplate.InputBox=null;AgentTemplate.HistoryBox=null;AgentTemplate.DidYouMeanTitle='Did You Mean: ';AgentTemplate.DidYouMeanArea=null;AgentTemplate.HeresMoreArea=null;AgentTemplate.WebLinksArea=null;AgentTemplate.ScrollUp=true;AgentTemplate.DelayInputHistory=false;AgentTemplate.MaxInputLength=200;AgentTemplate.RotateArray=[];AgentTemplate.RotateIndex=-1;AgentTemplate.RotateDelay=2000;AgentTemplate.RotateTimer=null;AgentTemplate.Init=function(){if(Agent.IsDebugMode){if(AgentTemplate.InputBox==null)alert('Error: AgentTemplate.InputBox not set');if(AgentTemplate.HistoryBox==null)alert('Error: AgentTemplate.HistoryBox not set');}Agent.attachEvent("OnAgentResponse",AgentTemplate._AgentResponse);Agent.attachEvent("OnAppCall",AgentTemplate._HandleAppCalls);Agent.attachEvent("OnChatResponse",AgentTemplate._ChatResponse);Agent.attachEvent("OnChatEnded",AgentTemplate._ChatEnded);Agent.attachEvent("OnChatStaffConnected",AgentTemplate._ChatStaffConnected);if(AgentTemplate.InputBox !=null){if(AgentTemplate.RotateArray.length==0){AgentTemplate.InputBox.focus();}else{AgentTemplate.InputBox.blur();AgentTemplate._InputBoxBlur();}}};AddListener(window,"onload",AgentTemplate.Init);AgentTemplate.SetInputBox=function(id){AgentTemplate.InputBox=$(id);AddListener(AgentTemplate.InputBox,"onkeypress",AgentTemplate._InputBoxKeyPress);AddListener(AgentTemplate.InputBox,"onpaste",AgentTemplate._InputBoxPasted);AddListener(AgentTemplate.InputBox,"onfocus",AgentTemplate._InputBoxFocus);AddListener(AgentTemplate.InputBox,"onblur",AgentTemplate._InputBoxBlur);};AgentTemplate.SetHistoryBox=function(id){AgentTemplate.HistoryBox=$(id);};AgentTemplate.SetDidYouMeanArea=function(id){AgentTemplate.DidYouMeanArea=$(id);};AgentTemplate.SetHeresMoreArea=function(id){AgentTemplate.HeresMoreArea=$(id);};AgentTemplate.SetWebLinksArea=function(id){AgentTemplate.WebLinksArea=$(id);};AgentTemplate.SendRequest=function(){var input=trim(AgentTemplate.InputBox.value);if(trim(input)!='' && input !=AgentTemplate.RotateArray[AgentTemplate.RotateIndex]){AgentTemplate.InputBox.value='';if(!Agent.IsChatMode){AgentTemplate.AskAgent(input);}else{AgentTemplate.AppendResponse(Agent.User.Name,input,true);Chat.SendMessage(input);}}};AgentTemplate.AskAgent=function(input,type,unitID){if(!AgentTemplate.DelayInputHistory)AgentTemplate.AppendResponse(Agent.User.Name,input,true);Agent.SendRequest(input,type,unitID);};AgentTemplate.StartChat=function(){AgentTemplate.DisableUI();if(!Agent.IsChatMode){AgentTemplate.AppendResponse(null,'Connecting to chat... Please wait.',false);Chat.Start();}};AgentTemplate.AppendResponse=function(name,response,isUser){var div=document.createElement("div");var hb=AgentTemplate.HistoryBox;if(isUser){response=response.replace(/\</g,'&lt;').replace(/\>/g,'&gt;');if(name==null)name='User';div.className="aa_userresp";div.innerHTML='<span class=\'aa_username\'>'+name+':</span> '+response;}else if(name !=null){div.className="aa_agentresp";div.innerHTML='<span class=\'aa_agentname\'>'+name+':</span> '+response;}else{div.className="aa_sysmsg";div.innerHTML=response;}if(AgentTemplate.ScrollUp){hb.appendChild(div);hb.scrollTop=hb.scrollHeight;hb.parentNode.scrollTop=hb.parentNode.scrollHeight;}else{if(hb.hasChildNodes()){var topChild=hb.childNodes[0];if(div.className=="aa_agentresp" && topChild.className=="aa_userresp"){hb.replaceChild(div,topChild);hb.insertBefore(topChild,div);}else{hb.insertBefore(div,topChild);}}else{hb.appendChild(div);}hb.scrollTop=hb.parentNode.scrollTop=0;}var nodes=new Array();for(var i=0;i<hb.childNodes.length;i++){nodes.push(hb.childNodes[i]);}if(AgentTemplate.ScrollUp)nodes=nodes.reverse();var user=false;var agent=false;for(var i=0;i<nodes.length;i++){var c=nodes[i].className;switch(c){case "aa_userresp":	if(user)c="aa_userresp_old";else	user=true;break;case "aa_agentresp":	if(agent)c="aa_agentresp_old";else	agent=true;break;}nodes[i].className=c;}};AgentTemplate.EnableUI=function(staff){AgentTemplate.HistoryBox.disabled=false;AgentTemplate.InputBox.disabled=false;};AgentTemplate.DisableUI=function(){AgentTemplate.HistoryBox.disabled=true;AgentTemplate.InputBox.disabled=true;};AgentTemplate._AgentResponse=function(obj){if(obj && !obj.Ignore){var resp=obj.Response;if(obj.DidYouMean !=null){var dym=obj.DidYouMean;if(dym.indexOf('<')==-1){var dym='<span class="aa_spellchecktitle">'+AgentTemplate.DidYouMeanTitle+'</span> '+'<a href="javascript:;" onclick="AgentTemplate.AskAgent(\''+dym+'\', \'DidYouMeanClick\');return false;">'+dym+'</a>';}if(AgentTemplate.DidYouMeanArea==null)resp+='<div class="aa_spellcheck">'+dym+'</div>';else	AgentTemplate.DidYouMeanArea.innerHTML=dym;}if(AgentTemplate.DelayInputHistory && obj.Situation !="AppEvents" && obj.UserInput && obj.UserInput.indexOf('AppEvent')!=0)AgentTemplate.AppendResponse(Agent.User.Name,obj.UserInput,true);AgentTemplate.AppendResponse(AgentTemplate.AgentName,resp,false);}};AgentTemplate._HandleAppCalls=function(br,e){switch(e.Name){case "OtherRelatedResponses":	if(AgentTemplate.HeresMoreArea==null)br.Response+=e.Value;else	AgentTemplate.HeresMoreArea.innerHTML=e.Value;break;case "DisplayLinkSet":	case "ShowWebLinks":	if(AgentTemplate.WebLinksArea==null)br.Response+=e.Value;else	AgentTemplate.WebLinksArea.innerHTML=e.Value;break;case "IgnoreAgentResponse":	Agent.Ignore(br);break;case "NavUrl":	Agent.Redirect(e.Value);break;case "TTSFile":	if(Agent.IsSoundEnabled)Agent.fireEvent("OnPlaySound",e.Value);break;case "DidYouMean":	if(AgentTemplate.DidYouMeanArea==null)br.Response+=e.Value;else	AgentTemplate.DidYouMeanArea.innerHTML=e.Value;break;case "Error":	Agent.fireEvent("OnError",e.Value);break;case "IsTyping":	Agent.fireEvent("OnStaffTyping",e.Value);break;case "ChatEnding":	Chat.IsConnected=false;break;}};AgentTemplate._ChatResponse=function(name,response,url){AgentTemplate.AppendResponse(name,response,false);if(url !=null){Agent.fireEvent("OnRedirect",url);}};AgentTemplate._ChatEnded=function(reason){AgentTemplate.AppendResponse(null,'Chat Ended: '+reason,false);AgentTemplate.EnableUI();};AgentTemplate._ChatStaffConnected=function(staff){AgentTemplate.EnableUI();AgentTemplate.AppendResponse(null,staff+' Connected.',false);};AgentTemplate._InputBoxKeyPress=function(e){var key=(typeof(e.which)=='number')?e.which:e.keyCode;if(key==13 || key==10){if(e.ctrlKey && AgentTemplate.InputBox.nodeName=="TEXTAREA"){AgentTemplate.InputBox.value+='\n';return true;}else{AgentTemplate.SendRequest();if(e.preventDefault)e.preventDefault();e.cancelBubble=true;e.returnValue=false;return false;}}else{var el=(e.srcElement)?e.srcElement:e.target;if(el !=null && el.value.length > AgentTemplate.MaxInputLength-1){if(e.preventDefault)e.preventDefault();e.cancelBubble=true;e.returnValue=false;}}AgentTemplate._InputBoxFocus();return true;};AgentTemplate._InputBoxPasted=function(e){try{var oTR=e.srcElement.document.selection.createRange();var iInsertLength=AgentTemplate.MaxInputLength - e.srcElement.value.length+oTR.text.length;var sData=window.clipboardData.getData("Text").substr(0,iInsertLength);oTR.text=sData;e.cancelBubble=true;e.returnValue=false;}catch(e){}};AgentTemplate._InputRotator=function(){var list=AgentTemplate.RotateArray;if(list.length > 0){var i=(AgentTemplate.RotateIndex+1)%list.length;AgentTemplate.InputBox.value=list[i];AgentTemplate.RotateIndex=i;}};AgentTemplate._StartInputRotate=function(){AgentTemplate._InputRotator();AgentTemplate._StopInputRotate();AgentTemplate.RotateTimer=setInterval(AgentTemplate._InputRotator,AgentTemplate.RotateDelay);};AgentTemplate._StopInputRotate=function(){if(AgentTemplate.RotateTimer !=null)clearInterval(AgentTemplate.RotateTimer);};AgentTemplate._InputBoxFocus=function(e){if(AgentTemplate.InputBox.className=='aa_chatinput aa_chatinputalt'){AgentTemplate.InputBox.value='';AgentTemplate.InputBox.className='aa_chatinput';AgentTemplate._StopInputRotate();}};AgentTemplate._InputBoxBlur=function(e){if(AgentTemplate.InputBox.value.length==0){AgentTemplate.InputBox.className='aa_chatinput aa_chatinputalt';AgentTemplate._StartInputRotate();}};