	var key_back=8;
  var keyTab=9;
	var keyCr=13;
	var	key_sp=32;
  var keyLeft=37;
  var keyRigth=39;
	var keydown=40;
  var keySupr=46;
	var key_div=111;
	var key_F1=112;
	var key_0=48;
	var key_9=57;

	var Key_A=65;
	var Key_Z=90;
	var Key_a=97;
	var Key_z=122;

	with(navigator)
	{
		Ne=(appName=="Netscape"?true:false);
		Ie=(appName=="Microsoft Internet Explorer"?true:false);
	}

  var MenuTop=0;

	function KeyF11(e)
	{
		if (window.KeyEvent)
		{
		f11=document.createEvent("KeyEvents");
			f11.initKeyEvent('keydowupperCase(e)',true,false,null,false,false,false,false,122,0);
		}
		else
		{

		}
	}

	if (Ne)
	{
	 	window.onkeydown  = function(event){ return key(event);}
  	window.onkeypress = function(event){ return key(event);}
  	window.onkeyup    = function(event){ return key(event);}
	}

	if (Ie)
	{
		function keyIe() {return key(window.event);	}

		document.onkeydown = keyIe;
		document.onkeypress = keyIe;
		document.onkeyup = keyIe;
	}

	function GId(id)
	{

	  if (Ne || Ie) 
    	return document.getElementById(id);
  	else
		{
			alert (navigator.appName);
			if (isNetscape4) return document.layers[id];
  		else if (isIE4) return document.all[id];
		}
  	return null; 
	//return document.getElementById(id);
	}

  function GTNa(nombre) {return document.getElementsByTagName(nombre);}

  function AddObj()
  {
    for (var i=0;i<arguments.length; i++)
    {
      switch(i)
      {
        case 0:var obj=arguments[0];break;
        case 1:var pro=arguments[1];break;
				case 2:var hijo=arguments[2];break;
      }
    }

    obj=document.createElement(obj);

		if ((pro!=undefined)&&(pro!=""))
		{
		  pro=pro.split(",");
    	var i=0;
    	while (i<pro.length)
    	{
      	p=pro[i];v=pro[i+1];
      	i=i+2;
      	obj.setAttribute(p,v);
    	}
		}

		if ((hijo!=undefined)&&(hijo!=""))
    {
      switch (typeof(hijo))
      {
        case "string" : obj.appendChild(document.createTextNode(hijo));break;
        case "object" : obj.appendChild(hijo);break;
        default :alert (typeof(hijo)+" No esta definido");
      }
    } 
    return obj;
  }

  function key(e)
  {
		var id=Ie?e.srcElement.id:e.target.id;
		var title=Ie?event.srcElement.title:e.target.title;

    if ((e.type=="keypress")||(e.type=="keyup"))
    {
      if (typeof(FldReq) != 'undefined')
      {
        for (i=0;i<FldReq.length; i++)
        {
          if (id!='')
          {
            guion=FldReq[i].indexOf(id+'_');
            if ( guion>=0 )
            {
              guion=FldReq[i].indexOf("_")+1;
              var Val=FldReq[i].substr(guion,FldReq[i].length);
              if ( Val.indexOf("M")>=0 )
							{
								if (Ie)	{	e.keyCode = String.fromCharCode(e.keyCode).toUpperCase().charCodeAt(0);}
								if (Ne) e.target.value=e.target.value.toUpperCase();
							}
              if ( Val.indexOf("N")>=0 ) return SoloNumero(e);
              if ( Val.indexOf("L")>=0 ) return SoloLetras(e);
              if ( Val.indexOf("F")>=0 ) return ValidaFecha(e);
              if ( Val.indexOf("T")>=0 ) return Telefono(e);
							if ( Val.indexOf("C")>=0 ) return CorreoElec(e);
              if ( Val.indexOf("P")>=0 ) return e.target.value=PriMay(e.target);
            }
          }
        }
      }
    }
    return e;
  }

 	function SoloNumero(e)
  {
    var tecla = Ie?e.keyCode:e.which;

    if ((tecla>=key_0)&&(tecla<=key_9)) return true;
    else
    {
      switch (tecla)
      {
        case key_back:return e;break;
        case 0: if ((e.keyCode==keyLeft)||(e.keyCode==keyRigth)||
                    (e.keyCode==keySupr)||(e.keyCode==keyTab)) return true;
              break;
      }
      return false;
    }
  }
  
  function SoloLetras(e)
  {
		var id=Ie?e.srcElement.id:e.target.id;
    var tecla = Ie?e.keyCode:e.which;

    if (((tecla>=key_A)&&(tecla<=key_Z))||((tecla>=(key_a))&&(tecla<=(key_z)))) return true;
    else
    {
      switch (tecla)
      {
        case 241:return e;break;
        case key_sp:return e;break;
        case key_back:return e;break;
        case 0: if ((e.keyCode==keyLeft)||(e.keyCode==keyRigth)||
                    (e.keyCode==keySupr)||(e.keyCode==keyTab)) return true;
              break;
      }
      return false;
    }
  }
  
  function Telefono(e)
  {
		var id=Ie?e.srcElement.id:e.target.id;
		var tecla = Ie?e.keyCode:e.which;

    if ((tecla>=key_0)&&(tecla<=key_9))
    {
      switch((Ie?e.srcElement:e.target).value.length)
      {
        case  4:(Ie?e.srcElement:e.target).value+="-";break;
        case  8:(Ie?e.srcElement:e.target).value+="-";break;
        case 11:(Ie?e.srcElement:e.target).value+="-";break;
      }
      return true;
    }
    else
    {
      switch (tecla)
      {
        case key_back:return true;
            break;
        case 0: if ((e.keyCode==keyLeft)||(e.keyCode==keyRigth)||
                    (e.keyCode==keySupr)||(e.keyCode==keyTab)) return true;
            break;
      }
      return false; 
    }
  }

	function CorreoElec(e)
	{
		var id=Ie?e.srcElement.id:e.target.id;
    var tecla = Ie?e.keyCode:e.which;

		switch (tecla)
    {
        case 241:return e;break;
        case key_sp:return e;break;text
        case key_back:return e;break;
        case 0: if ((e.keyCode==keyLeft)||(e.keyCode==keyRigth)||
                    (e.keyCode==keySupr)||(e.keyCode==keyTab)) return true;
              break;
    }
		n=(Ie?e.srcElement:e.target).value.indexOf("@");
		if ((n!=-1)&&(n<3))
		{
			alert("El usuario debe tener al menor 3 caracateres");
			return false; 
		}
		return true;
	}

	function ValidaFecha(e)
	{
		var id=Ie?e.srcElement.id:e.target.id;
 		var tecla = Ie?e.keyCode:e.which;

    if (tecla!=keyCr)
    {
	  	if ((tecla>=key_0)&&(tecla<=key_9))
      {
      	switch((Ie?e.srcElement:e.target).value.length)
        {
        	case 2:(Ie?e.srcElement:e.target).value+="/";break;
          case 5:(Ie?e.srcElement:e.target).value+="/";break;
        }
        return true;
      }
      else
      {
      	switch (tecla)
        {
					case key_div:alert("sla");
										return e;
										break;
        	case key_back:return e;break;
          case 0: if ((e.keyCode==keyLeft)||(e.keyCode==keyRigth)||
                    (e.keyCode==keySupr)||(e.keyCode==keyTab)) return true;
          	break;
        }
        return false;
      }
    }
    else
    {
      return true;
    }

	}

  function ColorCamObli(form)
  {
    if (typeof(FldReq) == 'undefined') return true;
    inps="INPUT,SELECT".split(",");
    for (var k=0;k<inps.length;k++)
    {
     inp = GTNa(inps[k]);
     for (var i=0;i<inp.length;i++)
     {
			if (inp.item(i).id!="")
			{
				pos=String(FldReq).search(inp.item(i).id);
				if (pos!=-1)
				{
					l=inp.item(i).id.length+1;
					obl=String(FldReq).substr(pos+l,1);
					if (obl=="O") inp.item(i).style.background=ColorCampoOblig;
				}
			}
     }
    }
  }

	function VerificaCamObli()
	{
		if (typeof(FldReq) == 'undefined') return true;
    inps="INPUT,SELECT".split(",");
    for (k=0;k<inps.length;k++)
    {
    	inp = GTNa(inps[k]);
     	for (i=0;i<inp.length;i++)
    	{
      	if (inp.item(i).id!="")
      	{
					pos=String(FldReq).search(inp.item(i).id);
					if (pos!=-1)
					{	
						l=inp.item(i).id.length+1;
						obl=String(FldReq).substr(pos+l,1);
						if (obl=="O")
						{
							with(inp.item(i))
            	{
              	switch(type)
              	{
                	case "select-one":
                  	if (selectedIndex==0)
                  	{
	                    alert ("Debe selecionar "+title);
  	                  focus();
    	                return false;
      	            }//if (selectedIndex==0)
        	        break;

          	      case "radio":
            	      radio=inp.item(i).name;
              	    Aux = GNa-ojo("INPUT");
                	  ok=false;
                  	for (k=0;k<Aux.length;k++)
                   	{
                    	if ((Aux.item(k).type=="radio")&&(Aux.item(k).name==radio)&&(Aux.item(k).checked==true))
                    	{
                      	ok=true;
                      	break;
                    	}
                   	}//for (k=0;k<Aux.length;k++)
                   	if (!ok)
                   	{
                    	alert ("Debe selecionar "+title);
                    	focus();
                    	return false;
                   	}//if (!ok)
                	break;

                	default:
                  	if (value=="")
                  	{ 
//                    	alert ("El campo "+title+" obligatorio ..");
                    	alert (title);
                    	focus();
                    	return false;
                  	}
                  	else
                  	{
                    	if (!ValFld(inp.item(i).id))
                    	{
                      	focus();
                      	return false;
                    	}
                  	}//if (value=="")
                	break;
               	}//switch(type)
             	}//with(inp.item(i))
						}//if (opc.search("O")!=-1)
					}//if (pos!=-1)
       }//if (inp.item(i).id!="")
     }//for (i=0;i<inp.length;i++)
  	}//for (k=0;k<inps.length;k++)
     return true;
	}//function VerificaCamObli()

  function ValFld(fld)
  {
    for (j=0;j<FldReq.length;j++)
    {
      with(FldReq[j])
      {
        aux=FldReq[j].substr(0, fld.length);
        if (fld==aux)
        {
          opc=FldReq[j].substr(fld.length+1);
          if (opc.indexOf("F")>=0 ) return fechaOk(GId(fld));
        }
      }
    }
    return true;
  }

	function JsAjax()
	{
		var id=arguments[0];
		var io=0;
		var sw=0;
		var pos;
		var posI;
		var js;
		var param;
		var script=GTNa("script");

		funcion=id.substr(0,id.indexOf("("));
		param=id.substring(id.indexOf("(")+1,id.indexOf(")"));
		for(i=0;i<script.length;i++)
		{
			if ((pos=script.item(i).text.indexOf("function "+funcion)) &&(pos!=-1))
			{
				js=FunAjax=script.item(i).text.substr(pos);
				posI=pos;
				break;	
			}
		}

		for(var i=0;i<js.length;i++)
		{
			if (js.substr(i,1)=="{")
			{
				sw=1;
				io++;
			}
			if (js.substr(i,1)=="}"){ io--;}
			if((sw==1)&&(io==0)) break;
		}
		js="("+js.substr(0,i+1);
		i=js.indexOf(funcion);
		js=js.substr(0,i)+js.substr((i+funcion.length))
		js+=")(param);";
		eval(js);
	}

	
  function Color(rgb)
  {
    var h,i,d,r;  if (rgb.length==0) return "#000000";
    i=rgb.indexOf("(")+1; d=rgb.indexOf(")");r=rgb.substr(i,(d-i)); i=0;h="#";
    while (r.indexOf(",",i)>0)
    {
      d=r.indexOf(",",i); n=Number(r.substr(i,d-i)).toString(16);
      if (n.length==1) h=h+"0";h=h+n;i=d+1;
    }
    n=Number(r.substr(d+2,3)).toString(16);if (n.length==1) h=h+"0";  h=h+n;
    h=h.toUpperCase();
    return h;
  }



