// JavaScript Document
var xmlHttpCP = null;
var estados=['AGUASCALIENTES','BAJA CALIFORNIA','BAJA CALIFORNIA SUR','CAMPECHE','COAHUILA','COLIMA','CHIAPAS','CHIHUAHUA','DISTRITO FEDERAL','DURANGO','GUANAJUATO','GUERRERO','HIDALGO','JALISCO','MEXICO','MICHOACAN','MORELOS','NAYARIT','NUEVO LEON','OAXACA','PUEBLA','QUERETARO','QUINTANA ROO','SAN LUIS POTOSI','SINALOA','SONORA','TABASCO','TAMAULIPAS','TLAXCALA','VERACRUZ','YUCATAN','ZACATECAS']

function fnMuestraCP(cp, preffix) { 

if (!preffix)
	preffix='';

	xmlHttpCP = GetXmlHttpObject()
	if (xmlHttpCP == null) {
		alert ("Browser does not support HTTP Request")
		return
	}
	var url = "../dao/daoCP.asp";
	//var url = "cp.asp";
	url += "?cp=" + cp;
	if (cp != null && cp.length == 5) {
		//proteccionCapa(preffix + 'TdFieldCP');
		var strColonia = "stateChangedCP(\"" + preffix + "\");";
		xmlHttpCP.onreadystatechange = new Function(strColonia);
		xmlHttpCP.open("GET",url,true);
		xmlHttpCP.send(null);
	} else {
		clearDomFields(false, preffix);
	}
}

function stateChangedCP(preffix) { 
	var aElement = null;
	
	if (xmlHttpCP.readyState == 4 || xmlHttpCP.readyState == "complete") { 
		var str = xmlHttpCP.responseText;
		var respuestaXML = str.split("&_&");
		var colonias = respuestaXML[0].split(",|,");
		aElement = creaColonia(preffix + "Colonia", colonias, "fnGenDomicilioColonia(this, '" + preffix + "')");

		findObj(preffix + "CP").select();
		( findObj(preffix + "TdFieldColonia") != null ) ? findObj(preffix + "TdFieldColonia").innerHTML = "" : "";
		findObj(preffix + "TdFieldColonia").appendChild( aElement );
		setRequired([aElement.id], true);
		findObj(preffix + "DELEGACION").value = respuestaXML[1];
		findObj(preffix + "CIUDAD").value = respuestaXML[2];

		var objEstado = null;
		if ( respuestaXML[3] != "" ) {
			objEstado = createTextField( preffix + "Estado", 60 );
			objEstado.readOnly = true;
			objEstado.value = respuestaXML[3];
			
		} else {
			var objEstado = createStatesCombo( estados );
			objEstado.id = preffix + "Estado";
			objEstado.name = preffix + "Estado";
		}

		( findObj(preffix + "TdFieldEstado") != null ) ? findObj(preffix + "TdFieldEstado").innerHTML = "" : "";
		findObj(preffix + "TdFieldEstado").appendChild( objEstado );
		// Funcion ubicada en toyotaLibrary.js
		setRequired([objEstado.id], true);
		
		//hideWaitbox(findObj(preffix + 'TdFieldCP'))
	} 
}

function GetXmlHttpObject() { 
	var objXMLHttp = null;
	if (window.XMLHttpRequest) {
		objXMLHttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return objXMLHttp;
}


function callPOSTRequest(form,url){
	var poststr='';
	for (i=0; i< form.elements.length; i++){
		if(!form.elements[i].disabled){
			if(!form.elements[i].id)
				form.elements[i].id=form.elements[i].name;
			poststr+= form.elements[i].id + '='  +  encodeURI(form.elements[i].value) + '& ';

		}
	}	
	//alert(poststr);
	makePOSTRequest(url, poststr);
}



   function makePOSTRequest(url, parameters) {
      http_request = false;
      http_request = GetXmlHttpObject();
      if (!http_request) {
         //alert('Cannot create XMLHTTP instance');
         return false;
      }
	  if (http_request.overrideMimeType) {
          http_request.overrideMimeType('text/html');
       }
  
      
      http_request.onreadystatechange =  postHandler;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }

   function postHandler() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            alert(http_request.responseText);
            result = http_request.responseText;
            //document.getElementById('datos').innerHTML = result;            
         } //else {
           // alert('There was a problem with the request.');
         //}
      }
   }
   
function fnGenDomicilioColonia(objeto,preffix) {
	//alert(objeto.value)
	fnShowHideLabelAndField(objeto.id, preffix+"TdLabelOtraColonia", preffix+"TdFieldOtraColonia", "x" ,"OTRA");
	if (objeto.value == "OTRA") {
		setRequired([preffix + "OtraColonia"], true);	
		setRequired([preffix + "Colonia"], false);	
		findObj(preffix + "OtraColonia").disabled = false;
	} else {
		setRequired([preffix + "OtraColonia"], false);	
		setRequired([preffix + "Colonia"], true);	
		findObj(preffix + "OtraColonia").disabled = true;
	}
}

function creaColonia(objName, objValues, objHandler) {
	var aElement = null;
	var optElement = null;

	aElement = document.createElement( "input" );
	aElement.type = "text";
	aElement.id = objName;
	aElement.name = objName;
	aElement.maxLength = 60;
	aElement.className = "formGeneralTextField";
	aElement.onchange = new Function(objHandler);
	aElement.messReq = "Colonia";
	aElement.onkeyup = onlyLettersNumbers;

	if (objValues.length != null && objValues.length > 1) {
		aElement = document.createElement( "select" );
		aElement.id = objName;
		aElement.name = objName;
		aElement.className = "formComboBox";
		aElement.onchange = new Function(objHandler);
		aElement.messReq = "Colonia";
		aElement.style.width = "auto";
		
		optElement = document.createElement( "OPTION" );
		aElement.options.add(optElement);
		optElement.innerText = "Seleccione";
		optElement.value = "";
		for (i = 0; i < objValues.length; i++) {
			if ( objValues[i] != "") {
				optElement = document.createElement( "OPTION" );
				aElement.options.add(optElement);
				optElement.innerText = objValues[i];
				optElement.value = objValues[i];
			}
		}
		optElement = document.createElement( "OPTION" );
		aElement.options.add(optElement);
		optElement.innerText = "OTRA";
		optElement.value = "OTRA";
			
	} else if (objValues.length != null && objValues.length == 1) {
		aElement.value = objValues[0];
	} else {
		aElement.value = "";
	}
	return aElement;
}

function clearDomFields(deleteCP,preffix) {
	//findObj("CP").value = "";
	findObj(preffix+"OtraColonia").value = "";
	findObj(preffix+"DELEGACION").value = "";
	findObj(preffix+"CIUDAD").value = "";
	findObj(preffix+"Estado").selectedIndex = 0;

	ActivateVisibilityNode(preffix+"TdLabelOtraColonia",false);	
	ActivateVisibilityNode(preffix+"TdFieldOtraColonia",false);	
	
	setRequired([preffix+"OtraColonia"], false);	
	setRequired([preffix+"Colonia"], true);	

	( findObj(preffix+"TdFieldColonia") != null ) ? findObj(preffix+"TdFieldColonia").innerHTML = "" : "";
	var aElement = createTextField(preffix+"Colonia", 60);
	aElement.value = "";

	findObj(preffix+"TdFieldColonia").appendChild( aElement );
}

function createTextField(objName, maxLength) {
	var aElement = null;

	aElement = document.createElement( "input" );
	aElement.type = "text";
	aElement.id = objName;
	aElement.name = objName;
	aElement.maxLength = maxLength;
	aElement.className = "formGeneralTextField";
	return aElement;
}


function createStatesCombo( estados ) {
	var aElement = document.createElement( "select" );
	aElement.className = "formComboBox";
	aElement.messReq = "Colonia";
	aElement.style.width = "auto";
	
	var optElement = document.createElement( "OPTION" );
	aElement.options.add(optElement);
	optElement.innerText = "Seleccione";
	optElement.value = "";
	
	for (i = 0; i < estados.length; i++) {
		optElement = document.createElement( "OPTION" );
		aElement.options.add(optElement);
		optElement.innerText = estados[i];
		optElement.value = estados[i];
	}	
	return aElement;
}   



