// Loading
// ===============================================================================
var _LoadStack = new Array();


function pushToLoadStack(callback) {

	if(!isLoaded(callback))
		_LoadStack.push({func: callback});
}

function isLoaded(cb) {
	for (var cbLoaded in _LoadStack) {

		if(cbLoaded.func == cb)
			return true;
	}

	return false;
}

window.onload = function() {

	for (var cbName in _LoadStack) {
		eval(_LoadStack[cbName].func + "()");
	}
};

function defaultText(jInputText, defaultText) {
	jInputText.attr("defaultText", defaultText);
	jInputText.val(defaultText);

	jInputText.blur(function() {
		if(!defaultTextChanged($(this)))
			$(this).val($(this).attr("defaultText"));
	});

	jInputText.focus(function() {
		if(!defaultTextChanged($(this)))
			$(this).val("");
	});
}

function defaultTextChanged(jInputText) {
	var txt = jInputText.val().toLowerCase().replace(/ /g, "");
	var defaultValue = jInputText.attr("defaultText").toLowerCase().replace(/ /g, "");
	return txt != defaultValue && txt.length > 0;
}

function busquedaEnter(e, jContainer)
{
    if(e.which == 13)
        busqueda(jContainer);
}

function busqueda(jContainer)
{
    var text = jContainer.find('input[name=searchText]');

    if(defaultTextChanged(text))
    {
        var baseURL = jContainer.find('input[name=baseURL]:first-child').val();
        baseURL += escape(text.val().replace('/', '')) + '/';

        var month = $('select[name=bDia]').val();
        var year = $('select[name=bAnio').val()

        var params = "";
        if((1*month) > 0)
            params += month + '/'

        if((1*year) > 0)
            params += year+ '/'

        if(params.length > 0)
            baseURL += params;

        window.location = baseURL;
    }
}

/*function submitForm(jForm, url, callback) {
	var params = {};
	var errors = [];

	var display = jForm.find(".errores");

	jForm.find("[name]").each(function() {

		$(this).parent().removeClass("error-highlight");
		display.html("");
		display.css("display", "none");

		var fieldErrors = validateField($(this));

		if(fieldErrors.length == 0)
			params[$(this).attr("name")] = $(this).val();
		else
			jQuery.each(fieldErrors, function(i, error) { errors.push(error); });


	});

	if(errors.length == 0) {
        $.ajax({type: 'POST', url: url, data: params, dataType: "json", success: callback});
	}
	else {
		display.css("display", "block");
		jQuery.each(errors, function(i, error) {
			error.field.parent().addClass("error-highlight");
			display.html(error.msg + "<br />");
		});
	}
}

function validateField(jField) {

	var errors = [];

	if(jField.attr("class")) {
		var validations = jField.attr("class").split(":");

		jQuery.each(validations, function(i, type) {

			var msg = fieldIsValid(type, jField)
			if(msg !== false)
				errors.push({"field": jField, "msg": msg});
		});
	}

	return errors;
}

function fieldIsValid(type, jField) {
	type = type.toLowerCase();
	var val = jField.val();

	switch(type)
	{
		case "mandatory":
			if(val.replace(" ", "") == "")
				return "Ingrese el campo de " + ucFirst(jField.attr("name")) + ".";
			break;

		case "email":
			var emailPattern = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/;

			if(!emailPattern.test(jField.val()))
				return "Mail Inválido.";
			break;
	}

	return false;
}

function ucFirst(string) {
	return string.substring(0, 1).toUpperCase() + string.substring(1).toLowerCase();
}*/

// GALERIA BLOCK
// ===============================================================================
function galeriaImagenesBlockInit()
{
     $(".galeria-imagenes-block ul").jcarousel({
        scroll: 1,
        initCallback: galeriaImagenes_initCallback,
        itemVisibleInCallback: galeriaImagenes_itemVisibleIn,
        buttonNextHTML: null,
        buttonPrevHTML: null,
        wrap: 'circular',
        itemFallbackDimension: 700
    });
}

function galeriaImagenes_initCallback(carousel)
{
    var jContainer = carousel.container.parent();

    jContainer.find('.jcarousel-control button').bind('click', function() {
        carousel.scroll(jQuery.jcarousel.intval($(this).attr('name').split('-')[1] * 1));
        return false;
    });

    jContainer.find('button.control.next').bind('click', function() {
        carousel.next();
        return false;
    });

    jContainer.find('button.control.prev').bind('click', function() {
        carousel.prev();
        return false;
    });
}

function galeriaImagenes_itemVisibleIn(carousel, li, index, state) {
    var currentItem = $(li).attr('class').split(' ')[0];
    carousel.container.parent().find('.jcarousel-control button').removeClass("sprite-bullet-selected");
    carousel.container.parent().find('.jcarousel-control button[name=' + currentItem + ']').addClass("sprite-bullet-selected");
}


// BUSCADOR BLOCK
// ===============================================================================
function buscadorBlockInit() {
	defaultText($("input[name=searchText]"), "Ej pollo...");
}

function buscadorBindTextEvents(jForm) {
	defaultText(jForm.find("input[type=text]"), "Buscar");
}

function buscadorBindSearchEvents(jForm) {
	jForm.find("input[type=image]").click(function() {
		jForm.submit();
	});

	jForm.find("input[type=text]").keypress(function(event) {
		if (event.which == 13)
			jForm.submit();
	});
}

// ULTIMOS NUMEROS BLOCK
// ===============================================================================
function ultimosNumerosBlockInit() {
    $('#ultimosNumerosCarousel').jcarousel({
        buttonNextHTML: null,
        buttonPrevHTML: null,
        scroll: 4,
        wrap: 'circular',
        initCallback: ultimosNumeros_initCallback
    });
}

function ultimosNumeros_initCallback(carousel) {

     $('#ultimosNumerosPrevControl').click(function() {
        carousel.prev();
        return false;
    });

    $('#ultimosNumerosNextControl').click(function() {

        carousel.next();
        return false;
    });
}

// INTERIOR NOTA INIT
// ===============================================================================
var _TotalScrolled = 0;
var _ScrollUpControl = null;
var _ScrollDownControl = null;
var _ScrollHeight = 0;
var _RealHeight = 0;
var DEFAULT_FADE_TIME = 300;

function interiorRevistaInit() {

	//
	// Init
	//
	calcRealHeight();

	_ScrollUpControl = $('.scroll-controls .scroll-up');
	_ScrollDownControl = $('.scroll-controls .scroll-down');
	_ScrollHeight = getHeight();

	$('#revista-content .contenido .item:last-child').addClass('last');

	//
	// Scroll hasta el anchor de la URL.
	//
	var scrollTo = 0;

	if(window.location.hash && new RegExp(/^#to:/).test(window.location.hash))
	{
		var hashSelector = '#revista-content .contenido ' +  window.location.hash.replace(/to:/g, '');

		if($(hashSelector).length)
			scrollTo = $(hashSelector);
	}

    $('#revista-content .contenido').scrollTo(scrollTo, 500);


	//
	// Bindings
	//
	_ScrollUpControl.click(function() {
		_TotalScrolled -= _ScrollHeight;
		if(_TotalScrolled < 0)
			_TotalScrolled = 0;

		//showHideControls('ScrollUp');
		$('#revista-content .contenido').scrollTo('-=' + _ScrollHeight, 800);
	});

	_ScrollDownControl.click(function() {
		_TotalScrolled += _ScrollHeight;

		//showHideControls('ScrollDown');
		$('#revista-content .contenido').scrollTo('+=' + _ScrollHeight, 800);
	});
}

function calcRealHeight() {
	$('#revista-content .contenido div').each(function(){
		_RealHeight += $(this).height();
	});

	//_RealHeight -= $('#revista-content').height();
}

function showHideControls(scroll) {
	if(scroll == 'ScrollUp')
	{
		// Escondemos el ScrollUp, cuando llegamos al principio.
		if(_TotalScrolled <= 0 && _ScrollUpControl.css('display') != 'none')
			_ScrollUpControl.fadeOut(DEFAULT_FADE_TIME);

		// Mostramos el ScrollDown, después de haber scrolleado para arriba.
		if(_ScrollDownControl.css('display') == 'none' && _TotalScrolled <= _RealHeight)
			_ScrollDownControl.fadeIn(DEFAULT_FADE_TIME);
	}
	else
	{
		// Mostramos el ScrollUp, despues de haber scrolleado para abajo.
		if(_ScrollUpControl.css('display') == 'none' && _TotalScrolled >= _ScrollHeight)
			_ScrollUpControl.fadeIn(DEFAULT_FADE_TIME);

		// Escondemos el ScrollDown, cuando llegamos al final.
		if(_ScrollUpControl.css('display') != 'none' && _TotalScrolled >= _RealHeight)
			_ScrollDownControl.fadeOut(DEFAULT_FADE_TIME);
	}
}

function getHeight()
{
	return  ($('#revista-content').height()
				+ $('#revista-content').css('padding-top').replace('px', '') * 1
				+ $('#revista-content').css('padding-bottom').replace('px', '') * 1);
}

// RESULTADOS BUSQUEDA INIT
// ===============================================================================
function resultadosBusquedaInit()
{
	$('.resultados-busqueda li.item:last-child').addClass('last');
}
