﻿/*狼人LangRen.Net程序 的摘要说明
程序: 英语沙龙全站系统
Developer: 吴艾伟
QQ:459094521  E-mail:wulang1988@gmail.com
编写时间: 2009-05-05
开源目地: 为了更多的帮助初学者*/
// 轻量级ajax应用框架 By 狼人LangRen.Net at 2009-01-16

//定义一个友好的函数获取对象
var $ID=function(_id){ return document.getElementById(_id); }
var $Name=function(_name){ return document.getElementsByName(_name); }

/* ------------- 准备阶段 ---------->>> */
//过滤两端空格
function Trim() {
	return this.replace(/\s+$|^\s+/g,"");
}
String.prototype.Trim = Trim;

//获取指定id的object
function getObject(elementId) {
	if (document.getElementById) { 
		return document.getElementById(elementId); 
	}
	else if (document.all) { 
		return document.all[elementId]; 
	}
	else if (document.layers) { 
		return document.layers[elementId]; 
	} 
}

//获取指定id的form组件的值
function getObjValue(elementId){	
	if(getObject(elementId).value != undefined) {
		return getObject(elementId).value.Trim();
	}
	else {
		return "";
	}
}
/* <<<---------- 准备阶段 ------------- */

/* ------------- AJAX相关 ---------->>> */
//创建一个XMLHttpRequest对象
var xmlHttp = false;
//用于封装调用方的回调方法，相当于函数指针。
//var lang;
//根据不同的浏览器创建不同的XMLHttpRequest
function CreateXMLHttpRequest() {
	if (window.XMLHttpRequest) {
	    //对于Mozilla浏览器使用这种方式获得异步请求
	    xmlHttp = new XMLHttpRequest();
	    if (xmlHttp.overrideMimeType) {
	        //Setup MIME Class 对于Mozilla浏览器还要设置MIME类型
	        xmlHttp.overrideMimeType("text/XML");
	    }
	}
	else if (window.ActiveXObject) {
	    //对于IE浏览器使用这种方式获得异步请求
	    try {
	        xmlHttp = new ActiveXObject("MsXML2.XMLHTTP");
	    }
	    catch (e1) {
	        try {
	            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	        }
	        catch (e2) {
	            alert(e2.Message);
	        }
	    }
	}
	
	if (!xmlHttp) {
	    alert("对不起，您的浏览器不支持XMLHttpRequest");
	    return false;
	}
}

//发送异步请求
function HttpSend(_requestType, _url, _parm) {
    var LRresponseText;
    try {
        //创建XMLHttpRequest对象
        CreateXMLHttpRequest();
        
        //获得返回内容，服务器通过回调函数LangRen来处理回发的信息
        xmlHttp.onreadystatechange = function() {
        //处理返回结果，这个函数为回调用函数，是当发送完毕后执行。
            //判断请求是否就绪
            if (xmlHttp.readyState == 4) {
                //判断请求的状态码200是否是（表示完成）
                if (xmlHttp.status == 200) {
                    //获得服务器的返回结果，其返回形式有普通文本各XML文本，这里我们用普通文本
                    //var res = xmlHttp.responseXML;
                    LRresponseText = xmlHttp.responseText;
                    //AjaxLR(res);  //此函数是个虚函数
                }
                else
                    alert('非常抱歉，请求失败，详情请与我们的系统超级管理员［狼人QQ:459094521］联系，谢谢！');
            }
        }
        
        //通过_requestType判断请求类型
        //如果请求类型是GET==================================
        if (_requestType == "GET") {
            xmlHttp.open("GET", _url, false);
            //发送请求
            xmlHttp.send(null);
        }
        //如课请求是POST则在send发送请求中加入参数=======================
        if (_requestType == "POST") {
            xmlHttp.open("POST", _url, false);
            //由于请求方式是POST类型的，所以要设置请求的头部类型
            xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
            //发送请求
            xmlHttp.send(_parm);
        }
    }
    catch (e) {
        alert(e.Message);
    }
    
    return LRresponseText;
}

