// ---------------------------------
// ------  BUSCAR POR NOMBRE  ------
// ---------------------------------

var pBPNactivo = 0;
var arrResultBPN = new Array();

function showMe (eleccion) {

	// alert("valor: "+document.getElementById( 'buscanombre' ).style.display);

		document.getElementById("busca1").className ="";
		document.getElementById("busca2").className ="";
		document.getElementById("busca3").className ="";
		
		
	if ( eleccion == "uno" ) {
		document.getElementById( 'buscarN' ).style.display = 'block';
		document.getElementById( 'buscarS' ).style.display = 'none' ;
		document.getElementById( 'buscarU' ).style.display = 'none' ;
		document.getElementById( 'busca1' ).className ="activo";
		
	
	}

	if ( eleccion == "dos" ) {
		document.getElementById( 'buscarN' ).style.display = 'none' ;
		document.getElementById( 'buscarS' ).style.display = 'block' ;
		document.getElementById( 'buscarU' ).style.display = 'none' ;
		document.getElementById( 'busca2' ).className ="activo";
	}

	if ( eleccion == "tres" ) {
		document.getElementById( 'buscarN' ).style.display = 'none' ;
		document.getElementById( 'buscarS' ).style.display = 'none' ;
		document.getElementById( 'buscarU' ).style.display = 'block' ;
		document.getElementById( 'busca3' ).className ="activo";
	}
		
			
			//alert(document.getElementById("b5").style.background);
	
}


function fBuscarPorNombre( str, evt ){
	
	var nombre = str.toLowerCase();
	
	var divResultado = document.getElementById( 'divResultBPN' );
	
	document.getElementById( 'divPortadaMuestra' ).style.display = 'none';
	
	var pBPNall = divResultado.getElementsByTagName( 'p' );
	
	for( var i = 0; i < pBPNall.length; i++ ){
		pBPNall[ i ].style.backgroundColor = 'transparent';
	}
	
	if( evt && evt.keyCode == 40 ){ // DOWN arrow : 40
		pBPNactivo = Math.min( pBPNactivo + 1, arrResultBPN.length );
		pBPNall[ pBPNactivo - 1 ].style.backgroundColor = '#EEE';
		pBPNall[ pBPNactivo - 1 ].scrollIntoView( false );
	}
	else
	if( evt && evt.keyCode == 38 ){ // UP arrow : 38
		pBPNactivo = Math.max( pBPNactivo - 1, 1 );
		pBPNall[ pBPNactivo - 1 ].style.backgroundColor = '#EEE';
		pBPNall[ pBPNactivo - 1 ].scrollIntoView( false );
	}
	else
	if( evt && evt.keyCode == 13 && pBPNactivo > 0 ){ // ENTER : 13
		fMostrarFicha( null, pBPNall[ pBPNactivo - 1 ] );
	}
	else {
		
		pBPNactivo = 0;
		divResultado.style.display = 'none';
		divResultado.innerHTML = "";
		
		arrResultBPN = new Array();
		
		if( nombre.length >= 1 ){
			for( var indice in xhrPortadas.fichas ){
				if( xhrPortadas.fichas[ indice ].nombre.toLowerCase().indexOf( nombre ) == 0 ){
					var tmpObj = new Object();
					tmpObj.nombre = xhrPortadas.fichas[ indice ].nombre;
					tmpObj.fichaID = xhrPortadas.fichas[ indice ].fichaID;
					
					// Evaluamos si es de Masajes
					if( xhrPortadas.fichas[ indice ].masajes ){
						// Asignamos la imagen
						tmpObj.imagen = "masajes";
					} else
					// evaluamos el valor de la ficha
					if( xhrPortadas.fichas[ indice ].vip ){ 				// VIP
						tmpObj.imagen = "vip";
					} else
					if( xhrPortadas.fichas[ indice ].premium ){ 			// Premium
						tmpObj.imagen = "premium";
					} else
					if( xhrPortadas.fichas[ indice ].gold ){ 				// Gold
						tmpObj.imagen = "gold";
					}
					
					arrResultBPN.push( tmpObj );
				}
			}
		} else {
			for( var indice in xhrPortadas.fichas ){
				var tmpObj = new Object();
					tmpObj.nombre = xhrPortadas.fichas[ indice ].nombre;
					tmpObj.fichaID = xhrPortadas.fichas[ indice ].fichaID;
				
				// Evaluamos si es de Masajes
				if( xhrPortadas.fichas[ indice ].masajes ){					// Masajes
					// Asignamos la imagen
					tmpObj.imagen = "masajes";
				} else
				// evaluamos el valor de la ficha
				if( xhrPortadas.fichas[ indice ].vip ){ 		// VIP
					tmpObj.imagen = "vip";
				} else
				if( xhrPortadas.fichas[ indice ].premium ){ 		// Premium
					tmpObj.imagen = "premium";
				} else
				if( xhrPortadas.fichas[ indice ].gold ){			// gold
					tmpObj.imagen = "gold";
				}
				
				arrResultBPN.push( tmpObj );
			}
		}
		
		function sortBPN( val1, val2 ){
			if( val1.nombre > val2.nombre ){
				return 1;
			} else
			if( val1.nombre < val2.nombre ){
				return -1;
			} else {
				return 0;
			}
		}
		
		arrResultBPN.sort( sortBPN );
		
		if( arrResultBPN.length ){
			
			if( arrResultBPN.length > 20 ){
				divResultado.style.overflow = 'auto';
				divResultado.style.height = '300px';
			} else {
				divResultado.style.overflow = 'hidden';
				divResultado.style.height = 'auto';
			}
			
			for( var i = 0; i < arrResultBPN.length; i++ ){
				var pBPN = document.createElement( 'p' );
					pBPN.innerHTML = arrResultBPN[ i ].nombre;			
					pBPN.fichaID = arrResultBPN[ i ].fichaID;
					pBPN.style.textAlign = 'left';
					pBPN.bpn = true; // Bandera para evaluar el origen cuando se abra la ficha ( PopUp )
					
					// Insertamos el fondo
					/*
					pBPN.style.backgroundImage = 'url(' + arrResultBPN[ i ].imagen + ')';
					pBPN.style.backgroundRepeat = 'no-repeat';
					if( arrResultBPN.length > 20 ){
						pBPN.style.backgroundPosition = '104px 2px';
					} else {
						pBPN.style.backgroundPosition = '122px 2px';
					}
					*/
					
					pBPN.onclick = fMostrarFicha;
					pBPN.onmouseover = fPortadaMuestra;
					pBPN.onmousemove = fPortadaMuestra;
					pBPN.onmouseout = fPortadaMuestra;
					divResultado.appendChild( pBPN );
										
					
					
					
					// height: 10px; border: 1px solid darkGray; background-color: yellow; color: SaddleBrown; width: 36px; text-align: center;

			}
			
			divResultado.style.display = 'block';
			
		}
		
	}
	
}

function fOcultarBPN(){
	if( document.getElementById( 'divResultBPN' ) ){
		document.getElementById( 'divResultBPN' ).style.display = 'none';
		document.getElementById( 'inputBPN' ).value = 'ESCRIBA EL NOMBRE';
		document.getElementById( 'divPortadaMuestra' ).style.display = 'none';
	}
}

// Portada de muestra
function fPortadaMuestra( evt ){
	
	if( pBPNactivo ){
		document.getElementById( 'divResultBPN' ).getElementsByTagName( 'p' )[ pBPNactivo - 1 ].style.backgroundColor = 'transparent';
		pBPNactivo = 0;
	}
	
	var evento = ( evt ) ? evt : event;
	var tipoEvt = String( evento.type ).toLowerCase();
	
	var fichaID = ( evt ) ? evt.currentTarget.fichaID : event.srcElement.fichaID;
	var evtObj = ( evt ) ? evt.currentTarget : event.srcElement;
	
	var divPortadaMuestra = document.getElementById( 'divPortadaMuestra' );
	
	if( parseInt( fichaID ) ){
		divPortadaMuestra.getElementsByTagName( 'img' )[ 0 ].src = xhrPortadas.fichas[ fichaID ].portada.src;
	}
	
	switch( tipoEvt ){
		case "mouseover" :
			evtObj.style.backgroundColor = '#2e2c2c';
			evtObj.innerHTML += "";
			divPortadaMuestra.style.display = 'block';
			break;
		case "mouseout" :
			evtObj.style.backgroundColor = 'transparent';
			divPortadaMuestra.style.display = 'none';
			break;
		case "mousemove" :
			if( evento.pageX ){ // FF
				divPortadaMuestra.style.left = evento.pageX + 16 + 'px';
				divPortadaMuestra.style.top = evento.pageY + 5 + 'px';
			} else { // IE
				divPortadaMuestra.style.left = evento.clientX + 16 + document.body.parentNode.scrollLeft + 'px';
				divPortadaMuestra.style.top = evento.clientY + 5 + document.body.parentNode.scrollTop + 'px';
			}
			break;
	}
	
}

// -------------------------------------
// ------  BUSCADOR DE SERVICIOS  ------
// -------------------------------------

function fOrdenarXMLServicios(){
	
	if( xhrServicios.xhr.readyState == 4 ){
		
		if( xhrServicios.xhr.status == 200 ){
			
			var arrServiciosXML = xhrServicios.xhr.responseXML.getElementsByTagName( 'servicio' );
			
			function fLeerValor( xmlObj, tag ){
				return xmlObj.getElementsByTagName( tag )[ 0 ].firstChild.nodeValue;
			}
			
			// Construimos el Array de Servicios
			for( var i = 0; i < arrServiciosXML.length; i++ ){
				
				var tmpObj = new Object();
				tmpObj.id = fLeerValor( arrServiciosXML[ i ], 'id' );
				tmpObj.servicio = fLeerValor( arrServiciosXML[ i ], 'nombre' );
				tmpObj.filtro = false;
				
				xhrServicios.servicios.push( tmpObj );
				
			}
			
			document.getElementById( 'inputBuscarServicios' ).disabled = false;
			
		} else {
			// alert( "Existió un error al cargar los datos" );
		}
	}
}

var pSactivo = 0;
var arrResultS = new Array();

function fBuscarServicios( str, evt ){
	
	var servicio = str.toLowerCase();
	
	var divResultado = document.getElementById( 'divResultBuscarServicios' );
	
	var pSall = divResultado.getElementsByTagName( 'p' );
	
	for( var i = 0; i < pSall.length; i++ ){
		pSall[ i ].style.backgroundColor = 'transparent';
	}
	
	if( evt && evt.keyCode == 40 ){ // DOWN arrow : 40
		pSactivo = Math.min( pSactivo + 1, arrResultS.length );
		pSall[ pSactivo - 1 ].style.backgroundColor = '#EEE';
		pSall[ pSactivo - 1 ].scrollIntoView( false );
	}
	else
	if( evt && evt.keyCode == 38 ){ // UP arrow : 38
		pSactivo = Math.max( pSactivo - 1, 1 );
		pSall[ pSactivo - 1 ].style.backgroundColor = '#EEE';
		pSall[ pSactivo - 1 ].scrollIntoView( false );
	}
	else
	if( evt && evt.keyCode == 13 && pSactivo > 0 ){ // ENTER : 13
		fFiltroServicio( 'enter', pSall[ pSactivo - 1 ] );
	}
	else {
		
		pSactivo = 0;
		divResultado.style.display = 'none';
		divResultado.innerHTML = "";
		
		arrResultS = new Array();
	
		if( servicio.length > 1 ){
			for( var indice in xhrServicios.servicios ){
				if( xhrServicios.servicios[ indice ].servicio.toLowerCase().indexOf( servicio ) >= 0
					&& !xhrServicios.servicios[ indice ].filtro ){
					arrResultS.push( indice );
				}
			}
		} else
		if( servicio.length == 1 ){
			for( var indice in xhrServicios.servicios ){
				if( xhrServicios.servicios[ indice ].servicio.toLowerCase().indexOf( servicio ) == 0
					&& !xhrServicios.servicios[ indice ].filtro ){
					arrResultS.push( indice );
				}
			}
		} else {
			for( var indice in xhrServicios.servicios ){
				if( !xhrServicios.servicios[ indice ].filtro ){
					arrResultS.push( indice );
				}
			}
		}
		
		if( arrResultS.length ){
			
			if( arrResultS.length > 15 ){
				divResultado.style.overflow = 'auto';
				divResultado.style.height = '300px';
			} else {
				divResultado.style.overflow = 'hidden';
				divResultado.style.height = 'auto';
			}
			
			for( var i = 0; i < arrResultS.length; i++ ){
				var pServicio = document.createElement( 'p' );
				pServicio.style.textAlign = 'left';
				pServicio.innerHTML = xhrServicios.servicios[ arrResultS[ i ] ].servicio.substr( 0, xhrServicios.servicios[ arrResultS[ i ] ].servicio.toLowerCase().indexOf( servicio ) ).toLowerCase();
				pServicio.innerHTML += '<b>' + servicio + '</b>';
				pServicio.innerHTML += xhrServicios.servicios[ arrResultS[ i ] ].servicio.substr( xhrServicios.servicios[ arrResultS[ i ] ].servicio.toLowerCase().indexOf( servicio ) + servicio.length ).toLowerCase();
				
				pServicio.arrID = arrResultS[ i ];
				pServicio.onclick = fFiltroServicio;
				pServicio.onmouseover = function(){
					if( pSactivo ){
						document.getElementById( 'divResultBuscarServicios' ).getElementsByTagName( 'p' )[ pSactivo - 1 ].style.backgroundColor = 'transparent';
						pSactivo = 0;
					}
					this.style.backgroundColor = '#2e2c2c';
				}
				pServicio.onmouseout = function(){ this.style.backgroundColor = 'transparent'; }
				divResultado.appendChild( pServicio );
			}
			
			divResultado.style.display = 'block';
			
		}
	}
}

function fOcultarBuscarServicios(){
	if( document.getElementById( 'divResultBuscarServicios' ) ){
		document.getElementById( 'divResultBuscarServicios' ).style.display = 'none';
		document.getElementById( 'inputBuscarServicios' ).value = 'ESCRIBA EL SERVICIO';
	}
}

var divElminarTodosServicios = false;

function fFiltroServicio( evt, pActivo ){
	
	if( pActivo ){
		var objEvt = pActivo;
		document.getElementById( 'inputBPN' ).blur();
	} else {
		var objEvt = ( evt ) ? evt.currentTarget : event.srcElement;
	}
	
	document.getElementById( 'inputBuscarServicios' ).blur();
	fOcultarBuscarServicios();
	document.getElementById( 'divResultBuscarServicios' ).style.display = 'none';
	
	xhrServicios.servicios[ objEvt.arrID ].filtro = true;
	
	if( !divElminarTodosServicios ){
		divElminarTodosServicios = document.createElement( 'div' );
		divElminarTodosServicios.onclick = fEliminarTodosFiltrosServicios;
		divElminarTodosServicios.innerHTML = 'limpiar b&uacute;squeda';
		divElminarTodosServicios.className = 'divElminarTodosServicios';
	}
	
	var divFiltroServicio = document.createElement( 'div' );
	
	divFiltroServicio.className = "divFiltroServicio";
	
	divFiltroServicio.servicioID = xhrServicios.servicios[ objEvt.arrID ].id;
	divFiltroServicio.arrID = objEvt.arrID;
	divFiltroServicio.onclick = fEliminarFiltroServicio;
	divFiltroServicio.innerHTML = xhrServicios.servicios[ objEvt.arrID ].servicio.toLowerCase();
	
	document.getElementById( 'buscapalab' ).appendChild( divFiltroServicio );
	document.getElementById( 'buscapalab' ).appendChild( divElminarTodosServicios );
	
	for( obj in xhrPortadas.fichas ){
		if( xhrPortadas.fichas[ obj ].servicios.indexOf( " " + xhrServicios.servicios[ objEvt.arrID ].id + " " ) < 0 ){
			xhrPortadas.fichas[ obj ].visible = false;
		}
	}
	
	fOrdenarPortadas( document.getElementById( 'selectOrdenar' ).value );
	
}

function fEliminarFiltroServicio( evt ){
	
	var objEvt = ( evt ) ? evt.currentTarget : event.srcElement;
	
	document.getElementById( 'buscapalab' ).removeChild( objEvt ); // Removemos el objeto del filtro
	xhrServicios.servicios[ objEvt.arrID ].filtro = false; // Reactivamos el filtro
	
	// Reactivamos todas las fichas
	for( obj in xhrPortadas.fichas ){
		xhrPortadas.fichas[ obj ].visible = true;
	}
	
	// Evaluamos la cantidad de filtros
	var allFiltros = document.getElementById( 'buscapalab' ).getElementsByTagName( 'div' );
	
	if( allFiltros.length == 1 ){
		document.getElementById( 'buscapalab' ).removeChild( allFiltros[ 0 ] );
	}
	
	for( var i = 0; i < allFiltros.length; i++ ){
		if( allFiltros[ i ].className == "divFiltroServicio" && allFiltros[ i ].servicioID ){
			// Iteramos entre todas las portadas
			for( obj in xhrPortadas.fichas ){
				if( xhrPortadas.fichas[ obj ].servicios.indexOf( " " + allFiltros[ i ].servicioID + " " ) < 0 ){
					xhrPortadas.fichas[ obj ].visible = false;
				}
			}
		}
	}
	
	fOrdenarPortadas( document.getElementById( 'selectOrdenar' ).value );
	
}

function fEliminarTodosFiltrosServicios(){
	
	// Reactivamos todas las fichas
	for( obj in xhrPortadas.fichas ){
		xhrPortadas.fichas[ obj ].visible = true;
	}
	// Reactivamos los filtros
	for( var i = 0; i < xhrServicios.servicios.length; i++ ){
		xhrServicios.servicios[ i ].filtro = false;
	}
	
	// Removemos los filtros ( objetos )
	var divFiltros = document.getElementById( 'buscapalab' );
	var allFiltros = divFiltros.getElementsByTagName( 'div' );
	
	for( var i = allFiltros.length; i > 0; i-- ){
		if( allFiltros[ i - 1 ].className == "divFiltroServicio" || allFiltros[ i - 1 ].className == "divElminarTodosServicios" ){
			divFiltros.removeChild( allFiltros[ i - 1 ] );
		}
	}
	
	fOrdenarPortadas( document.getElementById( 'selectOrdenar' ).value );
	
}

// Función para ocultar los buscadores ( dropdowns )
function fBodyMouseDown( evt ){ // en < BODY >
	
	var objEvt = ( evt ) ? evt.target : event.srcElement;
	
	if( objEvt.id != 'inputBPN' && objEvt.id != 'divResultBPN' && objEvt.parentNode && objEvt.parentNode.id != 'divResultBPN' ){
		fOcultarBPN();
	}
	if( objEvt.id != 'inputBuscarServicios' && objEvt.id != 'divResultBuscarServicios' && objEvt.parentNode.id != 'divResultBuscarServicios' ){
		fOcultarBuscarServicios();
	}
}

