	/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 
	   + @uthor:	       Manuel Merino Marín						   + 
	   + Creation:	       30/06/2005								   + 
	   + Last modified:	   16/11/2005 by Manolo	        	           + 
	   + Description:      Fichero de Funciones JavaScript Comunes     +
	   + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */


/* Funciones validación formularios */
var whitespace = " \t\n\r";
var reWhitespace = /^\s+$/

//valida el buscador de compras
function enviaBuscarCompras(formu){
	if (formu.search.value.length < 3){
		alert("Informe al menos 3 carácteres para la búsqueda.");
		formu.search.focus();
		return false;
	}
	if (formu.categorias.value.length < 3){
		alert("Informe la categoría para acotar la búsqueda.");
		formu.categorias.focus();
		return false;
	}
	formu.submit();
}

//recarga la pagina con opciones de ordenacion
function ordenaPagina(valor){
	formu=document.ordenar;
	var a=valor;
	document.location.href=a;
}

/**
 * Verifica que no este vacio
 */
function isEmpty(s){   
	return ((s == null) || (s.length == 0)) 
}

/**
 * Verifica que no sean espacios en blanco
 */
function isWhitespace (s){
    return (isEmpty(s) || reWhitespace.test(s));
}


var hostTmp="http://www.interbusca.com";
var subhostTmp="interbusca.com";

function enviaBuscar(formu){
	var a=formu.type;
	if (formu.search.value.length < 3){
		alert("Informe al menos 3 caracteres para la búsqueda.");
		return false;
	}

	for (i=0; i < a.length; i++){
		if (a[i].checked)
			tipo=a[i].value;
	}

	switch(tipo){
		case 'web':
			var dir="http://buscar."+subhostTmp+"/?type=web&search="+formu.search.value;
			break;

		case 'news':

			//var dir="http://buscar."+subhostTmp+"/?type=news&search="+formu.search.value;
			//var dir="http://noticias."+subhostTmp+"/archivo/noticias-todas-"+URLEncodeValue(trimAll(formu.search.value))+"/";
			var dir="http://noticias.interbusca.com/archivo/noticias-todas-"+formu.search.value+"/";
			break;


		case 'directorio':

			var dir="http://buscar."+subhostTmp+"/?type=directorio&search="+formu.search.value;

			//var dir="http://directorio."+subhostTmp+"/buscador/"+URLEncodeValue(trimAll(formu.search.value))+"/";

			break;

		case 'images':
			var dir="http://buscar."+subhostTmp+"/?type=images&search="+formu.search.value;
			break;

		case 'compras':
//			var dir="http://buscar."+subhostTmp+"/?type=compras&search="+formu.search.value;
			var dir="http://compras.interbusca.com/buscar/"+formu.search.value+"/";
			break;

		default:
			var dir="http://buscar."+subhostTmp+"/?type=web&search="+formu.search.value;
			break;
	}
	document.location.href=dir;
}

//valida que la fecha tenga un formato correcto
function validaFecha(varFecha){
	var defaultMensajeFechas = true;
/* Recogemos si queremos o no sacar mensaje */
if (validaFecha.arguments.length == 1)
	b_mensaje = defaultMensajeFechas;
	else
	b_mensaje = (validaFecha.arguments[1]==true);

//comprueba el tipo de separador del dia, mes y año de la fecha
if(varFecha.search("[/]")!=-1)
	varA=varFecha.split("/");
else if(varFecha.search("-")!=-1)
	varA=varFecha.split("-");
else if(varFecha.search("[.]")!=-1)
	varA=varFecha.split(".");
else {
	if (b_mensaje)
		alert("Formato de fecha incorrecto");
	return null;
	}
// si no hay tres elementos es que la fecha es incorrecta
if(varA.length!=3){
	if (b_mensaje)
		alert("Separadores de fecha incorrectos");
	return null;
	}
varAux= new Date();

varAux.setFullYear(varA[2]);
varAux.setMonth(varA[1]-1);//		 los meses son desde 0 a 11
varAux.setDate(varA[0]);

if((varA[0]==varAux.getDate())&&(varA[1]==varAux.getMonth()+1)&&(varA[2]==varAux.getFullYear())){
	return new Date((varAux.getMonth()+1)+"/"+varAux.getDate()+"/"+varAux.getFullYear());
	}
	else{
	if (b_mensaje)
		alert("Fecha no válida");
	return null;
	}

}


// Validación de moneda
function validaMoneda(valor, moneda, formu){
	if (moneda == 1){
		if (valor == formu.moneda2.value){
			alert("No puede seleccionar la misma divisa.");
			formu.moneda1.value="";
		}
	}else{
		if (valor == formu.moneda1.value){
			alert("No puede seleccionar la misma divisa.");
			formu.moneda2.value="";
		}
	}
}


/* codifica parametro para objetos */
function URLEncode(obj)
{
	// The Javascript escape and unescape functions do not correspond
	// with what browsers actually do...
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	var plaintext = obj.value;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    alert( "Unicode Character '" 
                        + ch 
                        + "' cannot be encoded using standard URL encoding.\n" +
				          "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for
	return obj.value;
}



/* codifica parametro para valores */
function URLEncodeValue(obj)
{
	// The Javascript escape and unescape functions do not correspond
	// with what browsers actually do...
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	var plaintext = obj;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    alert( "Unicode Character '" 
                        + ch 
                        + "' cannot be encoded using standard URL encoding.\n" +
				          "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for
	return encoded;
}

function trimAll(sString) 
{
	while (sString.substring(0,1) == ' '){
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' '){
		sString = sString.substring(0,sString.length-1);
	}
return sString;
}


/* verifica que solo haya un checkbox seleccionado para el buscador de interbusca */
function cambiaMenu2(obj, tupadre){
	obj.style.cursor="hand";
	if (obj.className == "opcion_menu"){
		obj.className ="opcion_menu_over";
	}

	eval("obj = document.getElementById('"+tupadre+"')");
	obj.style.visibility="visible";
	//obj.src=hostTmp+"/images/iconos/flecha_blanca_menu.gif";
}

/* verifica que solo haya un checkbox seleccionado para el buscador de interbusca */
function recambiaMenu2(obj, tupadre){

	if (obj.className == "opcion_menu_over"){
		obj.className ="opcion_menu";
	}

	eval("obj = document.getElementById('"+tupadre+"')");
	//obj.src=hostTmp+"/images/iconos/px_trans.gif";

	//obj.style.cursor="";
	obj.style.visibility="hidden";
}

/* verifica que solo haya un checkbox seleccionado para el buscador de interbusca */
function validaCheck(obj){
	var a=document.getElementsByTagName("input");
	for (i=0; i < a.length; i++){
		//alert(a[i].type);
		if (a[i].type == "checkbox"){
			a[i].checked=false;
		}
		obj.checked=true;
	}
}

/**
 * Valida un email mediante expresiones regulares
 */
function validarEmail(valor) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(valor)){
		return true;
	} else {
		return false;
	}
}


/* muestra un popup listo para imprimir, sin menus y sin nada que moleste */
function imprimir(id, tipo, color, canal){
	var url=hostTmp+"/pop/imprimir-"+color+"/?id="+id+"&tipo="+tipo+"&canal="+canal;
	var popup=window.open(url,"high","width=500,height=800,top=247,left=152,resizable=yes,scrollbars=yes");
	popup.focus();
}

/* muestra un popup para recomendar a un amigo un curso en concreto */
function recomendar(id, tipo, color, canal){
	var url=hostTmp+"/pop/recomendar-"+color+"/?id="+id+"&tipo="+tipo+"&canal="+canal;
	var popup=window.open(url,"high","width=500,height=325,top=247,left=152,resizable=yes,scrollbars=yes");
	popup.focus();
}


/* muestra un popup para mostrar mas informacion acerca de un curso */
function masInfoCurso(id){
	var url="http://www.interbusca.com/pop/formacion/?curso="+id;
	//var url="http://www.interbusca.net/pop/mas-informacion-curso/?id="+id;
	var popup=window.open(url,"high","width=720,height=560,top=247,left=152,resizable=yes,scrollbars=yes");
	popup.focus();
}



/*añade a favoritos la url pasada por parametro */
function addfav(url, desc){

	titulo=desc;
	url=url;
	if(document.all){ // IE 
		// Mozilla Firefox 
		window.external.AddFavorite( url, titulo); 
	}else if (window.sidebar) { 
		window.sidebar.addPanel(titulo, url,"");
	}else if(window.opera && window.print) { // Opera
		return true; 
	}

}

/*carga una nueva url*/
function loadUrl(url){
	document.location.href=url;
}

/*carga una nueva url*/
function loadPop(url){
	window.open(url,"","");
}






//abrePopup para el test de velocidad de ADSL
function abreVentanaTestVelocidad(){

	var a=window.open("http://www.interbusca.com/pop/adsl/test/test1.php", "_blank", "toolbar=no, scrollbars=no, status=no, width=455, height=650, left=152, top=268");
}

//abrePopup para el portscan de ADSL
function abreVentanaPortScan(url){
	var a=window.open(url, "", "toolbar=no, scrollbars=yes, status=no, width=500, height=550, left=152, top=268");
}

//operaciones iniciales javascript
function init(){
	flechaBlancaMenu = new Image(5, 6);
	flechaAmarillaMenu = new Image(5, 6);
	pixTrans = new Image(1, 1);

	flechaBlancaMenu.src=hostTmp+"/images/iconos/flecha_blanca_menu.gif";
	flechaAmarillaMenu.src=hostTmp+"/images/iconos/flecha_amarilla_menu.gif";
	pixTrans.src=hostTmp+"/images/iconos/px_trans.gif";
}

// AJAX
var ie=(document.all) ? 1:0;
var n4=(document.layers) ? 1:0;
var n6=(document.getElementById) ? 1:0;  

var http_request = false;
function makePOSTRequest2(url, parameters) {
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 http_request = new XMLHttpRequest();
	 if (http_request.overrideMimeType) {
		http_request.overrideMimeType('text/xml');
	 }
  } else if (window.ActiveXObject) { // IE
	 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;
  }
  http_request.onreadystatechange = alertContentsVotos2;


  http_request.open('GET', url+"?"+parameters, true);
  //http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  //http_request.setRequestHeader("Content-length", parameters.length);
  //http_request.setRequestHeader("Connection", "close");
  http_request.send(null);
}

function alertContentsVotos2(){
  if (http_request.readyState == 4) {
	 if (http_request.status == 200) {
		result = http_request.responseText;

		document.getElementById("tablaencuesta").style.display="none";
		if(ie){    
			document.all["myspanVotos"].innerHTML=result;
		}else{
			if(n4){
				document.layers["myspanVotos"].innerHTML=result;
			}else{
				if(n6){      
					document.getElementById("myspanVotos").innerHTML=result;
				}
			}
		}
	 } else {
		alert('No se ha podido enviar su votación.');
	 }
  }
}

function Votos(voto){
	var poststr = "votacion="+voto;	
	makePOSTRequest2("http://www.interbusca.com/pop/portada/votos.php", poststr);
}

function validaSubmitDir(obj){
	if (isWhitespace(obj.nombre.value)){
		alert("Por favor introduce tu nombre.");
		obj.nombre.focus();
		return false;
	}

	if(!validarEmail(obj.email.value)){
		alert("Por favor introduce una dirección de email correcta.");
		obj.email.focus();
		return false;
	}

	if (obj.categoria.value == 0){
		alert("Por favor informa la categoría de tu web.");
		obj.categoria.focus();
		return false;
	}


	if (isWhitespace(obj.titulo.value)){
		alert("Por favor introduce el título de tu web.");
		obj.titulo.focus();
		return false;
	}
	if (isWhitespace(obj.url.value)){
		alert("Por favor introduce la url de tu web.");
		obj.url.focus();
		return false;
	}
	if (isWhitespace(obj.descripcion.value)){
		alert("Por favor introduce la descripción de tu web.");
		obj.descripcion.focus();
		return false;
	}
	obj.submit();
}