var ie = (document.all)? true:false;
//if ( ie ) {} else { document.captureEvents(Event.ONCHANGE); }

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

		// ** Añade la funcion innerText al Firefox.
	if ( typeof document.innerText == 'undefined' && typeof document.textContent != 'undefined' ){
		HTMLElement.prototype.__defineGetter__("innerText",function () { return(this.textContent); });
		HTMLElement.prototype.__defineSetter__("innerText",function (txt) { this.textContent = txt; });
	}

		// ** Codigo de la tecla pulsada
	function keyPress(e) {
		if (ie) var Key = event.keyCode
		else var Key = e.which
		return Key;
	}

		// ** Elemento del evento
	function srcElement ( e ) {
		if (window.event) e = window.event;
		var srcEl = e.srcElement? e.srcElement : e.target;
		// srcEl now can be used x-browser.
		// (rest of the script here) }
		return srcEl;
	}


		// ** Añade un extra a una funcion
	function AddToFunction( name, str ) {
		eval ( 'var strtmp = '+name+';' );

		strtmp = strtmp.toString();
		if (is_opera) strtmp = strtmp.substring( 0, strtmp.length - 2 );
		else strtmp = strtmp.substring( 0, strtmp.length - 1 );
		strtmp += str;
		strtmp += '\n }';

		var pos = strtmp.indexOf( "{" )+1;
		strtmp = strtmp.substring( pos, strtmp.length -1 );

		eval( name+' = new Function( "", strtmp );' );
	}

		// ** Añade un extra a una funcion
	function AddToThisFunction( nfunc, str ) {
		strtmp = nfunc;

		strtmp = strtmp.toString();
		if (is_opera) strtmp = strtmp.substring( 0, strtmp.length - 2 );
		else strtmp = strtmp.substring( 0, strtmp.length - 1 );
		strtmp += str;
		strtmp += '\n }';

		var pos = strtmp.indexOf( "{" )+1;
		strtmp = strtmp.substring( pos, strtmp.length -1 );

		nfunc = new Function( "", strtmp );
//		return nfunc;
	}


		// ** Añade un extra al inicio Local
	function AddToOnload( str ) {
		AddToFunction( 'InicioLocal', str );
/*
		strtmp = InicioLocal;

		strtmp = strtmp.toString();
		if (is_opera) strtmp = strtmp.substring( 0, strtmp.length - 2 );
		else strtmp = strtmp.substring( 0, strtmp.length - 1 );
		strtmp += str;
		strtmp += '\n }';

		var pos = strtmp.indexOf( "{" )+1;
		strtmp = strtmp.substring( pos, strtmp.length -1 );

		InicioLocal = new Function( "", strtmp );
*/
	}

// ** Inicio local de la pagina generico
function InicioLocal() {}

	// ** Funcion de inicio Onload
var VarCargarCalendario = 'false';
function Inicio() {
var form = Formulario();
	InicioLocal();
	if ( form ) if ( form.dia ) if ( VarCargarCalendario == 'true' ) {
		var dia = form.dia.value;
		CargarCalendario( dia );
	}
}

	function Formulario() {
		return document.formulario;
	}

function EnviarFormulario() {
var form = Formulario();
	form.submit();
}

	function SubmitForm( form, sec_pk, target, action ) {
	var t_target = form.target;
	var t_action = form.action;
	var t_sec_pk = form.sec_pk.value;

//if ( form.tem_pk ) alert( form.tem_pk.value );
		if ( action && action != "" ) form.action = action;
		if ( target && target != "" ) form.target = target;
		if ( sec_pk != form.sec_pk.value && form.pag ) {  // ** Si cambiamos de seccion, la pagina inicial sera siempre la primera.
			var pag = form.pag.value;
			form.pag.value = 1;
		}
		if ( sec_pk )	form.sec_pk.value = sec_pk;
//		alert(sec_pk);
		form.submit();

			// ** Restauro los valores anteriores.
		form.action = t_action;
		form.target = t_target;
		form.sec_pk.value = t_sec_pk;
		if ( pag ) form.pag.value = pag;
	}

		// ** Añade un elemento a la lista de nuevos o
	function SeleccionarElemento( obj, lista ) {
	var form = Formulario();
		if ( lista ) {
			eval( "form.seleccionados"+lista+".value = StrInsert( form.seleccionados"+lista+".value, obj.value );" );
		} else {
			form.seleccionados.value = StrInsert( form.seleccionados.value, obj.value );
		}
	}

		// ** Añade un elemento a una lista.
	function StrInsert( list, elem ) {
		list = list + ";" + elem;
		return list;
	}

		// ** Añade un elemento a una lista.
	function StrInsert2( list, elem ) {
	var ar = list.split(";");
  var sep = "";
  var arnew = "";
    for(n=0; n < ar.length; n++) {
	    if( ar[n] != elem ) {
				if ( arnew.length == 0 ) { arnew = ""+ar[n];
				} else { arnew = arnew + ";" + ar[n];
				}
      }
		}

		if ( arnew.length == 0 ) {
			arnew = elem;
		} else {
			arnew = arnew + ";" + elem;
		}

		return arnew;
	}

		// ** Quita un elemento a una lista.
	function StrDelete( list, elem ) {
	var ar = list.split(";");
  var sep = "";
  var arnew = "";
    for(n=0; n < ar.length; n++) {
	    if( ar[n] != elem ) {
        if( arnew != "" ) sep = ";";
        arnew = arnew + sep + ar[n];
      }
		}

		return arnew;
	}

		// ** Cambia de pagina en el paginador
	function CambiaPagina( pag ) {
	var form = Formulario();

		form.pag.value = pag;
		SubmitForm( form, form.sec_pk.value );
		return false;
	}

		// ** Cambia de pagina en el paginador
	var CambiandoPagTema = false;
	function CambiarPagina( pag, tem_pk, formato ) {
	var form = Formulario();

		if ( CambiandoPagTema ) {
			setTimeout( "CambiarPagina( '"+pag+"', '"+tem_pk+"', '"+formatolistado+"' );", RandomNumber( 200, 300 ) );
			return;
		} else CambiandoPagTema = true;
		if ( typeof formato == 'undefined' ) {
			if ( formatolistado ) formato = formatolistado;
			else formato = 'publica';
		}

		var sec_pk 		= arSecciones['_SEC_TEM_LCONSULTA'];
		var cli_pk 		= ConsultarValorCampo( 'cli_pk' );
		var ses_pk 		= ConsultarValorCampo( 'ses_pk' );
		var dia 		= ConsultarValorCampo( 'av_dia' );
		var select_ord	= ConsultarValorCampo( 'select_ord' );
		var limit		= ConsultarValorCampo( 'limit' );
		if ( select_ord == null ) 	var select_ord = 0;
		if ( limit == null )		var limit = 10;
		var nurl = _PATH_DIR+"index.php";
		var nparams = "ses_pk="+ses_pk+"&sec_pk="+sec_pk+"&cli_pk="+cli_pk+"&tem_pk="+tem_pk+"&formatolistado="+formato+"&av_pag_"+tem_pk+"="+pag+"&select_ord="+select_ord+"&limit="+limit+"&av_dia="+dia;

		if ( formatolistado == 'edicion' ) {
			var listamodificadas = ConsultarValorCampo( 'listamodificadas' );
			if ( listamodificadas == null ) var listamodificadas = ConsultarValorCampo( 'av_listamodificadas' );
			if ( listamodificadas == null ) var listamodificadas = "";

			if ( form.publicartodotema && !form.publicartodotema.checked ) var publicartodo = 'false';
			else var publicartodo = 'true';
			if ( form.publicartodo && form.publicartodo.value != 'true' ) var publicartodo2 = 'false';
			else var publicartodo2 = 'true';

			nparams += "&listamodificadas="+listamodificadas+"&publicartodo="+publicartodo+"&publicartodo2="+publicartodo2;
		}

		if ( formatolistado == 'generardossier' ) {
			var formatodescarga = form.formatodescarga.value;
			var av_ddia1 = form.av_ddia1.value;
			var av_ddia2 = form.av_ddia2.value;
			nparams += "&formatodescarga="+formatodescarga+"&av_ddia1="+av_ddia1+"&av_ddia2="+av_ddia2;
		}

//		if ( formatolistado == 'busquedaav_publica' || formatolistado == 'busquedaav' ) {
//			var bavanzada = form.av_bavanzada.value;
//			nparams = nparams + "&av_bavanzada="+bavanzada;
//		}
//		if ( formatolistado == 'busqueda_publica' || formatolistado == 'busqueda' ) {
//			var busqueda = form.av_pattern.value;
//			nparams = nparams + "&pattern="+busqueda;
//		}
		var nfunction = function(arDatos) {
			EscribirNuevoListadoTema( tem_pk, arDatos );
		}

//		EscribirLoading();
//		BgHttpRequest_params(nurl, nfunction, nparams, 'Se ha producido un error.' )

		MostrarLoadingListadoTema(tem_pk);
		
        if ( formatolistado == 'publica_pda' ) BgHttpRequest_params(nurl, nfunction, nparams, 'Se ha producido un error.' );
        else EnviarPeticionWeb(nurl, nfunction, nparams);
	}

	function EnviarPeticionWeb( nurl, nfunction, nparams ) {
	var obj1 = CrearIframePeticionWeb();
	var obj2 = CrearFormularioPeticionWeb(nparams, nurl);

		if ( obj1 && obj2 ) {
//			var nfunction = function(arDatos) {
//				alert(arDatos);
//				EscribirNuevoListadoTema( tem_pk, arDatos );
//			}

//		    obj1.setAttribute( 'onLoad', nfunction );
//		    obj1.setAttribute( 'onload', nfunction );
		    obj2.submit();
		}

	}

	function CrearIframePeticionWeb() {
	var obj1 = document.getElementById( 'iframe_peticionweb' );
		if ( !obj1 ) {
			try {
				var tempIFrame=document.createElement('iframe');
			    tempIFrame.setAttribute('id','iframe_peticionweb');
			    tempIFrame.setAttribute('name','iframe_peticionweb');
			    tempIFrame.style.border='0px';
			    tempIFrame.style.width='0px';
			    tempIFrame.style.height='0px';
			    obj1 = document.body.appendChild(tempIFrame);
		    } catch(exception) {
		    	obj1 = null;
		    }
		}

		return obj1;
	}

	function CrearFormularioPeticionWeb(nparams, nurl) {
	var obj1 = document.getElementById( 'form_peticionweb' );
		if ( !obj1 ) {
			try {
				var tempForm=document.createElement('form');
			    tempForm.setAttribute('id','form_peticionweb');
			    tempForm.setAttribute('name','form_peticionweb');
			    tempForm.setAttribute('method','post');
//			    tempForm.setAttribute('target','iframe_peticionweb');
			    tempForm.setAttribute('target','iframe_peticionweb');
			    obj1 = document.body.appendChild(tempForm);
		    } catch(exception) {
		    	return null;
		    }
		}

	    var ar = nparams.split( "&" );
		for ( var i=0; i<ar.length; i++ ) {
			var ar2 = ar[i].split( "=" );
			if ( ar2.length > 2 ) continue;

			eval( "var tempElement = obj1."+ar2[0] );
			if ( typeof tempElement == 'undefined' ) {
				var tempElement = document.createElement('textarea');
			    tempElement.setAttribute('name', ar2[0] );
			    tempElement.style.width='0px';
			    tempElement.style.height='0px';
			    tempElement.style.display='none';
			    tempElement = obj1.appendChild(tempElement);
			 }
		    if ( ar2.length == 2 ) tempElement.innerText = ar2[1];
		}
		obj1.action = nurl;

		return obj1;
	}

	function MostrarLoadingListadoTema(tem_pk) {
	var obj = document.getElementById('contenedor_'+tem_pk);

		if ( obj ) {
//			obj.innerHTML = '<div class=\'imgloading\'>&nbsp;</div>';
			obj.innerHTML = '<br><br><img src="'+_IMG_DIR+'loading2.gif">';
		}
	}

	function MostrarLoadingCalendario() {
	var obj = document.getElementById('bloque_cal_link');

		if ( obj ) {
//			obj.innerHTML = '<div class=\'imgloading\'>&nbsp;</div>';
			obj.innerHTML = '<br><img src="'+_IMG_DIR+'loading2.gif"><br><br><br>';
		}
	}

	function CambiarPaginaLocal() {}
	function EscribirNuevoListadoTema(tem_pk, arDatos) {
	var obj = document.getElementById('contenedor_'+tem_pk);
		if ( obj ) {
			obj.innerHTML = arDatos;
		}
		CambiarPaginaLocal();

//		alert(tem_pk);
//		alert(arDatos);
		CambiandoPagTema = false;
	}

		// ** Recarga la pagina actual
	function Reload( pag ) {
	var form = Formulario();

		if ( pag ) {
			CambiaPagina( 1 );
		} else {
			SubmitForm( form, form.sec_pk.value );
		}
	}

	function Reproducir( mda_pk, tem_pk ) {
	var form = Formulario();

	var h = 342;
  var w = 310;

		var ses_pk = form.ses_pk.value;

		var nurl = _PATH_DIR+"player.php?ses_pk="+ses_pk+"&tem_pk="+tem_pk+"&mda_pk="+mda_pk+"&source="+_SOURCE+"&action=reproducir"+"&lan_pk="+_LAN_PK;
		window.open( nurl, "viewer"+mda_pk, "width="+w+",height="+h );
	}

	function Descargar( mda_pk, tem_pk ) {
	var form = Formulario();

		var ses_pk = form.ses_pk.value;

		var nurl = _PATH_DIR+"player.php?ses_pk="+ses_pk+"&tem_pk="+tem_pk+"&mda_pk="+mda_pk+"&source="+_SOURCE+"&action=descargar"+"&lan_pk="+_LAN_PK;
		window.open( nurl, "iframe_oculto", "" );
	}

	function CambiaPagina( pag ) {
	var form = Formulario();
		form.pag.value = pag;
		SubmitForm( form, form.sec_pk.value, '_self', 'index.php' );
		return false;
	}

		// ** Paginas de temas
	function CargarTema( sec_pk, tem_pk, pos ) {
	var form = Formulario();
//	var obj = document.getElementById( "frame_tem_"+tem_pk );
//	var sec_pk = arSecciones['_SEC_PRO_TEM_LIST'];

		if ( pos ) {
			frame = "frame_tem_"+tem_pk;
			form.tem_pos.value = pos;	// ** Posicion en la lista (para mostrar el subir o no.
		}	else {
			frame = "frame_tem";
//			sec_pk = arSecciones['_SEC_PRO_EDICION_TEM_LIST'];
		}

		form.tem_pk.value = tem_pk;
		SubmitForm( form, sec_pk, frame );
	}

	function resizeIframe( height, tem_pk ) {
	var obj = document.getElementById( "frame_tem_"+tem_pk );

		if ( obj ) {} else {
			obj = document.getElementById( "frame_tem" );
		}

		if ( obj ) {
			obj.style.visibility = "visible";
			obj.style.height = height;
//			document.body.scrollTop = 0;
		}
	}

	function IrPublica() {
	}

	function CambiarDia( dia ) {
	var form = Formulario();


		form.av_dia.value = dia;
//		if ( form.sec_pk.value == arSecciones['_SEC_MAIN'] ) {
//			Inicio();
//		} else if ( form.sec_pk.value == arSecciones['_SEC_PUBLICA'] ) {
//			Inicio();
//		} else if ( _SOURCE == 3 ) {	// ** Si lo llamo desde la parte publica.
//		if ( _SOURCE == 3 ) {	// ** Si lo llamo desde la parte publica.
//			SubmitForm( form, arSecciones['_SEC_PUBLICA'] );
//		} else {
			SubmitForm( form, arSecciones['_SEC_MAIN'] );
//		}
	}

	function CambiarDiaTop( dia ) {
	var obj = document.getElementById( "diatop" );

		if( obj && dia ) { obj.innerHTML = dia; }
	}


		// ** Cambia de dia.
	var CambiandoDia = false;
	function CambiarDia3( dia, formatolistado ) {
	var form = Formulario();

		if ( CambiandoDia ) { return; } else CambiandoDia = true;

		var sec_pk 	= arSecciones['_SEC_TEM_LCONSULTA'];
		var cli_pk 	= form.cli_pk.value;
		var medio  	= form.av_medio.value;
		var dia 		= form.dia.value;
		var select_ord = form.select_ord.value;
		var limit = form.limit.value;
		var nurl = "/online_av/subindex.php";
		var nparams = "sec_pk="+sec_pk+"&cli_pk="+cli_pk+"&formatolistado=publica&dia="+dia+"&av_medio="+medio;
		var nfunction = function(arDatos) {
			EscribirNuevoListadoTemas( arDatos );
		}

//		EscribirLoading();
		BgHttpRequest_params(nurl, nfunction, nparams, 'Se ha producido un error.' )
	}

	function EscribirNuevoListadoTemas(arDatos) {
	var obj = document.getElementById('bodycontainer');

		if ( obj ) {
			obj.innerHTML = arDatos;
		}

		CambiandoDia = false;
	}

		// ***************************************************
	function IsNumeric(valor)
	{
		var log=valor.length; var sw="S";
		for (x=0; x<log; x++){
			v1=valor.substr(x,1);
			v2 = parseInt(v1);
			//Compruebo si es un valor numrico
			if (isNaN(v2)){
				sw= "N";
			}
		}
		if (sw=="S"){
			return true;
		}else{
			return false;
		}
	}

	var primerslap=false;
	var segundoslap=false;


	function formateafecha(fecha, extra){
	var longitud = fecha.length;
	var dia;
	var mes;
	var ano;
		if (extra) {var limit1 = 7;	var limit2 = 8;	var limit3 = 2;	} else { var limit1 = 9; var limit2 = 10; var limit3 = 4;	}

		if ((longitud>=2) && (primerslap==false)) {
			dia=fecha.substr(0,2);
			if ((IsNumeric(dia)==true) && (dia<=31) && (dia!="00")) {
				fecha=fecha.substr(0,2)+"-"+fecha.substr(3,5);
				primerslap=true;
			} else {
				fecha="";
				primerslap=false;
			}
		} else{
			dia=fecha.substr(0,1);
			if (IsNumeric(dia)==false){
				fecha="";
			}
			if ((longitud<=2) && (primerslap=true)) {
				fecha=fecha.substr(0,1);
				primerslap=false;
			}
		}
		if ((longitud>=5) && (segundoslap==false)){
			mes=fecha.substr(3,2);
			if ((IsNumeric(mes)==true) &&(mes<=12) && (mes!="00")) {
				fecha=fecha.substr(0,5)+"-"+fecha.substr(6,2);
				segundoslap=true;
			}else{
				fecha=fecha.substr(0,3);;
				segundoslap=false;
			}
		}else{
			if ((longitud<=5) && (segundoslap=true)){
				fecha=fecha.substr(0,4);
				segundoslap=false;
			}
		}
		if (longitud>=limit1){
			ano=fecha.substr(6,limit3);
			if (IsNumeric(ano)==false){
				fecha=fecha.substr(0,6);
			}
		}

		if (longitud>=limit2){
			fecha=fecha.substr(0,limit2);
			dia=fecha.substr(0,2);
			mes=fecha.substr(3,2);
			ano=fecha.substr(6,limit3);
			// Ao no viciesto y es febrero y el dia es mayor a 28
			if ( (ano%4 != 0) && (mes ==02) && (dia > 28) ){
				fecha=fecha.substr(0,2)+"-";
			}else{ //Si es mes para no tiene 31 dias
				if ((mes%2 == 0) && (dia>30)){
					fecha=fecha.substr(0,2)+"-";
				}
			}
		}
		return (fecha);
	}


	function compare_dates(){
		var date1 = document.fsearch1.date1.value;
		var date2 = document.fsearch1.date2.value;

		var aux1 = date1.substring(3,5)+'-'+date1.substring(0,2)+'-'+date1.substring(6,10);
		var aux2 = date2.substring(3,5)+'-'+date2.substring(0,2)+'-'+date2.substring(6,10);

//	alert('aux1 es '+aux1+' y aux2 es '+aux2);

		var auxfec1=Date.parse(aux1);
		var auxfec2=Date.parse(aux2);

		if (auxfec1<auxfec2){
			alert('date2 mayor que date1');
			return false;
		}else{
			alert('date1 mayor que date2');
		}
	}
		// ***************************************************

	var quitar_cesta = "";
	var anadir_cesta = "";
	function AddToShoppingCart( mda_pk, tem_pk ) {
	var form = Formulario();

		form.tem_pk.value = tem_pk;
		form.mda_pk.value = mda_pk;
		SubmitForm( form, arSecciones['_SEC_CESTA'], 'iframe_cesta' );

		var obj = MM_findObj( 'imgcesta_'+mda_pk );
		var obj2 = MM_findObj( 'imgcesta2_'+mda_pk );
		if ( obj && obj2 ) {
			if ( obj.src.lastIndexOf(_IMG_DIR+'cesta02.gif') > 0 ) {
				obj.src = _IMG_DIR+'cesta01.gif';
				obj2.innerHTML = anadir_cesta;
			} else {
				obj.src = _IMG_DIR+'cesta02.gif';
				obj2.innerHTML = quitar_cesta;
			}
		}

		return false;
	}

	function Reordenar() {
	var form = Formulario();

	var obj = MM_findObj( "frame_tem" );
	var iframedocument;	// ** Objeto documento del iframe

		if( obj ) {
			if ( obj.contentWindow ) {
				iframedocument = obj.contentWindow;
			} else {
				iframedocument = window.frames.frame_tem;
			}

			if ( iframedocument.formulario && iframedocument.formulario.publicartodo ) {
				if ( iframedocument.formulario.publicartodo.checked ) {
					form.publicartodo.value = "true";
				} else {
					form.publicartodo.value = "false";
				}
				InicioLocal();
			} else {
				InicioLocal();
			}
		} else {
			InicioLocal();
		}

	}

	function Subir() {
		document.body.scrollTop = 0;
	}


	// ** Busqueda booleana
	// ***************************************************************************

		// ** Elimina espacios de mas.
	function trim( str ) {
	var str2 = '';
	var last = ' ';
	var str3;
		for( var i=0; i<str.length; i++ ) {
			str3 = str.charAt( i );
			if ( str3 == ' ' && last == ' ' ) {	// ** Si el anterior ya era un espacio me lo salto.
			}	else {
			  str2 += str3;
				last = str3;
			}
		}

		if ( last == ' ' ) str2 = str2.substring( 0, str2.length -1 );

		return str2;
	}

	var pabierto = 0;
	var pcerrado = 0;
	var conjy = 0;
	var conjo = 0;
	var conjno = 0;
	function BusquedaBooleana( e ) {
		var obj = srcElement ( e );
		var key = keyPress(e);
		var value = true;

		switch( key ) {
		case 13:	// ** Enter
			value = AnalizarExpresion( );
			break;
		default:
		  break;
		}
		return value;

	}

	function AnalizarExpresion_QuitarComillas( str ) {
	var str1, pos1, pos2, str2, str3;
	var stranterior = "";
		pos1 = 0; pos2 = 1;

//alert(str.indexOf( "\"" ));
	var i=0;
	while ( str.indexOf( "\"" ) >= 0 && str.indexOf( "\"" ) != str.lastIndexOf( "\"" ) ) {
//alert(i+"("+str.indexOf( "\"" )+"): "+str); i++;
			pos1 = str.indexOf( "\"" );
			str1 = str.substring( 0, pos1 );
			str2 = str.substring( pos1+1, str.length );
			pos2 = str2.indexOf( "\"" );
			str3 = str2.substring( pos2+1, str2.length );
			str2 = str2.substring( 0, pos2 );

//alert( pos1+" "+pos2 );
			if ( pos1 >= 0 && pos2 >= 0 ) str = str1 + " a " + str3;
		}
//alert(str);

		return str;
	}

	function AnalizarExpresion( str ) {
	var form = Formulario();

	if ( str ) {} else str = form.busquedaavanzada.value;
	var value = true;
	var str1, str2, str3;
	var pos1, pos2, str3;

		str = AnalizarExpresion_QuitarComillas( str );
		str = trim(str);
//			alert( "F: "+ str );

			pos1 = str.lastIndexOf( "(" );
			str1 = str.substring( 0, pos1 );
			str2 = str.substring( pos1+1, str.length );
			pos2 = str2.indexOf( ")" );
			str3 = str2.substring( pos2+1, str2.length );
			str2 = str2.substring( 0, pos2 );

      if ( pos1 == pos2 && pos1 == -1 ) {	// ** si la expression no tiene parentesis.
//				alert( "V: "+str );
				value = AnalizarExpresionSimple( str );
			} else if ( (pos1 == pos2 && pos1 == 0 ) || str2 == ' ' || pos1 == -1 || pos2 == -1 ) {	// ** Si los dos parentesis estan juntos, o solo hay de un tipo.
				value = false;
			} else {
				value = AnalizarExpresion( str2 );
				if ( value ) {	// ** Si el interior del parentesis esta bien.
				  value = AnalizarExpresion( str1+" a "+str3 );
				}
			}

		return value;
	}

	function AnalizarExpresionSimple( str ) {
//	var form = document.form1;
	var form = Formulario();
	var value = true;
	var str1, str2, str3;
	var pos1, pos2, str3;
	var desp = 3;

			str = trim(str);
//			alert( "I: "+ str );
			if ( str == '' ) return false;
			str = " "+str+" ";
//toLowerCase
			pos1 = str.toLowerCase().lastIndexOf( " o " );
			if ( pos1 == -1 ) {	// ** Si no tiene la conjuncion o
				pos1 = str.toLowerCase().lastIndexOf( " y " );
				if ( pos1 == -1 ) {	// ** Si no tiene la conjuncion y

					pos1 = str.toLowerCase().lastIndexOf( " no " );
				  if ( pos1 == -1 ) {	// ** Si no tiene la conjuncion no
						str = str.substring( 1, str.length - 1 );	// ** Le quito los espacios que le añadi.
						str1 = str.split( " " );
						if ( str1.length > 1 ) return false;	// ** Si son mas de una palabra.
						else if ( str.length <= 3 && str != 'a' && str != '*' ) { return false; }	// ** No se aceptan palabras inferiores a 4 letras.
						else { return true; }	// ** Si es una sola palabra.
					} else {
						desp = 4; // ** ' no ' es de longitud 4
					}

				}
			}

			if ( desp == 3 ) {
				str1 = str.substring( 0, pos1 );
				str2 = str.substring( pos1+3, str.length );

				value = ( AnalizarExpresionSimple( str1 ) && AnalizarExpresionSimple( str2 ) );
			} else {
				str1 = str.substring( 0, pos1 );
				if ( str1 != '' ) {
					value = false;
				} else {
					str2 = str.substring( pos1+4, str.length );

					value = AnalizarExpresionSimple( str2 );
				}
			}

		return value;
	}

	// ***************************************************************************
	// ** Busqueda booleana

	// ** XMLRequest
	// ***************************************************************************
	var xmlhttp;

	function loadXMLDoc(url, handle )
	{
	if ( handle ) {} else handle = "xmlhttpChange";

	// code for Mozilla, etc.
	if (window.XMLHttpRequest)
		{
		xmlhttp=new XMLHttpRequest()
		xmlhttp.onreadystatechange=xmlhttpChange
		xmlhttp.open("GET",url,true)
		xmlhttp.send(null)
		}
	// code for IE
	else if (window.ActiveXObject)
		{
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
			if (xmlhttp)
			{
			xmlhttp.onreadystatechange=xmlhttpChange
			xmlhttp.open("GET",url,true)
			xmlhttp.send()
			}
		}
	}

	function xmlhttpChange()
	{
	// if xmlhttp shows "loaded"
	if (xmlhttp.readyState==4)
		{
		// if "OK"
		if (xmlhttp.status==200)
			{
//				alert( xmlhttp.responseText );
			// ...some code here...
			}
		else
			{
			alert("Problem retrieving XML data")
			}
		}
	}

	// ***************************************************************************
	// ** XMLRequest

	function AbrirAyudaExpresiones() {
		window.open( _PATH_DIR + "help/ayuda_expresiones.html", "ayuda_expresiones", "width=600,height=700" );
	}


	// ** Mail Validator.
	// ***********************************

	function mycheckmail(str) {
	var emailfilter = /([a-z]|[A-Z])+([a-z]|[0-9]|[A-Z]|[ ])*/i;
	emailfilter = /\w/i
	var strtmp = str.split(",");
	var strtmp2, strtmp3, strtmp4, mailtmp;
	var pos1, pos2;
//alert( "Inici Analisis ("+str+")" );
		for( var i=0; i<strtmp.length; i++ ) {
			mailtmp = trim(strtmp[i]);
//alert( "Inici ("+strtmp[i]+")" );
			strtmp2 = mailtmp.split( ">" );
			strtmp3 = mailtmp.split( "<" );

			if ( strtmp2.length != strtmp3.length || strtmp2.length > 2 ) return false;
			if ( strtmp2.length == 1 && !checkmail(mailtmp) ) return false;
			else if ( strtmp2.length == 1 ) continue;	// ** Si es un simple mail y es correcto, continuo


			pos1 = mailtmp.indexOf( "<" );
			pos2 = mailtmp.indexOf( ">" );
//alert(pos1);
//alert(pos2);
			strtmp4 = mailtmp.substring( pos1+1, pos2 );
//alert( "Fins aqui tot correcte 1 ("+strtmp4+")" );
//			strtmp4 = strtmp[i].substring( 6, 16 );
//alert( "Fins aqui tot correcte 1 ("+strtmp4+")" );
			if ( !checkmail(strtmp4) ) return false;

				// ** Hay algo mas que espacios detras del > hasta la coma.
			strtmp4 = trim( mailtmp.substr( pos2+1, mailtmp.length ) );
//alert( "Fins aqui tot correcte 2 ("+strtmp4+")" );
			if ( strtmp4 != ' ' && strtmp4 != '' ) return false;
				// ** Ha de haber un nombre delante de <
			strtmp4 = mailtmp.substr( 0, pos1 );
//alert( "Fins aqui tot correcte 3 ("+strtmp4+")" );
			if ( !emailfilter.test(strtmp4) ) return false;

		}

		return true;
	}

    function mycheckmaili2(str) {
    var emailfilter = /([a-z]|[A-Z])+([a-z]|[0-9]|[A-Z]|[ ])*/i;
    emailfilter = /\w/i
    var strtmp = str.split(",");
    var strtmp2, strtmp3, strtmp4;
    var pos1, pos2;
//alert( "Inici Analisis ("+str+")" );
    	for( var i=0; i<strtmp.length; i++ ) {
//alert( "Inici ("+strtmp[i]+")" );
        	strtmp2 = strtmp[i].split( ">" );
            strtmp3 = strtmp[i].split( "<" );

            if ( strtmp2.length != strtmp3.length || strtmp2.length > 2 ) return false;
            if ( strtmp2.length == 1 && !checkmail(strtmp[i]) ) return false;
            else if ( strtmp2.length == 1 ) continue;       // ** Si es un simple mail y es correcto, continuo

            pos1 = strtmp[i].indexOf( "<" );
            pos2 = strtmp[i].indexOf( ">" );
//alert(pos1);
//alert(pos2);
            strtmp4 = strtmp[i].substring( pos1+1, pos2 );
//alert( "Fins aqui tot correcte 1 ("+strtmp4+")" );
//                      strtmp4 = strtmp[i].substring( 6, 16 );
//alert( "Fins aqui tot correcte 1 ("+strtmp4+")" );
            if ( !checkmail(strtmp4) ) return false;

            	// ** Hay algo mas que espacios detras del > hasta la coma.
            strtmp4 = trim( strtmp[i].substr( pos2+1, strtmp.length ) );
//alert( "Fins aqui tot correcte 2 ("+strtmp4+")" );
            if ( strtmp4 != ' ' && strtmp4 != '' ) return false;
            	// ** Ha de haber un nombre delante de <
            strtmp4 = strtmp[i].substr( 0, pos1 );
//alert( "Fins aqui tot correcte 3 ("+strtmp4+")" );
        	if ( !emailfilter.test(strtmp4) ) return false;

        }

		return true;
	}

	function checkmail(str){
	var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i;
	var returnval=emailfilter.test(str);
//		if (returnval==false){
//			alert("Please enter a valid email address.")
//			e.select()
//		}
		return returnval;
	}

	// ***********************************
	// ** Mail Validator.

	function Ayuda( medio, source, premium ) {

		if ( source == '4' || source == '3' ) {
			window.open(_PATH_DIR + 'help/ayuda_'+medio+'_'+source+'_'+premium+'.html','ayuda','width=588,height=365');
		} else {
			window.open(_PATH_DIR + 'help/ayuda_'+medio+'_'+source+'.html','ayuda','width=588,height=365');
		}
	}

	function VolverHome() {
	var form = Formulario();
		SubmitForm( form, arSecciones['_SEC_MAIN'] );
	}

		// ** Encuentra la posicion X de un elemento respecto al origen de la pagina
	function findPosX(obj) {
		var curleft = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		}
		else if (obj.x)
			curleft += obj.x;
		return curleft;
	}

		// ** Encuentra la posicion Y de un elemento respecto al origen de la pagina
	function findPosY(obj) {
		var curtop = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curtop += obj.offsetTop
				obj = obj.offsetParent;
			}
		}
		else if (obj.y)
			curtop += obj.y;

		return curtop;
	}

		// ** Para leer estilos CSS.
	function getStyle(el, style) {
		 if(!document.getElementById) return;

			 var value = el.style[toCamelCase(style)];

			if(!value)
					if(document.defaultView)
							value = document.defaultView.
									 getComputedStyle(el, "").getPropertyValue(style);

					else if(el.currentStyle)
							value = el.currentStyle[toCamelCase(style)];

			 return value;
	}

	/** toCamelCase(input)
	 * Converts string input to a camel cased version of itself.
	 * For example:
	 * toCamelCase("z-index"); // returns zIndex
	 * toCamelCase("border-bottom-style"); // returns borderBottomStyle.
	 */
	function toCamelCase(s) {
	var exp2 = /-([a-z])/;
		for(var exp1 = exp2;
			exp1.test(s); s = s.replace(exp1, RegExp.$1.toUpperCase()) );
		return s;
	}


	function CambiarClienteFeed(cli_pk) {
	var form = Formulario();
		form.cli_pk.value = cli_pk;
		form.ses_pk.value = 0;
		form.diac.value = '';
		SubmitForm( form, arSecciones['_SEC_MAIN'], '_top' );
	}

	var intentos_cambiarAnchuraTitulo = 0;
	function CambiarAnchuraTitulo() {
	var arTema = ListadoTemasDia.split(',');


		for( var i=0; i<arTema.length; i++ ) {
			var obj = document.getElementById('Titulo_'+arTema[i]);
			var obj2 = document.getElementById('Barra_Titulo_'+arTema[i]);
			var hspan = document.getElementById( 'hiddenspan_'+arTema[i] );
			if ( !obj && intentos_cambiarAnchuraTitulo < 10 ) {
				setTimeout( "CambiarAnchuraTitulo();", 1000 );
				intentos_cambiarAnchuraTitulo++;
				return;
			} else if ( intentos_cambiarAnchuraTitulo >= 10 ) return;

			if ( typeof obj.textContent != 'undefined' ) var text = obj.textContent;
			else var text = obj.innerText;
				// ** Primero consigo los valores del CSS del titulo.
			var FontSize 		= getStyle(obj, 'font-size');
			var FontFamily 	= getStyle(obj, 'font-family');
			var FontWeight 	= getStyle(obj, 'font-weight');
				// ** Y los aplico al Span, para que nos de la misma anchuda con el mismo set de texto.
			hspan.style.fontSize = FontSize;
			hspan.style.fontFamily = FontFamily;
			hspan.style.fontWeight = FontWeight;

			hspan.innerHTML = text;
			var obj1Size =parseInt(obj.offsetWidth, 10);
			var obj2Size 	= parseInt(obj2.offsetWidth, 10);
			var nobj1Size = parseInt(hspan.offsetWidth, 10) + 15;
			if ( nobj1Size < obj1Size ) continue;		// ** Si es mas pequeño que el originalmente definido por diseño, no lo toco.
			var nobj2Size	= obj2Size - ( nobj1Size - obj1Size );
			if ( nobj2Size < 190 ) nobj2Size = 190;
			nobj1Size = obj1Size + obj2Size - nobj2Size;
			obj.parentNode.style.width = nobj1Size+'px';
			obj2.style.width = nobj2Size + 'px';
		}

	}

	function ConfigurarCalendario2(name1, name2) {
	var objcal = MM_findObj( name1 );
		if ( objcal ) {
			var y = findPosY(objcal) - 180;
			var x = findPosX(objcal) + 20;
			eval( 'Calendar.setup( {inputField:"'+name1+'",button:"'+name2+'",weekNumbers:false,position:['+x+','+y+'],ifFormat:"%d-%m-%Y",daFormat:"%d-%m-%Y"} );' );
		}
	}

	function SelectDate( obj, objdia, objmes, objanyo, type ) {
	var form = Formulario();

		if ( obj ) {
			var anyo 	= obj.value.substr(0, 4);
			var mes 	= obj.value.substr(5, 2);
			var dia 	= obj.value.substr(8, 2);

			if ( type == 'num' ) eval ( "form."+objdia+".value = "+parseInt(dia, 10) );
			else eval ( "form."+objdia+".value = '"+dia+"'" );
			if ( type == 'num' ) eval ( "form."+objmes+".value = "+parseInt(mes, 10) );
			else eval ( "form."+objmes+".value = '"+mes+"'" );
			eval ( "form."+objanyo+".value = '"+anyo+"'" );
		}
	}

	function ConsultarValorCampo( nombrecampo ) {
	var form = Formulario();
		eval( 'var obj1 = form.'+nombrecampo+';' );
//		alert( 'v: '+obj1 );
		if ( typeof obj1 != 'undefined' ) return obj1.value;

	var obj = document.getElementById(nombrecampo);
		if ( obj ) {
			return obj.value;
		}

		return null;
	}

	function AsignarValorCampo( nombrecampo, valor ) {
	var form = Formulario();
		eval( 'var obj1 = form.'+nombrecampo+';' );
//		alert( 'q: '+obj1 );
		if ( typeof obj1 != 'undefined' ) {
			obj1.value = valor;
			return;
		}

	var obj = document.getElementById(nombrecampo);
		if ( obj ) {
			obj.value = valor;
		}
	}

	function ControlarTecladoFormulario(e, mfunction) {
	var key = keyPress(e);
		switch( key ) {
		case 13:
				// ** Si he pasado una funcion, usala.
			if ( mfunction ) {
				eval( 'var hola = '+mfunction+'();');
				return hola;
			} else return false;	// ** En caso de no definir ninguna funcion ... no hago caso al enter.
			
			break;
		default:
			break;
		}
		
		return true;
	}
	
	function BuscadorImente() {
	var form = Formulario();
	
		SubmitForm( form, arSecciones['_SEC_BUSQUEDAIMENTE'] );
		
		return false;
	}
	
	function BuscadorAvansadoImente() {
	var form = Formulario();
	
		SubmitForm( form, arSecciones['_SEC_BUSQUEDAIMENTE'] );
		return false;
	}
	
	function RandomNumber( inferior, superior ) {
		if ( isNaN(inferior) || isNaN(superior) ) return 0;
		if ( inferior > superior ) {	// ** Si estan en el orden invertido, los pongo en el orden correcto.
			inferior = inferior + superior;
			superior = inferior - superior;
			inferior = inferior - superior;
		}
		var numPosibilidades = parseInt( superior, 10) - parseInt( inferior, 10);
		var aleat = Math.random() * numPosibilidades;
		aleat = Math.round(aleat);
		return parseInt(inferior, 10) + aleat;
	} 
		
	
