/*
   +----------------------------------------------------------------------+
   | XMLHttpRequest javascript file
   +----------------------------------------------------------------------+
*/

function createXmlHttp() {
	var xmlHttp=null;
	try {
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e) {
		try {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		 }
		catch(e) {}
	}
	if (xmlHttp==null)
		xmlHttp=new XMLHttpRequest();
	return xmlHttp;
}

var xmlHttp = null;
xmlHttp = createXmlHttp();

var ajax_result; // async/sync calls

/********* Realiza la peticion y entrega el resultado como texto *************/
function ajaxPerform(async, xmlMessage, responser, method, callback){
	
	if(async) {
		if (xmlHttp.readyState == 4) {
			xmlHttp = createXmlHttp();
		}
		xmlHttp.onreadystatechange = callback;
	}
	
	if(method=='POST'){
		xmlHttp.open(method, responser, async);
		xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xmlHttp.send(xmlMessage);
	}
	else if(method=='GET'){
		xmlHttp.open(method, responser+'?'+xmlMessage, async);
		xmlHttp.send(null);
	}	
	
	if(!async)
		return xmlHttp.responseText;
	else 
		return true;
}

function getServerMessage() {
	if (xmlHttp.readyState==4) {
	  if(xmlHttp.status==200)
	    return xmlHttp.responseText;
	  else {
	  	alert("Problem retrieving XML data");
	  	return false;
	  } 
  }
}

// envia el formulario
function buildPOST(theForm) { 
    var qs = '';
    for (e=0;e<theForm.elements.length;e++) { 
        if (theForm.elements[e].name!='' && !theForm.elements[e].disabled) {
					if( (theForm.elements[e].type=='checkbox' && theForm.elements[e].checked) || theForm.elements[e].type!='checkbox' ){
            var name = theForm.elements[e].name; 
            qs+=(qs=='')?'':'&';
            qs+= name+'='+escape(theForm.elements[e].value);
					}
        } 
    }
    return qs;
}

function checkNicknameAvailability(nick){
	var response = ajaxPerform(false, 'action=checkNicknameAvailability&nickname='+nick, '/ajax_responser.php', 'POST');
	document.getElementById('nickname_msgs').innerHTML=response;
}


function checkEmailAvailability(email){
	if (email != ''){
		var response = ajaxPerform(false, 'action=checkEmailAvailability&email='+email, '/ajax_responser.php', 'POST');
		document.getElementById('emailpop_msgs').innerHTML=response;
	}else{
		document.getElementById('emailpop_msgs').innerHTML='';
	}
}

function loadCombobox() {
	
	if(xmlHttp.readyState==4) {
	  if(xmlHttp.status==200){

	  	/** carga el contenido en los divs especificos **/
	  	var msg = eval('(' + xmlHttp.responseText + ')');

			for(var content in msg){
				combo = document.getElementById(content);
				combo.length=0;

		  	for(var subcontent in msg[content]){
		  		opt = new Option(msg[content][subcontent],subcontent);
		  		combo[combo.length] = opt;
		  	}
			}
		}
	  else {
	  	alert("Problem retrieving XML data");
	  	return false;
	  }
  }
}

var load_combo=null;

function getStates(country){
	load_combo = 'state';
	ajaxPerform(true, 'action=getStates&country='+country, 'ajax_responser.php', 'POST', loadCombobox);
}

function getCities(country, state){
	load_combo = 'city';
	ajaxPerform(true, 'action=getCities&country='+country+'&state='+state, 'ajax_responser.php', 'POST', loadCombobox);
}

function change_location(){
  setTimeout('change_city(\'other\', document.getElementById(\'city\').value)',700);
}                