function chkfields(formname) {
  var OBJ;
  Error=''  	 
  re = /^([a-zA-Z]{3})(\w{0,1})_(\w+)$/;
  for(var i=0;i<document.forms[formname].length;i++){ 
    re.exec(document.forms[formname].elements[i].name)
    OBJ=""
    OBJ=RegExp.$1 + RegExp.$2 + "_" +RegExp.$3;    
    if(OBJ== document.forms[formname].elements[i].name){//Nombre de campo valido
      fieldtype=RegExp.$1
      required=RegExp.$2
      fieldname=RegExp.$3
      switch(fieldtype.toLowerCase()){
        case 'str':
          reexp=/^.+$/;
          erresp='Deben ser caracteres.';
        break;
        case 'mem':
          reexp=/^(.+|\s*)+$/;
          erresp='Deben ser caracteres.';
        break;
        case 'int':
          reexp=/^[+|-]?\d+$/;
          erresp='Debe ser un número entero.';
        break;
	case 'lon':
          reexp=/^[+|-]?\d+$/;
          erresp='Debe ser un número entero.';
        break;
		case 'byt':
          reexp=/^[+|-]?[0-9]+$/;
          erresp='Debe ser un número entero.';
        break;
        case 'dbl':
          reexp=/^(([+|-]?\d+(\.\d*)?)|([+|-]?(\d*\.)?\d+))$/;
          erresp='Debe ser un número real.';
        break;
        case 'eml':
		  //reexp=/^[a-zA-Z]{1}[a-zA-Z0-9_\.]*[\@][a-zA-Z0-9_]+((\.)[a-zA-Z]{2,3}){1,2}$/;
		  reexp=/^[a-zA-Z]{1}[a-zA-Z0-9_\.\-]*[\@][a-zA-Z0-9_\-]+((\.)[a-zA-Z0-9_\-]+)?((\.)[a-zA-Z]{2,3}){1,2}$/;
          erresp='Debe ser una cuenta de correo válida.';
        break;
        case 'dat':
          reexp=/^\d{1,2}[\/|-]\d{1,2}[\/|-]\d{4}$/
          erresp='Debe ser una fecha válida. mm/dd/aaaa';
        break;
		case 'hou':
		  reexp=/^\d{2}:\d{2}$/
          erresp='Debe ser una hora válida. hh:mm';
        break;
        default:reexp=/^$/
      }//switch
      if(required=='r'){
      	if(document.forms[formname].elements[i].value=='')
          Error+='El campo '+fieldname+' es requerido.\n';
        else      
          if(!reexp.test(document.forms[formname].elements[i].value) && reexp.source!='^$')
            Error+='Error en el campo '+fieldname+'. '+erresp+'\n'    
      }
	 else  if(forms.strr_password.value == '') {

    alert("El campo Password es requerido.");

    forms.strr_password.focus();
	
		}
	  else    
         if(document.forms[formname].elements[i].value!='' && !reexp.test(document.forms[formname].elements[i].value) && reexp.source!='^$')
          Error+='Error en el campo '+fieldname+'.'+erresp+'\n';    
    }//Nombre de campo valido
  }//for
  if (Error!=''){
    alert(Error);
    return false;
  }else
   return true;
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function openwindow(file,width,height){
  var l,t,win;
  l = (screen.width) ? (screen.width-width) / 2	: 0;
  t = (screen.height) ? (screen.height-height) / 2 : 0;
  win=window.open(file,'_blank','top='+t+',left='+l+',toolbar=no,location=no,status=no,menubar=no,resizable=no,scrollbars=yes,width=' + width + ',height=' + height);
  win.focus();
  void(0);
}

function openwindowp(file,width,height,scr){
  var l,t,win;
  l = (screen.width) ? (screen.width-width) / 2	: 0;
  t = (screen.height) ? (screen.height-height) / 2 : 0;
  win=window.open(file,'_blank','top='+t+',left='+l+',toolbar=no,location=no,status=no,menubar=no,resizable=yes,scrollbars=' + scr + ',width=' + width + ',height=' + height);
  win.focus();
  void(0);
}

// Funcion para seleccionar todos los checkbox de una forma
function CheckAll(formname){
  for (i=0;i<document.forms[formname].elements.length;i++)
    if(document.forms[formname].elements[i].type=='checkbox') document.forms[formname].elements[i].checked=true
}

// Funcion para deseleccionar todos los checkbox de una forma
function UnCheckAll(formname){
  for (i=0;i<document.forms[formname].elements.length;i++)
    if(document.forms[formname].elements[i].type=='checkbox')document.forms[formname].elements[i].checked=false
}

// Funcion para invertir la seleccion de checkbox de una forma
function InvertAll(formname){
  for (i=0;i<document.forms[formname].elements.length;i++)
    if(document.forms[formname].elements[i].type=='checkbox')document.forms[formname].elements[i].checked=!document.forms[formname].elements[i].checked
}

// Funciones para seleccionar todos los checkbox menos uno, usado en la aplicacion usuarios.asp
function CheckAll2(formname, nocheck){
  for (i=0;i<document.forms[formname].elements.length;i++)
    if(document.forms[formname].elements[i].type=='checkbox'  && document.forms[formname].elements[i].name != nocheck) document.forms[formname].elements[i].checked=true
}

function UnCheckAll2(formname, nocheck){
  for (i=0;i<document.forms[formname].elements.length;i++)
    if(document.forms[formname].elements[i].type=='checkbox'  && document.forms[formname].elements[i].name != nocheck)document.forms[formname].elements[i].checked=false
}

function InvertAll2(formname, nocheck){
  for (i=0;i<document.forms[formname].elements.length;i++)
    if(document.forms[formname].elements[i].type=='checkbox'  && document.forms[formname].elements[i].name != nocheck)document.forms[formname].elements[i].checked=!document.forms[formname].elements[i].checked
}

// Función para mostrar calendario 1
function open_calendar00()
{
  new_window=window.open("./calendario00.asp","","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=300,height=200");
}
// Función para mostrar calendario 2
function open_calendar01()
{
  new_window=window.open("./calendario01.asp","","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=300,height=200");
}
function DoCP(){
	var l,t,win,width,height;
	width=500;
	height=320;
	l = (screen.width) ? (screen.width-width) / 2	: 0;
	t = (screen.height) ? (screen.height-height) / 2 : 0;
	win=window.open("/zipcode/cp.asp","CP","top="+t+",left="+l+",center=yes,width="+width+",height="+height+",scrollbars=yes,toolbar=no,location=no,status=no")
	win.focus();
}
//Flash function
function WriteSwf(img,wsize,hsize,alinacion,opt){
	document.write("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0\" align=\""+alinacion+"\" width=\""+wsize+"\" height=\""+hsize+"\">");
    document.write("<param name=\"movie\" value=\""+img+"\">");
    document.write("<param name=\"quality\" value=\"high\">");
    document.write("<param name=wmode value=transparent>");

    if(opt != null){
    	var params = opt.split("&");

    	for(var i=0;i<params.length;i++){
    		  var tmp = params[i];
		      var paramss = tmp.split(">>");

		      var strAtt = paramss[0];
		      var strVal = paramss[1];

		      document.write("<param name="+strAtt+" value="+strVal+"> \n");

		      strAtt="";
		      strVal="";

    	}
    }

    document.write("<embed src=\""+img+"\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\""+wsize+"\" height=\""+hsize+"\"></embed>");
	document.write("</object>");
}

function WriteMov(img,wsize,hsize){
	document.write("<OBJECT ID=\"MediaPlayer\" WIDTH="+wsize+" HEIGHT="+hsize+" ");
	document.write("CLASSID=\"CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95\"");
	document.write("STANDBY=\"Loading Windows Media Player components...\" ");
	document.write("TYPE=\"application/x-oleobject\">");
	document.write("<PARAM NAME=\"FileName\" VALUE=\""+img+"\">");
	document.write("<PARAM NAME=\"autoStart\" VALUE=\"true\">");
	document.write("<PARAM NAME=\"showControls\" VALUE=\"false\">");
	document.write("<EMBED TYPE=\"application/x-mplayer2\" SRC=\""+img+"\"");
	document.write("  autoStart=1");
	document.write("  showControls=0");
	document.write(" NAME=\"MediaPlayer\"");
	document.write(" WIDTH="+wsize+"");
	document.write(" HEIGHT="+hsize+"");
	document.write(" PLUGINSPAGE=\"http://www.microsoft.com/windows/windowsmedia/download/\">");
	document.write("</EMBED>");
	document.write("</OBJECT>");
}

function numbersonly(myfield, e, dec)
	{
		var key;
		var keychar;

		if (window.event)
		   key = window.event.keyCode;
		else if (e)
		   key = e.which;
		else
		   return true;
		keychar = String.fromCharCode(key);

		// control keys
		if ((key==null) || (key==0) || (key==8) ||
		    (key==9) || (key==13) || (key==27) )
		   return true;

		// numbers
		else if ((("0123456789").indexOf(keychar) > -1))
		   return true;

		// decimal point jump
		else if (dec && (keychar == "."))
		   {
		   myfield.form.elements[dec].focus();
		   return false;
		   }
		else
		   return false;
	}
	function letternumber(e)
	{
		var key;
		var keychar;

		if (window.event)
		   key = window.event.keyCode;
		else if (e)
		   key = e.which;
		else
		   return true;
		keychar = String.fromCharCode(key);
		keychar = keychar.toLowerCase();

		// control keys
		if ((key==null) || (key==0) || (key==8) ||
		    (key==9) || (key==13) || (key==27) )
		   return true;

		// alphas and numbers
		else if ((("abcdefghijklmnñopqrstuvwxyz0123456789").indexOf(keychar) > -1))
		   return true;
		else
		   return false;
	}
function numbersonly_max(myfield, e,maxnum, dec)
	{
		var key;
		var keychar;

		if (window.event)
		   key = window.event.keyCode;
		else if (e)
		   key = e.which;
		else
		   return true;
		keychar = String.fromCharCode(key);

		// control keys
		if ((key==null) || (key==0) || (key==8) ||
		    (key==9) || (key==13) || (key==27) )
		   return true;

		// numbers
		else if ((("0123456789").indexOf(keychar) > -1)){
			if (maxnum<(myfield.value+keychar)) {alert("Can´t request more products of "+maxnum);return false;}else{return true;}
		    
		}
		// decimal point jump
		else if (dec && (keychar == "."))
		   {
		   myfield.form.elements[dec].focus();
		   return false;
		   }
		else{
		   return false;
		   }
		   
		 
		
	}	
