(function(){
	var isIE6=(function(a){
        if (a.indexOf("MSIE") > 0) {
            var reg = /msie([^;]+);/i;
            var match = a.match(reg);
            if (parseFloat(match[1]) <= 6) {
                return true;
            }
        }
        return false;
    })(navigator.userAgent);
	var protocol=document.location.protocol;
		protocol=(protocol=="file:")?"http:":protocol;
		protocol=protocol+"//";
	function $class(className){
		var childs=document.getElementsByTagName("*"),length=childs.length;
		var items=[];
		for(var i=0;i<length;i++){
			if(childs[i].className.match(new RegExp("(^|\\s)"+className+"(\\s|$)"))){
				items.push(childs[i]);			
			}
		}
		return items;
	};
	function urlToParams(s){
		if(typeof s=="undefined"){
			return;
		}
		var urlMap=s.split("&"),map=[];
		if(null!=urlMap){
			var temp=[];
			for(var i=0;i<urlMap.length;i++){
				if(typeof urlMap[i]=="string")
				temp=urlMap[i].split("=");
				map[temp[0]]=temp[1];
			}
			return map;
		}
		return [];
	};
	function setCookie(name, value){
        var Days = 30;
        var exp = new Date();
        exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
        document.cookie = name + "=" + escape(value);
    };
    function getCookie(name) {
      var offset = document.cookie.indexOf(name+"="); //alert(document.cookie)
      if (offset != -1) {
         offset += name.length+1;
         var end = document.cookie.indexOf(";", offset);
         if (end == -1)
         end = document.cookie.length;
         return document.cookie.substring(offset, end);
      }else return "";
    };
	function getIconParams(){
		var ref = document.referrer; 
var local_host = document.domain;
if(ref.indexOf(local_host) < 0)
{document.cookie="KFIVTreferer=" + escape(document.referrer);
	//setCookie("kf51_referrer",ref);
}
	    //if(document.cookie.indexOf("KFIVTreferer") == -1) document.cookie="KFIVTreferer=00" + escape(document.referrer);
	    var params=[],queryParam=[];
		if(typeof kf99_configContent=="undefined"||typeof kf99_companyID=="undefined"){
			alert("LIM Parameters invalid!");
			return [];
		}
		params=urlToParams(kf99_configContent);
		params['company']=kf99_companyID;
		var rs={
			"company":params["company"],
			"float":typeof params["kf99_floatToRight"]!="undefined"?params["kf99_floatToRight"]:0,
			"side":typeof params["kf99_floatSide"]!="undefined"?params["kf99_floatSide"]:5,
			"top":typeof params["kf99_floatTop"]!="undefined"?params["kf99_floatTop"]:150,
			"close":typeof params["kf99_closeIcon"]!="undefined"?params["kf99_closeIcon"]:0,
			"online":typeof params["kf99_online"]!="undefined"?params["kf99_online"]:"",
			"offline":typeof params["kf99_offline"]!="undefined"?params["kf99_offline"]:""
		};
		
		if(typeof params["kf99_operator"]!="undefined"){
			rs["operator"]=params["kf99_operator"];
		}
		if(typeof params["kf99_skill"]!="undefined"){
			rs["skill"]=params["kf99_skill"];
		}
		return rs;
	};
	function iconGenerator(){
		var icons=$class('lim_float_icon');
		if(icons.length==0){
			var pms=getIconParams();
			var htmls="<div class='lim_float_icon' lim:company='"+pms["company"]+"' lim:float='"+pms["float"]+"' lim:close='"+pms['close']
				+"' lim:side='"+pms["side"]+"' lim:top='"+pms["top"]+"' lim:online='"+pms["online"]+"' lim:offline='"+pms["offline"]+"'";
				if(typeof pms["operator"]!="undefined"){
					htmls+=" lim:operator='"+pms["operator"]+"'";
				}
				if(typeof pms["skill"]!="undefined"){
					htmls+=" lim:skill='"+pms["skill"]+"'";
				}
				htmls+="></div>";
			document.write(htmls);
			icons=$class('lim_float_icon');
		}
		return icons
	};
	function lockIcon(el){
		this.topSide=parseInt(el.getAttribute("lim:top"));
		this.floatRight=parseInt(el.getAttribute("lim:float"));
		this.side=parseInt(el.getAttribute("lim:side"));
		this.element=el;
		this.init();
	};
	lockIcon.prototype={
			init:function(){
				var lockObj=this.element,objStyle=lockObj.style;
				objStyle.position="absolute";
				objStyle.zIndex="1000";
				objStyle.top=this.topSide+"px";
				this.floatRight==0?objStyle.right=this.side+"px":objStyle.left=this.side+"px";
				var locker=this;
				setInterval(function(){locker.lock.call(locker)},20);
			},
			lockTop:function(el,position,page,scroll,icon){
					var y=scroll.top+icon.topSide,offsetTop=(y-parseInt(el.style.top))/20;
					var topSide=parseInt(el.style.top)+offsetTop;
					if((topSide+position.height)<page.height){
						el.style.top=topSide+"px";
					}
				},
			lockLeft:function(el,scroll,icon){
					var x=scroll.left+icon.side,offsetLeft=(x-parseInt(el.style.left))/20;
					el.style.left=(parseInt(el.style.left)+offsetLeft)+"px";
				},
			lockRight:function(el,scroll,icon){
					var d=document;
					if(scroll.left==0){
						var x=icon.side,offsetRight=(Math.abs(x)-Math.abs(parseInt(el.style.right)))/20;
						el.style.right=(Math.abs(parseInt(el.style.right))+offsetRight)+"px";
					}else{
						if(isIE6){
							;
						}else{
							var x=scroll.left-icon.side,offsetRight=(Math.abs(x)-Math.abs(parseInt(el.style.right)))/20;
							el.style.right=-(Math.abs(parseInt(el.style.right))+offsetRight)+"px";
						}
					}
				},
			lock:function(){
				var el=this.element,position=this.currentPosition(el),win=this.windowDimension(),scroll=this.scrollPosition(),page=this.pageDimension(),icon=this;
				this.lockTop(el,position,page,scroll,icon);
				if(this.floatRight==0){
					this.lockRight(el,scroll,icon);
				}else{
					this.lockLeft(el,scroll,icon);
				}
			},
			currentPosition:function(el){
				return {top:el.offsetTop,left:el.offsetLeft,width:el.offsetWidth,height:el.offsetHeight};
			},
			windowDimension:function(){
				if((typeof innerWidth!="undefined"&&innerWidth!=0)&&(typeof innerHeight!="undefined"&&innerHeight!=0)){
					return {width:innerWidth,height:innerHeight};
				}
				var d=document;
				return{
					width:Math.min(d.body.clientWidth,d.documentElement.clientWidth),
					height:Math.min(d.body.clientHeight,d.documentElement.clientHeight)
				};
			},
			scrollPosition:function(){
				var d=document;
				return{
					top:Math.max(d.body.scrollTop,d.documentElement.scrollTop),
					left:Math.max(d.body.scrollLeft,d.documentElement.scrollLeft)
				};
			},
			pageDimension:function(){
				var d=document;
				return {
					width:Math.max(d.body.scrollWidth,d.documentElement.scrollWidth),
					height:Math.max(d.body.scrollHeight,d.documentElement.scrollHeight)
				}
			}
	};
	window.limIconClose=function(el){
		var pNode=el.parentNode;
		if(pNode.className.indexOf('lim_float_icon')==-1){
			pNode=pNode.parentNode;
		}
		pNode.style.visibility="hidden";
	};
	var _encoder=function(Str){
			if (Str == null || Str == "") {
			        return "";
			    }
			    var newStr = "";
			    function toCase(sStr){
			        return sStr.toString(16).toUpperCase();
			    }
			    for (var i = 0, icode, len = Str.length; i < len; i++) {
			        icode = Str.charCodeAt(i);
			        if (icode < 0x10) {
			            newStr += "%0" + icode.toString(16).toUpperCase();
			        }
			        else 
			            if (icode < 0x80) {
			                if (icode == 0x20) {
			                    newStr += "+";
			                }
			                else 
			                    if ((icode >= 0x30 && icode <= 0x39) || (icode >= 0x41 && icode <= 0x5A) || (icode >= 0x61 && icode <= 0x7A)) {
			                        newStr += Str.charAt(i);
			                    }
			                    else {
			                        newStr += "%" + toCase(icode);
			                    }
			            }
			            else 
			                if (icode < 0x800) {
			                    newStr += "%" + toCase(0xC0 + (icode >> 6));
			                    newStr += "%" + toCase(0x80 + icode % 0x40);
			                }
			                else {
			                    newStr += "%" + toCase(0xE0 + (icode >> 12));
			                    newStr += "%" + toCase(0x80 + (icode >> 6) % 0x40);
			                    newStr += "%" + toCase(0x80 + icode % 0x40);
			                }
			    }
			    return newStr;
		};
	window.openChat=function(el){
	    try{KFIVT.monitor.type=0;}catch(e){;}
		try{parent.closeMini();}catch(e){;}
		var openUrl = kf99_baseChatHtmlDir+"?siteid="+siteid;
			openUrl += "&keyword="+getCookie("KFIVTreferer");
			openUrl += "&referer="+escape(document.URL);
   			openUrl += "&tm=" + (new Date()).getTime();
   	 	var winAttr = globalWindowAttribute;
		
    	window.open(openUrl, 'chatbox79685', winAttr);
	};
	function flashIcon(item,imageUrl,pm,maskUrl){ 
		var html='<object id="inviteFlash" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'+item.getAttribute("lim:width")+'" height="'+item.getAttribute("lim:height")+'" >';
			html+='<param name="movie" value="'+imageUrl+'" /><param name="quality" value="high" /><param name="wmode" value="opaque">';
			html+='<embed src="'+imageUrl+'" quality="high" width="'+item.getAttribute("lim:width")+'" height="'+item.getAttribute("lim:height")+'" wmode="opaque" name="movie"';
			html+=' type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"/></object>';
			html+='<div '+pm+' onclick="openChat(this);" style="cursor:pointer;z-index:1001;top:0;left:0;position:absolute;"><img height="'+item.getAttribute("lim:height")+'" width="'+item.getAttribute("lim:width")+'" src="'+maskUrl+'" border="0"/></div>';
			return html;
	};
	function iconProcess(){
		var icons=iconGenerator(),pm,iconClose;
		var item,urlPrefix=protocol+kf99_baseUrl+kf99_baseWebApp+"/isOnline?cmd=111",imageUrl,imageHtml;
		
		for(var i=0;i<icons.length;i++){
			item=icons[i];
			pm="",imageUrl="",imageHtml="";
			imageUrl=urlPrefix;
			if(item.getAttribute("lim:company")){
				imageUrl+="&companyID="+item.getAttribute("lim:company");
				pm+="lim:company='"+item.getAttribute("lim:company")+"' ";
			}
			if(item.getAttribute("lim:online")){
				imageUrl+="&online="+item.getAttribute("lim:online");
			}
			if(item.getAttribute("lim:offline")){
				imageUrl+="&offline="+item.getAttribute("lim:offline");
			}
			if(item.getAttribute("lim:operator")){
				imageUrl+="&operatorId="+item.getAttribute("lim:operator");
				pm+="lim:operator='"+item.getAttribute("lim:operator")+"' ";
				setCookie("operatorId", item.getAttribute("lim:operator"));
			}
			if(item.getAttribute("lim:skill")){
				imageUrl+="&skillId="+item.getAttribute("lim:skill");
				pm+="lim:skill='"+item.getAttribute("lim:skill")+"' ";
				setCookie("skillId", item.getAttribute("lim:skill"));
			}
			imageUrl+="&tm="+(new Date()).getTime();
			/*imageHtml="<div><img src='"+imageUrl+"' border='0' style='cursor:pointer;' "+pm+" onclick='openChat(this);'/><div>";
			if(item.getAttribute("lim:flash")&&item.getAttribute("lim:flash")=="1"){
				imageHtml=flashIcon(item,imageUrl,pm,protocol+kf99_baseUrl+kf99_baseWebApp+"/chatClient/images/mask.gif");
			}
			iconClose=item.getAttribute("lim:close");
			if(iconClose&&iconClose=="1"){
				imageHtml+="<div style='background:#fff;text-align:"+(item.getAttribute('lim:float')==1?"right":"left")+"' onclick='limIconClose(this);'><img src='"+protocol+kf99_baseUrl+kf99_baseWebApp+"/images/close.gif"+"'/></div>";
			}*/


			iconClose=item.getAttribute("lim:close");
			imageHtml="";
			if(iconClose&&iconClose=="1"){
				imageHtml="<div style='background:transparent;overflow:visible;position:relative;z-index:1002;clear:both;' onclick='limIconClose(this);'><img src='"+
					protocol+kf99_baseUrl+kf99_baseWebApp+"/images/close.gif"+"' onmouseover='this.src=\""+
					protocol+kf99_baseUrl+kf99_baseWebApp+"/images/close_hover.gif"+"\"' onmouseout='this.src=\""+
					protocol+kf99_baseUrl+kf99_baseWebApp+"/images/close.gif"+"\"' style='cursor:pointer;position:absolute;top:-6px;"+
					(item.getAttribute('lim:float')==2?"left":"right")+":-6px;'/></div>";
			}
			imageHtml+="<div style='position:relative;z-index:1001;'><img src='"+imageUrl+"' border='0' style='cursor:pointer;' "+pm+" onclick='openChat(this);'/></div>";
			if(item.getAttribute("lim:flash")&&item.getAttribute("lim:flash")=="1"){
				imageHtml=flashIcon(item,imageUrl,pm,protocol+kf99_baseUrl+kf99_baseWebApp+"/chatClient/images/mask.gif");
			}


			//alert(urlPrefix)
			
			item.innerHTML=imageHtml;
			new lockIcon(item);
		}
	};
	iconProcess();
})();
