var timerId= new Array(0);
var timerSec= new Array(0);
function processResponse(XMLHttpReq) {
    var returnResponse=false;
    if (XMLHttpReq.readyState == 4) {
        if (XMLHttpReq.status == 200) {
            returnResponse= true;
        } else { //页面不正常
            if (XMLHttpReq.status == 404){
                alert("Request URL does not exist");
            }else{
                alert("Error: status code is " + XMLHttpReq.status);

            }
        }
    }
    return returnResponse;
}

function getAjaxResult(url,objID){
    var id = setInterval(function (){showWaitingHandler(objID,id)}, 100);
    var XMLHttpReq;
    if(window.XMLHttpRequest) { //Mozilla ??器
        XMLHttpReq = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) { // IE??器
        var aVersions = [ "MSXML2.XMLHttp.6.0",
            "MSXML2.XMLHttp.5.0",
            "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
            "MSXML2.XMLHttp","Microsoft.XMLHttp"];
        for (var i = 0; i < aVersions.length; i++) {
            try {
                XMLHttpReq = new ActiveXObject(aVersions[i]);
                break;
            } catch (oError) {
              //alert("Your browser must support XMLHttpRequest, otherwise, some requests cannot be processed.\nPlease contact Support Team for details.");
            }
        }
    }
    var ajaxCurDate=new Date();
    if (url.indexOf("?")>=0) url += "&ajaxTimeStamp="+ajaxCurDate.getTime(); //add timestamp to override cache
      else url += "?ajaxTimeStamp="+ajaxCurDate.getTime();
    XMLHttpReq.open("GET", url, false);
    XMLHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    XMLHttpReq.onreadystatechange = function (){
        if(XMLHttpReq.readyState == 4 && XMLHttpReq.status == 200){
            clearInterval(id);
            var ajaxResult=document.getElementById(objID);
            ajaxResult.innerHTML=XMLHttpReq.responseText;
        }
    }
    XMLHttpReq.send(null);
}

function getAjaxPopup(url,objID,pos_top,pos_left){
    var id = setInterval(function (){showWaitingHandler(objID,id)}, 100);
    var XMLHttpReq;
    if(window.XMLHttpRequest) { //Mozilla ??器
        XMLHttpReq = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) { // IE??器
        var aVersions = [ "MSXML2.XMLHttp.6.0",
            "MSXML2.XMLHttp.5.0",
            "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
            "MSXML2.XMLHttp","Microsoft.XMLHttp"];
        for (var i = 0; i < aVersions.length; i++) {
            try {
                XMLHttpReq = new ActiveXObject(aVersions[i]);
                break;
            } catch (oError) {
              //alert("Your browser must support XMLHttpRequest, otherwise, some requests cannot be processed.\nPlease contact Support Team for details.");
            }
        }
    }
    var ajaxCurDate=new Date();
    if (url.indexOf("?")>=0) url += "&ajaxTimeStamp="+ajaxCurDate.getTime(); //add timestamp to override cache
      else url += "?ajaxTimeStamp="+ajaxCurDate.getTime();
    XMLHttpReq.open("GET", url, false);
    XMLHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    XMLHttpReq.onreadystatechange = function (){
        if(XMLHttpReq.readyState == 4 && XMLHttpReq.status == 200){
            clearInterval(id);
            var ajaxResult=document.createElement(objID);
            var style="position: absolute;top: "+pos_top+"px;left: "+pos_left+"px;text-align: center;padding: 5px;border: 1px solid black;background: white;";
            ajaxResult.innerHTML="<div id='"+objID+"' style='"+style+"'>"+
                                XMLHttpReq.responseText+
                                "<button onclick='this.parentNode.parentNode.removeChild(this.parentNode);'>Close</button></div>";
            document.body.appendChild(ajaxResult.firstChild);
        }
    }
    XMLHttpReq.send(null);
}

function getXMLData(url,callBack){
    //var id = setInterval(function (){showWaitingHandler(objID,id)}, 100);
    var XMLHttpReq;
    if(window.XMLHttpRequest) { //Mozilla ??器
        XMLHttpReq = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) { // IE??器
        var aVersions = [ "MSXML2.XMLHttp.6.0",
            "MSXML2.XMLHttp.5.0",
            "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
            "MSXML2.XMLHttp","Microsoft.XMLHttp"];
        for (var i = 0; i < aVersions.length; i++) {
            try {
                XMLHttpReq = new ActiveXObject(aVersions[i]);
                break;
            } catch (oError) {
              //alert("Your browser must support XMLHttpRequest, otherwise, some requests cannot be processed.\nPlease contact Support Team for details.");
            }
        }
    }
    var ajaxCurDate=new Date();
    if (url.indexOf("?")>=0) url += "&ajaxTimeStamp="+ajaxCurDate.getTime(); //add timestamp to override cache
      else url += "?ajaxTimeStamp="+ajaxCurDate.getTime();

    XMLHttpReq.open("GET", url, false);
    XMLHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    XMLHttpReq.onreadystatechange = function (){
        //if(XMLHttpReq.readyState == 4 && XMLHttpReq.status == 200){
        if(processResponse(XMLHttpReq))  {
            callBack(XMLHttpReq);
        }
    }
    XMLHttpReq.send(null);
}

function showWaitingHandler(objID,id){
    var waitSec=0;
    var find=false;
    for(var i =0;i<timerId.length;i++){
        if(timerId[i]==id){
            timerSec[i]++;
            waitSec=timerSec[i];
            find=true;
            break;
        }
    }
    if(!find){
        timerId.push(id);
        timerSec.push(0);
    }
    var symbol=".";
    var status="";
    var msg="載入中";
    for(var i=0;i<waitSec%30;i++){
        status=status+symbol;
    }
    msg="<font color=green>"+msg +status+"</font>";
    var ajaxResult=document.getElementById(objID);
    ajaxResult.innerHTML=msg;
}

function ajax(url,data,dataType,callback){
	if(data!=""){
        data+="&"
        }
	$.ajax({
		type: "GET",
		url: url,
		data: data+"timestamp="+(new Date()).getTime(),
		dataType: dataType,
		success: callback,
		error: function(response,textStatus, errorThrown){
					alert(textStatus+","+errorThrown);
				}
		});
}

