var chat = { content_tracker : "", null_change_count : 0, status : 'WAIT', session : 'e7d9363bae3a96b324fa61fefd2a4546', interval : null, target : 'chat-message-box', ajax : { remote : { get : function( url, handler ) { if ( handler != "ignore_setter") url = url + "&keycode="+Math.random()+"&_hdl="+escape(handler)+"&dnr=1"; var ajaxHandle = null; if ( window.XMLHttpRequest ) { ajaxHandle = new XMLHttpRequest(); } else if ( window.ActiveXObject ) { _msxml_progid=['MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP']; for ( var i = 0 ; i < _msxml_progid.length; i++ ) try { ajaxHandle = new ActiveXObject(this._msxml_progid[i]); break; } catch(e) {} if ( ajaxHandle == null ) ajaxHandle = new ActiveXObject('Microsoft.XMLHTTP'); } if ( ajaxHandle != null) { ajaxHandle.onreadystatechange = function() { if (ajaxHandle.readyState == 4 && ajaxHandle.status == 200){ if (ajaxHandle.responseText){ var response = ajaxHandle.responseText; try { eval(response); } catch ( exception ) { //console.log("error: " + exception.message); //alert("Nope"); } } } } ajaxHandle.open("GET", url, true); ajaxHandle.send(null); } }, post : function( url, query, handler ) { if ( handler != "ignore_setter") query = query + "&keycode="+Math.random()+"&_hdl="+escape(handler)+"&dnr=1"; var ajaxHandle = null; if ( window.XMLHttpRequest ) { ajaxHandle = new XMLHttpRequest(); } else if ( window.ActiveXObject ) { _msxml_progid=['MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP']; for ( var i = 0 ; i < _msxml_progid.length; i++ ) try { ajaxHandle = new ActiveXObject(this._msxml_progid[i]); break; } catch(e) {} if ( ajaxHandle == null ) ajaxHandle = new ActiveXObject('Microsoft.XMLHTTP'); } if ( ajaxHandle != null) { ajaxHandle.onreadystatechange = function() { if (ajaxHandle.readyState == 4 && ajaxHandle.status == 200){ if (ajaxHandle.responseText){ var response = ajaxHandle.responseText; try { eval(response); } catch ( exception ) { //console.log("error: " + exception.message); //alert("Nope"); } } } }; ajaxHandle.open("POST", url, true); ajaxHandle.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); ajaxHandle.setRequestHeader("Content-length", query.length); ajaxHandle.setRequestHeader("Connection", "close"); ajaxHandle.send(query); } } } }, make_post : function() { if ( !chat.init ) { chat.ajax.remote.get("/hotels/live/chatinit?user=true&m=Hi, how can we help you today..&chInit=true&chatName="+notice.response+"&session_id="+chat.session); } chat.start_message_polling(2500); try { //alert("1"); var text_entry = document.getElementById(chat.target).value; document.getElementById(chat.target).value = ''; chat.ajax.remote.post("/hotels/live/chatexchange?user=true&m="+escape(text_entry)+"&session_id="+chat.session); //alert("2"); var d = document.createElement("div"); d.className = "talk-left"; //alert("3"); var i1 = document.createElement("img"); i1.src="/images/call-centre/talk-box.jpg"; i1.className="float-left margin-left-8 margin-right-8 margin-top-8"; var p1 = document.createElement("p"); p1.className = "blue-text bold line-height-14"; p1.innerHTML = notice.response; var p2 = document.createElement("p"); p2.className = "dark-grey-text line-height-14"; var dc = document.createElement("div"); dc.style.paddingBottom="8px";dc.className = "clear-left height1"; //alert("4"); p2.innerHTML = text_entry; //d.appendChild( i1) ; d.appendChild( p1 ) ; d.appendChild( p2 ) ; d.appendChild( dc ) ; document.getElementById("chat_node").insertBefore(d,document.getElementById("chat_node").childNodes[0]); //("5"); // } catch ( eee ) { ///alert("ee:"+eee.message); } }, test_enter : function(e) { e=(e)?e:window.event; if ( e.keyCode ==13 ) { chat.make_post(); } }, end_chat : function() { clearInterval(chat.interval); alert("Your chat has been ended"); document.getElementById("contact-title").innerHTML = ""; document.getElementById("youcon").innerHTML = "Your chat ended, type a new message into the box below to re-connect with our customer service agents."; document.getElementById("expert_title").innerHTML = ""; }, setCurrentContent : function( message ) { if ( message != chat.content_tracker ) { chat.null_change_count = 0; chat.start_message_polling(4000); chat.content_tracker = message; return true; } else { chat.null_change_count++; if ( chat.null_change_count > 5 ) { chat.start_message_polling(8000); } return false; } }, start_message_polling : function( timer ) { //console.log("Polling Message System"); try { clearInterval(chat.interval); } catch ( ExceptionMessage ){ //alert("LD"); } /*************************************************************************** * Poll the message system */ chat.interval = setInterval( function() { //alert("poll"); chat.ajax.remote.post("/hotels/live/chatexchange?chInit=true&chatName="+notice.response+"&session_id="+chat.session+"&poll=true"); //prompt("ss","/hotels/live/chatexchange?chInit=true&chatName="+notice.response+"&session_id="+chat.session+"&poll=true"); }, timer ); }, naming : '', init : false, make_chat_request : function() { notice.prevent_collapse = true; notice.notice_window = 300; try { notice.prompt("Please enter your name","Customer service chat","OK|null"); } catch (exceptionPrompt ) { //alert("noticeE:" + exceptionPrompt.message); } //alert("PROIM"); var wait = setInterval( function() { if ( notice.response ) { //alert("MO"); clearInterval(wait); chat.ajax.remote.get("/hotels/live/chatinit?user=true&m=Hi, how can we help you today..&chInit=true&chatName="+notice.response+"&session_id="+chat.session); chat.init = true; chat.start_message_polling(5000); } }, 1000 ); } }; window.onunload = function(){ if ( chat.init ) { chat.ajax.remote.get("/hotels/live/chatclose?session_id="+chat.session); } };