String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

function createRequest() {
  var xmlreq = false;
  if (window.XMLHttpRequest) {
    // Create XMLHttpRequest object in non-Microsoft browsers
    xmlreq = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    // Create XMLHttpRequest via MS ActiveX
    try {
      // Try to create XMLHttpRequest in later versions
      // of Internet Explorer
      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e1) {
      // Failed to create required ActiveXObject
      try {
        // Try version supported by older versions
        // of Internet Explorer
        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e2) {
        // Unable to create an XMLHttpRequest with ActiveX
      }
    }
  }
  return xmlreq;
}

function getLogStat(LogInfoID) {
    var LogInfo = document.getElementById(LogInfoID); // user login bar.
    /***********************REGION: GET CLIENT'S COOKIES DATA****************************/
    var segmentCount = isNaN(parseInt(GetClientCookieSegmentCount("ASPSESSIONID"))) ? 0 : parseInt(GetClientCookieSegmentCount("ASPSESSIONID"));
    var segmentClientCount = isNaN(parseInt(GetClientCookie("cltSegCount"))) ? 0 : parseInt(GetClientCookie("cltSegCount"));
    var srvState = GetClientCookie("cltSrvUState");
    var loginBar = GetClientCookie("cltLoginBar");
    var timeout = isNaN(parseInt(GetClientCookie("cltTimeout"))) ? 20 : parseInt(GetClientCookie("cltTimeout"));
    var cltCk = GetClientCookie("cltCkTime");
    /***********************ENDREGION:GET CLIENT'S COOKIES DATA*************************/
    if(segmentCount == segmentClientCount)
    {
        // session not timeout & iis not reset, check user status.
        if(srvState == null || srvState == "0" || loginBar == null || loginBar == "" || IsTimeout(cltCk, timeout)){
            // loadding user state check url.
            userStateCheck(LogInfo);
        }
        else{
            LogInfo.innerHTML = loginBar;
        }
    }
    else{
        userStateCheck(LogInfo);
    }
}

function IsTimeout(d,t){
    var t1 = new Date();
    var ts = (t1.getTime() - d) / (1000 * 60);
    if(ts > t) return true;
    return false;
}

function userStateCheck(objLoginBar){
    var getURI = "/incs/js/login_check.asp?rseed=" + Math.random();
    var request = createRequest();
    var rTimeout ;
    var MAX_WAITTING_TIME = 5000;
    var CHECKING_INTERVER = 20;
    
    var segmentCount = isNaN(parseInt(GetClientCookieSegmentCount("ASPSESSIONID"))) ? 0 : parseInt(GetClientCookieSegmentCount("ASPSESSIONID"));
    
    if(!request){
        objLoginBar.innerHTML = "Request Object create err.";
    }
    else{
        request.open("GET",getURI,true);
        rTimeout = setTimeout(function(){
            request.abort();
            clearTimeout(rTimeout);
            objLoginBar.innerHTML = '<span class="lgn_lnk"><a href="/members/login.asp">会员登录</a> | <a href="/members/usr_reg.asp">会员注册</a></span>';
        }, MAX_WAITTING_TIME);
        request.onreadystatechange = function()
        {
            if(request.readyState == 4)
            {
                if(request.status == 200)
                {
                    var responseData    = request.responseText;
                    request             = false;
                    clearTimeout(rTimeout);
                    objLoginBar.innerHTML = responseData;
                    var currentDate = new Date();
                    SetClientCookie("cltLoginBar", responseData);
                    SetClientCookie("cltSegCount", segmentCount);
                    SetClientCookie("cltCkTime", currentDate.getTime());
                }
            }
        }
        request.send(null);
    }
    return null;
}

function SetClientCookie(cookieName,cookieValue,expiredDays) {
	if (expiredDays) {
		var date = new Date();
		date.setTime(date.getTime() + (expiredDays * 24 * 60 * 60 * 1000));
		var expires = "; expires=" + date.toGMTString();
	}
	else var expires = "";
	document.cookie = cookieName + "=" + escape(cookieValue) + expires + "; path=/";
}

function GetClientCookie(cookieName) {
	// var nameEQ = cookieName + "=";
	// only split single cookie, for group cookie can't find the right value.
	// cookiegroup=cookieName=cookieValue; cookiegroup=cookieName=cookieValue; ...
	// cookieName=cookieValue; cookieName=cookieValue; ...
	var ca = document.cookie.split(';');
	// split by group.
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		var cn = c.split('&'); // split by '&', split the cookie's key-value;
		for(var j = 0; j < cn.length; j++){
		    var ccv = cn[j].split("=");
            if(ccv[ccv.length - 2] == undefined) continue;
		    if (ccv[ccv.length - 2].trim() == cookieName) return unescape(ccv[ccv.length - 1]);
		}
	}
	return null;
}

function GetClientCookieSegmentCount(cookieSegment){
    var SegmentCount = 0;
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i].toLowerCase();
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(cookieSegment.toLowerCase()) == 0) SegmentCount++;
	}
	return SegmentCount;
}

function EraseClientCookie(cookieName) {
	SetClientCookie(cookieName, "", -1);
}

function getQQStat(QQStatID) {
    var getURI = "/incs/QQ_Station/QQ_AC.asp?url=" + encodeURIComponent(window.location.href) + "&rseed=" + Math.random();
    var QQStat = document.getElementById(QQStatID);
    var request = createRequest();
    if(!request){
        QQStat.innerHTML = "Request Object create err.";
        return false;
    }
    else{
        request.open("GET",getURI,true);
        request.onreadystatechange = function()
        {
            if(request.readyState == 4)
            {
                if(request.status == 200)
                {
                    QQStat.innerHTML = request.responseText;
                    request = false;
                }
            }
        }
        request.send(null);
    }
    return false;
}

function forceCheckQQ() {
    var getURI = "/incs/QQ_Station/get_qq.asp";
    var request = createRequest();
    if(!request){
        return false;
    } else{
        request.open("GET",getURI,true);
        request.send(null);
    }
    return false;
}

function getQQlist(T_T, T_C){
    var getURI = "/incs/QQ4js.asp?tp=" + escape(T_T);
    var TC = document.getElementById(T_C);
    var request = createRequest();
    if(!request){
        if(!request){
            TC.innerHTML = "Request Object create err.";
            return false;
        }
    }
    else{
        request.open("GET",getURI,true);
        request.onreadystatechange = function()
        {
            if(request.readyState == 4)
            {
                if(request.status == 200)
                {
                    TC.innerHTML = request.responseText;
                    request = false;
                }
            }
        }
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.send(null);
    }
    return false;
}

function getUSatus(T_C){
    var getURI = "/incs/HttpUser.asp?rnd=" + Math.random();
    var TC = document.getElementById(T_C);
    var request = createRequest();
    if(!request){
        if(!request){
            TC.innerHTML = "Request Object create err.";
            return false;
        }
    }
    else{
        request.open("GET",getURI,true);
        request.onreadystatechange = function()
        {
            if(request.readyState == 4)
            {
                if(request.status == 200)
                {
                    TC.innerHTML = request.responseText.trim();
                    if(request.responseText.indexOf("form") > 0){
                        doact();
                    }
                    request = false;
                }
            }
        }
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.send(null);
    }
    return false;
}

function getNewslist(T_CAT, T_CNT, T_TL, T_C){
	/*
	T_CAT => Category
	T_CNT => length of per title
	T_TL => length
	*/
    var getURI = "/news/NewsSvc.asp?lcnt=" + escape(T_CNT) + "&ncat=" + escape(T_CAT) + "&l=" + escape(T_TL);
    var TC = document.getElementById(T_C);
    var request = createRequest();
    if(!request){
        if(!request){
            TC.innerHTML = "Request Object create err.";
            return false;
        }
    }
    else{
        request.open("GET",getURI,true);
        request.onreadystatechange = function()
        {
            if(request.readyState == 4)
            {
                if(request.status == 200)
                {
                    TC.innerHTML = request.responseText;
                    request = false;
                }
            }
        }
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.send(null);
    }
    return false;
}

function getHelpList(T_TG, T_SL, T_CT, T_C){
	/*
	t=>ClassId
	c=>Title length
	s=>list length
	*/
    var getURI = "/help/list.asp?t=" + T_TG + "&c=" + T_CT + "&s=" + T_SL;
    var TC = document.getElementById(T_C);
    var request = createRequest();
    if(!request){
        if(!request){
            TC.innerHTML = "Request Object create err.";
            return false;
        }
    }
    else{
        request.open("GET",getURI,true);
        request.onreadystatechange = function()
        {
            if(request.readyState == 4)
            {
                if(request.status == 200)
                {
                    TC.innerHTML = request.responseText;
                    request = false;
                }
            }
        }
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.send(null);
    }
    return false;
}

