// Live Help Server Version: 3.28 Rev. 1 // stardevelop.com Live Help International Copyright 2003 // JavaScript Check Status Functions var server = 'http://www.johncouch.co.uk'; var request = ''; var domain = '.johncouch.co.uk'; function currentTime() { var date = new Date(); return date.getTime(); } var ns6 = (!document.all && document.getElementById); var ie4 = (document.all); var ns4 = (document.layers); var initiateOpen = 0; var initiateLoaded = 0; var infoOpen = 0; var infoImageLoaded = 0; var countTracker = 0; var idleTimeout = 90 * 60 * 1000; var timeStart = currentTime(); var timeElapsed; var timerLiveHelpInfo; var timerClosingLiveHelpInfo; var trackingInitalized = 0; var topMargin = 10; var leftMargin = 10; var hAlign = "right"; var vAlign = "bottom"; var layerHeight = 229; var layerWidth = 323; var browserWidth = 0; var browserHeight = 0; var windowWidth = 625; var windowHeight = 425; var windowLeft = (screen.width - windowWidth) / 2; var windowTop = (screen.height - windowHeight) / 2; var size = 'height=' + windowHeight + ',width=' + windowWidth + ',top=' + windowTop + ',left=' + windowLeft; var trackerStatus = new Image; var time = currentTime(); var title = document.title; var localtime = new Date().toLocaleString(); // Only insert the timezone var referrer; if (document.referrer.indexOf('') >= 0) { referrer = ''; } else { referrer = document.referrer; } // stardevelop.com Live Help International Copyright 2003 // JavaScript AJAX Tracking Functions var TrackingTimer; var InitiateChatTimer; var LiveHelpXMLHTTP = null; var currentStatus = ''; var statusImagesLiveHelp = new Array(); function urlencode(str) { var str = escape(str).replace(/[+]/g, '%2B'); str = str.replace(/[\/]/g, '%2F'); return str; } function checkXMLHTTP() { obj = null; if (window.XMLHttpRequest) { obj = new XMLHttpRequest(); } else if (window.ActiveXObject) { obj = new ActiveXObject("Microsoft.XMLHTTP") if (!obj) { try { obj = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { obj = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { obj = null; } } } } return obj; } var resetTracking = 0; function LoadXMLTracking(initiateResult) { LiveHelpXMLHTTP = checkXMLHTTP(); // Run the XML query if (LiveHelpXMLHTTP.readyState != 0) { LiveHelpXMLHTTP.abort(); } if (typeof initiateResult == 'undefined') { initiateResult = '' } var RequestData = 'JS=1&DEPARTMENT=&INITIATE=' + initiateResult; if (trackingInitalized == 0) { RequestData = 'JS=1&TITLE=' + escape(title) + '&URL=' + escape(document.location) + '&REFERRER=' + escape(referrer) + '&WIDTH=' + screen.width + '&HEIGHT=' + screen.height + '&COOKIE=&DEPARTMENT=&INITIATE=' + initiateResult; trackingInitalized = 1; } try { LiveHelpXMLHTTP.open('POST', 'http://www.johncouch.co.uk/livehelp/include/status.php', true); } catch(e) { LiveHelpXMLHTTP.abort(); if (resetTracking == 0) { trackingInitalized = 0; resetTracking = 1; } OnlineTracker(initiateResult); return false; } LiveHelpXMLHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); LiveHelpXMLHTTP.setRequestHeader("Content-length", RequestData.length); LiveHelpXMLHTTP.setRequestHeader("Connection", "close"); LiveHelpXMLHTTP.onreadystatechange = function() { if (LiveHelpXMLHTTP.readyState == 4) { // Process response as JavaScript if (LiveHelpXMLHTTP.status == 200) { eval(LiveHelpXMLHTTP.responseText); } } }; LiveHelpXMLHTTP.send(RequestData); var time = currentTime(); timeElapsed = time - timeStart; if (timeElapsed < idleTimeout) { window.clearTimeout(TrackingTimer); TrackingTimer = window.setTimeout('LoadXMLTracking();', 10000); } } function changeStatus(status) { var statusImage = new Image; switch (status) { case 'Online': statusImageFile = '/livehelp/locale/en/images/online_transparent.gif'; break; case 'BRB': statusImageFile = '/livehelp/locale/en/images/online_brb_transparent.gif'; break; case 'Away': statusImageFile = '/livehelp/locale/en/images/online_away_transparent.gif'; break; default: statusImageFile = '/livehelp/locale/en/images/offline_transparent.gif'; break; } var time = currentTime(); if (currentStatus != '' && currentStatus != status) { for (i = 0; i < statusImagesLiveHelp.length; i++) { // Determine if there is an alternate image path find IMAGES= variable within statusImagesLiveHelp[i].src var getImageLocation = statusImagesLiveHelp[i].src.indexOf('IMAGES='); var getDepartment = statusImagesLiveHelp[i].src.indexOf('DEPARTMENT='); statusImage.src = statusImageFile; if (getImageLocation != -1) { // Load the IMAGES path into a variable var statusImageDirectory = statusImagesLiveHelp[i].src.substring(getImageLocation + 7); if (getDepartment == -1) { var filenamePos = statusImageFile.lastIndexOf('/'); if (filenamePos != -1) { statusImage.src = statusImageDirectory + statusImageFile.substring(filenamePos + 1) + '?IMAGES=' + statusImageDirectory; } } } if (getDepartment != -1) { // Load the DEPARTMENT path into a variable var department = statusImagesLiveHelp[i].src.substring(getDepartment + 11); var endRequestPos = department.lastIndexOf('&'); if (endRequestPos != -1) { statusImage.src = 'http://www.johncouch.co.uk/livehelp/include/status.php?DEPARTMENT=' + department.substring(0, endRequestPos) + '&IMAGES=' + statusImageDirectory; } } statusImagesLiveHelp[i].onload = null; swapImage(statusImagesLiveHelp[i].name, '', statusImage.src, 1); } } currentStatus = status; if (status == 'Offline' && trackingInitalized == 0) { window.clearTimeout(TrackingTimer); } } function findObj(n, d) { var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i this.browserHeight) { this.E = this.Y > 0 ? this.targetY - this.browserHeight : this.targetY + this.browserHeight; this.Y = this.Y > 0 ? this.browserHeight : -this.browserHeight; } else { this.E = this.currentY; } if (Math.abs(this.X) > this.browserWidth) { this.F = this.X > 0 ? this.targetX - this.browserWidth : this.targetX + this.browserWidth; this.X = this.X > 0 ? this.browserWidth : -this.browserWidth; } else { this.F = this.currentX; } } function animate() { var now = new Date(); var newY = this.Y * Math.sin( this.C * ( now.getTime() - this.D ) ) + this.E; var newX = this.X * Math.sin( this.C * ( now.getTime() - this.D ) ) + this.F; newY = Math.round(newY); newX = Math.round(newX); if ((this.Y > 0 && newY > this.currentY) || (this.Y < 0 && newY < this.currentY)) { if (document.getElementById) { document.getElementById('floatLayer').style.top = newY + 'px'; } else if (document.all) { document.all['floatLayer'].style.pixelTop = newY + 'px'; } else if (document.layers && document.layers[object] != null) { document.layers['floatLayer'].top = newY + 'px'; } } if ((this.X > 0 && newX > this.currentX) || (this.X < 0 && newX < this.currentX)) { if (document.getElementById) { document.getElementById('floatLayer').style.left = newX + 'px'; } else if (document.all) { document.all['floatLayer'].style.pixelLeft = newX + 'px'; } else if (document.layers && document.layers[object] != null) { document.layers['floatLayer'].left = newX + 'px'; } } } function resetLayerLocation() { var width = 0; var height = 0; if(typeof(window.innerWidth) == 'number') { width = window.innerWidth; height = window.innerHeight; } else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { width = document.documentElement.clientWidth; height = document.documentElement.clientHeight; } else if(document.body && (document.body.clientWidth || document.body.clientHeight)) { width = document.body.clientWidth; height = document.body.clientHeight; } leftMargin = 10; topMargin = 10; browserWidth = width; browserHeight = height; if (hAlign == 'right') { leftMargin = width - leftMargin - layerWidth - 20; } else if (hAlign == 'center') { leftMargin = Math.round((width - 20) / 2) - Math.round(layerWidth / 2); } if (vAlign == 'bottom') { topMargin = height - topMargin - layerHeight - 45; } else if (vAlign == 'center') { topMargin = Math.round((height - 20) / 2) - Math.round(layerHeight / 2); } } function stopLayer() { window.clearTimeout(InitiateChatTimer); if (initiateOpen == 1) { toggle('floatLayer'); } initiateLoaded = 0; } function acceptInitiateChat() { if (LiveHelpXMLHTTP != null) { LoadXMLTracking('Accepted'); } else { OnlineTracker('Accepted'); } stopLayer(); } function declineInitiateChat() { if (LiveHelpXMLHTTP != null) { LoadXMLTracking('Declined'); } else { OnlineTracker('Declined'); } stopLayer(); } function resizeEvent(e) { if (!e) e = window.event; resetLayerLocation(); return true; } window.onresize = resizeEvent; function checkInitiate(e) { // Check if site visitor has an Initiate Chat Request Pending for display... if (!e) var e = window.event; var imageWidth = this.width; var imageHeight = this.height; if (imageWidth == 2 && imageHeight == 2) { displayInitiateChat(); } return true; } function writeLayer(layer, sText) { if (layer != false) { if (layer.innerHTML == null) { layer.open(); layer.write(sText); layer.close(); return true; } else { layer.innerHTML = sText; return true; } } return false; } function displayInitiateChat() { if (initiateOpen == 0 || initiateLoaded == 1) { resetLayerLocation(); var obj; if (document.getElementById) { obj = document.getElementById('floatLayer'); obj.style.top = topMargin + 'px'; document.getElementById('floatLayer').style.left = leftMargin + 'px'; } else if (document.all) { obj = document.all['floatLayer']; obj.style.pixelTop = topMargin + 'px'; document.all['floatLayer'].style.pixelLeft = leftMargin + 'px'; } else if (document.layers) { obj = document.layers['floatLayer']; obj.top = topMargin + 'px'; layers['floatLayer'].left = leftMargin + 'px'; } // Dynamic Initiate Chat //var layer = '
Do you have any questions that I can help you with?
stardevelop.com Live Help'; //writeLayer(obj, layer); var openingTrackerStatus = new Image; openingTrackerStatus.src = 'http://www.johncouch.co.uk/livehelp/include/tracker.php?INITIATE=Opened'; if (document.getElementById) { document.getElementById('floatLayer').location = 'http://www.johncouch.co.uk/livehelp/include/tracker.php?INITIATE=Opened'; } else if (document.layers) { document.layers['floatLayer'].location = 'http://www.johncouch.co.uk/livehelp/include/tracker.php?INITIATE=Opened'; } else if (document.all) { document.all['floatLayer'].location = 'http://www.johncouch.co.uk/livehelp/include/tracker.php?INITIATE=Opened'; } floatRefresh(); toggle('floatLayer'); initiateOpen = 1; initiateLoaded = 0; } } var LiveHelpWindow = ''; var OfflineEmail = -1; var HiddenStatus = 0; function openLiveHelp(department) { if ((OfflineEmail == 0 && currentStatus != 'Online') || (OfflineEmail == 0 && currentStatus == '' && HiddenStatus == 1)) { return false; } else { if (!LiveHelpWindow.closed && LiveHelpWindow.location) { if (LiveHelpWindow.focus) { LiveHelpWindow.focus(); } return false; } else { // TODO: Remove All # invalid characters if (typeof department != 'undefined' && department != '') { LiveHelpWindow = window.open('http://www.johncouch.co.uk/livehelp/index.php?DEPARTMENT=' + department + '&LANGUAGE=en', 'LiveHelpGuestWindow', size); } else { LiveHelpWindow = window.open('http://www.johncouch.co.uk/livehelp/index.php?LANGUAGE=en', 'LiveHelpGuestWindow', size); } } } if (LiveHelpWindow) { LiveHelpWindow.opener = self; } } function OnlineTracker(initiateResult) { var time = currentTime(); trackerStatus = new Image; if (typeof initiateResult == 'undefined') { initiateResult = '' } if (trackingInitalized == 0) { trackerStatus.src = 'http://www.johncouch.co.uk/livehelp/include/tracker.php?TITLE=' + urlencode(title) + '&URL=' + urlencode(document.location) + '&REFERRER=' + urlencode(referrer) + '&WIDTH=' + screen.width + '&HEIGHT=' + screen.height + '&COOKIE='; trackingInitalized = 1; } else { if (initiateOpen == 0) { trackerStatus.onload = checkInitiate; } if (initiateResult != '') { trackerStatus.src = 'http://www.johncouch.co.uk/livehelp/include/tracker.php?INITIATE=' + initiateResult + '&TIME=' + time; } else { trackerStatus.src = 'http://www.johncouch.co.uk/livehelp/include/tracker.php?TIME=' + time; } } timeElapsed = time - timeStart; if (timeElapsed < idleTimeout) { window.clearTimeout(TrackingTimer); TrackingTimer = window.setTimeout('OnlineTracker();', 10000); } } LiveHelpXMLHTTP = checkXMLHTTP(); if (LiveHelpXMLHTTP != null) { LoadXMLTracking(); } else { OnlineTracker(); }