$( function(){direct.init();});
var direct = {
    init: function() {
        direct.details.init();
        direct.deals.init();
        direct.spotlight.init();
	}
};
direct.details = {
	init: function() {
        $(".product-details").hide();
        $(".product").hover(function(){direct.details.show(this)}, 
                                     function(){direct.details.hide(this)});
	},
	show: function(el) {
        $(".product-image", el).css("display", "none");
        $(".product-price", el).css("display", "none");
        $(".product-details", el).css("display", "block");
	},
	hide: function(el) {
        $(".product-details", el).css("display", "none");
        $(".product-price", el).css("display", "block");	
        $(".product-image", el).css("display", "block");
    }
};

direct.deals = {
    current: 1,
	init: function() {
        direct.deals.navigationbar();      
        $("#top-deals .page").click(function(){direct.deals.get(this);})
        $("#top-deals .previous").click(function(){direct.deals.prev()});
        $("#top-deals .next").click(function(){direct.deals.next()});
	}, 
    get: function(page) {
        if (typeof page == "object") {
            page = $(page).text();
        }
        $(".active").removeClass("active");
        $("#page"+page).addClass("active");
        $("li.product").css("top", parseInt(-(320*(page-1))) );
        return direct.deals.current = page;
    },
    next: function() {
        if (direct.deals.current != direct.deals.count())
        {
            return direct.deals.get(parseInt(direct.deals.current) + 1);
        }
        return direct.deals.get(1);
    },
    prev: function() {
        if (direct.deals.current != 1)
        {
            return direct.deals.get(direct.deals.current - 1);
        }
        return direct.deals.get(direct.deals.count());
    },
    count: function() {
        return Math.ceil($("li.product").length/6);
    },
    navigationbar: function() {
        var pageCode = '';
        for(var i = 2; i <= direct.deals.count(); i++) {
            pageCode = pageCode + '<li class="page" id="page'+i+'">' + i + '</li>';
        }
        return $("#products").after('<ul id="product-navigation"><li class="previous">Previous</li><li class="page active" id="page1">1</li>' + pageCode + '<li class="next">Next</li></ul>');
    }
};

direct.spotlight = {
    current: 1,
	init: function() {
	    direct.spotlight.random();
        direct.spotlight.navigationbar();      
        $("#solution-spotlight .previous").click(function(){direct.spotlight.prev()});
        $("#solution-spotlight .next").click(function(){direct.spotlight.next()});
	}, 
    get: function(page) {
        if (typeof page == "object") {
            page = $(page).text();
        }
        var bg = $("li.solution")[page-1].id;
        $("#solution-spotlight").css("background-image", "url(http://www.ironmountaindirect.com/assets/images/im-product-" + bg + ".jpg)" );
        $("li.solution").css("top", parseInt( -(220*(page-1))) );
        return direct.spotlight.current = page;
    },
    next: function() {
        if (direct.spotlight.current != direct.spotlight.count())
        {
            return direct.spotlight.get(parseInt(direct.spotlight.current) + 1);
        }
        return direct.spotlight.get(1);
    },
    prev: function() {
        if (direct.spotlight.current != 1)
        {
            return direct.spotlight.get(direct.spotlight.current - 1);
        }
        return direct.spotlight.get(direct.spotlight.count());
    },
    count: function() {
        return $("li.solution").length;
    },
    navigationbar: function() {
        return $("ul.solution-spotlight").after('<ul id="spotlight-navigation"><li class="previous">Previous</li><li class="next">Next</li></ul>');
    },
    random: function() {
        return direct.spotlight.get(Math.floor(Math.random()*(direct.spotlight.count()))+1);
    }
};