/**
 * @author czapata
 */
if (typeof CM === 'undefined' || !CM)  {
    /**
     * Compost Mania global namespace object
     * @namespace CM global namespace object
     */
    var CM = {};
}

CM.simpleTabs = function(parent) {
	var tabs = $('.tabs li', parent);
	var pannels = $('.pannels .pannel', parent);
	
	tabs.each(function(index) {
		$(this).click(function(e) {
			e.preventDefault();
			tabs.removeClass('selected');
			pannels.hide().eq(index).show();
			$(this).addClass('selected');
		})
	});
}


CM.slideShow = function(parent) {
	var 
        controls = $('.sldControls span', parent),
        slides = $('.sldWrap .sld', parent),
        slideWrap = $('.sldWrap', parent),
        nav = $('.sldNumbs', parent),
        timer = null,
        delay = 5, // in secs
        current = 0,
        paused = false,
        handleControlClick = function(el) {
            var className = jQuery(this).attr('class').split(' ');
            switch (className[0]) {
                case 'prev':
                    handlePrev();
                    break;
                case 'pause':
                    handlePause(this);
                    break;
                case 'next':
                    handleNext();
                    break;
                }
        },
        handlePrev = function() {
            if (current === 0) {
                skipTo(slides.length - 1)
            } else {
                skipTo(current - 1)
            }
            restartTimer();
        },
        handlePause = function(el) {
            if (paused) {
                paused = false;
                jQuery(el).removeClass('active');
                restartTimer();
            } else {
                clearInterval(timer); 
                jQuery(el).addClass('active');
                paused = true; 
            }
        },
        handleNext = function() {
            if (current === slides.length - 1) {
                skipTo(0)
            } else {
                skipTo(current + 1)
            }
            restartTimer();
        },
        skipTo = function(index) {
            jQuery(slides.get(current)).fadeOut('slow');
            jQuery(slides.get(index)).fadeIn('slow');
            nav.find('.selected').removeClass('selected').end().find('li:eq('+ index +')').addClass('selected')
            current = index;
        },
        createNav = function() {
            slides.each(function(index){
                var item = jQuery('<li class="' + (index === 0 ? 'selected' : '') + '">' + (index + 1) + '</li>');
                item.appendTo(nav).click(function(){
                    skipTo(index);
                    restartTimer();
                })
            })
        },
        restartTimer = function() {
            clearInterval(timer);  
            startTimer();
        },
        startTimer = function() {
            timer = setInterval(function(){
                handleNext();
            }, delay * 1000)
        },
        init = function() {
            controls.click(handleControlClick);
            createNav();
            startTimer();
        };
    init();
}


CM.ddMenus = function(parent) {
	var 
        tabs = $('#nav li .dm'),
        menus = $('.dmContainer'),
        timer = null,
        delay = 250, // in secs
        showMenu = function() {
			var tab = $(this),
				offset = tab.offset();
			if (timer) {
				clearTimeout(timer);
				$('#nav li.over').removeClass('over');
				$('.dmContainer').hide();
			};
			tab.parent().addClass('over').end();
			$('#menuContainer-' + tab.attr('rel')).appendTo('body').css({'top': offset.top + 34, left: offset.left}).show(delay);
        },
        hideMenu = function() {
        	var tab = $(this);
			timer = setTimeout(function(){
				$(tab).parent().removeClass('over');
				$('.dmContainer').hide();
			},delay);
        },
        clearMenuTimer = function() {
			clearTimeout(timer);
        },
        startMenuTimer = function() {
        	var menu = $(this);
			timer = setTimeout(function(){
				$('#nav li.over').removeClass('over');
				$('.dmContainer').hide();
			},delay);
        },
        init = function() {
        	tabs.hover(showMenu,hideMenu);
        	menus.hover(clearMenuTimer,startMenuTimer);
            menus.find('ul').each(function(){
                $(this).parent().addClass('menu');
            })
        };
    return {
    	init: function(){
    		init();
    	}
    };
}


jQuery(document).ready(function(){
	$('input.dflt-txt').focus(function(){
		var el = $(this);
		if (el.val() === el.attr('rel')) 
			el.val('');
	}).blur(function(){
		var el = $(this);
		if (el.val() === '') 
			el.val(el.attr('rel'));
	});
	var menus = CM.ddMenus();
	menus.init();
});
