
// NOTA: No olvidar agregar 'fOpenCloseFavs( event );' en BODY onmousedown y favMostrar en onload

// FAVORITAS

// Creamos la fecha en que expiran
favsExp = new Date();
favsExp.setTime( favsExp.getTime() + ( 100 * 24 * 60 * 60 * 1000 ) ); // 100 días

// Cantidad máxima de favoritas ( Ajustar HTML )
favsMax = 5;

favsArr = new Array();

// evaluamos si existen favoritas (_favs_)
if( document.cookie.indexOf( '_favs_' ) >= 0 ){
	strFavsCookie = document.cookie.substring( document.cookie.search( /_favs_/ ) ) + ';';
	strFavsCookie = strFavsCookie.substr( 0, strFavsCookie.indexOf(';') );
	strFavsCookie = decodeURIComponent( strFavsCookie.substring( strFavsCookie.indexOf('_favs_') + 7 ) );
	if( strFavsCookie.length ){
		favsArr = strFavsCookie.split(',');
		// Revisamos si existen favoritas inactivas ( de adelante para atrás )
		for( var i = favsArr.length - 1; i >= 0; i-- ){
			if( !arrNotaFavs[ favsArr[ i ] ] ){
				// Eliminamos ( del Array ) las favoritas que no estén activas
				favsArr.splice( i, 1 );
				// Reescribimos la cookie con los nuevos valores
				document.cookie = "_favs_=" + encodeURIComponent( favsArr.join() ) + ";expires=" + favsExp.toUTCString() + ";path=/";
			}
		}
	}	
}

function favAgregar( idFav, nombreFav ){
	// Confirmamos que no exista en favoritas
	for( i = 0; i < favsArr.length; i++ ){
		if( favsArr[ i ] == idFav ){
			alert( nombreFav + ' ya se encuentra entre sus Favoritas' );
			windowFicha.focus();
			return;
		}
	}
	// Revisamos la cantidad de Favoritas
	if( favsArr.length >= favsMax ){
		alert( 'No es posible agregar a ' + nombreFav + ' entre sus Favoritas\nEl máximo de favoritas es ' + favsMax );
	} else {
		if( confirm( '¿Desea agregar a ' + nombreFav + ' a sus Favoritas?' ) ){
			document.getElementById( 'divFavs' ).style.left = favsClosedX + 'px';
			// Agregamos el ID al Array
			favsArr.push( idFav );
			// Sobreescribimos la cookie
			document.cookie = "_favs_=" + encodeURIComponent( favsArr.join() ) + ";expires=" + favsExp.toUTCString() + ";path=/";
			// Ajustamos el listado de Favoritas
			favMostrar();
			
			// Ocultamos el botón de la ficha
			if( windowFicha.document.getElementById( 'btnAgregarFavorita' ) ){
				windowFicha.document.getElementById( 'btnAgregarFavorita' ).style.display = 'none';
				windowFicha.document.getElementById( 'corazonFavorita' ).style.display = 'inline';
			}
			
		}
	}
	windowFicha.focus();
}

function favEliminar( idFicha ){
	
	if( confirm( '¿Desea eliminar a ' + arrNotaFavs[ idFicha ][ 0 ] + ' de sus favoritas?' ) ){
		favsAbierto = false;
		document.getElementById( 'divFavs' ).style.left = favsClosedX + 'px';
		// Iteramos en el Array
		for( i = 0; i < favsArr.length; i++ ){
			// Removemos el índice correspondiente al ID
			if( Number( favsArr[ i ] ) == Number( idFicha ) ){
				favsArr.splice( i, 1 );
			}
		}
		
		// Sobreescribimos la cookie
		if( favsArr.length ){
			document.cookie = "_favs_=" + encodeURIComponent( favsArr.join() ) + ";expires=" + favsExp.toUTCString() + ";path=/";
		} else {
			document.cookie = "_favs_=;expires=" + new Date( 0 ) + ";path=/";
		}
		favMostrar();
	}
}

var favsClosedX = 0;
var favsOpenX = 0;
var favsAbierto = false;

function fOpenCloseFavs( evt ){
	
	refObj = ( evt.target ) ? evt.target : evt.srcElement;
	
	// Si pertenece al bloque de favoritas ( clFavs )
	if( refObj.className.indexOf( 'clFavs' ) >= 0 ){
		// Si es el botón para mostrar las favoritas
		if( refObj.parentNode.id == 'btnFavs' ){
			// Si está abierto lo cerramos
			if( favsAbierto ){
				favsAbierto = false;
				document.getElementById( 'divFavs' ).style.left = favsClosedX + 'px';
			// Si está cerrado lo abrimos
			} else {
				favsAbierto = true;
				document.getElementById( 'divFavs' ).style.left = '0px';
			}
		}
	}
	// Si es cualquier otro botón de la página
	else
	{
		favsAbierto = false;
		document.getElementById( 'divFavs' ).style.left = favsClosedX + 'px';
	}
}

// Creamos tantos elementos como máximas favoritas
function favMostrar(){
	
	if( favsArr.length ){
		document.getElementById( 'notaFavs' ).style.display = 'none';
	} else {
		document.getElementById( 'notaFavs' ).style.display = 'block';
	}
	
	for( i = 1; i <= favsMax; i++ ){
		
		aFav = document.getElementById( 'aFav' + i );
		aFav.idFicha = favsArr[ i - 1 ];
		imgFav = document.getElementById( 'imgFav' + i );
		divFav = document.getElementById( 'divFav' + i );
		xFav = document.getElementById( 'xFav' + i );
		xFav.idFicha = favsArr[ i - 1 ];
		
		if( favsArr[ i - 1 ] ){
			sprFav = "00000" + favsArr[ i - 1 ];
			sprFav = sprFav.substr( sprFav.length - 5 );
			
			imgFav.favNombre = arrNotaFavs[ aFav.idFicha ][ 0 ];
			imgFav.favServicios = arrNotaFavs[ aFav.idFicha ][ 1 ];
			imgFav.favHorario = arrNotaFavs[ aFav.idFicha ][ 2 ];
			imgFav.favValor = arrNotaFavs[ aFav.idFicha ][ 3 ];
			imgFav.favContacto = arrNotaFavs[ aFav.idFicha ][ 4 ];
			
			imgFav.onclick = function(){
								fWindowFicha( this.parentNode.idFicha );
								favsAbierto = false;
								document.getElementById( 'divFavs' ).style.left = favsClosedX + 'px';
							 }
			imgFav.onmouseout = fOcultarNotaContacto;
			imgFav.src = './imgsite/portadas/th_' + sprFav + '.jpg';
			
			xFav.onclick = function(){ favEliminar( this.idFicha ); }
			
			divFav.style.display = 'block';
			
		} else {
			divFav.style.display = 'none';
		}
	}
	
	with( document.getElementById( 'divFavs' ) ){
		style.display = 'block';
		favsClosedX = 34 - document.getElementById( 'divFavs' ).offsetWidth;
		style.left = favsClosedX + 'px';
	}
	
	document.getElementById( 'btnFavs' ).onclick = fOpenCloseFavs;
	
}