var hj_iframeDoc = null;
//var hj_proxyUrl = null;
var hj_appType = null;
var hj_chkCode = null;
var hj_flashObj = null;
var hj_logDiv = null;
var hj_appFlash = ['flaMonitor','flashChat'];
var hj_linkParam = null;
var hj_beatRun;
var hj_Myw3_QueryData = new Array();

function hj_Myw3_CreateQueryData(){
	var hj_Myw3_QueryData_S = location.search;
	if(hj_Myw3_QueryData_S != ""){
		var hj_Myw3_QueryData_Ss = hj_Myw3_QueryData_S.replace("?","").split("&");
		for(var i = 0; i < hj_Myw3_QueryData_Ss.length; i++){
			var MyW3_QueryData_Sa = hj_Myw3_QueryData_Ss[i].split("=");
			hj_Myw3_QueryData[i] = new Array(MyW3_QueryData_Sa[0], MyW3_QueryData_Sa[1])
		}
	}else{
		hj_Myw3_QueryData[0] = new Array(0,0);
	}
}

function hj_Myw3_Q(_q){
	for(i=0; i< hj_Myw3_QueryData.length; i++){
		if(hj_Myw3_QueryData[i][0] == _q){
			return hj_Myw3_QueryData[i][1];
		}
	}
}

hj_Myw3_CreateQueryData();
var hj_debug = hj_Myw3_Q("debug");
if(hj_debug == undefined) hj_debug = 0;

/**
 * createWebLink
 */
function hj_createWebLink(url) {
	var iframeUrl = url;
    if (navigator.appVersion.indexOf("MSIE") != -1) {
      // For IE browsers
	  hj_iframeDoc = new ActiveXObject("htmlfile");
	  hj_iframeDoc.Charset = "utf-8"; 
      hj_iframeDoc.open();
      hj_iframeDoc.write("<html>");
      //hj_iframeDoc.write("<script language=\"javascript\"> try { document.domain='5107.cn';} catch (e) { }</script>");
	  hj_iframeDoc.write("</html>");
      hj_iframeDoc.close();
      var iframediv = hj_iframeDoc.createElement("div");
      hj_iframeDoc.appendChild(iframediv);
	  hj_iframeDoc.parentWindow.hj_msgLog = function (msg){ hj_msgLog(msg) };
	  hj_iframeDoc.parentWindow.hj_getMsg = function (msg){ hj_getMsg(msg) };
	  hj_iframeDoc.parentWindow.hj_getKeyStr = function (msg){ hj_getKeyStr(msg) };
	  //hj_iframeDoc.onafterupdate = function(){alert(80)};
      iframediv.innerHTML = "<iframe id='hj_weblink_iframe' src='"+ iframeUrl +"'></iframe>";
    } else if (navigator.appVersion.indexOf("KHTML") != -1) {
      // for KHTML browsers
      hj_iframeDoc = document.createElement('iframe');
      hj_iframeDoc.setAttribute('id', 'hj_weblink_iframe');
      hj_iframeDoc.setAttribute('src', iframeUrl);
      with (hj_iframeDoc.style) {
        position   = "absolute";
        left       = top   = "-100px";
        height     = width = "1px";
        visibility = "hidden";
      }
      document.body.appendChild(hj_iframeDoc);
    } else {
      // For other browser (Firefox...)
      hj_iframeDoc = document.createElement('iframe');
      hj_iframeDoc.setAttribute('id', 'hj_weblink_iframe');
      with (hj_iframeDoc.style) {
        left       = top   = "-100px";
        height     = width = "1px";
        visibility = "hidden";
        display    = 'none';
      }
      iframediv = document.createElement('iframe');
      iframediv.setAttribute('src', iframeUrl);
      hj_iframeDoc.appendChild(iframediv);
      document.body.appendChild(hj_iframeDoc);
    }
}

/**
 * hj_getMsg
 * @param String msg
 */
function hj_getMsg(msg){
	//var msg = decodeURIComponent(msg)
	printlog("Send msg to Flash:" + msg);
	hj_flashObj.hj_js2flash(msg);
}

/**
 * hj_msgLog
 */
function hj_msgLog(msg){
	printlog("SERVER LOG:" + msg);
}

/**
 * hj_getKeyStr
 * @param msg
 */
function hj_getKeyStr(msg){
	if (hj_chkCode == null){
		hj_chkCode = msg;
		printlog("JS hj_chkCode:" + hj_chkCode);
	}
}

/**
 * printlog
 * @param String msg
 */
function printlog(msg){
	if(hj_debug == 0) return; 
	if(typeof(exportDebugInfo) == "function"){
		exportDebugInfo("http_printlog", msg);	
	}else{
	if(hj_logDiv == null){
		hj_logDiv = document.createElement("div");
		hj_logDiv.setAttribute('id', 'weblink_log');
		with (hj_logDiv.style) {
			border		= "1px dotted #CCCCCC";
			overflow	= "auto";
			height		= "200px";
		}
		document.body.appendChild(hj_logDiv);
	}
	var dateObj = new Date();
	var time = dateObj.getHours()+":"+dateObj.getMinutes()+":"+dateObj.getSeconds()+"."+dateObj.getMilliseconds();
	document.getElementById("weblink_log").innerHTML += "<div>[" + time + "]:" + msg + "</div>";
	}
}

/**
 * hj_getFlashObj
 * @return object
 */
function hj_getFlashObj(flashName) {
	if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[flashName];
    } else {
        return document[flashName];
    }
}

/**
 * hj_flash2js
 * @param String msg
 */
function hj_flash2js(msg){
	printlog("flash send msg to server:["+msg+"]");
	printlog("appType:"+hj_appType);
	hj_jsSend(msg);
	/*
	if(hj_appType == 0)
		hj_jsSend(msg);
	else if(hj_appType == 1)
		hj_ajaxSend(msg);
	*/
}

function hj_ajaxSend(msg){
	var hj_ajaxObj = hj_ajax();
	var url = hj_proxyUrl + "webLinkRequest.php";
	var params = "msg=" + encodeURIComponent(msg);
		params += "&chkCode=" + hj_chkCode;
		params += "&t=" + new Date().getTime();
	hj_ajaxObj.open("POST", url, true);
	printlog("ajax msg");
	hj_ajaxObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	hj_ajaxObj.setRequestHeader("Content-length", params.length);
	hj_ajaxObj.setRequestHeader("Connection", "close");
	
	hj_ajaxObj.onreadystatechange = function() { //Call a function when the state changes.
		if(hj_ajaxObj.readyState == 4 && hj_ajaxObj.status == 200) {
			printlog("Write cache(ajax):"+hj_ajaxObj.responseText);
		}
	}
	hj_ajaxObj.send(params);	
}

/**
 * hj_imgSend
 * @param String msg
 */
function hj_imgSend(msg){
	var imgUrl = hj_proxyUrl+"webLinkRequest.php?msg="+encodeURIComponent(msg);
		imgUrl += "&chkCode=" + hj_chkCode;
		imgUrl += "&t="+ new Date().getTime();
	var img = new Image;
	img.src = imgUrl;		
}

/**
 * hj_imgSend
 * @param String msg
 */
function hj_jsSend(msg){
	var imgUrl = hj_proxyUrl+"webLinkRequest.php?msg="+encodeURIComponent(msg);
		imgUrl += "&chkCode="+hj_chkCode;
		imgUrl += "&t="+ new Date().getTime();
	var js = document.createElement('script');
	js.setAttribute('language', 'javascript');
	js.setAttribute('type', 'text/javascript');
	js.setAttribute('src', imgUrl);
	document.body.appendChild(js);		
}
/**
 * hj_jsweblink
 * @param String type
 */
function hj_jsweblink(type,msg){
	hj_appType = type;
	hj_flashObj = hj_getFlashObj(hj_appFlash[type]);
	if(typeof(company) == 'undefined'){
		//var hjlk_company = _objMonitor.company;	
		var hjlk_company = hj5107.company;	
	}else{
		var hjlk_company = company;	
	}
	
	if(typeof(_objMonitor) == 'object'){
		var pageUrl = _objMonitor.pageUrl;
	}else{
		var pageUrl = "5107.cn";	
	}

	hj_linkParam = "company=" + hjlk_company;
	hj_linkParam += "&url=" + encodeURIComponent(pageUrl);
	hj_linkParam += "&type=" + type;
	hj_linkParam += "&msg=" + encodeURIComponent(msg);
	hj_linkParam += "&rndval=" + new Date().getTime()
	hj_linkParam += "&debug=" + hj_debug;
	//alert(linkUrl)
	var linkUrl = hj_proxyUrl + "webLink.php?" + hj_linkParam;
	hj_sendBeat()
	hj_beatRun = setInterval("hj_sendBeat()", 6000);
	hj_createWebLink(linkUrl);
	printlog("create http link:"+linkUrl);
	
	if(document.addEventListener){
		window.addEventListener('onbeforeunload',hj_closeFun,false);
	}else{
		window.attachEvent('onbeforeunload',hj_closeFun);
	}
}

/**
 * hj_sendBeat
 */
function hj_sendBeat(){
	printlog("browser -> php beat");
	var imgUrl = hj_proxyUrl+"webLinkBeat.php?";
		imgUrl += hj_linkParam;
		imgUrl += "&t="+ new Date().getTime();
	var js = document.createElement('script');
	js.setAttribute('language', 'javascript');
	js.setAttribute('type', 'text/javascript');
	js.setAttribute('src', imgUrl);
	document.body.appendChild(js);
}

/**
 * hj_ajax
 */
function hj_ajax() {
		var http = false;
		if(typeof ActiveXObject != 'undefined') {
			try {http = new ActiveXObject("Msxml2.XMLHTTP");}
			catch (e) {
				try {http = new ActiveXObject("Microsoft.XMLHTTP");}
				catch (E) {http = false;}
			}
		} else if (XMLHttpRequest) {
			try {http = new XMLHttpRequest();}
			catch (e) {http = false;}
		}
		return http;
}

/**
 * hj_closeFun
 */
function hj_closeFun(){
	hj_imgSend('chatOver');
}
