function GetXmlHttpObject(){
	var xmlHttp=null;

	try{
 		// Firefox, Opera 8.0+, Safari
 		xmlHttp=new XMLHttpRequest();
 	}	

 	catch (e){
 		//Internet Explorer
 		try{
  			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  		}
 
  		catch (e){
  			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  		}
 	}
	return xmlHttp;
}

/*
xmlHttp.readyState
0: Request Not Initialized
1: Request Has Been Setup
2: Request Has Been Sent
3: Request is in Progress
4: Request Complete

XMLHttpRequest.open(sMethod, sUrl [, bAsync] [, sUser] [, sPassword]);

*/

function GET(url, values, state_func){
	
	xmlHttp=GetXmlHttpObject();
	xmlHttp.open("GET", url+"?"+values, true);
	xmlHttp.onreadystatechange=state_func;
	xmlHttp.send(null);
	
}

function POST(url, values, state_func){
	
	xmlHttp=GetXmlHttpObject();
	xmlHttp.open("POST", url, true);
	xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.onreadystatechange=state_func;
	xmlHttp.send(values);

}

function build_form_vars(formname){
	
	var values = "";
	var i, a;
	var form_value= "";
	var d=document.forms[formname];
	
	for (i=0;i<d.length;i++){
		
		if(d.elements[i].type){

			switch (d.elements[i].type.toLowerCase()){
				
				case 'text':
					form_value=d.elements[i].value;
					break;
					
				case 'textarea':
					form_value=d.elements[i].value;
					break;
					
				case 'checkbox':
					form_value = d.elements[i].checked ? 'on' : '';
					break;
				
				case 'radio':
				
					form_value = d.elements[i].checked ? d.elements[i].value : '';
					break;
					
				case 'file':
					form_value=d.elements[i].value;
					break;	
					
				// selects without multiple keyword	
				case 'select-one':
					form_value = d.elements[i].options[d.elements[i].selectedIndex].value;
					break;	
					
				// selects with mutliple keyword
				case 'select-multiple':
					
					for (a=0; a<d.elements[i].options.length; a++) {
					   
						if (d.elements[i].options[a].selected){
							
							form_value=d.elements[i].options[a].value;					
						}
					    
						if (form_value != ''){
			
							values=values+d.elements[i].name+"="+form_value;
								
							if (a!=(d.elements[i].options.length-1)){
								
								values=values+"&";
								
							}				
						}					
					}
					form_value="";
					break;	
				
				
				default:
					form_value=d.elements[i].value;
					break;
				
			}
		
		}
		
		if (form_value != ''){
		
			values=values+d.elements[i].name+"="+form_value;
	
			if (i!=(d.length-1)){
				
				values=values+"&";				
			}	
		}	
	}
	
 return values;
	
}