// --- START --- Ajax engine -------------------------------------------------------------------------------
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;
}

function callAjax(url,variables,content,mist){
	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;
			if(mist == 1){
				//resetMist();
			}
	 	}else{
			if(mist == 1){
				//showMist(); 
				//showHideLoader('loaderHolder', 'messageHolder');
				contenedor.innerHTML = '<center><img src="images/ajax-loading-mini.gif" /></center>';
				//alert("cargando");
			}
		}
	}
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
		if(variables == "null"){
		ajax.send(null);
	}else{
		ajax.send(variables);
	}

}
// --- END ------------------------------------------------------------------------------------------------

// --- START --- Función para hacer el envio de variables a través de ajax --------------------------------
function formSend(url, formID, contentID){ 
    var formData = document.getElementById(formID);  
    var formDataString = ""; 
    var fieldSplit;
	var formRequest = false
	fieldSplit = "" ;
    for (var i=0; i <= formData.elements.length-1;i++) { 
		formDataString += fieldSplit+formData.elements[i].name+'='+encodeURI(formData.elements[i].value); 
	 	fieldSplit="&"; 
	} 	
	callAjax(url,formDataString, contentID,1);

}
// --- END ----------------------------------------------------------------------------------------------

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

//--- START Función que abre un link en una pagina nueva---------------------------------------------------
function openInPopUp(url){
	var newWindow = window.open(url,"_blank","width=300,height=370,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--------------------------------------------------------------------------------------

// --- START --- Rating Stars Images ----------------------------------------------------------------------
function setStarImagesOn(postID,counter){
	//alert("star_"+postID+"_"+counter);
	for(i=1; i <= counter; i++){
		document.getElementById("star_"+postID+"_"+i).src = "images/rating_over.gif";
	}
}
function setStarImagesOff(postID,counter,img){
	//alert(counter);
	for(i=1; i <= counter; i++){
		document.getElementById("star_"+postID+"_"+i).src = img;
	}
}
function setStarImagesOff2(postID,counter,imgStars,img){
	//alert(counter+imgStars);
	for(i=1; i <= imgStars; i++){
		document.getElementById("star_"+postID+"_"+i).src = "images/rating_on.gif";
		//alert("star_"+postID+"_"+i)
	}
	for(k=i; k <= counter; k++){
		document.getElementById("star_"+postID+"_"+k).src = "images/rating_off.gif";
		//alert("star_"+postID+"_"+k)
	}
}

function setArticleRating(postID,rating,table){
	//alert("el post es: "+postID+" y el rating es: "+rating);
	callAjax('classes/setRating.php','postID='+postID+"&rating="+rating+"&table="+table,'ratingAjax_'+postID,0);
}
//--- END -------------------------------------------------------------------------------------------------

// --- START --- Función para llamar los tabs  ------------------------------------------------------------
function getTab(tabType){
	if(tabType == "fotos"){
		callAjax('modules/tabs_multimedia.php?tabType='+tabType,'null','multimediaTab',1);
	}else if(tabType == "videos"){
		callAjax('modules/tabs_multimedia.php?tabType='+tabType,'null','multimediaTab',1);
	}
}
//--- 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 Validar el captcha  ------------------------------------------------------------------
function checkCaptcha(userKey){
	var userKeyCode = document.getElementById(userKey);
	var publicKeyCode = document.getElementById("captchaPublic");
	if(userKeyCode.value.length == 5){
		callAjax("includes/checkCaptcha.php","userCode="+userKeyCode.value+"&publicCode="+publicKeyCode.value,"captchaFlag",0);
		//alert(publicKeyCode.value);
	}
	
}
//--- End ------------------------------------------------------------------------------------------------
// --- START --- Función que verifica un dia valido -------------------------------------------------------
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);
			
			callAjax('includes/getDayOfTheMonth.php?month='+mes.value+'&year='+ano.value,'null',td,1);
	}
}
// --- END ------------------------------------------------------------------------------------------------

// --- START ----------------------------------------------------------------------------------------------
function setDateValue(year,month,day,field){

	document.getElementById(field).value = year+"-"+month+"-"+day;
}
// --- END ------------------------------------------------------------------------------------------------
//-- START Función para traer el código postal ------------------------------------------------------------
function getCP(codigoPostal,comboClass,ajaxHolder){
	var cp = document.getElementById(codigoPostal).value;
	if(cp.length==5){
		document.getElementById("trAsenta").style.display = '';
		callAjax('includes/getAsentamiento.php?cp='+cp+'&class='+comboClass,'null',ajaxHolder,1);
	}
}
// --- END ------------------------------------------------------------------------------------------------
function setCpDataValue(dataValue){
	document.getElementById("cp_2").value = dataValue;
}

/////////////// START ----------- Envio de Fomrularios Via POST con AJAT's By: Luis R. Perez Huichita Huichita
function formSend(url, formID, contentID){ 
	var formData = document.getElementById(formID);  
    var formDataString = ""; 
    var fieldSplit;
	var formRequest = false
	fieldSplit = "" ;
    for (var i=0; i <= formData.elements.length-1;i++) { 
		formDataString += fieldSplit+formData.elements[i].name+'='+encodeURI(formData.elements[i].value); 
	 	fieldSplit="&"; 
	} 	
	callAjax(url,formDataString, contentID,1);

}
// --- END ----------------------------------------------------------------------------------------------
// --- START --- Funcion para poner como minimo un numero de caracteres -----------------------------------
function atLeastCharacters(fieldName, characters){
	
	var fieldContent = fieldName.value;

	if(fieldContent != ""){
		if (fieldContent.length < characters ) {
			
			alert("Por favor debes de ingresar al menos " + characters + " caracteres");
			fieldName.value = "";
			//fieldName.focus();
			
		}
	}
	
}
// --- END ------------------------------------------------------------------------------------------------
// --- START --- Funcion que solo permite caracteres numericos --------------------------------------------
function justVarchar(fieldName, fieldType){
	
	//Definimos que tipo de caracteres aceptara
	if(fieldType == "num"){ 
		var allowedKeys = "0123456789";}
	else{
		var allowedKeys = ".0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz@-_";	
	}
	//////////////////////////////////////////
	
	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.charAt(x)){
				finalArray[cont] = contentArray[j];
				cont++;
			}
		}
	}

	for(z=0; z<=finalArray.length-2; z++){
		filteredContent += finalArray[z];
	}
	fieldName.value = filteredContent;
}
// --- END ------------------------------------------------------------------------------------------------

//-- START Función para mostrar las alertas de validación -------------------------------------------------
function displayError(errorMsg){
	callAjax('classes/setError.php','error='+errorMsg,'ajaxErrors',1);
}
// --- END ------------------------------------------------------------------------------------------------

//-- START Función para mostrar el calendario de eventos --------------------------------------------------
function displayCalendar(calendarType){
	callAjax('modules/calendarioinside.php','calendarType='+calendarType,'calendarAjax',1);
}
// --- END ------------------------------------------------------------------------------------------------
