﻿/// <summary>
/// -----------------------------------------------------------------
/// 文件名:   ajax.js
/// 创建人:   HJQ
/// 说  明;   AJAX 相关处理
/// 日  期:   2008-04-09
/// 目  的:   
/// 
/// 版  本:   1.0.0
/// 修改历史
/// -----------------------------------------------------------------
///    日 期   修改人      描 述
/// -----------------------------------------------------------------
/// 
/// 
/// -----------------------------------------------------------------
/// </summary> 



/*
取得一个新的 Microsoft.XMLHTTP 对象
*/
function GetNewAJAXObject()
{
    var objXmlhttp=null;
    try {
        objXmlhttp = new XMLHttpRequest();
    }
    catch(e) {
        try {
            objXmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e) {
            //alert("创建AJAX对象失败!");
            objXmlhttp = null;
        }
    }
    return objXmlhttp;
}

/*
利用AJAX技术访问读取数据
objXmlhttp Microsoft.XMLHTTP 对象变量
StateChangeFunc 状态函数
strURL 访问地址
strContent 内容 用&分隔的值
strMethod 提交方法 GET/POST
*/
function ajaxSubmit(objXmlhttp,CallBackFunction,strURL,strContent,strMethod)
{

    try{

        
    //    if (strURL.indexOf("?")>0)
    //        strURL += "&SubmitType=AJAX";
    //    else
    //        strURL += "?SubmitType=AJAX";
    //    
        
        //数据传输,flase为非异步方式
        objXmlhttp.open(strMethod,strURL,true);
        
        objXmlhttp.onreadystatechange=CallBackFunction;

    /*    
        objXmlhttp.onreadystatechange=function() {
        
        if (xmlhttp.readyState==4) {
            MyShow.InnerText = xmlhttp.responseText;
        }
        if (xmlhttp.readyState==3) {
            MyShow.InnerText  = ('正在提交数据');
        }
      }
    */    

        objXmlhttp.setRequestHeader("SubmitType", "AJAX");
        objXmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        objXmlhttp.send(strContent);
        return true;
     }catch(e){
        alert(e);
 	    return false;
     }
    
}

//以 GET 方式提交
function ajaxGet(objXmlhttp,CallBackFunction,strURL,strContent)
{
    return ajaxSubmit(objXmlhttp,CallBackFunction,strURL,strContent,"GET");
}

//以 POST 方式提交
function ajaxPOST(objXmlhttp,CallBackFunction,strURL,strContent,strMethod)
{
    return ajaxSubmit(objXmlhttp,CallBackFunction,strURL,strContent,"POST");
}

// 将Form中的数据转换为可供AJAX提交的数据
function GetFormDataToAJAX(srcForm)
{
    var srcObj;
    var strData="";
	for (var i = 0; i < srcForm.elements.length; ++i)
	{
		if (srcForm.elements[i].name == "") continue;
		srcObj = srcForm.elements[i];
        
        switch (srcObj.type.toLowerCase())
        {
            case "text":
            case "select-one":
            case "textarea":
            case "hidden":
            case "password":
                strData += "&" + srcObj.name + "=" + srcObj.value;
                break;
            case "checkbox":
                strData += "&" + srcObj.name + "=" + (srcObj.checked ? 1:0);
                break;
            default:
        }

        //alert(srcObj.name + " /-> " + srcObj.value  +"\ntype:" +srcObj.type);
    }
    srcObj=null;
    //alert(strData);
    if (strData != "") strData = strData.substring(1,strData.length);
    return strData;
}
