/*
        Javascript file for generic engine online catalog page functionality

*/
function showQuickLook(element) {
    $.getJSON('/ajax/getEnginesQuickLook.htm?series='+$(element).attr('name')+'&product='+$(element).attr('id') , '', function(data){
        var productDescription = data.engine.productDescription;
        var seriesName = data.engine.seriesName;
        var imagePath = data.engine.imagePath;
        var brochurePath = data.engine.brochurePath;

        var parentRow = $(element).parents('tr.productmatrix-resultrow');
        var descriptionDetail = $(parentRow).find('a.productmatrix-descriptiondetail-link');
        var detailUrl = descriptionDetail.attr('href');
        var descriptionDetailText = descriptionDetail.text();

        var brochureLinkText = $(parentRow).find('div.productmatrix-brochure-link-text').text();
        var viewEnginesLinkText = $(parentRow).find('div.productmatrix-viewengines-link-text').text();
        var tableHTML = [];
        tableHTML.push('<td valign="top" class="column-1"><div></div></td>');
        var count = 2;
        $(parentRow).find('td:gt(2):lt(6)').each(function() {
            tableHTML.push('<td valign="top" class="column-');
            tableHTML.push(count.toString());
            tableHTML.push('">');
            tableHTML.push($(this).html());
            tableHTML.push("</td>");
            count++;
        });
        tableHTML.push('<td valign="top" class="column-8"><div></div></td>');
        var tableCells = tableHTML.join('');
        $('#quicklook-container #quicklook-descriptiondetail').text(descriptionDetailText);
        $('#quicklook-container #quicklook-productdescription-copy').text(productDescription);
        $('#quicklook-container #quicklook-table tr.quicklook-table-contentrow').html(tableCells);
        $('#quicklook-container #quicklook-descriptiondetail').removeClass('sIFR-replaced');

        var imgHtml = [];
        imgHtml.push('<span class="vertical-centerer"></span><a href="');
        imgHtml.push(detailUrl);
        imgHtml.push('"><img src="');
        imgHtml.push(imagePath);
        imgHtml.push('" border="0" alt="');
        imgHtml.push(descriptionDetailText);
        imgHtml.push('"/></a>');
        $('#quicklook-container-innerblock-left').html(imgHtml.join(''));
        $('#quicklook-container-innerblock-right li.link:first a').attr('href', detailUrl);
        $('#quicklook-container-innerblock-right li.link:eq(1) a').attr('href', '/onlinecatalog/serieslanding.htm?series=' + seriesName).text(viewEnginesLinkText);
        if (brochurePath!=null && brochurePath.length > 1) {
            $('#quicklook-container-innerblock-right li.link:eq(2) a').attr('href', brochurePath).text(brochureLinkText);
            $('#quicklook-container-innerblock-right li.link:eq(2)').show();
        } else {
            $('#quicklook-container-innerblock-right li.link:eq(2)').hide();
        }
        sIFRReplacer('h2.thirty',{'.sIFR-root': {'background-color': '#FFFFFF', 'color': '#7A9059', 'font-size': '30px'}},helveticaLight);

        var leftPixels = ($(window).width() / 2)  - ($('#quicklook-container').width() / 2) + 82;
        var topPixels;
        topPixels = $(window).scrollTop() + (($(window).height() / 3) - ($('#quicklook-container').height() / 3));
        $('#quicklook-container').css({left:leftPixels + 'px', top:topPixels + 'px'});
        $('#quicklook-container').bgiframe();
        $('#document-overlay').show().css('cursor', 'pointer').css('cursor', 'hand').click(hidePopup);
    });
}

function hidePopup() {
    if ($('#document-overlay').css('cursor') != 'wait') {
        $('link[rel*=style]').each(function(i) {
            if ($(this).attr('href').indexOf('printS7.css') > -1) $(this).attr('href', '/common/css/print.css');
        });
        $('.lightbox').css('left', '-3000px');
        $('#document-overlay')[0].onclick = null;
        $('#document-overlay').css('cursor', 'default').hide();
    }
}

function showDownloadsPopup(element) {
   
    var manuals;
    var manualType = $(element).text().toLowerCase();
    if ($(element).data("manual-type") != null) {
        manualType = $(element).data("manual-type").toLowerCase();
    }

    // this differentiates between detail page and results page
    if ($('div#manuals-popup-content-service').size() > 0 ) {
		manuals = $('div#manuals-popup-content-' + manualType);
		
    }else if ($('div.manuals-popup-content-brochure').size() > 0){
        manuals =$(element).parents('div.eng-brochure-copy').find('div.manuals-popup-content-brochure');
			
    }else {
        manuals = $(element).parents('tr.productmatrix-resultrow').find('td.manuals-popup-content-' + manualType);
		    }
    var text = $(manuals).html();

    var positionOfLinkUserClickedOn = $(element).offset();
    var popupHeight = $('#downloads-container').height();
    var popupWidth = $('#downloads-container').width();
    if ($(window).height() + $(window).scrollTop() < positionOfLinkUserClickedOn['top'] + popupHeight + 10) {
        $('#downloads-container').css({top:positionOfLinkUserClickedOn['top'] - popupHeight + 25, left:positionOfLinkUserClickedOn['left'] - popupWidth});
    } else {
        $('#downloads-container').css({top:positionOfLinkUserClickedOn['top'] - 10, left:positionOfLinkUserClickedOn['left'] - popupWidth});
    }

    $('#downloads-container').find('div.downloads-content').html(text);

    $('#document-overlay').show().css('cursor', 'pointer').css('cursor', 'hand');
    $('#document-overlay').click(hidePopup);
}

var SlideShow = function() {
    var currentImg = 0;
    var imageFilenames = new Array();
    var imageFilenamesJPG = new Array();
    var setupSlideShow = function(myImageFilenames, myImageFilenamesJPG, hpValues, modelNumbers, config) {
        imageFilenames = myImageFilenames;
        imageFilenamesJPG = myImageFilenamesJPG;
        var nextButton = config.nextButton || 'div#eng-landing-slideshow-next';
        var prevButton = config.prevButton || 'div#eng-landing-slideshow-prev';
        var viewPort = config.viewPort || 'div#eng-landing-slideshow-viewport';
        var imageWidth = config.imageWidth || 200;
        var imageHeight = config.imageHeight || 238;
		var animationSpeed = config.animationSpeed || 800;
        if (imageFilenames.length > 0) {
            $(function() {
                $(nextButton).click(function() {
                    currentImg = (currentImg + 1) % imageFilenames.length;
                    var thisHpVal = hpValues[currentImg];
                    var thisModelNumber = modelNumbers[currentImg];
                    var imgToLoad = (currentImg + 1) % imageFilenames.length;
                    $(this).queue(function() {
                        $(viewPort + ' div:eq(0)').animate({width:'1px'}, animationSpeed, "linear", function() {
                            $(viewPort + ' div:eq(0)').remove();
                            $(viewPort).append($('<div><img src="' + imageFilenames[imgToLoad] + '" alt="" border="0" width="' + imageWidth + '" height="' + imageHeight + '"/></div>'));
                            $(nextButton).dequeue();
                            $('#eng-landing-slideshowinfo').html('<strong>' + thisHpVal + ' hp</strong> ' + thisModelNumber);
                            setTimeout('enableAlphaImages()', 10);
                        });
                    });
                });
                $(prevButton).click(function() {
                    currentImg = (currentImg - 1 + imageFilenames.length) % imageFilenames.length;
                    var thisHpVal = hpValues[currentImg];
                    var thisModelNumber = modelNumbers[currentImg];
                    var imgToLoad = (currentImg - 1 + imageFilenames.length) % imageFilenames.length;
                    $(this).queue(function() {
                        $(viewPort).prepend($('<div style="width:1px;">&nbsp;</div>'));
                        $(viewPort + ' div:eq(0)').animate({width:imageWidth + 'px'}, animationSpeed, "linear", function() {
                            $(viewPort + ' div:eq(3)').remove();
                            $(viewPort + ' div:eq(0)').html('<img src="' + imageFilenames[imgToLoad] + '" alt="" width="' + imageWidth + '" height="' + imageHeight + '" border="0" />');
                            $(prevButton).dequeue();
                            $('#eng-landing-slideshowinfo').html('<strong>' + thisHpVal + ' hp</strong> ' + thisModelNumber);
                            setTimeout('enableAlphaImages()', 10);
                        });
                    });
                });
            });
        }
    }

    var preloadSlideshowImages = function() {
        if (imageFilenames.length >= 3) {
            var firstPreload = new Image();
            var secondPreload = new Image();
            firstPreload.src = imageFilenames[2]; // get the one after the currently loaded next image
            secondPreload.src = imageFilenames[imageFilenames.length - 2]; // get the one before the currently loaded previous image
            for (var i = 3; i < imageFilenames.length; i++) { // get everything else
                var preload = new Image();
                preload.src = imageFilenames[i];
            }
        }
    }

    var preloadQuickLookImages = function() {
        for (var i = 0; i < imageFilenamesJPG.length; i++) {
            var preload = new Image();
            preload.src = imageFilenamesJPG[i];
        }
    }

    return {setupSlideShow: setupSlideShow, preloadSlideshowImages: preloadSlideshowImages, preloadQuickLookImages: preloadQuickLookImages};
}();

function showPopup(idOfPopup, ratio) {
    var leftPixels = ($(window).width() / 2)  - ($(idOfPopup).width() / 2);
    var topPixels;
    if (ratio != undefined) {
        topPixels = $(window).scrollTop() + ($(idOfPopup).height() / ratio);
    } else {
        topPixels = $(window).scrollTop() + (($(window).height() / 2) - ($(idOfPopup).height() / 2));
    }
    $(idOfPopup).css({left:leftPixels + 'px', top:topPixels + 'px'});
    $(idOfPopup).bgiframe();
    $('#document-overlay').show().css('cursor', 'pointer').css('cursor', 'hand').click(hidePopup);
}

function sendEmailTo(urlOfInterest,pageTitle) {
    var firstName = $("#firstName").val();
    var lastName = $("#lastName").val();
    var toAddress = $("#toAddress").val();
    var fromAddress = $("#fromAddress").val();
    var message = $("#message").val();
    var ccFlag = $("#ccFlag").val();
    if(ccFlag == 'on') {
        ccFlag = true;
    }
    $("#firstName").removeClass("textfield-error");
    $("#lastName").removeClass("textfield-error");
    $("#toAddress").removeClass("textfield-error");
    $("#fromAddress").removeClass("textfield-error");

    $.get("/onlinecatalog/emailToFriend.htm",
            {"firstName":firstName,
             "lastName":lastName,
             "fromAddress":fromAddress,
             "toAddress":toAddress,
             "message":message,
             "urlOfInterest":decodeURIComponent(urlOfInterest),
             "pageName":pageTitle,
             "copy":ccFlag}, 
            function(data) {
                if(data.emailToFriend.status == "ERROR") {
                    $("#errorMsg").css('display','block');
                    $.each(data.emailToFriend.errors, function(i,item){
                        if (item.message != '') {
                            var errorPart = "#"+item.message;
                            var errorPartLabel = "#" + item.message + '-label';
                            $(errorPart).addClass("textfield-error");
                            $(errorPartLabel).addClass("error");
                        }
                    });
                } else if (data.emailToFriend.status == "SUCCESS") {
                    $('#emailfriend-container').css("left","-1000px");

                    $("#errorMsg").hide();
                    $("#firstName").val('').removeClass("textfield-error");
                    $("#firstName-label").removeClass("error");
                    $("#lastName").val('').removeClass("textfield-error");
                    $("#lastName-label").removeClass("error");
                    $("#toAddress").val('').removeClass("textfield-error");
                    $("#toAddress-label").removeClass("error");
                    $("#fromAddress").val('').removeClass("textfield-error");
                    $("#fromAddress-label").removeClass("error");
                    $("#message").val('');

                    $('#emailfriend-container-thankyou #emailfriend-recipient').text(toAddress);
                    var leftPixels = ($(window).width() / 2)  - ($('#emailfriend-container-thankyou').width() / 2);
                    var topPixels = $(window).scrollTop() + ($(window).height() / 5);
                    $('#emailfriend-container-thankyou').css({left:leftPixels + 'px', top:topPixels + 'px'});

                    // send omniture data
                    var s=s_gi('kohlerengines.com,kohlerglobal');
                    s.linkTrackVars='channel,prop1,prop2,pageName,prop9,prop14,eVar26,events';
                    s.linkTrackEvents='event11';
                    s.prop1='KOHLER ENGINES';
                    s.channel='KOHLER ENGINES:EMAIL CONTENT';
                    s.prop2='KOHLER ENGINES:EMAIL CONTENT:FORM';
                    s.pageName='KOHLER ENGINES:EMAIL CONTENT:FORM:CONFIRMATION';
                    s.prop9='TOOLS';
                    s.events='event11';
                    s.prop14 = urlOfInterest;
                    s.eVar26 = urlOfInterest;
                    void(s.t());
                }
            }, "json" );
}

// Bind Functions to Dom on document ready
$(function(){	
	// Script for uses tab on product detail.  Sets active arrow and content 
    $('.productdetail-uses-button-container div').not($(".productdetail-uses-button-empty")).click(
            function() {
                $('.productdetail-uses-button-container div').removeClass('productdetail-uses-button-active');
                $('.productdetail-uses-button-container div').not($(".productdetail-uses-button-empty")).addClass('productdetail-uses-button');
                $(this).removeClass('productdetail-uses-button');
                $(this).addClass('productdetail-uses-button-active');
                var selectedID = $(this).attr("id")
                $(".engUsesList").css("display","none");
                $("#"+selectedID + "-list").css("display", "block");
            }
    );
});

