﻿/*
 * -------------------------------------------------------------- utilizacion de cookies
*/
function getCookie( name ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ';', len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
} // function

function setCookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+'='+escape( value ) +
		( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
		( ( path ) ? ';path=' + path : '' ) +
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
} // function

function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + '=' +
			( ( path ) ? ';path=' + path : '') +
			( ( domain ) ? ';domain=' + domain : '' ) +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
} // function

/*
..........................................................................
:: Menus desplegables de n-niveles                                      ::
..........................................................................
*/
$(document).ready(function() { // Prepara eventos del menu
    $('#nav li > ul').hide().parent()
        .bind('mouseenter', function() { despliega(this) })
        .bind('mouseleave', function() { pliega(this) });
});

function despliega(padre) {
    clearTimeout(padre.temporizador);
    $('#nav ul').parent('li').css({zIndex: 1});
    $(padre).css({zIndex: 1000})
	    .children('ul').fadeIn(300);
}

function pliega(padre) {
    padre.temporizador = setTimeout(function() {
		$(padre).children('ul').fadeOut(300);
    }, 300)
}

/*
..........................................................................
:: Clases para los elementos ultimo y primero de los listado            ::
..........................................................................
*/
$(document).ready(function(){
	$('li:first-child').addClass('first');
	$('li:last-child').addClass('last');
});

/*
..........................................................................
:: Links en ventana nueva                                               ::
..........................................................................
*/
$(document).ready(function() {
	$('a[rel=external]').attr({target: '_blank'})
});

/*
..........................................................................
:: Comprobar email valido                                               ::
..........................................................................
*/
String.prototype.testEmail = function() {
	var reEmail = /^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/;
	return reEmail.test(this);
}

/*
..........................................................................
:: Validar fecha                                                        ::
:: Requiere el uso del archivo correspondiente de lang/.../texts.js     ::
..........................................................................
*/
String.prototype.testDate = function() {
    return lang.reFecha.test(this);
}

/*
..........................................................................
:: Plugin de jQuery para cambiar PNG's para IE6 dentro de un elemento   ::
:: Ej. uso: $('div.fulanito img').pngIE6()                              ::
:: El parametro 'blank' debe ser la ruta de un GIF transparente de 1x1  ::
..........................................................................
*/
jQuery.fn.extend({
    pngIE6: function(blank) {
        if ($.support.opacity) return this;
        if (!blank) blank = 'img/blank.gif';
        return this.each( function() {
            this.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+ this.src +',sizingMethod=image)';
            this.src = blank;
        });
    }
});

/*
 * Desplegables genericos a peticion                                                                            
 * Ej. uso: crearDesplegables('selector jQuery boton', 'selector jQuery desplegables', {opciones: 'apetecaun'}) 
 * Opciones disponibles {
 *     efecto: string con cualquiera de los efectos de jQuery UI disponibles (por defecto: 'slide')
 *     opciones: objeto con las opciones del efecto de jQuery UI (por defecto: {direction: 'up'} si no se define el efecto)
 *     velocidad: duracion del efecto (por defecto: 600)
 * }
 */
function crearDesplegables(desplegar, desplegable, o, idioma) {
    var desplegar   = $(desplegar);
    var desplegable = $(desplegable).hide();
	var x =$('span.moreinfo1');
    var o = o ? o : {};
    /*if (desplegar.length != desplegable.length) {
        alert('Error en la funcion crearDesplegables()\ndesplegar.length != desplegable.length');
        return false;
    };*/
    if (!o.efecto) {
        o.efecto = 'slide';
        o.opciones =  {direction: 'up'};
    }
    desplegar.each(function(indice) {
		var $t=$(this);
		if ($t.hasClass('activo')){
			desplegable.eq(indice).show();
			if (idioma=="en") {
				x.eq(indice).text("fold");
				x.eq(indice).css({"padding-left":"70px"})
			} else {
				x.eq(indice).text("cerrar");
				x.eq(indice).css({"padding-left":"60px"})
			}
		}
		if ($t.hasClass('')){
			if (idioma=="en") {
				x.eq(indice).text("more information");
			} else {
				x.eq(indice).text("mas informacion");
			}
		}
        $t.click( function() {
			$(this).toggleClass('activo');
            if ($(this).hasClass('activo')){
				desplegable.eq(indice).toggle(o.efecto, o.opciones, o.velocidad, o.callback);
				if (idioma=="en") {
					x.eq(indice).text("fold");
					x.eq(indice).css({"padding-left":"70px"})
				} else {
					x.eq(indice).text("cerrar");
					x.eq(indice).css({"padding-left":"60px"})
				}
			} else {
				desplegable.eq(indice).toggle(o.efecto, o.opciones, o.velocidad, o.callback);
				if (idioma=="en") {
					x.eq(indice).text("more information");
					x.eq(indice).css({"padding-left":"10px"})
				} else {
					x.eq(indice).text("más información");
					x.eq(indice).css({"padding-left":"10px"})
				}
			}
			return false;
        });
		
    });
}



