﻿Ajax = function (){
	var navName = (function (){
		var u = navigator.userAgent.toLowerCase();
		if (/gecko/i.test(u)) return "moz";
		if (/msie/i.test(u)) return "ie";
		return "other";
	})();
	var ie = navName=="ie";
	var moz = navName=="moz";
	// xmlHttp对象
	this.xmlHttp = function (){
		if (ie)	{
			for (var i=0; i<2; i++)
			try{
				var r = new ActiveXObject(["MSXML2.XMLHTTP", "Microsoft.XMLHTTP"][i]);
				return r;
			}catch (e) { return null;};
		}
		else return new XMLHttpRequest();
	}
	// xmlDom对象
	this.xmlDom = function (){
		if (ie)
			for (var i=0; i<4; i++)
				try{
					var r = new ActiveXObject(["MSXML2.DOMDocument", "Microsoft.XMLDOM", "MSXML.DOMDocument", "MSXML3.DOMDocument"][i]);
					return r;
				}catch (e){return null;}
		else return document.implementation.createDocument("", "doc", null);
	}
	// 装载一个Http//返回指定url的文本内容，asy指定是否异步，如果异步，xmlHttp做为参数并执行fun
	this.loadHttp = function (url, asy, fun){
		var xmlHttp = this.xmlHttp();
		xmlHttp.open("GET", url, (asy ? true : false));
		if (asy){
			xmlHttp.onreadystatechange = function()	{
				if(xmlHttp.readyState==4) fun (xmlHttp);
			};
			xmlHttp.send(null);
		}
		else{
			try{
				xmlHttp.send(null);
			}catch (e){
				throw new Error("LoadHttp Error.");
				return;
			}
			return xmlHttp.responseText;
		}
	}
	// POST提交数据，asy指定是否异步，如果异步，xmlHttp做为参数并执行fun，否则返回操作后的结果
	this.postData = function (url, data, asy, fun){
		var xmlHttp = this.xmlHttp();
		xmlHttp.open("POST", url, (asy ? true : false));
		xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		if (asy){
			xmlHttp.onreadystatechange = function()	{
				if(xmlHttp.readyState==4) fun (xmlHttp);
			};
			xmlHttp.send(data);
		}
		else{
			try{
				xmlHttp.send(data);
			}catch (e){
				throw new Error("PostData Error.");
				return;
			}
			return xmlHttp.responseText;
		}
	}
	// 装载一个XmlDom//返回xmlDom对象，url为xml的地址，asy指定是否异步，如果异步，xmlDom做为参数并执行fun
	this.loadXml = function (url, asy, fun){
		var xmlDom = this.xmlDom();
		xmlDom.async = asy ? true : false;
		if (asy){
			if (ie) xmlDom.onreadystatechange = function (){
				if(xmlDom.readyState == 4) fun(xmlDom);
			} 
			else xmlDom.onload = function (){
				fun(xmlDom);
			}
		}
		xmlDom.load(url);
		return xmlDom;
	}
	// 取得xmlDom对象的xml内容
	this.getXml = function (xDom){
		if (ie) return xDom.xml;
		else return (new XMLSerializer()).serializeToString(xDom);
	}
	// 二进制转换
	this.Bin2Str = function (binary){
		var rec = new ActiveXObject("ADODB.RecordSet");
		rec.Fields.Append("DDD",201,1);
		rec.open();
		rec.addNew();
		rec(0).appendChunk(binary);
		rec.update();
		var result = rec(0).value;
		rec.Close();
		return result;
	}
}

function getData(_url){
    _url = _url.indexOf("?")==-1 ? _url + "?iTime=" + Math.random() : _url + "&iTime=" + Math.random();
    var myAjax = new Ajax();
    return myAjax.loadHttp(_url);
}

String.prototype.trim=function(){return this.replace(/(^[\s]*)|([\s]*$)/g,"");}

function URLParams(ParamName){
    var aParams=document.location.search.substr(1).split('&');
    for (i=0;i<aParams.length;i++){
        var aParam = aParams[i].split('=');
        if (ParamName.toLowerCase().trim()==aParam[0].toLowerCase().trim())
            return aParam[1].trim();
    }
    return "";
}

function URLParams2(url,ParamName){
    var aParams=url.split('?')[1].split('&');
    for (i=0;i<aParams.length;i++){
        var aParam = aParams[i].split('=');
        if (ParamName.toLowerCase().trim()==aParam[0].toLowerCase().trim())
            return aParam[1].trim();
    }
    return "";
}


Cookie = function () {
	this.get = function (Name)
	{
		var search = Name + "=";
		if(document.cookie.length > 0)
		{
			var offset = document.cookie.indexOf(search);
			if(offset != -1)
			{
				offset += search.length;
				var end = document.cookie.indexOf(";", offset);
				if(end == -1) end = document.cookie.length;
				return unescape(document.cookie.substring(offset, end));
			}
			else return "";
		}
		else return "";
	}
	this.set = function(name,value)
	{
		var today = new Date();
		var expires = new Date();
		expires.setTime(today.getTime() + 1000*60*60*24*365);
		document.cookie = name + "=" + escape(value) + "; path=/; expires=" + expires.toGMTString();
	}
	this.del = function (name)
	{
		var today = new Date();
		var expires = new Date();
		expires.setTime(today.getTime() - 1);
		document.cookie = name + "=0; path=/; expires=" + expires.toGMTString();
	}
}


function IsTrue(i,coming) {
    var isTrue = false;
    var key = "adDateTime" + i + coming;
    var cook = new Cookie();
    var cookieDate = cook.get(key);
    var nowDate = (new Date()).toLocaleString().split(' ')[0];
    
    if (cookieDate.length==10) {
        if (nowDate!=cookieDate) { cook.set(key, nowDate); isTrue = true; }
    } else {
        cook.set(key, nowDate);
        isTrue = true;
    }
    return isTrue;
}

function IsUninstall() {
    var isTrue = false;
    var key = "sysUninstall";
    var cook = new Cookie();
    var cookieDate = cook.get(key);
    var nowDate = (new Date()).toLocaleString().split(' ')[0];
    
    if (cookieDate.length==10) {
        if (nowDate!=cookieDate) { cook.set(key, nowDate); isTrue = true; }
    } else {
        cook.set(key, nowDate);
        isTrue = true;
    }
    return isTrue;
}

function pageLoad(coming,comingI) {
    //alert(coming + "|" + comingI);
    if (IsTrue(1,coming)) {
        var url = "/common/adStatAjax.aspx?coming=" + coming + "&i=" + comingI;
        getData(url);
        //alert(url);
    }
}

function pageLoad2(coming,comingI,comingurl) {
    //alert(coming + "|" + comingI);
    if (IsTrue(1,coming)) {
        var url = "/common/adStatAjax.aspx?coming=" + coming + "&i=" + comingI + "&url=" + comingurl;
        getData(url);
        //alert(url);
    }
}

function count(i,coming,comingI) {
    if (IsTrue(i,coming)) {
        var comingurl = window.location.href;
        var url = "/common/adStatAjax.aspx?active=count" + (i-1) + "&coming=" + coming + "&i=" + comingI +"&url=" +comingurl;
        getData(url);
        //alert(url);
    }
}