var isExplorer = navigator.appVersion.match(/MSIE/) == "MSIE";

// LTrim(string) : Regresa una copia de la cadena sin espacios en blanco a la izquierda.
function ltrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;
      s = s.substring(j, i);
   }
   return s;
}

//RTrim(string) : Regresa una copia de la cadena sin espacios en blanco a la derecha.
function rtrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;       // Obtiene el largo de la cadena
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }
   return s;
}

// Trim(string) : Devuelve una cadena sin espacios en blanco a la izquierda y derecha
function trim(str) {
   return rtrim(ltrim(str));
}


/*
*   Funcion convierte el valor escrito en un input a mayusculas (al instante)
*/
function toUpper(elm){
    var Upper = elm.value.toUpperCase();
    elm.value = Upper;
}

function quitarAcentos(cadena){
	cadenaTmp="";
	cadenaTmp = trim(cadena.toUpperCase());
	cadenaTmp = cadenaTmp.replace("Á","A");
	cadenaTmp =  cadenaTmp.replace("É","E");
	cadenaTmp = cadenaTmp.replace("Í","I");
	cadenaTmp = cadenaTmp.replace("Ó","O");
	cadenaTmp = cadenaTmp.replace("Ú","U");
	return cadenaTmp;
}

/*
	Funcion para validar formularios
*/
function validar(formu,divtag){
      obj = formu.getElementsByTagName("input");
      obj2 = formu.getElementsByTagName("textarea");
      obj3 = formu.getElementsByTagName("select");
      var e = 0;
      var msgError="Los campos sombreados son obligatorios o no cumplen con el tipo de dato requerido.";
      var ifocus=-1;
      var ifocus2=-1;
      var ifocus3=-1;
      var separator="";
      var dataType="";
      
     if(divtag) { 
     	$(divtag).innerHTML="";
     	separator="<br />";
     }
     else separator="\n";
      
	for (i=0; i<obj.length; i++) {
			if (obj.item(i).getAttribute("ref") && obj.item(i).getAttribute("ref") == "1"){
				
				try{
					dataType=obj.item(i).getAttribute("dataType");
				}catch(e){
					
					dataType="";
				}
				
				if(trim(obj.item(i).value) == ""){
						
					if(ifocus==-1) ifocus=i;
					obj.item(i).style.borderWidth = "1px";
					obj.item(i).style.borderColor = "#FF0000";
					obj.item(i).style.backgroundColor = "#FFFACD";
					e = e+1;				
				}else if(obj.item(i).name == "mail" || obj.item(i).name == "email" || dataType=="mail"){

				  if(!validarEmail(obj.item(i).value)){	  
							obj.item(i).style.borderWidth = "1px";
							obj.item(i).style.borderColor = "#FF0000";
							obj.item(i).style.backgroundColor = "#FFFACD";
							e = e+1;
							if(ifocus==-1) ifocus=i;
                	}else{
							obj.item(i).style.borderWidth = "1px";
							obj.item(i).style.borderColor = "#FFC20F";
							obj.item(i).style.backgroundColor = "#FFFFFF";
					}
				}else if(dataType=="number"){
					numberTmp= obj.item(i).value;
					if(isNaN(numberTmp)){
							obj.item(i).style.borderWidth = "1px";
							obj.item(i).style.borderColor = "#FF0000";
							obj.item(i).style.backgroundColor = "#FFFF66";
							alert("El valor "+obj.item(i).value+" no es válido.\nEste campo solo acepta valores numéricos");
							e = e+1;
							if(ifocus==-1) ifocus=i;
					}else{
							obj.item(i).style.borderWidth = "1px";
							obj.item(i).style.borderColor = "#FFC20F";
							obj.item(i).style.backgroundColor = "#FFFFFF";
					}							
				}else{
							obj.item(i).style.borderWidth = "1px";
							obj.item(i).style.borderColor = "#FFC20F";
							obj.item(i).style.backgroundColor = "#FFFFFF";
                }
			}
	}
	
for(i=0;i<obj2.length;i++){
	if (obj2.item(i).getAttribute("ref") && obj2.item(i).getAttribute("ref") == "1"){
	  if(obj2.item(i).value == ""){
 		//alert("Olvidaste llenar un campo obligatorio.");	
		//obj2.item(i).focus();
		e = e+1;
		if(ifocus2==-1) ifocus2=i;
				obj2.item(i).style.borderWidth = "1px";
				obj2.item(i).style.borderColor = "#FF0000";
				obj2.item(i).style.backgroundColor = "#FFFACD";	    
	  }else{
	  						obj2.item(i).style.borderWidth = "1px";
							obj2.item(i).style.borderColor = "#FFC20F";
							obj2.item(i).style.backgroundColor = "#FFFFFF";
	  }
	}
}	

for(i=0;i<obj3.length;i++){
	if (obj3.item(i).getAttribute("ref") && obj3.item(i).getAttribute("ref") == "1"){
	  if(obj3.item(i).value == "" || obj3.item(i).value == "0" ){
 		//alert("Olvidaste llenar un campo obligatorio.");	
		//obj2.item(i).focus();
		e = e+1;
		if(ifocus3==-1) ifocus3=i;
				obj3.item(i).style.borderWidth = "1px";
				obj3.item(i).style.borderColor = "#FF0000";
				obj3.item(i).style.backgroundColor = "#FFFACD";	    
	  }else{
	  			obj3.item(i).style.borderWidth = "1px";
				obj3.item(i).style.borderColor = "#FFC20F";
				obj3.item(i).style.backgroundColor = "#FFFFFF";
	  }
	}
}

if(e > 0){
  if(ifocus>=0) obj.item(ifocus).focus();
  else if(ifocus2>=0) obj2.item(ifocus2).focus();
  else if(ifocus3>=0) obj3.item(ifocus3).focus();
  
  if(divtag) { $(divtag).innerHTML=msgError; $(divtag).show(); }
  else alert(msgError);	
  return false;
}
return true;
}

function validarEmail(valor) {
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
    return (true)
  } else {
    alert("La dirección de email: "+valor+"\nEs incorrecta, por favor corrijala");
    return (false);
  }
}


/****** funciones para enviar formularios usando Ajax	******/

 function sendFormAjax(idformulario,url,fcomplete,alertmsg,idwindow,closewindow,reload,formreload){
 	 
 	   $('titleWorking').innerHTML='Enviando Datos...';
 	   $('systemWorking').show();
 	   
		if(typeof fcomplete != "function") fcomplete = null;
		if(reload==null) reload = false;
		
		var opt = {
		    parameters : Form.serialize(idformulario),
		   onFailure:function(){
				alert("Falló el envio de datos");
			},
		 	onSuccess:function(t){
			 	if(t.responseXML.getElementsByTagName("respuesta")[0].firstChild.data == 1) {
					if(fcomplete!=null) fcomplete(t,idformulario,idwindow);
					if(alertmsg==1) alert(t.responseXML.getElementsByTagName("mensaje")[0].firstChild.data);
					if($(idwindow)){
						if(closewindow==1) Windows.close(idwindow);
					}
					if(reload){
						reloadCatalogo(formreload);
					}
			 	}else {
			 		$('titleWorking').innerHTML='Cargando...';
 	   				$('systemWorking').hide();
			 		alert(t.responseXML.getElementsByTagName("mensaje")[0].firstChild.data);
			 	}
		 	}
		}
		
			var request = new Ajax.Request(url,opt);
}


function errFunc(){
	alert("No se encontró el archivo especificado");
}
  


function sendAjaxAction(url,parametros,fcomplete,alertmsg,reload,formreload){
 	   $('titleWorking').innerHTML='Ejecutando la acción...';
 	   $('systemWorking').show();
 	   
		if(typeof fcomplete != "function") fcomplete = null;
		if(reload==null) reload = false;
		if(alertmsg==null) alertmsg = false;
		
		var opt = {
			   parameters : parametros,
			   onFailure:function(){
					alert("Falló al intentar ejecutar la acción");
				},
			 	onSuccess:function(t){
				 	if(t.responseXML.getElementsByTagName("respuesta")[0].firstChild.data == 1) {
						if(fcomplete!=null) fcomplete(t);
						if(alertmsg==true) alert(t.responseXML.getElementsByTagName("mensaje")[0].firstChild.data);
						if(reload){
							reloadCatalogo(formreload);
						}
				 	}else {
				 		$('titleWorking').innerHTML='Cargando...';
	 	   				$('systemWorking').hide();
				 		alert(t.responseXML.getElementsByTagName("mensaje")[0].firstChild.data);
				 	}
			 	},
			 	onComplete:function(t){
			 		$('systemWorking').hide();
			 	}
		}
		
			var request = new Ajax.Request(url,opt);	
}


function sendFormUpdate(idformulario,url,divupdate)
{
		$(divupdate).innerHTML="Enviando sus datos por favor espere...";
		
		var opt = {
			   parameters : Form.serialize(idformulario),
			   method: 'post'
		}		
		
		var myAjax = new Ajax.Updater( divupdate, url, opt);
}