//
//  Funciones necesarias para usar cookies
//

function FixCookieDate (date) {
  var base = new Date(0);
  var skew = base.getTime(); // dawn of (Unix) time - should be 0
  if (skew > 0)  // Except on the Mac - ahead of its time
    date.setTime (date.getTime() - skew);
}

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
  return null;
}

function SetCookie (name, value) {
  var argv = SetCookie.arguments;
  var argc = SetCookie.arguments.length;
  var expires = (argc > 2) ? argv[2] : null;
  var path = (argc > 3) ? argv[3] : null;
  var domain = (argc > 4) ? argv[4] : null;
  var secure = (argc > 5) ? argv[5] : false;

//  Se puede retirar el comentario de la siguiente linea
//  para correccion automatica de fecha.
//if (expires!=null) FixCookieDate(expires); 

  document.cookie = name + "=" + escape (value) +
    ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
    ((path == null) ? "" : ("; path=" + path)) +
    ((domain == null) ? "" : ("; domain=" + domain)) +
    ((secure == true) ? "; secure" : "");
}

function DeleteCookie (name) {
  var exp = new Date();
  FixCookieDate (exp); // Correct for Mac bug
  exp.setTime (exp.getTime() - 1);  // This cookie is history
  var cval = GetCookie (name);
  if (cval != null)
    document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

//
//  Fin de las funciones Cookie
//


function cargar_campos()
{
	var i=0;
	var j=0;
	var k=0;
	var num_capas=0;
	var ns = (document.layers)? true:false;
	var padre;

	if (GetCookie("anterior") == "si")
	{
		if (ns)
		{
			num_capas=document.layers.length;
		}
		else
		{
			num_capas=1; // Si es explorer no hay vector layers
		}
		for (k=0;k<num_capas;k++)
		{
			if (ns)
			{
				padre=window.document.layers[k].document;
			}
			else
			{
				padre=window.document;
			}
			
			for (i=0;i<padre.forms.length;i++)
			{
				for (j=0;j<padre.forms[i].elements.length;j++)
				{
					nom_cookie="campo"+k+"_"+i+"_"+j;
					valor_cookie=GetCookie(nom_cookie);
					if (valor_cookie != null)
					{
						switch (padre.forms[i].elements[j].type)
						{
	   					   case "checkbox" : 
      	          					if (valor_cookie=="true")
      	          					{
								padre.forms[i].elements[j].value="ON";
				                  		padre.forms[i].elements[j].checked=true;
				                	}	
		        		        	else
      	          					{
      	          				   		padre.forms[i].elements[j].value="OFF";
		                  		   		padre.forms[i].elements[j].checked=false;
				                	}	
	   						break;
	   					   case "select-one" : 
							padre.forms[i].elements[j].selectedIndex=valor_cookie;
							break;
						   default : 
							padre.forms[i].elements[j].value=valor_cookie;
						}

					}
				}
			}
		}
      	 SetCookie("anterior","no",null,"/"); 
	}
}
function salvar_campos()
{
	var i=0;
	var j=0;
	var k=0;
	var num_capas=0;
	var ns = (document.layers)? true:false;
	var padre;


	if (ns)
	{
		num_capas=window.document.layers.length;
	}
	else
	{
		num_capas=1; // Si es explorer no hay vector layers
	}
	for (k=0;k<num_capas;k++)
	{
		if (ns)
		{
			padre=window.document.layers[k].document;
		}
		else
		{
			padre=window.document;
		}
		
		for (i=0;i<padre.forms.length;i++)
		{
			for (j=0;j<padre.forms[i].elements.length;j++)
			{
				nom_cookie="campo"+k+"_"+i+"_"+j;
				valor=GetCookie(nom_cookie);
				if (valor)
				{
			      		SetCookie(nom_cookie,"",null,"/"); 
					DeleteCookie(nom_cookie);
				}
				switch (padre.forms[i].elements[j].type)
				{
   					case "checkbox" : 
   					     	SetCookie(nom_cookie,padre.forms[i].elements[j].checked,null,"/");
	   					break;
	   				case "select-one" : 
						SetCookie(nom_cookie,padre.forms[i].elements[j].selectedIndex,null,"/");
						break;
				      	default : 
			       			if (padre.forms[i].elements[j].value && padre.forms[i].elements[j].type!="hidden")
							SetCookie(nom_cookie,padre.forms[i].elements[j].value,null,"/");
				}
			}
		}
	}
}


