/* CONTROLES */
function onKeyPress_Numeros(event,f){
	var key=event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (key==13) f();
	return ((key >= 48 && key <= 57) || key==44 || key==45 || key==46  || key==37 || key==39 || key==8 || key < 13);
}

function onKeyPress_Fechas(event, f){
	var key=event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (key==13) f();
	return ((key >= 48 && key <= 57) || key==47 || key==37 || key==39 || key==8 || key < 13);
}

function onkey(event, f)  {
	var key=event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (key==13) f();
}

function Foco(ctrl) {
  var browser=GetBrowser();
  if (browser=='FF') {
  	 setTimeout("document." + ctrl.form.name + "." + ctrl.name + ".focus();",75);
  } else {
  	ctrl.focus();
  }
  if (browser=='IE') ctrl.value=ctrl.value;
}

function GetBrowser() {
  var str=navigator.userAgent;
  if (str.indexOf('MSIE')!=-1) return('IE');
  if (str.indexOf('Safari')!=-1) return('SF');
  if (str.indexOf('Firefox')!=-1) return('FF');
}

function arr2ctrl(arrVal, arrShw, ctrl) {
  var opt, val;
  ctrl.options.length=0
  for(var i=0; i<arrShw.length; i++) {
  	if (isArray(arrVal)) val=arrVal[i]; else val=arrShw[i];
    opt=new Option(arrShw[i],val);
    ctrl.options[i]=opt;
  }
}

function str2opt(str, ctrl) {
  var arr, opt, tmp;
  ctrl.options.length=0
  arr=str.split("|")
  for(var i=0; i<arr.length; i++) {
  	tmp=arr[i].split(";")
    opt=new Option(tmp[1],tmp[0]);
    ctrl.options[i]=opt;
  }
}

function isArray(obj) { //returns true is it is an array
	if (obj.constructor.toString().indexOf("Array")==-1)
	return false;
	else
	return true;
}

function postear(aForm, aCode, aFrame){
	aForm.method="POST"; 
	aForm.target=aFrame; 
	aForm.action=aCode;
	aForm.submit();
}

function load(aUrl, aFrame){
	aFrame.location.href=aUrl;
}

/* AJAX */

var ajaxRes;

function getAjax(aCode) {
  var ajaxObj=getXmlHttpObject();
  ajaxObj.open("GET", aCode, false);
  ajaxObj.send(null);
  if(ajaxObj.status==200){ajaxRes=ajaxObj.responseText;}
}

function postAjax(aURL,frm) {
  var ajaxObj=getXmlHttpObject();
  ajaxObj.open("POST", aURL, false);
  ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  ajaxObj.send(frm);
  if(ajaxObj.status==200){ajaxRes=ajaxObj.responseText;}
}

function getXmlHttpObject() {
  var xmlHttp=null;
  try
    { xmlHttp=new XMLHttpRequest(); /* Firefox, Opera 8.0+, Safari */ }
  catch (err) {
    try
      { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); /* Internet Explorer */ }
    catch (err) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
  }
  return xmlHttp;
}

function $(id){return document.getElementById(id)}
/* FECHAS*/

function esFechaValida(fecha){
	var dia, mes, anio;
	if (fecha != "" ){
		if (!/^\d{2}\/\d{2}\/\d{4}$/.test(fecha)){
			return false;
		}
		dia  =  parseInt(fecha.substring(0,2),10);
	    mes  =  parseInt(fecha.substring(3,5),10);
		anio = parseInt(fecha.substring(6,10),10);
	    switch(mes){
	        case 1: case 3: case 5: case 7: case 8: case 10: case 12:
	            numDias=31;break;
	        case 4: case 6: case 9: case 11:
	            numDias=30;break;
	        case 2:
				if (comprobarSiBisisesto(anio)){ numDias=29 }else{ numDias=28};
	            break;
	        default:
	            return false;
	    }
		if (dia>numDias || dia==0){
	        return false;
	    }
	    return true;
    }else{
		return false;
	}
}

function comprobarSiBisisesto(anio){
	if ( ( anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) {
		return true;
    }
    else {
		return false;
    }
}

function fechaMayorOIgualQue(f1, f2){
	dia1  =  parseInt(f1.substring(0,2),10);
	mes1  =  parseInt(f1.substring(3,5),10);
	anio1 = parseInt(f1.substring(6,10),10);
	dia2  =  parseInt(f2.substring(0,2),10);
	mes2  =  parseInt(f2.substring(3,5),10);
	anio2 = parseInt(f2.substring(6,10),10);
	if (anio1 > anio2) return true; 
	else { 
		if (anio1 == anio2){ 
			if (mes1 > mes2) return true; 
			else { 
				if (mes1 == mes2) 
				if (dia1 >= dia2) return true; 
			}	 
		} 
	}
	return false;
}

function isNum(q) {
	expr = new RegExp("^(-)?([0-9])+([,|\.])?([0-9])*$");
	if(expr.test(q)){return true;}
	return false;
}

function datediff(f1,f2){
	var a1, a2, d1, d2;
	a1=f1.split(/[-|\/]/);
	a2=f2.split(/[-|\/]/);
	d1=Date.parse(a1[1]+"/"+a1[0]+"/"+a1[2]);
	d2=Date.parse(a2[1]+"/"+a2[0]+"/"+a2[2]);
	return Math.abs((d1-d2)/(24*60*60*1000));
}