//--- START Función que abre un link en una pagina nueva---------------------------------------------------
function openInPopUp(url,width,height){
	var newWindow = window.open(url,"_blank","width="+width+",height="+height+",left=300,top=150,location=no,menubar=no,status=no,resizable=no,toolbar=no,scrollbars=no");
}
//--- End -------------------------------------------------------------------------------------------------

//--Begin PopUp Generic------------------------------------------------------------------------------------
function openPopup(url,wWidth,wHight,wLeftP,wTopP,wResize,scrl){
	var newWindow = window.open(url,"_blank","width="+wWidth+" height="+wHight+" left="+wLeftP+" top="+wTopP+" scrollbars="+scrl+" resizable="+wResize);
}
//--End PopUp Generic--------------------------------------------------------------------------------------
function linkLike(url){
	parent.location = url;
}
// --- START --- Función para hacer post con ajax
function ajaxEngine(){
	var xmlhttp=false;
 	try {
 		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 	} catch (e) {
 		try {
 			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 		} catch (E) {
 			xmlhttp = false;
 		}
  	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
 		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}
// --- END ------------------------------------------------------------------------------------------------

// --- START --- Función para hacer el envio de variables a través de ajax
function callAjax(url,variables,content){
	contenedor = document.getElementById(content);
	ajax=ajaxEngine();
	if(variables == "null"){
		ajax.open("GET",url,true);
	}else{
		ajax.open("POST",url,true);
	}
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			contenedor.innerHTML = ajax.responseText;
			//hideMist();
	 	}else{
			//showMist();	
		}
	}
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		if(variables == "null"){
		ajax.send(null);
	}else{
		ajax.send(variables);
	}

}
// --- END ---
//--- START --- Función para mostrar/ocultar items --------------------------------------------------------
function showHideItem(itemID, valueToAvaluate){
	// - Campos actores
	var itemToEvaluate = document.getElementById(itemID);
	// - Validamos si el valor de la selección no es vacío -
	if(valueToAvaluate != ""){
		// - Si el valor es  = 138 "México" -
		if(valueToAvaluate == 1){
			// - Campo estados para méxico
			itemToEvaluate.style.display = "";
		}else{
			itemToEvaluate.style.display = "none";
		}
		
	}else{
		itemToEvaluate.style.display = "none";
	}
	//itemToEvaluate.style.display = (itemToEvaluate.style.display == "") ? "none" : "";
}
//--- END -------------------------------------------------------------------------------------------------
//--- START --- Función que pasa el valor de un elemento a un campo tipo hidden ---------------------------
function setGroupValue(hdnID, valueToSet){
	var hdnToSet = document.getElementById(hdnID);
	hdnToSet.value = valueToSet;
	//alert(hdnToSet.value);
}
//--- END -------------------------------------------------------------------------------------------------
//--- START --- Función para el codigo postal por AJAX ----------------------------------------------------
function llamarasincrono(url, id_contenedor){
	//alert(url)
var pagina_requerida = false
if (window.XMLHttpRequest) {// Si es Mozilla, Safari etc
pagina_requerida = new XMLHttpRequest()
} else if (window.ActiveXObject){ // pero si es IE
try {
pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){ // en caso que sea una versión antigua
try{
pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
pagina_requerida.onreadystatechange=function(){ // función de respuesta
cargarpagina(pagina_requerida, id_contenedor)
}
pagina_requerida.open('GET', url, true) // asignamos los métodos open y send
pagina_requerida.send(null)
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina(pagina_requerida, id_contenedor){
if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText
}
///////////////////////funcion para pasar el CP
setCp = function (tr,tex,td,clase,tipo){
	var t1 = document.getElementById(tex);
	var td1 = document.getElementById(td);
	var tr = document.getElementById(tr);	
	//alert(t1.value);
	if(t1.value.length==5){
		//alert(t1.value);
		//alert('includes/getAsenta.php?cp='+t1.value+'&class='+clase+'&type='+tipo, td);
		tr.style.display = "inline";
		llamarasincrono('includes/getAsenta.php?cp='+t1.value+'&class='+clase+'&type='+tipo, td);
	}else{
		//llamarasincrono('about:blank', 'combDiv');
	}
}
//////------END---------------------------------
// --- START --- Función que elimina los caracteres alfabéticos de un capo de texto -----------------------
setDay = function (ano,mes,td){
	var ano = document.getElementById(ano);
	var mes = document.getElementById(mes);
	if(ano.value == ""){
		alert('Debes de seleccionar el año')
	}else{
		//alert('includes/getDayOfTheMonth.php?month='+mes.value+'&year='+ano.value, td);
		llamarasincrono('includes/getDayOfTheMonth.php?month='+mes.value+'&year='+ano.value, td);
	}
}
//--- END -------------------------------------------------------------------------------------------------

//--- END -------------------------------------------------------------------------------------------------
// --- START --- Función que elimina los caracteres alfabéticos de un capo de texto -----------------------
function justNumbers(fieldName){
	var allowedKeys = new Array(".","0","1","2","3","4","5","6","7","8","9");
	var contentArray = new Array();
	var finalArray = new Array();
	var fieldContent = fieldName.value;
	var cont = 0;
	var filteredContent = "";
	
	// Creación de un arreglo con los caracteres del campo de texto
	for(i=0; i<=fieldContent.length; i++){
		contentArray[i] = fieldContent.substring(i,i+1);
	}
	
	for(j=0; j<=contentArray.length; j++){
		for(x=0; x<=allowedKeys.length; x++){
			if(contentArray[j] == allowedKeys[x]){
				finalArray[cont] = contentArray[j];
				cont++;
			}
		}
	}

	for(z=0; z<=finalArray.length-2; z++){
		filteredContent += finalArray[z];
	}
	fieldName.value = filteredContent;
}
// --- END ------------------------------------------------------------------------------------------------
//--- START ---Función que Borra el formulario-------------------------------------------------------------
function clearForm(){
	if(confirm("¿Esta seguro que desea borrar todos los campos del formulario?")){
		document.forms[0].reset();
		}
}
//--- End -------------------------------------------------------------------------------------------------
///- Valida Mail
function validaMail(idCampo){
	var campMail = document.getElementById(idCampo).value;
	if(campMail!=""){
		var arrobaValida = campMail.indexOf("@");
		var puntoValido = campMail.indexOf(".");
		if(arrobaValida== -1){
			alert("Escriba un E-mail válido falta el signo de Arroba '@'");
			document.getElementById(idCampo).focus();
		}else{
			if(puntoValido== -1){
				alert("Escriba un E-mail válido falta el signo de Punto '.'");
				document.getElementById(idCampo).focus();
			}else{
				document.forms[0].submit();
			}
		}
	}else{
		alert("El campo E-mail no puede ir vacio, por favor verifiquelo");	
		document.getElementById(idCampo).focus();
	}
}
///--- END -----------------------------------------------------------------------------------------

//--- START función para validar formulario de citas ------------------------------------------------------
function validateNewsletterForm(){
	//- Arreglo que contiene los Ids de los elementos a validar
	var itemsIds = new Array("nombre","ap_paterno","cp","asentamiento");
	//- Arreglo que contiene las etiquetas para mostrar en caso de omisión
	var itemsLabels = new Array("Nombre","Apellido Paterno","Código Postal","Asentamiento");
	// - Arreglo que se llenará los OBJECTS del formulario para su validación
	var formItems = new Array();
	// - Variable que hara de "semáforo" para pasar al Submit o no
	var flag = 0;
	// - Llenamos el Arreglo "formItems" con el método getElementById() y el arreglo de los Ids
	for(i=0; i<itemsIds.length; i++){
		formItems[i] = document.getElementById(itemsIds[i]);
	}
	//- Barremos el Array de los Objetos del Formulario para ver si algúno viene vacío o en "0"
	for(j=0; j<formItems.length;j++){
		/*- Si algúno viene vacío o en "0" se envía una alerta, el semáforo cambia a rojo, se
		hace "focus" sobre el elemento y se detiene el bucle*/
		if(formItems[j].value == "" || formItems[j].value == 0){
			alert("El campo \""+itemsLabels[j]+"\" no puede ir vacio, por favor verifiquelo.");
			formItems[j].focus();
			flag = 1;
			break;
		}
	}
	//-- Validamos el mail ----------------------------------------------------------------
	if(flag == 0){
		var campMail = document.getElementById("email").value;
		if(campMail!=""){
			var arrobaValida = campMail.indexOf("@");
			var puntoValido = campMail.indexOf(".");
			if(arrobaValida== -1){
				alert("Escriba un E-mail válido falta el signo de Arroba '@'");
				document.getElementById("email").focus();
				flag = 1;
			}else{
				if(puntoValido== -1){
					alert("Escriba un E-mail válido falta el signo de Punto '.'");
					document.getElementById("email").focus();
					flag = 1;
				}else{
					//document.forms[0].submit();
					//alert("mail cool");
					flag = 2;
				}
			}
		}else{
			alert("El campo E-mail no puede ir vacio, por favor verificalo");	
			document.getElementById("email").focus();
			flag = 1;
		}
	}
	//-----------------------------------------------------------------------------------
	
	if(flag == 2){
		if(document.getElementById("info_hdn").value == ""){
			alert("Por favor responda si desea recibir información de Danone.");
		}else if(document.getElementById("info_hdn").value == 1){
			if(document.getElementById("info_yougur_hdn").value == ""){
				alert("Por favor seleccione una opción.");
			}else{
				flag = 3;	
			}
		}else{
			flag = 3;	
		}
	}
	
	//- Si el semáforo sigue en verde se envía el formulario
	if(flag == 3){
		document.forms[0].submit();
		//alert("Se va!");
	}
}
//--- End -----------------------------------------------------------------------------------------------
// --- START --- Función que muestra / oculta respuestas -
function showHideAnswers(currentAnswer){
	// - Variables de la función -
	var answersIdPrefix = "res_";
	var totalAnswers = document.getElementById('total_preguntas').value;
	var answersRowsColl = new Array();
	// - Se genera la colección de rows con las respuestas -
	for(i=0; i<totalAnswers; i++){
		answersRowsColl[i] = document.getElementById((answersIdPrefix+i));
	}
	// - Se barre la colección de rows -
	for(j=0; j<answersRowsColl.length; j++){
		if(answersRowsColl[j].id.substr(4,1) == currentAnswer){
			//alert(currentAnswer+" es la buena");
			answersRowsColl[j].style.display = "";
		}else{
			//alert(currentAnswer+" no es");
			answersRowsColl[j].style.display = "none";
		}
	}
}
// --- END ---

//--- START función para validar formulario de tell a friend ------------------------------------------------------
function validateTellaFriendForm(){
	//- Arreglo que contiene los Ids de los elementos a validar
	var itemsIds = new Array("friendsName","yourName");
	//- Arreglo que contiene las etiquetas para mostrar en caso de omisión
	var itemsLabels = new Array("Nombre de tu amigo","Tu nombre");
	// - Arreglo que se llenará los OBJECTS del formulario para su validación
	var formItems = new Array();
	// - Variable que hara de "semáforo" para pasar al Submit o no
	var flag = 0;
	// - Llenamos el Arreglo "formItems" con el método getElementById() y el arreglo de los Ids
	for(i=0; i<itemsIds.length; i++){
		formItems[i] = document.getElementById(itemsIds[i]);
	}
	//- Barremos el Array de los Objetos del Formulario para ver si algúno viene vacío o en "0"
	for(j=0; j<formItems.length;j++){
		/*- Si algúno viene vacío o en "0" se envía una alerta, el semáforo cambia a rojo, se
		hace "focus" sobre el elemento y se detiene el bucle*/
		if(formItems[j].value == "" || formItems[j].value == 0){
			alert("El campo \""+itemsLabels[j]+"\" no puede ir vacio, por favor verificalo.");
			formItems[j].focus();
			flag = 1;
			break;
		}
	}
	//-- Validamos el mail ----------------------------------------------------------------
	if(flag == 0){
		var campMail = document.getElementById("friendsMail").value;
		if(campMail!=""){
			var arrobaValida = campMail.indexOf("@");
			var puntoValido = campMail.indexOf(".");
			if(arrobaValida== -1){
				alert("Escriba un E-mail válido falta el signo de Arroba '@'");
				document.getElementById("friendsMail").focus();
				flag = 1;
			}else{
				if(puntoValido== -1){
					alert("Escriba un E-mail válido falta el signo de Punto '.'");
					document.getElementById("friendsMail").focus();
					flag = 1;
				}else{
					//document.forms[0].submit();
					//alert("mail cool");
					flag = 2;
				}
			}
		}else{
			alert("El campo E-mail no puede ir vacio, por favor verifiquelo");	
			document.getElementById("friendsMail").focus();
			flag = 1;
		}
	}
	//-----------------------------------------------------------------------------------
	
	//- Si el semáforo sigue en verde se envía el formulario
	if(flag == 2){
		document.forms[0].submit();
		//alert("Se va!");
	}
}
//--- End -----------------------------------------------------------------------------------------------