﻿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 $() {
    var elements = new Array();
    for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];
        if (typeof element == 'string') element = document.getElementById(element);
        if (arguments.length == 1) return element;
        elements.push(element);
    }
    return elements;
}

function getData(_url){
    _url = _url.indexOf("?")==-1 ? _url + "?iTime=" + Math.random() : _url + "&iTime=" + Math.random();
    var myAjax = new Ajax();
    return myAjax.loadHttp(_url);
}
function postData(_url,_data){
    _url = _url.indexOf("?")==-1 ? _url + "?iTime=" + Math.random() : _url + "&iTime=" + Math.random();
    var myAjax = new Ajax();
    return myAjax.postData(_url,_data);
}
function setHTML(Label,sHTML){
	$(Label).innerHTML = sHTML;
}

function getErrorResult(_obj,_value,_value2) {
    //alert(_obj + "|" + _value + "|" + _value2 + "|" + URLParams("userid"));
    if (_obj.indexOf("Gift")>0)
        $(_obj).innerHTML = unHtml(getData("common/appAjax.aspx?Active=ErrorResultGift&ID=" + _value + "&adID=" + _value2 + "&userid=" + URLParams("userid")));
    else if(_obj.indexOf("Correct")>0)
    {
        $(_obj).innerHTML = unHtml(getData("common/appAjax.aspx?active=CorrectResult&id=" + _value + "&adID=" + _value2));
    }
    else
    {
        $(_obj).innerHTML = unHtml(getData("common/appAjax.aspx?Active=ErrorResult&ID=" + _value + "&adID=" + _value2));     
    }
}
   
function unHtml(_Code){
    var _str = _Code.replace("''", "'").replace("\n", "<br />").replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;").replace("&", "&amp;").replace(">", "&gt;").replace("<", "&lt;").replace(" ", "&nbsp;").replace("\0", "");
    return _str;
}

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 isEmail(theStr)
{
	var unchar="/\\;:,";
	var atIndex = theStr.indexOf('@');
	var dotIndex = theStr.indexOf('.', atIndex);
	var flag = true;
	for (i=0;i<theStr.length;i++){	
		if (unchar.indexOf(theStr.substr(i,1)) > -1){
			return false;		
		}
	}
	theSub = theStr.substring(0, dotIndex+1)
	if ((atIndex < 1)||(atIndex != theStr.lastIndexOf('@'))||(dotIndex < atIndex + 2)||(theStr.length <= theSub.length)) 
	{	flag = false; }
	else { flag = true; }
	return(flag);
}


function chkFormData(txtObjStr,divObjStr,minLength,maxLength,titleStr,isSubmit,isNVarchar){
    var txtObjLength = (isNVarchar) ? $(txtObjStr).value.length : cnLength($(txtObjStr).value);
    
    if (txtObjLength==0 && minLength!=0) {
        if (divObjStr!="") {
            $(divObjStr).innerHTML = "<div class=\"ErrorMsg\">" + titleStr + "不能为空！</div>";
            try {
                if (isSubmit) {$(txtObjStr).focus();}} 
            catch(e) {}
        } else {
            alert(titleStr + "不能为空！"); 
            if (isSubmit) {$(txtObjStr).focus();}
        }
        return false;
    } else if (txtObjLength<minLength){
        if (divObjStr!="") {
            $(divObjStr).innerHTML = "<div class=\"ErrorMsg\">" + titleStr + "不能小于" + minLength + "个字符！</div>";
            if (isSubmit) {$(txtObjStr).focus();}
        } else {
            alert(titleStr + "不能小于" + minLength + "个字符！"); 
            if (isSubmit) {$(txtObjStr).focus();}
        }
        return false;
    } else if (txtObjLength>maxLength){
        if (divObjStr!="") {
            $(divObjStr).innerHTML = "<div class=\"ErrorMsg\">" + titleStr + "不能大于" + maxLength + "个字符！</div>";
            if (isSubmit) {$(txtObjStr).focus();}
        } else {
            alert(titleStr + "不能大于" + maxLength + "个字符！"); 
            if (isSubmit) {$(txtObjStr).focus();}
        }
        return false;
    } else {
        if (divObjStr!="") { $(divObjStr).innerHTML = ""; }
    }
    return true;
}

function cnLength(Str) {
	var escStr = escape(Str);
	var numI = 0;
	var escStrlen = escStr.length;
	for (i = 0;  i < escStrlen;  i++) 
	if(escStr.charAt(i) == '%') 
	if(escStr.charAt(++i) == 'u')  numI ++;
	return Str.length+numI;
}

function isMatch(regStr,sStr)
{
	var r=sStr.match(regStr);
	if(r==null){return false;}else{return true;}
}

function isNumeric(input){
    if (!isNaN(input)) {return true;} else {return false;}
}

