var WEBPATH = "http://www.coordenadaw.pt/crafty/"; //----------------------------------------------------------------- // File: livehelp.js : // - This is the client side Javascript file to control the // image shown on the clients website. It should be called // on the clients HTML page as a javascript include such as: // script src="http://yourwebsite.com/livehelp/livehelp_js.php" // This js file will show the image of online.gif if an operator // is online otherwise it will show offline.gif . Also a // second image is placed on the site as a control image // where the width of the image controls the actions made by // the operator to the poor little visitor.. // //----------------------------------------------------------------- // GLOBALS.. //------------ // This is the control image where the width of it controls the // actions made by the operator. cscontrol= new Image; popcontrol= new Image; popcontrol2= new Image; popcontrol3= new Image; keyhundreds= new Image; keytens= new Image; keyones= new Image; keyhundreds_value= 0; keytens_value= 0; keyones_value= 0; place =1; // this is a flag to control if the image is set on the page // yet or not.. var csloaded = false; // just to make sure that people do not just open up the page // and leave it open the requests timeout after 99 requests. var csTimeout = 15; // The id of the page request. var csID = null; // if the operator requests a chat we only want to open one window... var openLiveHelpalready = false; var openDHTMLalready = false; var openDHTMLlayer = false; var ismac = navigator.platform.indexOf('Mac'); //ismac =1; //////////////////////////////////////////////////////////////// //BEGIN INCLUDED LIBRARY // Dynamic Layer Object // sophisticated layer/element targeting and animation object which provides the core functionality needed in most DHTML applications // 19990604 // Copyright (C) 1999 Dan Steinman // Distributed under the terms of the GNU Library General Public License // Available at http://www.dansteinman.com/dynapi/ // updated 20011228 by Bob Clary // to support Gecko function aDynLayer(id,nestref,frame) { //bc:maybe? if (!is.ns5 && !aDynLayer.set && !frame) aDynLayerInit() if (!aDynLayer.set && !frame) aDynLayerInit() this.frame = frame || self //bc:if (is.ns) { if (is.ns4) { if (is.ns4) { if (!frame) { if (!nestref) var nestref = aDynLayer.nestRefArray[id] if (!aDynLayerTest(id,nestref)) return this.css = (nestref)? eval("document."+nestref+".document."+id) : document.layers[id] } else this.css = (nestref)? eval("frame.document."+nestref+".document."+id) : frame.document.layers[id] this.elm = this.event = this.css this.doc = this.css.document } //bc:else if (is.ns5) { //bc: this.elm = document.getElementById(id) //bc: this.css = this.elm.style //bc: this.doc = document //bc: } this.x = this.css.left this.y = this.css.top this.w = this.css.clip.width this.h = this.css.clip.height } //bc:else if (is.ie) { else if (is.ie || is.ns5) { //bc: if (is.ie) this.elm = this.event = this.frame.document.all[id] //bc: else this.elm = this.event = this.frame.document.getElementById(id) //bc:this.css = this.frame.document.all[id].style this.css = this.elm.style this.doc = document this.x = this.elm.offsetLeft this.y = this.elm.offsetTop this.w = (is.ie4)? this.css.pixelWidth : this.elm.offsetWidth this.h = (is.ie4)? this.css.pixelHeight : this.elm.offsetHeight } this.id = id this.nestref = nestref this.obj = id + "aDynLayer" eval(this.obj + "=this") } function aDynLayerMoveTo(x,y) { if (x!=null) { this.x = x //bc:if (is.ns) this.css.left = this.x if (is.ns4) this.css.left = this.x //bc:else this.css.pixelLeft = this.x else if (is.ie) this.css.pixelLeft = this.x else if (is.ns5) this.css.left = Math.floor(this.x) + 'px' } if (y!=null) { this.y = y //bc:if (is.ns) this.css.top = this.y if (is.ns4) this.css.top = this.y //bc:else this.css.pixelTop = this.y else if (is.ie) this.css.pixelTop = this.y else if (is.ns5) this.css.top = Math.floor(this.y) + 'px' } } function aDynLayerMoveBy(x,y) { this.moveTo(this.x+x,this.y+y) } function aDynLayerShow() { this.css.visibility = (is.ns4)? "show" : "visible" } function aDynLayerHide() { this.css.visibility = (is.ns4)? "hide" : "hidden" } aDynLayer.prototype.moveTo = aDynLayerMoveTo aDynLayer.prototype.moveBy = aDynLayerMoveBy aDynLayer.prototype.show = aDynLayerShow aDynLayer.prototype.hide = aDynLayerHide aDynLayerTest = new Function('return true') // aDynLayerInit Function function aDynLayerInit(nestref) { if (!aDynLayer.set) aDynLayer.set = true //bc:if (is.ns) { if (is.ns4) { if (nestref) ref = eval('document.'+nestref+'.document') else {nestref = ''; ref = document;} for (var i=0; i 0) { eval(divname.substr(0,index)+' = new aDynLayer("'+divname+'","'+nestref+'")') } if (ref.layers[i].document.layers.length > 0) { aDynLayer.refArray[aDynLayer.refArray.length] = (nestref=='')? ref.layers[i].name : nestref+'.document.'+ref.layers[i].name } } if (aDynLayer.refArray.i =4) this.ns4 = (this.b=="ns" && this.v==4) this.ns5 = (this.b=="ns" && this.v==5) this.ie = (this.b=="ie" && this.v>=4) this.ie4 = (this.version.indexOf('MSIE 4')>0) this.ie5 = (this.version.indexOf('MSIE 5')>0) this.min = (this.ns||this.ie) } is = new BrowserCheck() // CSS Function function css(id,left,top,width,height,color,vis,z,other) { if (id=="START") return '' var str = (left!=null && top!=null)? '#'+id+' {position:absolute; left:'+left+'px; top:'+top+'px;' : '#'+id+' {position:relative;' if (arguments.length>=4 && width!=null) str += ' width:'+width+'px;' if (arguments.length>=5 && height!=null) { str += ' height:'+height+'px;' if (arguments.length=6 && color!=null) str += (is.ns)? ' layer-background-color:'+color+';' : ' background-color:'+color+';' if (arguments.length>=6 && color!=null) str += (is.ns4)? ' layer-background-color:'+color+';' : ' background-color:'+color+';' if (arguments.length>=7 && vis!=null) str += ' visibility:'+vis+';' if (arguments.length>=8 && z!=null) str += ' z-index:'+z+';' if (arguments.length==9 && other!=null) str += ' '+other str += '}\n' return str } function writeCSS(str,showAlert) { str = css('START')+str+css('END') document.write(str) if (showAlert) alert(str) } // CreateLayer and DestroyLayer Functions // enables you to dynamically create a layer after the page has been loaded, can only truely delete layers in IE // 19990326 // Copyright (C) 1999 Dan Steinman // Distributed under the terms of the GNU Library General Public License // Available at http://www.dansteinman.com/dynapi/ // updated 20011228 by Bob Clary // to support Gecko function createLayer(id,nestref,left,top,width,height,content,bgColor,visibility,zIndex) { //bc:if (is.ns) { if (is.ns4) { if (nestref) { var lyr = eval("document."+nestref+".document."+id+" = new Layer(width, document."+nestref+")") } else { var lyr = document.layers[id] = new Layer(width) eval("document."+id+" = lyr") } lyr.name = id lyr.left = left lyr.top = top if (height!=null) lyr.clip.height = height if (bgColor!=null) lyr.bgColor = bgColor lyr.visibility = (visibility=='hidden')? 'hide' : 'show' if (zIndex!=null) lyr.zIndex = zIndex if (content) { lyr.document.open() lyr.document.write(content) lyr.document.close() } } //bc:else if (is.ie) { else if (is.ie || is.ns5) { var str = '\n
'+((content)?content:'')+'
' //bc: var elmref; if (nestref) { index = nestref.lastIndexOf(".") var nestlyr = (index != -1)? nestref.substr(index+1) : nestref //bc: if (is.ie) document.all[nestlyr].insertAdjacentHTML("BeforeEnd",str); else { elmref = document.getElementById(nestlyr); elmref.innerHTML += str; } } else { //bc: if (is.ie) document.body.insertAdjacentHTML("BeforeEnd",str) else { elmref = document.body; elmref.innerHTML += str; } } } } function destroyLayer(id,nestref) { //bc:if (is.ns) { if (is.ns4) { if (nestref) eval("document."+nestref+".document."+id+".visibility = 'hide'") else document.layers[id].visibility = "hide" } else if (is.ie) { document.all[id].innerHTML = "" document.all[id].outerHTML = "" } //bc: else if (is.ns5) { var elmref = document.getElementById(id); if (elmref) elmref.parentNode.removeChild(elmref); } } //END INCLUDED LIBRARY //////////////////////////////////////////////////////////////// //----------------------------------------------------------------- // loop though checking the image for updates from operators. function csrepeat() { // if the request has timed out do not do anything. if (csTimeout -1){ document.getElementById("imageformac").src= u; document.getElementById("imageformac").onload = cslookatimage; } else { cscontrol.src = u; cscontrol.onload = cslookatimage; } } // looks at the size of the control image and if the width is 55 // then open the chat. //----------------------------------------------------------------- function cslookatimage(){ if(typeof(cscontrol) == 'undefined' ){ return; } var w = 0; if (ismac > -1) w = document.getElementById("imageformac").width; else w = cscontrol.width; // pop up window: if ((w == 55) && (openLiveHelpalready != 1)) { openWantsToChat_2(); openLiveHelpalready = 1; } // layer invite: if ((w == 25) && !(openDHTMLalready)) { loadKey_2(1); } delete cscontrol; } //----------------------------------------------------------------- // opens live help function openLiveHelp(department) { if(openDHTMLlayer == 1) destroyLayer('mylayer2Div'); openDHTMLlayer = 0; openDHTMLalready = true; csTimeout=0; window.open(WEBPATH + 'livehelp.php?department=' + department + '&cslheg=1', 'chat54050872', 'width=585,height=390,menubar=no,scrollbars=0,resizable=1'); } function getKeys_2(){ if (ismac > -1){ w3 = document.getElementById("imageformac_hun").width; w2 = document.getElementById("imageformac_ten").width; w1 = document.getElementById("imageformac_one").width; } else { w3 = keyhundreds.width; w2 = keytens.width; w1 = keyones.width; } if(w1 -1){ document.getElementById("imageformac_hun").src= u3; document.getElementById("imageformac_hun").onload = getKeys_2; } else { keyhundreds.src = u3; keyhundreds.onload = getKeys_2; } } if(place == 2){ place = 3; var u2 = WEBPATH + 'image.php?' + 'cmd=getlayerinvite&whatplace=tens' + '&randu=' + randu + '&department=' + 2 + '&cslhVISITOR=' + '5b728bde1d164fbb22401eea1c73f64e' + '&cslheg=1'; if (ismac > -1){ document.getElementById("imageformac_ten").src= u2; document.getElementById("imageformac_ten").onload = loadKey_2; } else { keytens.src = u2; keytens.onload = loadKey_2; } } if(place == 1){ place = 2; var u1 = WEBPATH + 'image.php?' + 'cmd=getlayerinvite&whatplace=ones' + '&randu=' + randu + '&department=' + 2 + '&cslhVISITOR=' + '5b728bde1d164fbb22401eea1c73f64e' + '&cslheg=1'; if (ismac > -1){ document.getElementById("imageformac_one").src= u1; document.getElementById("imageformac_one").onload = loadKey_2; } else { keyones.src = u1; keyones.onload = loadKey_2; } } } //----------------------------------------------------------------- // opens DHTML help function openDHTML_2(total) { var html = ''; if (total == 1) html = ' ' if (total == 2) html = ' ' if (total == 3) html = ' ' if (total == 4) html = ' ' if (total == 5) html = ' ' if (total == 6) html = ' ' //alert(html); createLayer('mylayer2Div',null,100,200,550,400,html,null,null,999) mylayer2 = new aDynLayer('mylayer2Div'); var u = WEBPATH + 'image.php?' + 'cmd=changestat' + '&what=invited' + '&cslhVISITOR=' + '5b728bde1d164fbb22401eea1c73f64e' + '&cslheg=1'; popcontrol2.src = u; stillopen = 1; setTimeout('moveDHTML_2()', 9000); openDHTMLalready = true; openDHTMLlayer = true; } //----------------------------------------------------------------- // opens DHTML help function closeDHTML() { destroyLayer('mylayer2Div'); openDHTMLlayer = 0; stillopen = 0; var u4 = WEBPATH + 'image.php?' + 'cmd=changestat' + '&what=stopped' + '&cslhVISITOR=' + '5b728bde1d164fbb22401eea1c73f64e' + '&cslheg=1'; popcontrol3.src = u4; } //----------------------------------------------------------------- // opens DHTML help function moveDHTML_2() { if(stillopen==1){ if(navigator.appName.indexOf("Netscape") != -1){ myWidth = window.pageXOffset; myHeight = window.pageYOffset } else { myWidth = document.body.scrollLeft; myHeight = document.body.scrollTop; } mylayer2.moveTo(myWidth+200,myHeight+100); setTimeout('moveDHTML_2()', 9000); } } //----------------------------------------------------------------- // The Operator wants to chat with the visitor about something. function openWantsToChat_2() { // ok we asked them .. now lets not ask them again for awhile... var u = WEBPATH + 'image.php?' + 'cmd=browse' + '&page=' + escape(document.location) + '&title=' + escape(document.title) + '&referer=' + escape(document.referrer) + '&pageid=' + csID + '&department=' + 2 + '&cslhVISITOR=' + '5b728bde1d164fbb22401eea1c73f64e' + '&cslheg=1'; cscontrol.src = u; // open the window.. window.open(WEBPATH + 'livehelp.php?cmd=chatinsession&department=2&cslhVISITOR=5b728bde1d164fbb22401eea1c73f64e&cslheg=1', 'chat54050872', 'width=585,height=390,menubar=no,scrollbars=0,resizable=1'); } var urltohelpimage = 'http://www.coordenadaw.pt/crafty/image.php?cmd=getstate&department=2&nowis=20080621033404&cslhVISITOR=5b728bde1d164fbb22401eea1c73f64e' + '&page=' + escape(document.location) + '&title=' + escape(document.title) + '&referer=' + escape(document.referrer) + '&cslheg=1'; var urltocreditimage = 'http://www.coordenadaw.pt/crafty/image.php?cmd=getcredit&department=2&nowis=20080621033404&cslhVISITOR=5b728bde1d164fbb22401eea1c73f64e' + '&page=' + escape(document.location) + '&title=' + escape(document.title) + '&referer=' + escape(document.referrer) + '&cslheg=1'; //document.write(urltohelpimage); document.write(''); // macs do not see images in cache: if (ismac > -1) { randu=Math.round(Math.random()*9999); document.write(''); document.write(''); document.write(''); } document.write('
'); document.write(''); document.write('
'); document.write(''); document.write('
'); setTimeout('csgetimage()', 1000);