//Regresa el id del campo a asignar..
function GEBI(id){
	if(document.getElementById(id) != 'undefined'){
		return document.getElementById(id);
	}
}

//Funcion de Envio de Formularios...
function JS_enviar(formu){
	GEBI(formu).submit();		
}

//Ubica campo al cargar la pagina..
function JS_ubicar_foco(campo){
	GEBI(campo).focus();						
}

//Limpia el campo que se le asigna
function JS_limpiacamp(valform){
	GEBI(valform).value = '';	
}	

//Valida si la extencion dada es la correcta...
function JS_validaext(idcampo,exteninf){
	var contador = 0;
	var datosinfo = exteninf.split('-');
	var datosinfo_num = datosinfo.length
	var fieldvalue = GEBI(idcampo).value;
	var thisext = fieldvalue.substr(fieldvalue.lastIndexOf('.'));	
	thisext = thisext.toLowerCase();	
	for(i=0;i<=datosinfo_num;++i){
		if (thisext == '.'+datosinfo[i]){
			contador = 1;	
		}									
	}
	if(contador==0){
		GEBI(idcampo).value = '';		
		Boxy.alert("El archivo cargado no corresponde a las opciones requeridas");
	}
}

//AJAX para carga de procesos
var http_request = false;
var global_load_div = '';
function makePOSTRequest(url, parametros){
	http_request = false;  
	try { // Firefox, Opera 8.0+, Safari
	http_request =new XMLHttpRequest();
		if (http_request.overrideMimeType) {
		http_request.overrideMimeType('text/html');
		}
  	}
	catch (e){
		try {	// IE
		http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e){
		http_request = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
   
	if (!http_request) {
	alert('Your browser does not support AJAX!');
	return false;
	}
	
	http_request.onreadystatechange = alertContents;
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parametros.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parametros);
}
//<------ END AJAX BASIC FUNCTION ------>
//Me genera alertas del sistema o el icono de carga correspondiente..	  
function alertContents() {
	if (http_request.readyState == 1) {
	GEBI(global_load_div).innerHTML = '<div align="left"><img src="'+url+'images/loading.gif" align="absmiddle" width="16" height="16"/></div>';
	}

	if (http_request.readyState == 4) {
    	if (http_request.status == 200) {
        result = http_request.responseText;
		GEBI(global_load_div).innerHTML = result;		
		}
		else {
			Boxy.alert("Su conexion a Internet es nula o existio un abuso en el sistema. <br> Por favor, intentelo de nuevo");
		}
	}
}

//Carga datos a una consulta entrante con campos ocultos..
function JS_load_form(load_cam,load_list,load_div,load_page) {
	if(load_cam == 1){
		var poststr = "val_ref1=" + GEBI(load_list).value;
	}else if(load_cam == 0){
		var poststr = load_list;		
	}
	global_load_div = load_div;
	makePOSTRequest(load_page, poststr);
}

//Oculta y muestra los iconos y la info adecuada al id del listado..
function JS_inf_view(typeval,idval,masval,menosval) {
	if(typeval == 1){
		GEBI(masval).style.display='none';
		GEBI(menosval).style.display='';		
		GEBI(idval).style.display='';
	}else{
		GEBI(masval).style.display='';
		GEBI(menosval).style.display='none';		
		GEBI(idval).style.display='none';
	}
}

//Modifica y cambia las clases correspondientes..
function JS_camclases(cam_id){
	J('tbody tr').removeClass('current_list');
	J('tbody tr#'+cam_id).addClass('current_list');
}

//Modifica y cambia los checkbox correspondientes..
function JS_check_list(cam_id,cam_tr){
	if(GEBI(cam_id).checked == ''){
		J('tbody tr#'+cam_tr).addClass('current_check');		
		GEBI(cam_id).checked = 'checked';
	}else{
		J('tbody tr#'+cam_tr).removeClass('current_check');		
		GEBI(cam_id).checked = '';		
	}	
}

//Modifica y cambia los checkbox correspondientes..
function JS_check_info(cam_id,cam_tr){
	if(GEBI(cam_id).checked != ''){
		J('tbody tr#'+cam_tr).addClass('current_check');		
	}else{
		J('tbody tr#'+cam_tr).removeClass('current_check');		
	}	
}

//Modifica y cambia algun elemento oculto dentro de un formulario y despues lo envia..
function JS_cam_info(cam_form,cam_campo,cam_calue,cam_envi,cam_text){	
	if(cam_calue == 'Delete'){
		GEBI(cam_campo).value = 'TOTAL';
	}else{
		GEBI(cam_campo).value = cam_calue;		
	}
	//alert(cam_form+' - '+cam_campo+' - '+cam_calue+' - '+cam_envi+' - '+cam_text);
	if(cam_envi == 1){
		if(cam_calue == 'Delete'){
			Boxy.confirm('>>> <strong>'+cam_text+'?</strong>', function() { JS_enviar(cam_form); });
		}else{
			JS_enviar(cam_form);
		}
	}
}

//Modifica y cambia algun elemento oculto dentro de un formulario y despues lo envia..
function JS_cam_info_form(cam_form,cam_campo,cam_calue,cam_envi,cam_text){	
	GEBI(cam_campo).value = cam_calue;		
	if(cam_calue != 'es'){
		GEBI(cam_form).action = cam_calue+'/';
	}else{
		var cadena = document.URL;
		cadena = cadena.replace(/en\//, "")		
		GEBI(cam_form).action = cadena;
	}
	//salert(GEBI(cam_form).action);
	JS_enviar(cam_form);	
}

//Elimina registros exactos de los listados..
/*function JS_delete_ref(cam_tr,cam_check,act_form,act_proc,act_txt){	
	GEBI(cam_check).checked = 'checked';
	J('tbody tr#'+cam_tr).addClass('current_check');
	GEBI(act_proc).value = 'Delete';
	Boxy.confirm('>>> <strong>'+GEBI(act_txt).value+'</strong>', function(){ JS_enviar(act_form); },function(){ GEBI(cam_check).checked = ''; J('tbody tr#'+cam_tr).removeClass('current_check'); GEBI(act_proc).value = 'VACIO';});	
}*/
function JS_delete_ref(de_form,de_id,de_txt,de_id_val){	
	GEBI(de_id).value = de_id_val;
	Boxy.confirm('>>> <strong>'+GEBI(de_txt).value+'</strong>', function(){ JS_enviar(de_form); },function(){ GEBI(de_id).value = '0'; });	
}

//Modifica un campo dentro de un formulario y lo envia si ese es el caso..
function JS_asig_info(asi_type,asi_val,asi_form,asi_cam){
	GEBI(asi_cam).value = asi_val;	
	if(asi_type == 1){
		JS_enviar(asi_form);
	}
}

//Modifica y cambia un elemento especifico oculto dentro de un formulario y despues lo envia..
function JS_cam_info_value(cam_tr,cam_check,act_form,act_proc,act_value,act_txt){	
	if(GEBI(cam_check).checked == ''){
		GEBI(cam_check).checked = 'checked';
		J('tbody tr#'+cam_tr).addClass('current_check');		
	}else{
		GEBI(cam_check).checked = '';		
		J('tbody tr#'+cam_tr).removeClass('current_check');		
	}
	JS_cam_info(act_form,act_proc,act_value,1,act_txt);
}

//Validador de campos numericos
function JS_numberValidate(e) {
	tecla = (document.all) ? e.keyCode : e.which;
	if (tecla==8 || tecla==0) return true; //Tecla de retroceso (para poder borrar)
		patron =/[0-9]/;
		te = String.fromCharCode(tecla);
		return patron.test(te);
}

//Modifica listados de ingreso de favoritos en los eventos y los anuncios...
function JS_val_favorito(fav_ref,fav_type,fav_ver,fav_ocul,fav_valor){
	GEBI(fav_ver).style.display='none';	
	GEBI(fav_ocul).style.display='';
	var poststr = "val_type=" + fav_type + "&val_ref=" + fav_ref + "&val_id=" + fav_valor;	
	global_load_div = 'resultado_post_favo';	
	makePOSTRequest(url+'favoritos_list_cam.php', poststr);
}

//Me elije o no un listado del administrador..
function JS_check_all(chkbox,editform,chkbox_id,chkbox_acti){
	if(GEBI(chkbox_id).checked != ''){
		J('tbody tr').addClass('current_check');
		//GEBI(chkbox_acti).value = 'TOTAL';
	}else{
		J('tbody tr').removeClass('current_check');		
		//GEBI(chkbox_acti).value = 'VACIO';	
	}		
	for (var i=0;i < GEBI(editform).elements.length;i++){
		var elemento = GEBI(editform).elements[i];
		if (elemento.type == "checkbox"){
			elemento.checked = chkbox.checked;
		}
	}
}

//Validar Cambio de imagen de danderas.
function JS_bande_cambio(rutaban,nomcampo,bande){
	if (GEBI(nomcampo).value != ''){
		GEBI(bande).src= rutaban + GEBI(nomcampo).value;	
	}else{
		GEBI(bande).src= url+'images/icons/flag.png';		
	}
}

//Genera el html para los link's
function JS_genera_html(){
	GEBI('exter_urlweb').value = '<a href="' + GEBI('exter_url').value + '">' + GEBI('exter_title').value + '</a>';
}

//Calcula la suma a una fecha con un rango determinado..
function cerosIzq(sVal, nPos){ 
	var sRes = sVal; 
	for (var i = sVal.length; i < nPos; i++) 
	sRes = "0" + sRes; 
	return sRes; 
} 
function armaFecha(nDia, nMes, nAno){ 
	var sRes = cerosIzq(String(nDia), 2); 
	sRes = sRes + "/" + cerosIzq(String(nMes), 2); 
	sRes = sRes + "/" + cerosIzq(String(nAno), 4); 
	return sRes; 
} 
function sumaMes(nDia, nMes, nAno, nSum){ 
	if (nSum >= 0){ 
		for (var i = 0; i < Math.abs(nSum); i++){ 
			if (nMes == 12){ 
				nMes = 1; 
				nAno += 1; 
			} else nMes += 1; 
		} 
	} else { 
		for (var i = 0; i < Math.abs(nSum); i++){ 
			if (nMes == 1){ 
				nMes = 12; 
				nAno -= 1; 
			} else nMes -= 1; 
		} 
	} 
	return armaFecha(nDia, nMes, nAno); 
} 
function JS_fecha_suma(date_ini,date_time,date_end){ 
	var sFc0 = GEBI(date_ini).value; // Se asume válida 
	var nSum = parseInt(GEBI(date_time).value); 
	var sFc1 = sFc0; 
	if (!isNaN(nSum)){ 
		var nDia = parseInt(sFc0.substr(0, 2)); 
		var nMes = parseInt(sFc0.substr(3, 2)); 
		var nAno = parseInt(sFc0.substr(6, 4)); 
		sFc1 = sumaMes(nDia, nMes, nAno, nSum); 
	} 
	GEBI(date_end).value = sFc1; 
} 