// JavaScript Document
$.fn.infiniteCarousel = function () {

    function repeat(str, num) {
        return new Array(num + 1).join(str);
    }

    return this.each(function () {
        var $wrapper = $('> div', this).css('overflow', 'hidden'),
        $slider = $wrapper.find('> ul'),
        $items = $slider.find('> li'),
        $single = $items.filter(':first'),

        singleWidth = $single.outerWidth(),
        visible = Math.ceil($wrapper.innerWidth() / singleWidth),
        // note: doesn't include padding or border
        currentPage = 1,
        pages = Math.ceil($items.length / visible);

        // 1. Pad so that 'visible' number will always be seen, otherwise create empty items
        if (($items.length % visible) != 0) {
            $slider.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
            $items = $slider.find('> li');
        }

        // 2. Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
        $items.filter(':first').before($items.slice(-visible).clone().addClass('cloned'));
        $items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
        $items = $slider.find('> li'); // reselect
        // 3. Set the left position to the first 'real' item
        $wrapper.scrollLeft(singleWidth * visible);

        // 4. paging function
        function gotoPage(page) {
            var dir = page < currentPage ? -1 : 1,
            n = Math.abs(currentPage - page),
            left = singleWidth * dir * visible * n;

            $wrapper.filter(':not(:animated)').animate({
                scrollLeft: '+=' + left
            },
            500, function () {
                if (page == 0) {
                    $wrapper.scrollLeft(singleWidth * visible * pages);
                    page = pages;
                } else if (page > pages) {
                    $wrapper.scrollLeft(singleWidth * visible);
                    // reset back to start position
                    page = 1;
                }

                currentPage = page;
            });

            return false;
        }

        $wrapper.after('<a class="arrow back"></a><a class="arrow forward"></a>');

        // 5. Bind to the forward and back buttons
        $('a.back', this).click(function () {
            return gotoPage(currentPage - 1);
        });

        $('a.forward', this).click(function () {
            return gotoPage(currentPage + 1);
        });

        // create a public interface to move to a specific page
        $(this).bind('goto', function (event, page) {
            gotoPage(page);
        });
    });
};

$(function () { //Initialize jQuery
    // Dynamic Ads Scripts
    var visibleWidth = $(window).width(); // Get Visible Width of Browser Window
    var amount = Math.round(Math.random()); // Get a random 1 or 0 value
    $.fn.init.Ads = function () {
         if (visibleWidth > 1320) $("#conditionalAds").html('<img src="images/ad-150x600.png" width="150" height="600" alt="Advertisement" /><br /><br /><img src="images/ad-150x300.png" width="150" height="300" alt="Advertisement" />').show(500);
        if (amount == 1) $("#topAd").html('<div class="wrap" style="position:relative"><img src="images/close.png" width="16" height="16" alt="Close" id="closeTopAd" /><img src="images/ad-768x120.png" alt="Advertisement" width="768" height="120" class="vspace" /></div>').slideDown(1000);
        $("#closeTopAd").click(function () {
            $("#topAd").slideUp(1000)
        }); // Show Wide Ad at top of page
    }; // Show Conditional Ads and Generate content if available width is greater than 1280 pixels
    //$.fn.init.Ads(); 
	// Initiate Dynamic Ads
    // End Dynamic Ads Scripts
    // Sliding Panel
    $("#advOpen").click(function () {
        $("div#panel").load("../ad.html").slideDown("slow")
    }); // Load content onClick and then show
    $("#advClose").click(function () {
        $("div#panel").slideUp("slow")
    }); // Collapse Panel	
    $("#toggle a").click(function () {
        $("#toggle a").toggle()

    }); // Toggle Open and Close Buttons
    // End Sliding Panel
    $("#openMedia").click(function () {
        $("#banking").slideUp(400, function () {
            $("#media").load("../apps/template/media.php").slideToggle(400);
            $("#openMedia").blur();
        });
    });
    $("#openBanking").click(function () {
        $("#media").slideUp(400, function () {
            $("#banking").load("../apps/template/banking.php").slideToggle(400);
            $("#openBanking").blur();
        });
    });
    $("#searchString").focus(function () {
        $(this).attr("value", "");
    });
    $("#featured").tabs({
        fx: {
            opacity: "toggle"
        }
    }).tabs("rotate", 8000, true);
    $("#gaming").tabs({
        fx: {
            opacity: "toggle"
        }
    });
    $("#horoscope").tabs({
        fx: {
            opacity: "toggle"
        }
    }).tabs({
        spinner: 'Retrieving data...'
    });
    $(".infiniteCarousel").infiniteCarousel();
}); //End jQuery

hs.registerOverlay({
	html: '<div class="closebutton" onclick="return hs.close(this)" title="Close"></div>',
	position: 'top right',
	fade: 2 // fading the semi-transparent overlay looks bad in IE
});
hs.graphicsDir = 'themes/v4theme/images/graphics/';
hs.outlineType = 'rounded-white';
hs.wrapperClassName = 'draggable-header';
hs.fadeInOut = true;
hs.align = 'center';
hs.dimmingOpacity = 0.4;

var galleryOptions = {
    slideshowGroup: 'gallery',
	outlineType: 'rounded-white',
    dimmingOpacity: 0.8,
    align: 'center',
    transitions: ['expand', 'crossfade'],
    fadeInOut: true,
    marginLeft: 100,
    marginBottom: 140,
    numberPosition: 'caption'
};

if (hs.addSlideshow) hs.addSlideshow({
    slideshowGroup: 'gallery',
    interval: 5000,
    repeat: false,
    useControls: true,
    overlayOptions: {
        className: 'text-controls',
        position: 'bottom center',
        relativeTo: 'viewport',
        offsetY: -120
    },
    thumbstrip: {
        position: 'bottom center',
        mode: 'horizontal',
        relativeTo: 'viewport'
    }

});
hs.Expander.prototype.onInit = function () {
    hs.marginBottom = (this.slideshowGroup == 'gallery') ? 150 : 15;
}
