// JavaScript Document
var ventana;
var timer_loading;

function loading(show)
{
	window.clearTimeout(timer_loading);
	if(show)
	{
		document.getElementById("loading").style.display = "block";
	}
	else
	{
		document.getElementById("loading").style.display = "none";
	}
}

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)
{
	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 doStandardAjax(strURL, datos, refershFunction)
{	
	//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 la funcion de standardRefresh();
	xmlHttpReq.onreadystatechange = refershFunction;
	//Ejecutamos el envio de datos con los datos almacenados en la variable datos
    	xmlHttpReq.send(datos);
}

function doStandardBasicAjax(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');
	//Se ejecutara la funcion de standardRefresh();
	xmlHttpReq.onreadystatechange = standardBasicRefresh;
	//Ejecutamos el envio de datos con los datos almacenados en la variable datos
    xmlHttpReq.send(datos);
}


function standardBasicRefresh()
{
	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);
		}
	}
}
var ajaxIdBlock = "ajaxText";
function seccion(strURL, data, ajaxId)
{
	if(arguments.length==3)
	{
		ajaxIdBlock = ajaxId;
	}
	if(arguments.length==1)
	{
		data = "";
	}
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest)
	{
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject)
	{
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', "secciones/"+strURL+".php", true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function()
	{
        if (self.xmlHttpReq.readyState == 4)
		{
            updatepage(self.xmlHttpReq.responseText);
        }
    }
    //loading(true);
    timer_loading = window.setTimeout('loading(true)', 3000);
    self.xmlHttpReq.send(data);
}


function updatepage(text)
{
	/*
	javascript_open_header = "<script ";
	searchjs = text.split(javascript_open_header);
	for (var id in searchjs)
	{
		jsscript=searchjs[id];
		js_found = jsscript.indexOf("type=\"text/javascript\">");
		if(js_found!=-1)
		{
			js_end = jsscript.indexOf("</script>");
			jsscript=jsscript.substring(js_found+24, js_end);
			try
			{
				eval(jsscript);
			}
			catch(e)
			{
			}
		}
		
	}

	
	// Creo el nuevo JS
//	var etiquetaScript=document.createElement("script");
//	document.getElementsByTagName("head")[0].appendChild(etiquetaScript);
//	etiquetaScript.text=javascript; 
*/
	loading(false);	
	document.getElementById(ajaxIdBlock).innerHTML = text;
	ajaxIdBlock = "ajaxText";
}

////////////////////// 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;
	}
}

var previousElement = null;
function editLink(evento, url, id, element)
{
	var target = (window.event) ? evento.srcElement : evento.target;
	//Idealmente: target instanceof HTMLTableCellElement  pero el puto IE no sabe hacerlo....
	if(target.tagName.toLowerCase()=="td")
	{
		if(previousElement != element)
		{
			if(previousElement!=null)
				previousElement.className=previousElement.className.replace(/tr_selected/, " ");
			element.className+=' tr_selected';
			previousElement = element;	
		}
		else
		{
			window.location = url;
		}
	}
}


/** 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 */

function zerofill(number, length) {
    // Setup
    var result = number.toString();
    var pad = length - result.length;

    while(pad > 0) {
        result = '0' + result;
        pad--;
    }

    return result;
}

function goto(url)
{
	window.location = url;
}

// F. Permadi May 2000
function getFlashMovieObject(movieName)
{
  if (window.document[movieName]) 
  {
    return window.document[movieName];
  }
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName]; 
  }
  else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
    return document.getElementById(movieName);
  }
}
