var DMSTK = {

/*::::::::::::::::::::::::::::::::: ROUNDED CORNERS :::::::::::::::::::::::::::::::::*/
	roundeMeNow : function() {
		$(".to_hell_with_rounded_corners, #main_menu li").each(function(i){
			this.innerHTML += '<span class="rc ne"></span><span class="rc nw"></span><span class="rc se"></span><span class="rc sw"></span>';
		});
	},

/*::::::::::::::::::::::::::::::::: TARGET POPUPS :::::::::::::::::::::::::::::::::*/
	autoPopup : function() {
		$(".popup").each(function(i){
			$(this).attr("target", "_blank");
		});
	},

/*::::::::::::::::::::::::::::::::: CONTROLLING ADDITIONAL_CONTENT HEIGHT :::::::::::::::::::::::::::::::::*/

	PAGINATOR_READY : false,

	preparePaginator : function() {
		if(!$('body#home #additional_content').length) return;

		paginatorOffsetOriginalTop = $('#additional_content').offset().top;
		paginatorPositionOriginalTop = $('#additional_content').position().top;
		paginatorHeight = $('#additional_content').height();
		paginatorMarginBottom = parseInt($('#additional_content').css('margin-bottom').substring(0, $('#additional_content').css('margin-bottom').length-2));

		mainContentTop = $('#main_content').position().top;
		mainContentHeight = $('#main_content').height();

		parentContentTop = $('#additional_content').offsetParent().position().top;
		parentContentHeight = $('#additional_content').offsetParent().height();
		parentPaddingBottom = parseInt($('#additional_content').offsetParent().css('padding-bottom').substring(0, $('#additional_content').offsetParent().css('padding-bottom').length-2));
		parentPaddingTop = parseInt($('#additional_content').offsetParent().css('padding-top').substring(0, $('#additional_content').offsetParent().css('padding-top').length-2));

		DMSTK.PAGINATOR_READY = true;
		DMSTK.movePaginator();

	},


	movePaginator : function() {
		if(!$('#additional_content').length) return;

		if (DMSTK.PAGINATOR_READY) {

			startScroll = paginatorOffsetOriginalTop - paginatorPositionOriginalTop + 120;
			stopScroll = mainContentTop + mainContentHeight - paginatorHeight - paginatorPositionOriginalTop - paginatorMarginBottom;

			maxPaginatorPosition = parentContentHeight + parentPaddingBottom + parentPaddingTop - paginatorHeight - paginatorMarginBottom;


			// Limits
			if (startScroll < $(window).scrollTop() && $(window).scrollTop() < stopScroll) {
				$('#additional_content').css('position', 'fixed');
				$('#additional_content').css('top', paginatorPositionOriginalTop - 120);
			}
			else {
				$('#additional_content').css('position', 'absolute');

				if (startScroll > $(window).scrollTop()) $('#additional_content').css('top', paginatorPositionOriginalTop);
				if ($(window).scrollTop() > stopScroll) $('#additional_content').css('top', maxPaginatorPosition);

			}

		}

	},

/*::::::::::::::::::::::::::::::::: SLIDESHOW :::::::::::::::::::::::::::::::::*/

    SLIDESHOW_POSITION : 0,

    initSlideshow : function() {
        $('ul.slideshow li:gt(0)').css('display', 'none');
    },

    playSlideshow : function() {
        $('ul.slideshow li:eq('+DMSTK.SLIDESHOW_POSITION+')').hide();
        if (DMSTK.SLIDESHOW_POSITION < $('ul.slideshow li').length -1) {
            DMSTK.SLIDESHOW_POSITION += 1;
        }
        else {
            DMSTK.SLIDESHOW_POSITION = 0;
        }

        $('ul.slideshow li:eq('+DMSTK.SLIDESHOW_POSITION+')').fadeIn(800);
    },



/*::::::::::::::::::::::::::::::::: AUTO VALIDATE FORMS :::::::::::::::::::::::::::*/

	autoValidateForms : function() {
		var self = this;

		$("form").each(function(){
			$(this).find("button, input.button").hover(
				function(){ $(this).addClass("hover"); },
				function(){ $(this).removeClass("hover"); }
			);
			$(this).submit(function(e){ return self._validate(e, this); });
		});
	},

	_validate : function(e, _form) {
		var isAllOk = true;
		$(_form).find(".formfield.required").each(function(){
			var elem = $(this).find("input, textarea, select");
			var val = elem.val().replace(/^\s+/, '').replace(/\s+$/, '');
			var elemErr = !val.length || ($(this).is(".email") && !/@/.test(val));
			$(this).toggleClass("error", elemErr);
			if (elemErr && isAllOk) elem.get(0).focus();
			isAllOk &= !elemErr;
		});
		if (!isAllOk) alert("Por favor, rellena correctamente los campos obligatorios");
		return !!isAllOk;
	}

}


/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/

$(document).ready(function() {
	if (document.getElementById) {
		DMSTK.roundeMeNow();
		if(!$.browser.msie) DMSTK.autoPopup();
		DMSTK.initSlideshow();
	}

	DMSTK.autoValidateForms();
});

window.onload = function() {
    
	if(!($.browser.msie && parseInt($.browser.version) == 6) && $('body').height() >= 500) DMSTK.preparePaginator();

	setInterval(function() {
		DMSTK.playSlideshow();
	}, 4000);
}

$(window).scroll(function () {
	if(!($.browser.msie && parseInt($.browser.version) == 6)) DMSTK.movePaginator();
});