// JavaScript Document
var ventana;

function enviaFormulario(form_id, validation)
{
	continuar = true;
	if(arguments.length==2)
	{
		continuar = eval(validation);
	}
	if(continuar)
	{
		document.getElementById(form_id).submit();
	}
}

function reseteaFormulario(form_id)
{
	document.getElementById(form_id).reset();
}

/* Function de cambiar el idioma */
function cambiaLang(language)
{
	actualizaCookieIdioma(language);
	QueryString.set("l", language);
	QueryString.go();
}

//////////////		AJAX-BASICO		/////////////////////////

var xmlHttpReq;

function doRequestObject() 
{
	var http_request = false;
	// Mozilla, Safari,...
	if (window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType)
		{
			http_request.overrideMimeType('text/xml');
		}
	}
	// IE
	else if (window.ActiveXObject)
	{
		try
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {}
		}
	}
	if (!http_request)
	{
		alert('Cannot create XMLHTTP instance');
		return false;
	}
	return http_request;
}

// Prepara un dato para enviar al servidor
function prepareAjaxVariableToSend(id)
{
    return id+'='+escape(document.getElementById(id).value);
}

function prepareAjaxVariableToSendFromPopup(id)
{
    return id+'='+escape(window.opener.document.getElementById(id).value);
}

// Prepara un dato para enviar al servidor
function prepareAjaxCheckBoxToSend(id)
{
    return id+'='+escape(document.getElementById(id).checked);
}

// Prepara un dato para enviar al servidor (value = key)
function prepareAjaxSelectToSend(id)
{
    return id+'='+escape(document.getElementById(id).options[document.getElementById(id).selectedIndex].value);
}

// Prepara un dato para enviar al servidor (texto)
function prepareAjaxSelectTextToSend(id)
{
    return id+'='+escape(document.getElementById(id).options[document.getElementById(id).selectedIndex].text);
}

function getMessage(xmldoc)
{
	var code = -1;
	var message = "Error general";
	try
	{
		code = xmldoc.getElementsByTagName('code').item(0).childNodes.item(0).data;
		message = xmldoc.getElementsByTagName('message').item(0).firstChild.data;
	}
	catch(e)
	{
	}
	return new Array(code, message);
}

function doStandardAjaxRFN(strURL, datos, refreshFunctionName)
{	
	//Preparamos el objeto de ajax para enviar datos
    xmlHttpReq = doRequestObject();
	//Preparamos el tipo de envio
    xmlHttpReq.open('POST', strURL, true);
	//Establecemos cabezeras
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	//Se ejecutara el nombre de la funcion que esta en refreshFunctionName;
	xmlHttpReq.onreadystatechange = eval(refreshFunctionName);
	//Ejecutamos el envio de datos con los datos almacenados en la variable datos
    xmlHttpReq.send(datos);
}

function doStandardAjax(strURL, datos)
{	
	//Preparamos el objeto de ajax para enviar datos
    xmlHttpReq = doRequestObject();
	//Preparamos el tipo de envio
    xmlHttpReq.open('POST', strURL, true);
	//Establecemos cabezeras
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	//xmlHttpReq.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
	//Se ejecutara la funcion de standardRefresh();
	xmlHttpReq.onreadystatechange = standardRefresh;
	//Ejecutamos el envio de datos con los datos almacenados en la variable datos
    xmlHttpReq.send(datos);
}


function standardRefresh()
{
	if (xmlHttpReq.readyState == 4)
	{
		if (xmlHttpReq.status == 200)
		{
			var xmldoc = xmlHttpReq.responseXML;
			//document.write(xmlHttpReq.responseText);
			var messageArray = getMessage(xmldoc);
			var code = messageArray[0];
			var message = messageArray[1];
			if(code<0)
			{
				alert(message);
			}
			//location.reload(true);
		}
	}
}

////////////////////// FIN DE AJAX-BASICO /////////////////////////////

function limitText(string, limit, classBody, stringHeader, classHeader)
{
	switch(arguments.length)
	{
		case 1:
		{
			limit=20;
		}
		case 2:
		{
			classBody="dvbdy1";
		}
		case 3:
		{
			stringHeader="";
		}
		case 4:
		{	
			classHeader="dvhdr1";
			break;
		}
		default:
		{
			limit=20;
			classBody="dvbdy1";
			stringHeader="";
			classHeader="dvhdr1";
			break;
		}
	}
	
	if(string.length<=limit)
	{
		return string;
	}
	else
	{
		return boxOver(string.substr(0, limit-3)+"...", string, classBody, stringHeader, classHeader);
	}
}

function boxOver(string, stringBody, classBody, stringHeader, classHeader)
{
	
	switch(arguments.length)
	{
		case 1:
		{
			classBody="dvbdy1";
		}
		case 2:
		{
			stringHeader="";
		}
		case 3:
		{	
			classHeader="dvhdr1";
			break;
		}
		default:
		{
			classBody="dvbdy1";
			stringHeader="";
			classHeader="dvhdr1";
			break;
		}
	}
	
	return "<span title='cssbody=["+classBody+"] cssheader=["+classHeader+"] header=["+stringHeader+"] body=["+stringBody+"]'>"+string+"</span>";
}

function confirma(mensaje, enlace)
{
	if(confirm(mensaje))
	{
		window.location=enlace;
	}
}


/** Gestion de Cookies */
function get_cookie(Name)
{
  var search = Name + "="
  var returnvalue = "";
  if (document.cookie.length > 0)
  {
    offset = document.cookie.indexOf(search)
    if (offset != -1)
    {
      offset += search.length
      end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      returnvalue=unescape(document.cookie.substring(offset, end))
    }
  }
  return returnvalue;
}


function set_cookie(name, value, expires)
{
  document.cookie = name + "=" + escape(value) + "; path=/" + ((expires == null) ? "" : "; expires=" + expires.toGMTString());
} 


function delCookie (name,path,domain) {
  if (get_cookie(name)) {
    document.cookie = name + "=" +
    ((path == null) ? "" : "; path=" + path) +
    ((domain == null) ? "" : "; domain=" + domain) +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

function prepareExpireDate(time_in_minutes)
{
	var expirebar = new Date();
  	expirebar.setTime(expirebar.getTime() + (1000 * 60 * time_in_minutes));
	return expirebar;
}

/** Fin de Gestion de Cookies */

window.onscroll = function (e)
{
		if(document.getElementById("bloqueo")!=null)
		{
			document.getElementById("bloqueo").style.top = document.body.scrollTop;
			/*document.body.scrollTop = 0;*/
		}
}

function getLang()
{
	if (navigator.userAgent.indexOf("Opera")!=-1)
	{
		language=navigator.language;
	}
	else
	{ 
		if (navigator.appName == "Netscape")
		{
			language=navigator.language;
		}
		else
		{
			language=navigator.browserLanguage
		}
	}

	if (language)
	{
		return language.substring(0,2).toLowerCase();
	}
	return "es";
}

/*
function onLoad(functionList)
{
	var functions = functionList.split(","); 
	for(i=0; i<functions.length; i++)
	{
		eval(functions[i])
	}
}
*/

function actualizaCookieIdioma(lang)
{
		delCookie("idioma");
		set_cookie("idioma", lang, prepareExpireDate(60*24*365));
}

function get(variable, defecto)
{
		cadVariables = location.search.substring(1,location.search.length);
		arrVariables = cadVariables.split("&");
		for (i=0; i<arrVariables.length; i++)
		{
		  arrVariableActual = arrVariables[i].split("=");
		  if(variable==arrVariableActual[0])
		  {
				return arrVariableActual[1];  
		  }
		 
		}
		return defecto;

}

function cargaIdioma()
{
	//Cargamos el idioma que desea el usuario
	var lang = get_cookie('idioma');
	//Si aun no ha elegido ningun idioma, procesamos el de por defecto del navegador
	if (get_cookie('idioma')=="")
	{
		lang = getLang();
		set_cookie("idioma", lang, prepareExpireDate(60 * 24 * 365));
	}	

	if(get("l", "es")!=lang)
	{
		window.location="index.php?l="+lang;
	}
}

