$(function () {

   if(!$(".introArea,.offerDisplayPanel").length && $(".productDetail").length) {
    $(".productDetail:first").addClass("noBorderTop");
   }
   
   // Load png fix for IE and apply to banner images
   $.getScript('/Prelogin/assets/scripts/supersleight.js',function(){$(".carouselWrapper").supersleight();});
   
   if($(".showHideContainer").length) {
    $(".showHideContainer").each(function(){
        $(".item > h3", this).wrapInner('<a />');
		$(".item > h3 a", this).attr("href","#"); // note: adding the href to the wrapInner doesn't work in IE9 e.g ('<a href="#" />')
		$(".item > h3", this).click(
        function(){
            var wrapperWidth = $(this).parents().width();
            $(this).toggleClass("expand");
            $(this).parent().find(".itemDetails").width(wrapperWidth).slideToggle();
            return false;
        });
        
        var firstID = $(".showHideItem").attr("id");
			//Takes the ID from the URL and displays the correct FAQ section.
			//If there is no id in the URL it will open section 1
			var itemID = location.href.match(/#.+$/) || ("#"+firstID);
			$(itemID + " .item > h3").toggleClass("expand").parent().find(".itemDetails").slideToggle();

			if (location.href.match(/#/)) {
				location.href = location.href;
			}
			$(".faqsNav a").click(function() {
			    var faqLink = $(this).attr("href");
			    $(faqLink + " .item > h3").toggleClass("expand").parent().find(".itemDetails").slideToggle();
			});
        
    });
   }
   
        
  $(".qualifierPanel").each(function() {
          $("h3", this).click(function() {
            $(this).toggleClass("expand");
            $(".qualifierPanel .desc").slideToggle();
            return false;
        });
        
    $(".termsBlock").each(function() {
        $(this).find('.desc').before('<p class="infoLink"><a href="#">View terms and conditions</a></p>');

         $("p.infoLink a", this).click(function() {
            $(this).toggleClass("expand").parents(".termsBlock").find(".desc").slideToggle();
            $(this).text($(this).hasClass('expand') ? 'Close terms and conditions' : 'View terms and conditions');

            return false;
        });
    });
    if ($(".helpFaqs").length) { // If on the FAQ page      

        $(".helpFaqs").each(function() {
        
            $(this).find('.desc').before('<p class="infoLink"><a href="#">View questions and answers</a></p>');

             $("p.infoLink a", this).click(function() {
                $(this).toggleClass("expand").parents(".helpFaqs").find(".desc").slideToggle();
                $(this).text($(this).hasClass('expand') ? 'Close questions and answers' : 'View questions and answers');

                return false;
            });
        });
        
			var firstTipID = $(".helpFaqs").attr("id");
			//Takes the ID from the URL and displays the correct FAQ section.
			//If there is no id in the URL it will open section 1
			var tipID = location.href.match(/#.+$/) || ("#"+firstTipID);
			$(tipID + " .content > .infoLink a").toggleClass("expand").parents(".helpFaqs").find(".desc").slideToggle();

			if (location.href.match(/#/)) {
				location.href = location.href;
			}
			$(".faqsNav a").click(function() {
			    var faqLink = $(this).attr("href");
			    $(faqLink + " .content > .infoLink a").toggleClass("expand").parents(".helpFaqs").find(".desc").slideToggle();
			});
			
    }
    
    $(".subTip").each(function() {
        $(this).html('<a href="#" >' + $(this).html() + '</a>');
    });
            
    $(".subTip a").click(function (){
        var wrapperWidth = $(this).parents().width();
        $(this).toggleClass("expand").parent().next().width(wrapperWidth).slideToggle();
        return false;
    });
        
   $(".termsBlock p.infoLink a:first,.helpFaqs .desc .subTip:first a").click();
   
    if($(".newsStorySummary").length) {
    $(".newsStorySummary").each(function() {
            $(this).append('<p class="infoLink"><a href="#">Read full article</a></p>'); 
            $(".infoLink a", this).click(function() {
                $(this).text($(this).hasClass('expand') ? 'Read full article' : 'Close full article').toggleClass("expand").parents(".newsStory").find(".desc").slideToggle();
    
                return false;
            });
            });
            
        
        }
 
        

    });
   
   
    
    





    //homepage carousel functionality
    function homeSlideShow() {
        var images = window.bannerImages;
        var numberOfImages = images.length;
        if (!images || (numberOfImages <= 1))
            return;
        var timer = images.timer || 5000;
        var index = 0;
        var link = $(".carouselWrapper a");
        var image = $("img", link);
        var textBlock = $(".carouselText");
        var loadingImage = new Image();
        var timerID = null;
        var dots = null;
        dotBar();
        image.load(function () {
            $(this).show()
        });
        var inTransition = false;

        function imageLoaded() {

            //link.css("background-image", 'url(' + loadingImage.src + ')');
            //link.supersleight();
           
      

                image.attr({ alt: images[index].alt, title: images[index].alt, src: loadingImage.src });
                image.supersleight();
                link.attr({ title: images[index].alt, href: images[index].href });
                textBlock.html(images[index].itemText);
                if (timerID != null) {
                    timerID = setTimeout(function () { advanceBanner(); }, timer);

                }
                inTransition = false;

        
        }

        function imageFail() {
            inTransition = false;
            advanceBanner();
        }

        loadingImage.onload = imageLoaded;
        loadingImage.onerror = imageFail;

        function dotBar() {
            var strDots = "<div class='carouselDotOuter'><div class='carouselDotHolder'><div class='bullets'>";
            for (i = 0; i < numberOfImages; i++) {
                strDots += "<a data-slideIndex='" + i + "' class='carouselDot" + (i == 0 ? " carouselDotActive" : "") + "'></a>";
            }

            strDots += "</div></div></div>";
            
            //$(strDots).appendTo($('.carouselImage'));
            $('.carouselImage').append(strDots);
            dots = $('.carouselDotHolder .carouselDot').click(function () {
                advanceBanner($(this).attr("data-slideIndex") * 1, true);
                return false;
            });
        }

        function advanceBanner(movement, isAbsolute) {
            if (inTransition) return false;
            inTransition = true;
            if (!movement && isNaN(movement)) movement = 1;
            if (isAbsolute) {
                index = movement;
            }
            else {
                index = ((index + (images.length + movement)) % images.length);
            }
            loadingImage.src = images[index].src;
            dots.removeClass('carouselDotActive').eq(index).addClass('carouselDotActive');
        }

        $('.prevSlide,.nextSlide').click(function () {
            advanceBanner(this.className.match(/prevSlide/i) ? -1 : 1);
            return false;
        });

        $(".carouselImage").mouseover(function () {
            clearTimeout(timerID);
            timerID = null;
        })
        .mouseout(function () {
            timerID = setTimeout(function () { advanceBanner(); }, timer);
        });
        timerID = setTimeout(function () { advanceBanner(); }, timer);
    }

    if (window.bannerImages) {
        homeSlideShow();
        
    }

    //homepage news element
    function homeNews() {
        var newsItems = window.newsItems;
        var total = newsItems.length;
        if (total <= 1) return;
        var container = $(".newsElement");
        var titleObj = $(".title a", container);
        var descriptionObj = $(".description a", container);
        var index = 0;
        function buildItem() {
            var item = newsItems[index];
            titleObj.html(item.title);
            descriptionObj.html('<img src="' + item.src + '" alt="' + item.alt + '"/>' + item.text);
            titleObj.add(descriptionObj).attr("href", item.href);
        }
        container.append('<p><a data-index="-1" href="#" class="arrowLeft" title="Previous tip">Previous tip</a><a data-index="1" href="#" class="arrowRight" title="Next tip">Next tip</a></p>');
		$('.arrowLeft,.arrowRight').click(function () {
				
                    var movement = $(this).attr("data-index") * 1;
                    index = ((index + (total + movement)) % total);
                    buildItem();
                    return false;
                });
    }
    if (window.newsItems) {
        homeNews();
    }
    //end news

    $(".reasonsToSwitch .switchPanelWrapper,.offerDisplayPanel .offerDisplayRow").each(function () {

        var rowHeight = $(this).height();
        $('.switchPanel,.offerDisplayItem', this).each(function () {
            $(this).css("padding-bottom", rowHeight - $(this).outerHeight());
        });
    });
});

// Simulates PHP's date function
Date.prototype.format = function(format) {
    var returnStr = '';
    var replace = Date.replaceChars;
    for (var i = 0; i < format.length; i++) {       var curChar = format.charAt(i);         if (i - 1 >= 0 && format.charAt(i - 1) == "\\") {
            returnStr += curChar;
        }
        else if (replace[curChar]) {
            returnStr += replace[curChar].call(this);
        } else if (curChar != "\\"){
            returnStr += curChar;
        }
    }
    return returnStr;
};

Date.replaceChars = {
    shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
    longMonths: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
    shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
    longDays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],

    // Day
    d: function() { return (this.getDate() < 10 ? '0' : '') + this.getDate(); },
    D: function() { return Date.replaceChars.shortDays[this.getDay()]; },
    j: function() { return this.getDate(); },
    l: function() { return Date.replaceChars.longDays[this.getDay()]; },
    N: function() { return this.getDay() + 1; },
    S: function() { return (this.getDate() % 10 == 1 && this.getDate() != 11 ? 'st' : (this.getDate() % 10 == 2 && this.getDate() != 12 ? 'nd' : (this.getDate() % 10 == 3 && this.getDate() != 13 ? 'rd' : 'th'))); },
    w: function() { return this.getDay(); },
    z: function() { var d = new Date(this.getFullYear(),0,1); return Math.ceil((this - d) / 86400000); }, // Fixed now
    // Week
    W: function() { var d = new Date(this.getFullYear(), 0, 1); return Math.ceil((((this - d) / 86400000) + d.getDay() + 1) / 7); }, // Fixed now
    // Month
    F: function() { return Date.replaceChars.longMonths[this.getMonth()]; },
    m: function() { return (this.getMonth() < 9 ? '0' : '') + (this.getMonth() + 1); },
    M: function() { return Date.replaceChars.shortMonths[this.getMonth()]; },
    n: function() { return this.getMonth() + 1; },
    t: function() { var d = new Date(); return new Date(d.getFullYear(), d.getMonth(), 0).getDate() }, // Fixed now, gets #days of date
    // Year
    L: function() { var year = this.getFullYear(); return (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)); },   // Fixed now
    o: function() { var d  = new Date(this.valueOf());  d.setDate(d.getDate() - ((this.getDay() + 6) % 7) + 3); return d.getFullYear();}, //Fixed now
    Y: function() { return this.getFullYear(); },
    y: function() { return ('' + this.getFullYear()).substr(2); },
    // Time
    a: function() { return this.getHours() < 12 ? 'am' : 'pm'; },
    A: function() { return this.getHours() < 12 ? 'AM' : 'PM'; },
    B: function() { return Math.floor((((this.getUTCHours() + 1) % 24) + this.getUTCMinutes() / 60 + this.getUTCSeconds() / 3600) * 1000 / 24); }, // Fixed now
    g: function() { return this.getHours() % 12 || 12; },
    G: function() { return this.getHours(); },
    h: function() { return ((this.getHours() % 12 || 12) < 10 ? '0' : '') + (this.getHours() % 12 || 12); },
    H: function() { return (this.getHours() < 10 ? '0' : '') + this.getHours(); },
    i: function() { return (this.getMinutes() < 10 ? '0' : '') + this.getMinutes(); },
    s: function() { return (this.getSeconds() < 10 ? '0' : '') + this.getSeconds(); },
    u: function() { var m = this.getMilliseconds(); return (m < 10 ? '00' : (m < 100 ?
'0' : '')) + m; },
    // Timezone
    e: function() { return "Not Yet Supported"; },
    I: function() { return "Not Yet Supported"; },
    O: function() { return (-this.getTimezoneOffset() < 0 ? '-' : '+') + (Math.abs(this.getTimezoneOffset() / 60) < 10 ? '0' : '') + (Math.abs(this.getTimezoneOffset() / 60)) + '00'; },
    P: function() { return (-this.getTimezoneOffset() < 0 ? '-' : '+') + (Math.abs(this.getTimezoneOffset() / 60) < 10 ? '0' : '') + (Math.abs(this.getTimezoneOffset() / 60)) + ':00'; }, // Fixed now
    T: function() { var m = this.getMonth(); this.setMonth(0); var result = this.toTimeString().replace(/^.+ \(?([^\)]+)\)?$/, '$1'); this.setMonth(m); return result;},
    Z: function() { return -this.getTimezoneOffset() * 60; },
    // Full Date/Time
    c: function() { return this.format("Y-m-d\\TH:i:sP"); }, // Fixed now
    r: function() { return this.toString(); },
    U: function() { return this.getTime() / 1000; }
};

function AddRocketFuelTag(divId, ca) {
    var container = document.getElementById(divId);
    var protocol = (("https:" == document.location.protocol) ? "https://" : "http://");
    var cacheBuster = Math.floor(Math.random() * 10000000).toString();
    container.innerHTML = "<img src=\"" + protocol + "p.rfihub.com/ca.gif?rb=1225&ca=" + ca + "&ra=" + cacheBuster + "\" height=\"0\" width=\"0\" style=\"display:none\" alt=\"Rocket Fuel\"/>";
}
