(function(){ if(MyLiveChat) { MyLiveChat.SmartAcceptText = MyLiveChat.TEXT_ACCEPTSMART || MyLiveChat.TEXT_UI_ACCEPTINVITE || "Chat Now"; MyLiveChat.SmartRejectText = MyLiveChat.TEXT_REJECTSMART || MyLiveChat.TEXT_UI_REJECTINVITE || "No Thanks"; } })(); new function() { MyLiveChatInitTemplate(); var xmlcode="\x3Cjsml xmlns=\x22http://cutesoft.net/jsml\x22\x3E\x3Cexecute xmlns=\x22http://cutesoft.net/jsml\x22\x3E\x3C![CDATA[\x0D\x0A function splitintomap(csstext)\x0D\x0A {\x0D\x0A var map={};\x0D\x0A if(!csstext)return map;\x0D\x0A var pairs=csstext.split(\x27;\x27);\x0D\x0A for(var i=0;i\x3Cpairs.length;i++)\x0D\x0A {\x0D\x0A var pair=pairs[i];\x0D\x0A var pos=pair.indexOf(\x27:\x27);\x0D\x0A if(pos==-1)\x0D\x0A continue;\x0D\x0A var name=pair.substring(0,pos).replace(/(^\x5Cs*)|(\x5Cs*$)/g, \x22\x22).toLowerCase();\x0D\x0A var value=pair.substring(pos+1).replace(/(^\x5Cs*)|(\x5Cs*$)/g, \x22\x22);\x0D\x0A map[name]=value;\x0D\x0A }\x0D\x0A return map;\x0D\x0A }\x0D\x0A function IsControl(element)\x0D\x0A {\x0D\x0A switch(element.nodeName.toUpperCase())\x0D\x0A {\x0D\x0A case \x22INPUT\x22:\x0D\x0A case \x22SELECT\x22:\x0D\x0A case \x22TEXTAREA\x22:\x0D\x0A return true;\x0D\x0A }\x0D\x0A }\x0D\x0A \x0D\x0A var direction=MyLiveChat.TextDirection||\x22ltr\x22;\x0D\x0A \x0D\x0A var rootmap=splitintomap(\x27line-height:1em;letter-spacing:0px;word-spacing:normal;text-align:left;font-size:14px;font-family:-apple-system, BlinkMacSystemFont, \x22Segoe UI\x22, Roboto, Helvetica, Arial, sans-serif, \x22Apple Color Emoji\x22, \x22Segoe UI Emoji\x22, \x22Segoe UI Symbol\x22;color:black;\x27);\x0D\x0A var eachmap=splitintomap(\x22margin:0px;padding:0px;outline:0px;text-indent:0px;min-width:0px;min-height:0px;direction:\x22+direction+\x22;\x22);\x0D\x0A var ctrlmap=splitintomap(\x22background-color:white;padding-top:1px;padding-left:1px;box-shadow: none;background-image:none;border-radius:3px;\x22);\x0D\x0A var btnmap=splitintomap(\x22line-height:1em;text-align:center;\x22);\x0D\x0A \x0D\x0A function SetMapIfNull(map,p,val)\x0D\x0A {\x0D\x0A if(map[p])return;\x0D\x0A map[p]=val;\x0D\x0A }\x0D\x0A \x0D\x0A function SetMapProperty(map,p,val)\x0D\x0A {\x0D\x0A var mainvalue;\x0D\x0A switch(p)\x0D\x0A {\x0D\x0A case \x22padding-top\x22:\x0D\x0A case \x22padding-left\x22:\x0D\x0A case \x22padding-right\x22:\x0D\x0A case \x22padding-bottom\x22:\x0D\x0A mainvalue=map[\x22padding\x22];\x0D\x0A if(mainvalue)\x0D\x0A {\x0D\x0A delete map[\x22padding\x22];\x0D\x0A SetMapIfNull(map,\x22padding-top\x22,mainvalue);\x0D\x0A SetMapIfNull(map,\x22padding-left\x22,mainvalue);\x0D\x0A SetMapIfNull(map,\x22padding-right\x22,mainvalue);\x0D\x0A SetMapIfNull(map,\x22padding-bottom\x22,mainvalue);\x0D\x0A return;\x0D\x0A }\x0D\x0A break;\x0D\x0A case \x22margin-top\x22:\x0D\x0A case \x22margin-left\x22:\x0D\x0A case \x22margin-right\x22:\x0D\x0A case \x22margin-bottom\x22:\x0D\x0A mainvalue=map[\x22margin\x22];\x0D\x0A if(mainvalue)\x0D\x0A {\x0D\x0A delete map[\x22margin\x22];\x0D\x0A SetMapIfNull(map,\x22margin-top\x22,mainvalue);\x0D\x0A SetMapIfNull(map,\x22margin-left\x22,mainvalue);\x0D\x0A SetMapIfNull(map,\x22margin-right\x22,mainvalue);\x0D\x0A SetMapIfNull(map,\x22margin-bottom\x22,mainvalue);\x0D\x0A return;\x0D\x0A }\x0D\x0A break;\x0D\x0A }\x0D\x0A \x0D\x0A map[p]=val;\x0D\x0A }\x0D\x0A \x0D\x0A function margestyle(element,parentmap)\x0D\x0A {\x0D\x0A var map=splitintomap(element.style.cssText);\x0D\x0A for(var p in eachmap)\x0D\x0A {\x0D\x0A if(map[p])\x0D\x0A continue;\x0D\x0A SetMapProperty(map,p,eachmap[p]);\x0D\x0A }\x0D\x0A if(element.nodeName==\x22BUTTON\x22||element.getAttribute(\x22type\x22)==\x22button\x22)\x0D\x0A {\x0D\x0A for(var p in btnmap)\x0D\x0A {\x0D\x0A if(map[p])\x0D\x0A continue;\x0D\x0A SetMapProperty(map,p,btnmap[p]);\x0D\x0A }\x0D\x0A }\x0D\x0A else\x0D\x0A {\x0D\x0A for(var p in parentmap)\x0D\x0A {\x0D\x0A if(map[p])\x0D\x0A continue;\x0D\x0A switch(p)\x0D\x0A {\x0D\x0A //case \x22background-color\x22:\x0D\x0A case \x22line-height\x22:\x0D\x0A case \x22font-family\x22:\x0D\x0A case \x22font-size\x22:\x0D\x0A case \x22color\x22:\x0D\x0A SetMapProperty(map,p,parentmap[p]);\x0D\x0A break;\x0D\x0A default:\x0D\x0A break;\x0D\x0A }\x0D\x0A }\x0D\x0A if(IsControl(element))\x0D\x0A {\x0D\x0A for(var p in ctrlmap)\x0D\x0A {\x0D\x0A if(map[p] \x26\x26 p!=\x22box-sizing\x22)\x0D\x0A continue;\x0D\x0A SetMapProperty(map,p,ctrlmap[p]);\x0D\x0A }\x0D\x0A }\x0D\x0A }\x0D\x0A \x0D\x0A var sb=[];\x0D\x0A for(var p in map)\x0D\x0A {\x0D\x0A var v=map[p];\x0D\x0A switch(p)\x0D\x0A {\x0D\x0A case \x22border-radius\x22:\x0D\x0A case \x22border-top-left-radius\x22:\x0D\x0A case \x22border-top-right-radius\x22:\x0D\x0A case \x22border-bottom-left-radius\x22:\x0D\x0A case \x22border-bottom-right-radius\x22:\x0D\x0A if(v.indexOf(\x22!important\x22)==-1)\x0D\x0A v=v+\x22!important\x22;\x0D\x0A break;\x0D\x0A default:\x0D\x0A break;\x0D\x0A }\x0D\x0A sb.push(p+\x22:\x22+v);\x0D\x0A }\x0D\x0A \x0D\x0A element.style.cssText=sb.join(\x22;\x22);\x0D\x0A \x0D\x0A if(element.nodeName==\x22TEXTAREA\x22)\x0D\x0A {\x0D\x0A element.style.boxSizing=\x22border-box\x22;\x0D\x0A element.style.paddingTop=\x224px\x22;\x0D\x0A //element.style.height=parseInt(element.style.height)-2+\x22px\x22\x0D\x0A }\x0D\x0A\x0D\x0A var cs=element.childNodes||element.children;\x0D\x0A for(var i=0;i\x3Ccs.length;i++)\x0D\x0A {\x0D\x0A var child=cs[i];\x0D\x0A if(!child.style)\x0D\x0A continue;\x0D\x0A margestyle(child,map);\x0D\x0A }\x0D\x0A }\x0D\x0A \x0D\x0A var dofixit=true;\x0D\x0A \x0D\x0A if(window.location.href.indexOf(\x27fixinpagestyle=0\x27)!=-1)\x0D\x0A {\x0D\x0A dofixit=false;\x0D\x0A }\x0D\x0A if(window.location.href.indexOf(\x27fixinpagestyle=1\x27)!=-1)\x0D\x0A {\x0D\x0A dofixit=true;\x0D\x0A }\x0D\x0A \x0D\x0A jsml.fixinpagestyle=function(ctrl)\x0D\x0A {\x0D\x0A if(!dofixit)\x0D\x0A return;\x0D\x0A var root=ctrl._element;\x0D\x0A margestyle(root,rootmap);\x0D\x0A ctrl.invoke_notify_content();\x0D\x0A setTimeout(function()\x0D\x0A {\x0D\x0A margestyle(root,rootmap);\x0D\x0A ctrl.invoke_notify_content();\x0D\x0A },30);\x0D\x0A setTimeout(function()\x0D\x0A {\x0D\x0A margestyle(root,rootmap);\x0D\x0A ctrl.invoke_notify_content();\x0D\x0A },100);\x0D\x0A }\x0D\x0A \x0D\x0A ]]\x3E\x3C/execute\x3E\x3Cpanel jsml-class=\x22smartbase\x22 width=\x22287\x22 height=\x22189\x22 xmlns=\x22http://cutesoft.net/jsml\x22\x3E\x3Cmethod name=\x22replace_background\x22 arguments=\x22ctrl\x22\x3E\x3C![CDATA[\x0D\x0A var bg=ctrl.get_background();\x0D\x0A if(bg\x26\x26bg.indexOf(\x22../\x22)!=-1)\x0D\x0A {\x0D\x0A bg=bg.split(\x22../\x22).join(MyLiveChat.UrlBase+\x22../\x22);\x0D\x0A ctrl.set_background(bg);\x0D\x0A }\x0D\x0A var cs=ctrl.get_children();\x0D\x0A for(var i=0;i\x3Ccs.length;i++)\x0D\x0A self.replace_background(cs[i]);\x0D\x0A ]]\x3E\x3C/method\x3E\x3Cattach name=\x22initialize\x22\x3E\x3C![CDATA[\x0D\x0A \x0D\x0A self._config_position=MyLiveChat.SmartPosition;\x0D\x0A self._config_startpos=MyLiveChat.SmartStartPos;\x0D\x0A self._config_offsetx=MyLiveChat.SmartOffsetX;\x0D\x0A self._config_offsety=MyLiveChat.SmartOffsetY;\x0D\x0A \x0D\x0A self.replace_background(self);\x0D\x0A\x0D\x0A self.set_parent(document.body);\x0D\x0A \x0D\x0A var style=self._element.style;\x0D\x0A style.position=\x22absolute\x22;\x0D\x0A style.zIndex=\x22987654\x22;\x0D\x0A \x0D\x0A self.drag_left=0;\x0D\x0A self.drag_top=0;\x0D\x0A\x0D\x0A new function()\x0D\x0A {\x0D\x0A var rect=jsml.get_body_rect();\x0D\x0A var bp=MyLiveChat_CalcBodyPoint(self._config_startpos)\x0D\x0A var pp=MyLiveChat_CalcPoint(self._config_startpos,self.get_current_width(),self.get_current_height())\x0D\x0A \x0D\x0A style.left=bp.left-pp.left+rect.left + self._config_offsetx+\x22px\x22;\x0D\x0A style.top=bp.top-pp.top+rect.top + self._config_offsety+\x22px\x22;\x0D\x0A }\x0D\x0A\x0D\x0A function adjustposition()\x0D\x0A {\x0D\x0A if(self._jsml_disposed)return;\x0D\x0A setTimeout(adjustposition,40);\x0D\x0A \x0D\x0A if(self._stopautomove)return;\x0D\x0A \x0D\x0A var rect=jsml.get_body_rect();\x0D\x0A var bp=MyLiveChat_CalcBodyPoint(self._config_position)\x0D\x0A var pp=MyLiveChat_CalcPoint(self._config_position,self.get_current_width(),self.get_current_height())\x0D\x0A \x0D\x0A var tl=bp.left-pp.left+rect.left + self._config_offsetx;\x0D\x0A var tt=bp.top-pp.top+rect.top + self._config_offsety;\x0D\x0A\x0D\x0A var cl=parseInt(style.left)-self.drag_left;\x0D\x0A \x0D\x0A var ct=parseInt(style.top)-self.drag_top;\x0D\x0A var nl=(tl-cl)/3;\x0D\x0A var nt=(tt-ct)/12;\x0D\x0A if(nl\x3E0)\x0D\x0A {\x0D\x0A nl=Math.min(tl-cl,Math.max(6,nl));\x0D\x0A }\x0D\x0A else\x0D\x0A {\x0D\x0A nl=-Math.min(cl-tl,Math.max(6,-nl));\x0D\x0A }\x0D\x0A if(nt\x3E0)\x0D\x0A {\x0D\x0A nt=Math.min(tt-ct,Math.max(6,nt));\x0D\x0A }\x0D\x0A else\x0D\x0A {\x0D\x0A nt=-Math.min(ct-tt,Math.max(6,-nt));\x0D\x0A }\x0D\x0A nl=cl+nl;\x0D\x0A nt=ct+nt;\x0D\x0A \x0D\x0A nl=Math.max(0,nl+self.drag_left)+\x22px\x22;\x0D\x0A nt=Math.max(0,nt+self.drag_top)+\x22px\x22;\x0D\x0A if(style.left!=nl)style.left=nl;\x0D\x0A if(style.top!=nt)style.top=nt;\x0D\x0A \x0D\x0A }\x0D\x0A \x0D\x0A setTimeout(adjustposition,10);\x0D\x0A \x0D\x0A function autoreject()\x0D\x0A {\x0D\x0A if(self._jsml_disposed)return;\x0D\x0A MyLiveChat_RejectSmart(true);\x0D\x0A }\x0D\x0A \x0D\x0A if(MyLiveChat.SmartUseShowTimeout)\x0D\x0A {\x0D\x0A setTimeout(autoreject,1000*MyLiveChat.SmartShowTimeout);\x0D\x0A }\x0D\x0A \x0D\x0A MyLiveChat.SmartPanel=self;\x0D\x0A MyLiveChat_InvokeEvent(\x22SmartPanelLoad\x22,self);\x0D\x0A \x0D\x0A ]]\x3E\x3C/attach\x3E\x3Cattach name=\x22mousedown\x22 arguments=\x22jevent,event\x22\x3E\x3C![CDATA[\x0D\x0A var src=event.get_element();\x0D\x0A switch(src.nodeName)\x0D\x0A {\x0D\x0A case \x22INPUT\x22:\x0D\x0A case \x22BUTTON\x22:\x0D\x0A case \x22TEXTAREA\x22:\x0D\x0A self._element.onselectstart=new Function(\x22\x22,\x22return event.returnValue=true;\x22);\x0D\x0A return;\x0D\x0A }\x0D\x0A self._element.onselectstart=jsml.cancel_default_function;\x0D\x0A self.startmove(event);\x0D\x0A event.cancel_default();\x0D\x0A ]]\x3E\x3C/attach\x3E\x3Cmethod name=\x22startmove\x22 arguments=\x22event\x22\x3E\x3C![CDATA[\x0D\x0A var rect=jsml.get_body_rect();\x0D\x0A var _x=event.clientX;\x0D\x0A var _y=event.clientY;\x0D\x0A var _l=self.drag_left;\x0D\x0A var _t=self.drag_top;\x0D\x0A var cl=parseInt(self._element.style.left)-_l-rect.left;\x0D\x0A var ct=parseInt(self._element.style.top)-_t-rect.top;\x0D\x0A \x0D\x0A function update_position(moveevent)\x0D\x0A {\x0D\x0A var rect=jsml.get_body_rect();\x0D\x0A var l=_l+moveevent.clientX-_x;\x0D\x0A var t=_t+moveevent.clientY-_y;\x0D\x0A var tl=cl+l+rect.left;\x0D\x0A var tt=ct+t+rect.top;\x0D\x0A if(tl\x3C0)l-=tl;\x0D\x0A if(tt\x3C0)t-=tt;\x0D\x0A self.drag_left=l;\x0D\x0A self.drag_top=t;\x0D\x0A self._element.style.left=Math.max(0,tl)+\x22px\x22;\x0D\x0A self._element.style.top=Math.max(0,tt)+\x22px\x22;\x0D\x0A }\x0D\x0A \x0D\x0A if(window.captureEvents)\x0D\x0A {\x0D\x0A function handle_mouse_move(moveevent)\x0D\x0A {\x0D\x0A update_position(moveevent);\x0D\x0A }\x0D\x0A function handle_mouse_up(event)\x0D\x0A {\x0D\x0A self._stopautomove=false;\x0D\x0A window.releaseEvents(Event.MOUSEMOVE);\x0D\x0A window.releaseEvents(Event.MOUOSEUP);\x0D\x0A document.body.removeEventListener(\x22mousemove\x22,handle_mouse_move,true);\x0D\x0A document.body.removeEventListener(\x22mouseup\x22,handle_mouse_up,true);\x0D\x0A }\x0D\x0A\x0D\x0A document.body.addEventListener(\x22mousemove\x22,handle_mouse_move,true);\x0D\x0A document.body.addEventListener(\x22mouseup\x22,handle_mouse_up,true);\x0D\x0A window.captureEvents(Event.MOUSEMOVE);\x0D\x0A window.captureEvents(Event.MOUOSEUP);\x0D\x0A self._stopautomove=true;\x0D\x0A }\x0D\x0A else\x0D\x0A {\x0D\x0A var me=document.body;//ctrl._element\x0D\x0A function ie_mouse_move()\x0D\x0A {\x0D\x0A update_position(window.event);\x0D\x0A }\x0D\x0A function ie_mouse_up()\x0D\x0A {\x0D\x0A me.releaseCapture();\x0D\x0A self._stopautomove=false;\x0D\x0A detach_events();\x0D\x0A }\x0D\x0A function ie_losecapture()\x0D\x0A {\x0D\x0A self._stopautomove=false;\x0D\x0A detach_events();\x0D\x0A }\x0D\x0A function detach_events()\x0D\x0A {\x0D\x0A me.detachEvent(\x22onmousemove\x22,ie_mouse_move);\x0D\x0A me.detachEvent(\x22onmouseup\x22,ie_mouse_up);\x0D\x0A me.detachEvent(\x22onlosecapture\x22,ie_losecapture);\x0D\x0A }\x0D\x0A me.attachEvent(\x22onmousemove\x22,ie_mouse_move);\x0D\x0A me.attachEvent(\x22onmouseup\x22,ie_mouse_up);\x0D\x0A me.attachEvent(\x22onlosecapture\x22,ie_losecapture);\x0D\x0A me.setCapture();\x0D\x0A self._stopautomove=true;\x0D\x0A }\x0D\x0A ]]\x3E\x3C/method\x3E\x3Cattach name=\x22initialize\x22\x3E\x0D\x0A\x0D\x0A jsml.fixinpagestyle(self);\x0D\x0A\x0D\x0A \x3C/attach\x3E\x3C/panel\x3E\x3C!--This template contains a image only--\x3E\x3Cpanel jsml-class=\x22smartpanel\x22 jsml-base=\x22smartbase\x22 overflow=\x22visible\x22 width=\x2210\x22 height=\x2210\x22 xmlns=\x22http://cutesoft.net/jsml\x22\x3E\x3Cpanel dock=\x22top\x22 height=\x2214\x22\x3E\x3Cpanel jsml-local=\x22img_close\x22 dock=\x22right\x22 width=\x2212\x22 height=\x2212\x22 vertical_align=\x22middle\x22 cursor=\x22pointer\x22 background=\x22transparent url(../livechat/template/images/smart_7_close.gif) no-repeat\x22\x3E\x3Cattach name=\x22click\x22\x3E\x0D\x0A MyLiveChat_RejectSmart();\x0D\x0A \x3C/attach\x3E\x3C/panel\x3E\x3C/panel\x3E\x3Cimage jsml-local=\x22img_smart\x22 src=\x22^MyLiveChat.SmartPhoto\x22 margin=\x2216,0,0,0\x22 tooltip=\x22^MyLiveChat.SmartMessage\x22\x3E\x3Cattach name=\x22click\x22\x3E\x0D\x0A MyLiveChat_OpenDialog();\x0D\x0A \x3C/attach\x3E\x3C/image\x3E\x3C/panel\x3E\x3C/jsml\x3E"; var xmldoc; if(typeof(DOMParser)!="undefined") { xmldoc=(new DOMParser()).parseFromString(xmlcode,"text/xml"); } else if(window.ActiveXObject) { xmldoc=(new ActiveXObject("Microsoft.XMLDOM")); xmldoc.loadXML(xmlcode); } else { var div=document.createElement("DIV"); div.innerHTML=""+xmlcode+""; xmldoc=div.firstChild; } function translate_value(val) { if(val&&val.charAt(0)=="@") return MyLiveChat._GetText(val.substring(1)); return val; } jsml.parse_xmldoc(xmldoc,null,null,null,translate_value); jsml.new_smartpanel(); }