// JavaScript Document

String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/g,'') }

var nav4 = window.Event ? true : false;
function acceptNum(evt){	
	// NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57	
	var key = nav4 ? evt.which : evt.keyCode;	
	var res=(key <= 13 || (key >= 48 && key <= 57));
	if(key==46){res=true;}
	return res;
}

var RomanI = new Array("","I","II","III","IV","V","VI","VII","VIII","IX");
var RomanX = new Array("","X","XX","XXX","XL","L","LX","LXX","LXXX","XC");
var RomanC = new Array("","C","CC","CCC","CD","D","DC","DCC","DCCC","CM");
function fncArabic2Roman(arabic)
{	/* Note: this function requires custom style-sheet values for <SPAN> */
	var arabicString = new String(arabic);
	var romanString = new String("");
	var aLen = arabicString.length;
	var n = 1;
	while (n <= aLen)
	{	var i = aLen - n;
		var s = parseInt(arabicString.charAt(i));
		if (n == 1) { romanString = RomanI[s]; }
		if (n == 2) { romanString = RomanX[s]+romanString; }
		if (n == 3) { romanString = RomanC[s]+romanString; }
		if (n == 4) { romanString = RomanM[s]+romanString; }
		n++;
	}
	return romanString;
}

/*Devuelve una cadena que a su vez contiene un número especificado de caracteres de una cadena.

Parámetros
str
    Requerido. Expresión de tipo String de la que se devuelven caracteres.

Start
    Requerido. Expresión Integer. La posición inicial de los caracteres que se devuelven. Si Start es mayor que el número de caracteres de str, la función Mid devuelve una cadena de longitud cero (""). Start está basado en uno.
		
Length
    Requerido. Expresión Integer. Número de caracteres que se va a devolver. Si se omite o si existen menos caracteres del número especificado por Length en el texto (incluido el carácter en la posición Start), se devuelven todos los caracteres desde la posición de inicio hasta el final de la cadena.
*/
function Mid(str, start, len){
    if (start < 0 || len < 0) return "";
    var iEnd, iLen = String(str).length;
    if (start + len > iLen)
          iEnd = iLen;
    else
          iEnd = start + len;
    return String(str).substring(start,iEnd);
}

/*redondea un numero*/
function redondear(cantidad, decimales) {
	var cantidad = parseFloat(cantidad);
	var decimales = parseFloat(decimales);
	decimales = (!decimales ? 2 : decimales);
	return Math.round(cantidad * Math.pow(10, decimales)) / Math.pow(10, decimales);
}

/*Muestra y oculta un objeto

Parametros
Name
	Requerido. Nombre del objeto.
*/
function f_show(objName){
  if(document.getElementById(objName).style.display=="")
   document.getElementById(objName).style.display="none";
  else
   document.getElementById(objName).style.display="";
}

/*Carga el foco en un objeto especifico

Parametros
Name
	Requerido. Nombre del objeto.
*/
function f_LoadFocus(objName){
	document.getElementById(objName).focus();
}

function MM_swapImgRestore() {
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() {
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() {
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
	var i,p,v,obj,args=MM_showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
		if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
		obj.visibility=v; }
}	

function YY_checkform() {
  var a=YY_checkform.arguments,oo=true,v='',s='',err=false,r,o,at,o1,t,i,j,ma,rx,cd,cm,cy,dte,at;
  for (i=1; i<a.length;i=i+4){
    if (a[i+1].charAt(0)=='#'){r=true; a[i+1]=a[i+1].substring(1);}else{r=false}
    o=MM_findObj(a[i].replace(/\[\d+\]/ig,""));
    o1=MM_findObj(a[i+1].replace(/\[\d+\]/ig,""));
    v=o.value;t=a[i+2];
    if (o.type=='text'||o.type=='password'||o.type=='hidden'){
      if (r&&v.length==0){err=true}
      if (v.length>0)
      if (t==1){ //fromto
        ma=a[i+1].split('_');if(isNaN(v)||v<ma[0]/1||v > ma[1]/1){err=true}
      } else if (t==2){
        rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-zA-Z]{2,4}$");if(!rx.test(v))err=true;
      } else if (t==3){ // date
        ma=a[i+1].split("#");at=v.match(ma[0]);
        if(at){
          cd=(at[ma[1]])?at[ma[1]]:1;cm=at[ma[2]]-1;cy=at[ma[3]];
          dte=new Date(cy,cm,cd);
          if(dte.getFullYear()!=cy||dte.getDate()!=cd||dte.getMonth()!=cm){err=true};
        }else{err=true}
      } else if (t==4){ // time
        ma=a[i+1].split("#");at=v.match(ma[0]);if(!at){err=true}
      } else if (t==5){ // check this 2
            if(o1.length)o1=o1[a[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!o1.checked){err=true}
      } else if (t==6){ // the same
            if(v!=MM_findObj(a[i+1]).value){err=true}
      }
    } else
    if (!o.type&&o.length>0&&o[0].type=='radio'){
          at = a[i].match(/(.*)\[(\d+)\].*/i);
          o2=(o.length>1)?o[at[2]]:o;
      if (t==1&&o2&&o2.checked&&o1&&o1.value.length/1==0){err=true}
      if (t==2){
        oo=false;
        for(j=0;j<o.length;j++){oo=oo||o[j].checked}
        if(!oo){s+='* '+a[i+3]+'\n'}
      }
    } else if (o.type=='checkbox'){
      if((t==1&&o.checked==false)||(t==2&&o.checked&&o1&&o1.value.length/1==0)){err=true}
    } else if (o.type=='select-one'||o.type=='select-multiple'){
      if(t==1&&o.selectedIndex/1==0){err=true}
    }else if (o.type=='textarea'){
      if(v.length<a[i+1]){err=true}
    }
    if (err){s+='* '+a[i+3]+'\n'; err=false}
  }
  if (s!=''){alert('La informacion requerida es incompleta o contiene errores:\t\t\t\t\t\n\n'+s)}
  document.MM_returnValue = (s=='');
}

function f_GoURL(strURL){
	try{
		window.location.href=strURL;
	}catch(e){alert(e.message);}
}

function cstr(data){
	return data.toString();
}

function cint(data){
	return parseInt(data.toString());
}

function cfloat(data){
	return parseFloat(data.toString());
}

function f_SetImg(imgObjName,pathImg){
		document.getElementById(imgObjName).src=pathImg;
}

function IsNumeric(data){
		var data=false;
		try{
			parseInt(data.toString());		
			data=true;
		}catch(e){data=false;}
}

function f_replace(texto,s1,s2){
	return texto.split(s1).join(s2);
}

function ltrim(data) {
	return data.replace(/^\s+/,"");
}

function rtrim(data) {
	return data.replace(/\s+$/,"");
}

function f_GetObjByID(objName){
	return document.getElementById(objName);
}

function backColor(obj, Color) {
	obj.style.backgroundColor=Color;
	/*<tr onmouseover="backColor(this, '-- color a usar --')" onmouseout="backColor(this, '')">*/
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}