// ****************************
// Funciones javascript comunes
// ****************************
//Función para validar la fecha, si es que se
//introduce alguna

  function ValidarFecha(pDia,pMes,pAno){

    var Error = "La fecha introducida es inválida. Revísela, por favor.";
    var Dia_Mes_Mal = false;
    if(pDia=="" && pMes=="" && pAno=="") return true;
	else{
      pDia = parseInt(pDia);
      pMes = parseInt(pMes);
      pAno = parseInt(pAno);
	  if(!isNaN(pDia)&&!isNaN(pMes)&&!isNaN(pAno)
          &&pDia >= 1 && pAno >= 1900){
        //Los meses de Enero, Marzo, Mayo, Julio, Agosto,
        //Octubre y Diciembre tienen 31 días
        if((pMes==1||pMes==3||pMes==5||pMes==7
            ||pMes==8||pMes==10||pMes==12)&&pDia>31)Dia_Mes_Mal=true;
        //Los meses de Mayo, Junio, Septiembre
        //y Noviembre tienen 30 días
        if((pMes==4||pMes==6||pMes==9||pMes==11)&&pDia>30)Dia_Mes_Mal=true;
       //Febrero tiene 28 ó 29 días, dependiendo de si es bisiesto
       //o no. Un año es bisiesto si es múltiplo de 4 pero no de
       //100 salvo que sea múltiplo de 400. Por ejemplo, 12 y 400
       //son bisiestos, pero 100 y 700 no.
        if(pMes==2&&(pDia>29||(pDia==29&&((pAno%400!=0)&&((pAno%4!=0)||(pAno%100==0))))))Dia_Mes_Mal=true;
        if(Dia_Mes_Mal){
          alert(Error);
          return false;
        }
        else return true;
        }   //Si la fecha está fuera del rango razonable...
      else  {
        alert(Error);
        return false;
        }
      }
  }

//Función para formatear la fecha

  function FormateaFecha(pDia,pMes,pAno){
	var fecha="";
    if(pDia==""||pMes==""||pAno==""){
	  return fecha;
    }else{
	  fecha=pDia+"/"+pMes+"/"+pAno;
	  return fecha;
	}
  }

function ValidarCampo(formulario,campo,texto){

   var longitud=eval("document."+formulario+"."+campo+".value.length");

   var CActual,CActualSiquiente,j;
   j=0;

   for(i=0;i<longitud;i++){

     CActual =eval("document."+formulario+"."+campo+".value.charAt("+i+")");
     if(i<longitud){
	j=(i+1);
     	CActualSiquiente = eval("document."+formulario+"."+campo+".value.charAt("+j+")");
        }
	if (CActual==">" || CActual=="<" || CActual=="\"" || CActual=="&" || CActual==";"){
	   alert(texto+" ' "+CActual+" '");
	   eval("document."+formulario+"."+campo+".focus()");
	   break;
	 }

	if (CActual=="-" && CActualSiquiente=="-"){
           alert(texto+" [ "+CActual+CActualSiquiente+" ]");
	  eval("document."+formulario+"."+campo+".focus()");
	  break;
         }

   }
 }



 function ValidarGiro(PagaConGiro,CompaniaTransferencia,numeroGiro,Mensaje){
   var retorno=true;
   if(PagaConGiro){
	 if((CompaniaTransferencia == 1) || (CompaniaTransferencia == 2) ){
		if(numeroGiro == ""){
		  alert(Mensaje);
		  retorno = false;
		}
	 }
   }
   return retorno;
 }

 function esemail(s){
alert('entra');
	if (esemail.arguments[0]=="") return false;

	var i=1;
	var sLength=s.length;
	while ((i<sLength) && (s.charAt(i) != "@"))
			{
			i++;
			}
	if ((i>=sLength) || (s.charAt(i) != "@")) return false;
	else i+=2;
	while ((i<sLength) && (s.charAt(i) != "."))
			{
			i++;
			}
	if ((i>=sLength - 1) || (s.charAt(i) != ".")) return false;
	else return true;
 }



//Funcion utilizada para generar dinamicamente los combos de categoria y subactegorias en la gestion de productos
//tambien se utilizara para los services_lvel y busqueda de productos.
//
//Recibe como parametros:
//
//SelectName: Identifica el control(combo) que vamos a rellenar...
//VectorName: Indica las subijos que determinan los vectores que tenmos que rellenar
//            es decir para el vector de categoria de hardware tendremos el sufijo MINF_HARD.
//	      Los vectores se llamara VALUES_ y DESC_ uno para los valores del combo y otros
//            para su descripcion..
//            Asi tendremeos VALUES_MINF_HARD y DESC_MINF_HARD para la relacion de las subcategorias
//            Asociadas a la familia (MINF) de la categoria (HARD)....
//SelectedValue: Identidica el valor seleccionado que teniamos en el combo que vamos a rellenar es decir
//               si venimos de una busqueda de productos y sabemos que la subcategoria es PC este será el valor
//	         que deberá haber seleccionado en el combo de la subcategoria y de ello que se le pasae también..


function updateValuesCombo(SelectName,VectorName,SelectedValue){
     var comboBoxFinal = eval(document.getElementById(SelectName));
     comboBoxFinal.options.length = 0;
     var values = eval('VALUES_' + VectorName);
     var description = eval('DESC_' + VectorName);
     var valueSelected;
     for(j=0;j<values.length;j++){
        addOption(description[j],values[j],comboBoxFinal);
	if(values[j] == SelectedValue){
	   SelectedValue=values[j];
	}
     }
     selectTheValue(SelectName,SelectedValue)
}

//Funcion para saber el vallor seleciconado correspondietne al valor que se nos envia
//como parametro....
function selectTheValue(ControlName,valueToSelect){
   var comboBox = eval(document.getElementById(ControlName));
   for(i=0;i<comboBox.options.length;i++){
	if(comboBox.options[i].value == valueToSelect){
	  comboBox.selectedIndex = i;
	  return;
	}
   }
}

//Añade optiones a un combo
function addOption(text,value,Combo){
   var comboBox = Combo;
   var newOption = new Option(text, value);
   comboBox.options[comboBox.options.length] = newOption;
   }


//Rescata el valor seleccionado del combo enviado como parametro....
function theValueSelectedIs(IdComboControl){
   return document.getElementById(IdComboControl).options[document.getElementById(IdComboControl).selectedIndex].value
}

function EvaluateText(cadena, obj, e){
opc = false;
tecla = (document.all) ? e.keyCode : e.which;
if (cadena == "%d")
if (tecla > 47 && tecla < 58)
opc = true;
if (cadena == "%f"){
if (tecla > 47 && tecla < 58)
opc = true;
if (obj.value.search("[.*]") == -1 && obj.value.length != 0)
if (tecla == 46)
opc = true;
}
return opc;
}

function onlyDigits(e,decReq) {

  var key = (isIE) ? window.event.keyCode : e.which; //obtine el codigo ASCII de la tecla pulsada
  var obj = (isIE) ? event.srcElement : e.target;
  var isNum = (key > 47 && key < 58) ? true:false;//ve si es un numero o una letra
  var dotOK = (key==46 && decReq=='decOK' && (obj.value.indexOf(".")<0 || obj.value.length==0)) ? true:false;//controla si pulsamos punto y esa casilla acepta numeros decimales
//  var dotOK = (key==46 && decReq=='decOK') ? true:false;
//  alert(dotOK+","+decReq);
  window.event.keyCode = (!isNum && !dotOK && isIE) ? 0:key;
//  e.which = (!isNum && !dotOK && isNS) ? 0:key;
  return (isNum || dotOK);

}


function cargaFechaHoy(form, campo){
   hoy = new Date();
  eval('document.'+ form + '.' + campo + '.value') = getDia() + "/" + getMes() + "/" + hoy.getFullYear();
  eval('document.'+ from + '.' + campo + '.value') = getDia() + "/" + getMes() + "/" + hoy.getFullYear();
}

function getMes(){
   var mes;
   mesHoy = new Date();
   if((mesHoy.getMonth()) < 10){
	mes = "0" + (mesHoy.getMonth()+1).toString();
	return mes;
   }
   else {return (mesHoy.getMonth() + 1);}
}

function getDia(){
   var dia;
   diaHoy = new Date();
   if((diaHoy.getDate()) < 10){
      dia = "0" + (diaHoy.getDate()).toString();
      return dia;
   }
   else {return diaHoy.getDate();}
}
