
////////////////////////////////////////////////////////////////////
// Función que borra un campo de formulario
// Parámeros de entrada :
//			formulario - nombre del formulario que contiene el campo
//			campo - nombre del campo de formulario a borrar
////////////////////////////////////////////////////////////////////

function BorrarCampoFormulario(formulario,campo) {
	document.forms[formulario].elements[campo].value="";
}

////////////////////////////////////////////////////////////////////
// Función que escribe la fecha actual en el documento
////////////////////////////////////////////////////////////////////

function FechaActual() {

	var meses = new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
	var dias = new Array('Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Viernes','S&aacute;bado');
	var ahora = new Date();
	var anio = ahora.getYear();

	if (anio < 2000) anio = anio + 1900;

	document.write(dias[ahora.getDay()] + " " + ahora.getDate() + " de " + meses[ahora.getMonth()] + " " +" de " + anio);
}

///////////////////////////////////////////////////////////////////////
// Función que salta a una página concreta en el sistema de paginación
// Parámeros de entrada :
//			url - url a la que dirigir tras el cambio de página
//			pagina_actual - número de página actual
//			total_paginas - número total de páginas disponibles
///////////////////////////////////////////////////////////////////////

function saltar_a_pagina(url, pagina_actual, total_paginas) {

	mensaje = "Enter a page number between 1 and " + total_paginas;
	
	if (pagina_actual < total_paginas) {
		mostrar_pagina_destino = pagina_actual + 1;
	}else{
		mostrar_pagina_destino = pagina_actual - 1;
	}
	pagina = prompt( acentos(mensaje), mostrar_pagina_destino);	
	
	if ( pagina > 0  ) {
		if ( pagina < 1 ) { pagina = 1;  }
		if ( pagina > total_paginas ) { pagina = total_paginas; }
	
		window.location = url + pagina;
	}
}


////////////////////////////////////////////////////////////////////
// Función que convierte los acentos de un texto UTF-8 o entidad 
// HTML a su código correspondiente para evitar errores en algunos 
// navegadores o S.O.
// Parámeros de entrada :
//			cadena - contiene de texto a convertir
////////////////////////////////////////////////////////////////////

function acentos(cadena) {
	// version 040623
	// Spanish - Español
	// Portuguese - Portugués
	// Italian - Italiano
	// French - Francés
	// Also accepts and converts single and double quotation marks, square and angle brackets
	// and miscelaneous symbols.
	// Also accepts and converts html entities for all the above.
//	if (navigator.appVersion.toLowerCase().indexOf("windows") != -1) {return cadena}
	cadena = cadena.replace(/¡/g,"\xA1");	cadena = cadena.replace(/&iexcl;/g,"\xA1")
	cadena = cadena.replace(/¿/g,"\xBF");	cadena = cadena.replace(/&iquest;/g,"\xBF")
	cadena = cadena.replace(/À/g,"\xC0");	cadena = cadena.replace(/&Agrave;/g,"\xC0")
	cadena = cadena.replace(/à/g,"\xE0");	cadena = cadena.replace(/&agrave;/g,"\xE0")
	cadena = cadena.replace(/Á/g,"\xC1");	cadena = cadena.replace(/&Aacute;/g,"\xC1")
	cadena = cadena.replace(/á/g,"\xE1");	cadena = cadena.replace(/&aacute;/g,"\xE1")
	cadena = cadena.replace(/Â/g,"\xC2");	cadena = cadena.replace(/&Acirc;/g,"\xC2")
	cadena = cadena.replace(/â/g,"\xE2");	cadena = cadena.replace(/&acirc;/g,"\xE2")
	cadena = cadena.replace(/Ã/g,"\xC3");	cadena = cadena.replace(/&Atilde;/g,"\xC3")
	cadena = cadena.replace(/ã/g,"\xE3");	cadena = cadena.replace(/&atilde;/g,"\xE3")
	cadena = cadena.replace(/Ä/g,"\xC4");	cadena = cadena.replace(/&Auml;/g,"\xC4")
	cadena = cadena.replace(/ä/g,"\xE4");	cadena = cadena.replace(/&auml;/g,"\xE4")
	cadena = cadena.replace(/Å/g,"\xC5");	cadena = cadena.replace(/&Aring;/g,"\xC5")
	cadena = cadena.replace(/å/g,"\xE5");	cadena = cadena.replace(/&aring;/g,"\xE5")
	cadena = cadena.replace(/Æ/g,"\xC6");	cadena = cadena.replace(/&AElig;/g,"\xC6")
	cadena = cadena.replace(/æ/g,"\xE6");	cadena = cadena.replace(/&aelig;/g,"\xE6")
	cadena = cadena.replace(/Ç/g,"\xC7");	cadena = cadena.replace(/&Ccedil;/g,"\xC7")
	cadena = cadena.replace(/ç/g,"\xE7");	cadena = cadena.replace(/&ccedil;/g,"\xE7")
	cadena = cadena.replace(/È/g,"\xC8");	cadena = cadena.replace(/&Egrave;/g,"\xC8")
	cadena = cadena.replace(/è/g,"\xE8");	cadena = cadena.replace(/&egrave;/g,"\xE8")
	cadena = cadena.replace(/É/g,"\xC9");	cadena = cadena.replace(/&Eacute;/g,"\xC9")
	cadena = cadena.replace(/é/g,"\xE9");	cadena = cadena.replace(/&eacute;/g,"\xE9")
	cadena = cadena.replace(/Ê/g,"\xCA");	cadena = cadena.replace(/&Ecirc;/g,"\xCA")
	cadena = cadena.replace(/ê/g,"\xEA");	cadena = cadena.replace(/&ecirc;/g,"\xEA")
	cadena = cadena.replace(/Ë/g,"\xCB");	cadena = cadena.replace(/&Euml;/g,"\xCB")
	cadena = cadena.replace(/ë/g,"\xEB");	cadena = cadena.replace(/&euml;/g,"\xEB")
	cadena = cadena.replace(/Ì/g,"\xCC");	cadena = cadena.replace(/&Igrave;/g,"\xCC")
	cadena = cadena.replace(/ì/g,"\xEC");	cadena = cadena.replace(/&igrave;/g,"\xEC")
	cadena = cadena.replace(/Í/g,"\xCD");	cadena = cadena.replace(/&Iacute;/g,"\xCD")
	cadena = cadena.replace(/í/g,"\xED");	cadena = cadena.replace(/&iacute;/g,"\xED")
	cadena = cadena.replace(/Î/g,"\xCE");	cadena = cadena.replace(/&Icirc;/g,"\xCE")
	cadena = cadena.replace(/î/g,"\xEE");	cadena = cadena.replace(/&icirc;/g,"\xEE")
	cadena = cadena.replace(/Ï/g,"\xCF");	cadena = cadena.replace(/&Iuml;/g,"\xCF")
	cadena = cadena.replace(/ï/g,"\xEF");	cadena = cadena.replace(/&iuml;/g,"\xEF")
	cadena = cadena.replace(/Ñ/g,"\xD1");	cadena = cadena.replace(/&Ntilde;/g,"\xD1")
	cadena = cadena.replace(/ñ/g,"\xF1");	cadena = cadena.replace(/&ntilde;/g,"\xF1")
	cadena = cadena.replace(/Ò/g,"\xD2");	cadena = cadena.replace(/&Ograve;/g,"\xD2")
	cadena = cadena.replace(/ò/g,"\xF2");	cadena = cadena.replace(/&ograve;/g,"\xF2")
	cadena = cadena.replace(/Ó/g,"\xD3");	cadena = cadena.replace(/&Oacute;/g,"\xD3")
	cadena = cadena.replace(/ó/g,"\xF3");	cadena = cadena.replace(/&oacute;/g,"\xF3")
	cadena = cadena.replace(/Ô/g,"\xD4");	cadena = cadena.replace(/&Ocirc;/g,"\xD4")
	cadena = cadena.replace(/ô/g,"\xF4");	cadena = cadena.replace(/&ocirc;/g,"\xF4")
	cadena = cadena.replace(/Õ/g,"\xD5");	cadena = cadena.replace(/&Otilde;/g,"\xD5")
	cadena = cadena.replace(/õ/g,"\xF5");	cadena = cadena.replace(/&otilde;/g,"\xF5")
	cadena = cadena.replace(/Ö/g,"\xD6");	cadena = cadena.replace(/&Ouml;/g,"\xD6")
	cadena = cadena.replace(/ö/g,"\xF6");	cadena = cadena.replace(/&ouml;/g,"\xF6")
	cadena = cadena.replace(/Ø/g,"\xD8");	cadena = cadena.replace(/&Oslash;/g,"\xD8")
	cadena = cadena.replace(/ø/g,"\xF8");	cadena = cadena.replace(/&oslash;/g,"\xF8")
	cadena = cadena.replace(/Ù/g,"\xD9");	cadena = cadena.replace(/&Ugrave;/g,"\xD9")
	cadena = cadena.replace(/ù/g,"\xF9");	cadena = cadena.replace(/&ugrave;/g,"\xF9")
	cadena = cadena.replace(/Ú/g,"\xDA");	cadena = cadena.replace(/&Uacute;/g,"\xDA")
	cadena = cadena.replace(/ú/g,"\xFA");	cadena = cadena.replace(/&uacute;/g,"\xFA")
	cadena = cadena.replace(/Û/g,"\xDB");	cadena = cadena.replace(/&Ucirc;/g,"\xDB")
	cadena = cadena.replace(/û/g,"\xFB");	cadena = cadena.replace(/&ucirc;/g,"\xFB")
	cadena = cadena.replace(/Ü/g,"\xDC");	cadena = cadena.replace(/&Uuml;/g,"\xDC")
	cadena = cadena.replace(/ü/g,"\xFC");	cadena = cadena.replace(/&uuml;/g,"\xFC")
	
	cadena = cadena.replace(/\"/g,"\x22")
	cadena = cadena.replace(/\'/g,"\x27")
	cadena = cadena.replace(/\</g,"\x3C")
	cadena = cadena.replace(/\>/g,"\x3E")
	cadena = cadena.replace(/\[/g,"\x5B")
	cadena = cadena.replace(/\]/g,"\x5D")

	cadena = cadena.replace(/¢/g,"\xA2");	cadena = cadena.replace(/&cent;/g,"\xA2") 
	cadena = cadena.replace(/£/g,"\xA3");	cadena = cadena.replace(/&pound;/g,"\xA3")
	cadena = cadena.replace(/€/g,"\u20AC");	cadena = cadena.replace(/&euro;/g,"\u20AC") 
	cadena = cadena.replace(/©/g,"\xA9");	cadena = cadena.replace(/&copy;/g,"\xA9") 
	cadena = cadena.replace(/®/g,"\xAE");	cadena = cadena.replace(/&reg;/g,"\xAE") 
	cadena = cadena.replace(/ª/g,"\xAA");	cadena = cadena.replace(/&ordf;/g,"\xAA") 
	cadena = cadena.replace(/º/g,"\xBA");	cadena = cadena.replace(/&ordm;/g,"\xBA") 
	cadena = cadena.replace(/°/g,"\xB0");	cadena = cadena.replace(/&deg;/g,"\xB0") 
	cadena = cadena.replace(/±/g,"\xB1");	cadena = cadena.replace(/&plusmn;/g,"\xB1")
	cadena = cadena.replace(/×/g,"\xD7");	cadena = cadena.replace(/&times;/g,"\xD7") 
	
	return cadena;
}


function confirmarSubmit() {
	if (confirm("¿ Está seguro ?")) {
		return true;
	}else{
		return false;
	}
}


///////////////////////////////////////////////////////////////////
// Función que valida un email usando una expresion regular      //
// Devuelve true si es un mail válido, y false en caso contrario //
// Parámeros de entrada :                                        //
//			cadena - el email a validar              //
///////////////////////////////////////////////////////////////////


function validaEmail(cadena) {
	var patron = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;

	if ((cadena.length!=0)&&(patron.test(cadena))) {
		return true;
	}else{
		return false;
	}
}

function validaUsuario(cadena,minlen,maxlen) {
	var patron = eval("/^[_A-Za-z0-9]{" + minlen + "}/");

	if ((cadena.length<=maxlen)&&(patron.test(cadena))) {
		return true;
	}else{
		return false;
	}
}

function validaPassword(cadena,minlen,maxlen) {
	var patron = eval("/^[_A-Za-z0-9]{" + minlen + "}/");

	if ((cadena.length<=maxlen)&&(patron.test(cadena))) {
		return true;
	}else{
		return false;
	}
}


function validaNombreFichero(cadena,minlen,maxlen) {
	var patron = eval("/^[_A-Za-z0-9]{" + minlen + "}/");

	if ((cadena.length<=maxlen)&&(patron.test(cadena))) {
		return true;
	}else{
		return false;
	}
}

function validaNumerico(cadena,minlen,maxlen,permiteNulo) {
	var patron = eval("/^[0-9]{" + minlen + "}/");

	if (((cadena.length<=maxlen)&&(patron.test(cadena))) || ((cadena.length==0) && permiteNulo)) {
		return true;
	}else{
		return false;
	}
}

function validaNumericoDecimal(cadena,minlen,maxlen,permiteNulo) {
	var patron = eval("/^[0-9]+(\.[0-9]{2})/");

	if (((cadena.length<=maxlen)&&(cadena.length>=minlen)&&(patron.test(cadena))) || ((cadena.length==0) && permiteNulo)) {
		return true;
	}else{
		return false;
	}
}

//function validaNombre(cadena,minlen,maxlen) {
//	var patron = /^[a-zA-Záéíóú\ ]*$/;	
//
//	if ((cadena.length!=0)&&(cadena.length>=minlen)&&(cadena.length<=maxlen)&&(patron.test(cadena))) {
//		return true;
//	}else{
//		return false;
//	}
//}

function validaTexto(cadena,minlen,maxlen) {

	if ((cadena.length!=0)&&(cadena.length>=minlen)&&(cadena.length<=maxlen)) {
		return true;
	}else{
		return false;
	}
}

function validaFecha(cadena) {
	var patron = /(\d{2})-(\d{2})-(\d{4})/;

	if ((patron.test(cadena))) {
		return true;
	}else{
		return false;
	}
}


//**********************************************************************
//  BEGIN MODAL DIALOG CODE (can also be loaded as external .js file)
//***********************************************************************/
// Global for brower version branching.
var Nav4 = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))

// One object tracks the current modal dialog opened from this window.
var dialogWin = new Object()

// Generate a modal dialog.
// Parameters:
//    url -- URL of the page/frameset to be loaded into dialog
//    width -- pixel width of the dialog window
//    height -- pixel height of the dialog window
//    returnFunc -- reference to the function (on this page)
//                  that is to act on the data returned from the dialog
//    args -- [optional] any data you need to pass to the dialog
function openDGDialog(url, width, height, returnFunc, args) {
	if (!dialogWin.win || (dialogWin.win && dialogWin.win.closed)) {
		// Initialize properties of the modal dialog object.
		dialogWin.returnFunc = returnFunc
		dialogWin.returnedValue = ""
		dialogWin.args = args
		dialogWin.url = url
		dialogWin.width = width
		dialogWin.height = height
		// Keep name unique so Navigator doesn't overwrite an existing dialog.
		dialogWin.name = (new Date()).getSeconds().toString()
		// Assemble window attributes and try to center the dialog.
		if (Nav4) {
			// Center on the main window.
			dialogWin.left = window.screenX + 
			   ((window.outerWidth - dialogWin.width) / 2)
			dialogWin.top = window.screenY + 
			   ((window.outerHeight - dialogWin.height) / 2)
			var attr = "screenX=" + dialogWin.left + 
			   ",screenY=" + dialogWin.top + ",resizable=no,width=" + 
			   dialogWin.width + ",height=" + dialogWin.height
		} else {
			// The best we can do is center in screen.
			dialogWin.left = (screen.width - dialogWin.width) / 2
			dialogWin.top = (screen.height - dialogWin.height) / 2
			var attr = "left=" + dialogWin.left + ",top=" + 
			   dialogWin.top + ",resizable=no,width=" + dialogWin.width + 
			   ",height=" + dialogWin.height
		}
		
		// Generate the dialog and make sure it has focus.
		dialogWin.win=window.open(dialogWin.url, dialogWin.name, attr)
		dialogWin.win.focus()
	} else {
		dialogWin.win.focus()
	}
}

// Event handler to inhibit Navigator form element 
// and IE link activity when dialog window is active.
function deadend() {
	if (dialogWin.win && !dialogWin.win.closed) {
		dialogWin.win.focus()
		return false
	}
}

// Since links in IE4 cannot be disabled, preserve 
// IE link onclick event handlers while they're "disabled."
// Restore when re-enabling the main window.
var IELinkClicks

// Disable form elements and links in all frames for IE.
function disableForms() {
	IELinkClicks = new Array()
	for (var h = 0; h < frames.length; h++) {
		for (var i = 0; i < frames[h].document.forms.length; i++) {
			for (var j = 0; j < frames[h].document.forms[i].elements.length; j++) {
				frames[h].document.forms[i].elements[j].disabled = true
			}
		}
		IELinkClicks[h] = new Array()
		for (i = 0; i < frames[h].document.links.length; i++) {
			IELinkClicks[h][i] = frames[h].document.links[i].onclick
			frames[h].document.links[i].onclick = deadend
		}
		frames[h].window.onfocus = checkModal
    	frames[h].document.onclick = checkModal
	}
}

// Restore IE form elements and links to normal behavior.
function enableForms() {
	for (var h = 0; h < frames.length; h++) {
		for (var i = 0; i < frames[h].document.forms.length; i++) {
			for (var j = 0; j < frames[h].document.forms[i].elements.length; j++) {
				frames[h].document.forms[i].elements[j].disabled = false
			}
		}
		for (i = 0; i < frames[h].document.links.length; i++) {
			frames[h].document.links[i].onclick = IELinkClicks[h][i]
		}
	}
}

// Grab all Navigator events that might get through to form
// elements while dialog is open. For IE, disable form elements.
function blockEvents() {
	if (Nav4) {
		window.captureEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS)
		window.onclick = deadend
	} else {
		disableForms()
	}
	window.onfocus = checkModal
}
// As dialog closes, restore the main window's original
// event mechanisms.
function unblockEvents() {
	if (Nav4) {
		window.releaseEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS)
		window.onclick = null
		window.onfocus = null
	} else {
		enableForms()
	}
}

// Invoked by onFocus event handler of EVERY frame,
// return focus to dialog window if it's open.
function checkModal() {
	setTimeout("finishChecking()", 50)
	return true
}

function finishChecking() {
	if (dialogWin.win && !dialogWin.win.closed) {
		dialogWin.win.focus() 
	}
}
//**************************
//  END MODAL DIALOG CODE
//**************************/

// Function to run upon closing the dialog with "OK".
function setPrefs() {
	// We're just displaying the returned value in a text box.
	//document.returned.searchURL.value = dialogWin.returnedValue
	return true;
}


// PARA LOS DIVS EMERGENTES DE LA TIENDA

var viewport = {
  getWinWidth: function () {
    this.width = 0;
    if (window.innerWidth) this.width = window.innerWidth - 18;
    else if (document.documentElement && document.documentElement.clientWidth) 
  		this.width = document.documentElement.clientWidth;
    else if (document.body && document.body.clientWidth) 
  		this.width = document.body.clientWidth;
  },
  
  getWinHeight: function () {
    this.height = 0;
    if (window.innerHeight) this.height = window.innerHeight - 18;
  	else if (document.documentElement && document.documentElement.clientHeight) 
  		this.height = document.documentElement.clientHeight;
  	else if (document.body && document.body.clientHeight) 
  		this.height = document.body.clientHeight;
  },
  
  getScrollX: function () {
    this.scrollX = 0;
  	if (typeof window.pageXOffset == "number") this.scrollX = window.pageXOffset;
  	else if (document.documentElement && document.documentElement.scrollLeft)
  		this.scrollX = document.documentElement.scrollLeft;
  	else if (document.body && document.body.scrollLeft) 
  		this.scrollX = document.body.scrollLeft; 
  	else if (window.scrollX) this.scrollX = window.scrollX;
  },
  
  getScrollY: function () {
    this.scrollY = 0;    
    if (typeof window.pageYOffset == "number") this.scrollY = window.pageYOffset;
    else if (document.documentElement && document.documentElement.scrollTop)
  		this.scrollY = document.documentElement.scrollTop;
  	else if (document.body && document.body.scrollTop) 
  		this.scrollY = document.body.scrollTop; 
  	else if (window.scrollY) this.scrollY = window.scrollY;
  },
  
  getAll: function () {
    this.getWinWidth(); this.getWinHeight();
    this.getScrollX();  this.getScrollY();
  }
  
}


var menuLayers = {
  timer: null,
  activeMenuID: null,
  offX: 0,   // horizontal offset 
  offY: 0,   // vertical offset 
  show: function(id, e) {
    var mnu = document.getElementById? document.getElementById(id): null;
    if (!mnu) return;
    this.activeMenuID = id;
    if ( mnu.onmouseout == null ) mnu.onmouseout = this.mouseoutCheck;
    if ( mnu.onmouseover == null ) mnu.onmouseover = this.clearTimer;
    viewport.getAll();
    this.position(mnu,e);
  },
  
  hide: function() {
    this.clearTimer();
    if (this.activeMenuID && document.getElementById) 
      this.timer = setTimeout("document.getElementById('"+menuLayers.activeMenuID+"').style.visibility = 'hidden'", 200);
  },
  
  position: function(mnu, e) {
    var x = e.pageX? e.pageX: e.clientX + viewport.scrollX;
    var y = e.pageY? e.pageY: e.clientY + viewport.scrollY;
    
    if ( x + mnu.offsetWidth + this.offX > viewport.width + viewport.scrollX )
      x = x - mnu.offsetWidth - this.offX;
    else x = x + this.offX;
  
    if ( y + mnu.offsetHeight + this.offY > viewport.height + viewport.scrollY )
      y = ( y - mnu.offsetHeight - this.offY > viewport.scrollY )? y - mnu.offsetHeight - this.offY : viewport.height + viewport.scrollY - mnu.offsetHeight;
    else y = y + this.offY;
    
    mnu.style.left = x + "px"; mnu.style.top = y + "px";
    this.timer = setTimeout("document.getElementById('" + menuLayers.activeMenuID + "').style.visibility = 'visible'", 200);
  },
  
  mouseoutCheck: function(e) {
    e = e? e: window.event;
    // is element moused into contained by menu? or is it menu (ul or li or a to menu div)?
    var mnu = document.getElementById(menuLayers.activeMenuID);
    var toEl = e.relatedTarget? e.relatedTarget: e.toElement;
    if ( mnu != toEl && !menuLayers.contained(toEl, mnu) ) menuLayers.hide();
  },
  
  // returns true of oNode is contained by oCont (container)
  contained: function(oNode, oCont) {
    if (!oNode) return; // in case alt-tab away while hovering (prevent error)
    while ( oNode = oNode.parentNode ) 
      if ( oNode == oCont ) return true;
    return false;
  },

  clearTimer: function() {
    if (menuLayers.timer) clearTimeout(menuLayers.timer);
  }
  
}


function RemoveInvalidChars(theinput, pattern) {
	reg = new RegExp(pattern, 'g');
	newstring = theinput.value.replace(reg, '');
	// only update the input if invalid chars have been replaced
	// to avoid annoying behavior (e.g. moving cursor to end of text)
	if (newstring != theinput.value) {
		theinput.value = newstring;
	}
	return true;
}


////////////////////////////////////////////////////////////////////
// Missing lists
////////////////////////////////////////////////////////////////////

function validaCheckboxes(formulario) {

	for (var i=0;i<formulario.elements.length;i++) {
		var e = formulario.elements[i];
	    if (e.type=='checkbox') {
	    	// si alguno está marcado salgo OK
    		if (e.checked) return true;
    	}
	}
	
	// si llego aquí es que ninguno está marcado, y salgo NO OK
	alert("You must check at least one option ! \r\n \r\n ¡ Debes marcar al menos una opción !");
	return false;
	
}	


////////////////////////////////////////////////////////////////////
// AJAX Downloads
////////////////////////////////////////////////////////////////////

var ajax;

function objetoAjax(){
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
		   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
  		}
	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

var prevHTML = "";
var prevText = "";

function getFile(fileId) {
    prevHTML = document.getElementById("file" + fileId).innerHTML;
    if(document.all){
        prevText = document.getElementById("file" + fileId).innerText;
    } else{
        prevText = document.getElementById("file" + fileId).textContent;
    }    
    document.getElementById("file" + fileId).innerHTML = prevText;
    document.location = "download.php?file=" + fileId;
}

////////////////////////////////////////////////////////////////////
// AJAX - Report broken link en downloads
////////////////////////////////////////////////////////////////////

var processingPic= new Image; 
processingPic.src="/imagenes/processing.gif"; 
var okPic= new Image; 
okPic.src="/imagenes/ok.gif"; 
var noOkPic = new Image; 
noOkPic.src="/imagenes/nook.gif"; 

function xmlhttpPost(imgID,sistema,dat) {
    //document.getElementById(imgID).src = "/imagenes/processing.gif";
    document.getElementById(imgID).src = processingPic.src;
    var xmlHttpReq = false;
    var self = this;
    var strURL = "/modulos/reportBrokenLink.php";
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            updateImage(imgID,self.xmlHttpReq.responseText);
        }
    }
    self.xmlHttpReq.send("imgID="+imgID+"&sistema="+sistema+"&dat="+dat);
}

function updateImage(imgID,str){
	if (str=="ok") {
    	document.getElementById(imgID).src = okPic.src;
	}else{
		document.getElementById(imgID).src = noOkPic.src;		
	}
}