// JavaScript Document


/* Crea el objeto AJAX */
function createRequest()
{
	try {
		object = new XMLHttpRequest ();
	}//Fin Try
	catch (tryMS) {
		try {
			object = new ActiveXObject ("Msxml2.XMLHTTP");
		}//Fin Try
		catch (otherMS) {
			try {
				object = new ActiveXObject ("Microsoft.XMLHTTP");
			}//Fin Try
			catch (failed) {
				object = null;
			}//Fin Catch
		}
	}
	return object;
}

/* Hace la llamada pasando como parámetros: 
	itemname = parámetro de la consulta que se pospone al <url>, 
	url = la url de la consulta, 
	method = el método (GET o POST), 
	callback = la función que llamará a la vuelta
	form = Si el método el "POST" aqui se enváin los datos del formulario en una sola variable y separados por "&"
	EJEMPLO: vars="usuario=" + escape($("usuario").value) + "&password=" + escape($("password").value);
	La varibale form no es necesario ponerla si no se va a usar.
----------------------------------------------------------------------
USO:
	setRequest (objeto, valor, "pedroeselmejor.asp?ID=", "GET", callback);
	
	setRequest (objeto, valor, "pedroeselmejor.asp?ID=", "GET", callback ()
	{
		sentencia de la función callback();
	}
	);

----------------------------------------------------------------------
*/
function setRequest(objeto, itemName, url, metodo, callback, form)
{
	
	if (objeto == null)
	{
		alert("No se ha podido crear el objeto");
		return;
	}
	var url2 = url + escape(itemName);
	objeto.onreadystatechange = callback;
	objeto.open(metodo, url2, true);

	switch (metodo)
	{
		case 'GET':
			objeto.send(null);
			break;
		case 'POST':
			objeto.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			objeto.send(form);
			break;
	}
}

/*
Una vez recibido el objeto ajax se comprueba cuando el servidor está listo

	readystate 1: Enviada
	readystate 2: Recibida
	readystate 3: Procesando.. 
	readystate 4: Lista

...y que no da error
	status 200: OK
	status 400: Error
	status 500: Error de Servidor

	request.responseText = Devuelve el resultado en modo texto
	request.responseXML = Devuelve el resultado en modo XML

*/
function checkRequest (objeto)
{
	if ((objeto.readyState == 4) && (objeto.status == 200)) return true;
	else return false;
}


function exe(mensaje, url)
{
	if (mensaje != '')
	{
		if (confirm (mensaje))
		{	
			request2 = createRequest();
			setRequest (request2, '', url, 'GET');
			setTimeout("location.reload(true)", 1000);
		}
	}
}

function volver(url)
{
	location.href=url;
}


function inc(fichero, capa)
{
	div = eval ("document.getElementById('" + capa + "');");
	objeto = createRequest();
	setRequest(objeto, '', fichero, 'GET', function ()
		{
			if (checkRequest(objeto)) 
			{
				contenedor = objeto.responseText;
				div.innerHTML = contenedor;
			}
	});
}	


function getElementsByName_ie(tag, name) {
     
     var elem = document.getElementsByTagName(tag);
     var arr = new Array();
     for(i = 0,iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute("name");
          if(att == name) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
     return arr;
}

function MM_findObj(n, d) { //v4.01
  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 YY_checkform() { //v4.71
//copyright (c)1998,2002 Yaromat.com
  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('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+s)}
  document.MM_returnValue = (s=='');
}

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}
