var xmlHttp;
var ajax_url;
var ajax_data;
var ajax_callBack;
var ajax_response;
var async = true;

function ajax_createXMLHttpRequest(){
	if(window.ActiveXObject)
		xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
	else
	if(window.XMLHttpRequest){
		xmlHttp = new XMLHttpRequest();
	}
	else
		alert('Your browser is not supported "XMLHttpRequest"');
}

function ajax_async(boo){
	async = boo;
}

function ajax_open(method ,response){
        if(method == 'GET')
            ajax_url += '?'+ajax_data+'&response='+response;
        
	xmlHttp.open(method ,ajax_url ,async);
}

function handleState(){
	if(xmlHttp.readyState == 4){
		if(xmlHttp.status == 200){
			return true;
		}
	}
	return false;
}

function handleText(){
	if(handleState()){
		ajax_response = xmlHttp.responseText;
		response(ajax_response);
	}
		
}

function handleXML(){
	if(handleState()){
		ajax_response = xmlHttp.responseXML;
		response(ajax_response);
	}
		
}

function response(result){
	var funcCall = ajax_callBack + "('"+result+"');";
	var ret = eval(funcCall);
}

function ajax_send(){
	ajax_createXMLHttpRequest();
}

function ajax_sendPost(){
	ajax_send();
	ajax_open('POST','');
	xmlHttp.setRequestHeader('Content-Type' ,'application/x-www-form-urlencoded');
}

function ajax_sendGet(response){
	ajax_send();
	ajax_open('GET',response);
}

function ajax_sendPostXML(url ,callBack  ,data){
	ajax_url = url;
	ajax_data = data;
	ajax_callBack = callBack;
	ajax_sendPost();
	xmlHttp.onreadystatechange = handleXML;
	xmlHttp.send(ajax_data+'&response=xml');
}

function ajax_sendPostText(url ,callBack  ,data){
	ajax_url = url;
	ajax_data = data;
	ajax_callBack = callBack;
	ajax_sendPost();
	xmlHttp.onreadystatechange = handleText;
	xmlHttp.send(ajax_data+'&response=text');
}

function ajax_sendGetXML(url ,callBack  ,data){
	ajax_url = url;
	ajax_data = data;
	ajax_callBack = callBack;
	ajax_sendGet('xml');
	xmlHttp.onreadystatechange = handleXML;
	xmlHttp.send(ajax_data);
}

function ajax_sendGetText(url ,callBack  ,data){
	ajax_url = url;
	ajax_data = data;
	ajax_callBack = callBack;
	ajax_sendGet('text');
	xmlHttp.onreadystatechange = handleText;
	xmlHttp.send(ajax_data);
}



////////Element Handle////////////

//get ID 's element
function $(id){
    return document.getElementById(id);
}

function createElement(elem){
    return document.createElement(elem);
}

function createText(text){
    return document.createTextNode(text);
}

function attr(elem ,attr ,value){
    elem.setAttribute(attr ,value);
}

function getAttr(elem ,attr){
    return elem.getAttribute(attr);
}


////////////// DOM /////////////////

