﻿var Products = {"Items":[]};
var style = "";
var wearingMethod = "";
var removingMethod = "";
var femaleSMMinSize = 38;
var femaleSMMaxSize = 40;
var femaleMLMinSize = 48;
var femaleMLMaxSize = 50;
var maleMMaxSize = 40;
var maleLMinSize = 38;

function toggle_selector() {
   if ($("#product-selector").css("display") == "none") {
			$("#selector-cta").css('display','none');
            $("#product-selector").slideDown(500);
            // readding png class because it was removed during initial pngFix
            ognc.tracking.linkTrack('ProductSelector', 'Open');
    }else {
          
			$("#product-selector").slideUp(500, function() {
			 	$("#selector-cta").css('display','block');
			});
            //// readding png class because it was removed during initial pngFix
            $("#product-detail").slideUp(600);
            $("#product-detail").addClass("display-none");
            $("#second-level-styles").slideUp(200);

            $(".product-styles img").each
			(
				function() {
				    $(this).css("filter", $(this).css("filter").replace("-disabled.png", ".png"))
				    $(this).attr("src", $(this).attr("src").replace("-disabled.png", ".png"))
				}
			);
            ognc.tracking.linkTrack('ProductSelector', 'Close');
        }
        // Reapply pngFix to elements newly added to DOM
        depend.pngFix();
 }

function print_recommendation() {
    $("#product-selector").jqprint({debug:false})
}

function validateDecimal(stringToTest){
    var intRegex = /^\d+$/; 
    var floatRegex = /^((\d+(\.\d *)?)|((\d*\.)?\d+))$/;

    if (!floatRegex.test(stringToTest)) {
        return false; 
    }
    else return true;
}

function selectorBreadcrumbs(){
	// breadcrumbs
	var currentStep = $('#product-selector-breadcrumb li.product-selector-breadcrumb-active');
	var stepIndex = $('#product-selector-breadcrumb li').index(currentStep);
	$('#product-selector-breadcrumb li:gt(' + stepIndex + ')').css('opacity', '0.5');
	$('#product-selector-breadcrumb li:lt(' + stepIndex + ')').addClass('breadcrumb-history');
}

$(document).ready
(
	function() {
	    selectorBreadcrumbs()
	    $('#selector-cta').hide();

	    //Find current product and set active
	    var productID = requestedProductID.substr(1);

	    $('div.product-styles ul li').each(function(index) {
	        if (productID && $(this).attr('class').match(productID) != null) {
	            $(this).css('background-position', '0 -85px');
	        }
	    });
		
	 	 if(document.location.href.indexOf('-women') > -1){
			$('#product-detail').insertAfter('.women.margin-left-30px');
			window.location.hash = "#productdetail";
		 }else if(document.location.href.indexOf('-men') > -1){
		 	$('#product-detail').insertAfter('.men.margin-left-30px');
			window.location.hash = "#productdetail";
		 }
		
	    if (requestedProductID == "_") {
	        $("#product-detail").addClass("display-none");
	    }

	    $("#selector-cta a").click(function() {
	        toggle_selector();
	        return false;
	    });

	    //Close Product Selector
	    $('#button-close-recommendation').live('click', function() {
	        toggle_selector();
	    });

	    //added to support printing of recommmendation pane
	    $('#button-print-recommendation').live('click', function() {
	        print_recommendation();
	    });

	    $(".button-close-recommendation").live('click', function() { toggle_selector(); });

	    $("#product-toggle-switch").live('click',
			function(event) {
			    var tempID = $("input[id$='hfPidTarget']").val();
			    $("input[id$='hfPidTarget']").val($("input[id$='hfPidTarget2']").val());
			    $("input[id$='hfPidTarget2']").val(tempID);

			    event.preventDefault();
			    $(".product-toggle").toggle();

			}
		);

	    /*Mouseovers for product nav

	    $("div.product-styles li").hover(
	    function() {
	    $(this).addClass("productStylesBackgroundMove");
	    $(this).children().addClass("productPreviewOn");
	    },
	    function() {
	    $(this).removeClass("productStylesBackgroundMove");
	    $(this).children().removeClass("productPreviewOn");
	    }
	    );*/

	    $("#txtWaistSize").live('keypress', function(event) {
	        if (event.keyCode == 13)
	            $('#WaistSize1').click();
	    });

	    $('.breadcrumb-history').live('click', function() {
	        var nextStep = $(this).index();
	        var currentSelectorHeader = $("input[id$='hfCurrentSelectorHeader']").val();
	        var gender = $("input[id$='hfGender']").val();
	        var productUserType = $("input[id$='hfProductUserType']").val();
	        $("input[id$='hfCurrentStep']").val(nextStep);
	        if (nextStep == 0) {
	            //set back to default display for q1
	            currentSelectorHeader = "";
	            nextStep = "";
	            gender = "";
	        }
	        //adjust index for step 2b and above
	        if (nextStep > 1)
	            nextStep++;
	        ajaxProductSelector(currentSelectorHeader, nextStep, gender, productUserType, "");

	    });

	    $('#product-selector .response-list li').live('click', function() {
	        advanceStep($(this));
	    });

	    //product selector logic
	    function advanceStep(target) {

	        var currentStep = $("input[id$='hfCurrentStep']").val();
	        var currentSelectorHeader = $("input[id$='hfCurrentSelectorHeader']").val();
	        var nextStep = currentStep;
	        var nextSelectorHeader = currentSelectorHeader;
	        var target = target.attr("id");
	        var waistSize = 0;
	        var gender = $("input[id$='hfGender']").val();
	        var productUserType = $("input[id$='hfProductUserType']").val();
	        var errorCount = 0;
if(currentStep!=null)
{

if (currentStep == 3)
{
        var axel = Math.random() + "";
        var a = axel * 10000000000000;
        var NewsleterSignUp ="";
        NewsleterSignUp = "<iframe src='http://fls.doubleclick.net/activityi;src=1665659;type=depen354;cat=right276;ord=' "+ a + "'?' width='1' height='1' frameborder='0'></iframe> ";

        NewsleterSignUp = NewsleterSignUp +"<noscript>";
        NewsleterSignUp = NewsleterSignUp + "<iframe src='http://fls.doubleclick.net/activityi;src=1665659;type=depen354;cat=right276;ord=' width='1' height='1' frameborder='0'></iframe>";
        NewsleterSignUp = NewsleterSignUp +"</noscript>";
        NewsleterSignUp = NewsleterSignUp +"<!-- End of DoubleClick Floodlight Tag: Please do not remove -->";
        $('#product-selector').append(NewsleterSignUp);
}
if(currentStep == 4)
{

 var axel = Math.random() + "";
        var a = axel * 10000000000000;
        var NewsleterSignUp ="";
        NewsleterSignUp = "<iframe src='http://fls.doubleclick.net/activityi;src=1665659;type=depen354;cat=right103;ord=' "+ a + "'?' width='1' height='1' frameborder='0'></iframe> ";

        NewsleterSignUp = NewsleterSignUp +"<noscript>";
        NewsleterSignUp = NewsleterSignUp + "<iframe src='http://fls.doubleclick.net/activityi;src=1665659;type=depen354;cat=right103;ord=' width='1' height='1' frameborder='0'></iframe>";
        NewsleterSignUp = NewsleterSignUp +"</noscript>";
        NewsleterSignUp = NewsleterSignUp +"<!-- End of DoubleClick Floodlight Tag: Please do not remove -->";
        $('#product-selector').append(NewsleterSignUp);
}
if(currentStep == 5)
{
var axel = Math.random() + "";
        var a = axel * 10000000000000;
        var NewsleterSignUp ="";
        NewsleterSignUp = "<iframe src='http://fls.doubleclick.net/activityi;src=1665659;type=depen354;cat=right123;ord=' "+ a + "'?' width='1' height='1' frameborder='0'></iframe> ";

        NewsleterSignUp = NewsleterSignUp +"<noscript>";
        NewsleterSignUp = NewsleterSignUp + "<iframe src='http://fls.doubleclick.net/activityi;src=1665659;type=depen354;cat=right123;ord=' width='1' height='1' frameborder='0'></iframe>";
        NewsleterSignUp = NewsleterSignUp +"</noscript>";
        NewsleterSignUp = NewsleterSignUp +"<!-- End of DoubleClick Floodlight Tag: Please do not remove -->";
        $('#product-selector').append(NewsleterSignUp);
}

}
	        if (currentStep != null) {
	            if (currentStep == 0) {

	                if (target == "Other3") {
	                    $("input[id$='hfProductUserType']").val("Unknown");
	                    $("input[id$='hfGender']").val("Unknown4");
	                    nextStep = 0;
	                    nextSelectorHeader = 21;
	                }
	                else if (target == "Woman1") {
	                    $("input[id$='hfProductUserType']").val("Self");
	                    $("input[id$='hfGender']").val("Female");
	                    nextStep = 1;
	                    nextSelectorHeader = 13;
	                }
	                else if (target == "Man2") {
	                    $("input[id$='hfProductUserType']").val("Self");
	                    $("input[id$='hfGender']").val("Male");
	                    nextStep = 1;
	                    nextSelectorHeader = 12;
	                }
	                else if (target == "CaregiverWoman1") {
	                    $("input[id$='hfProductUserType']").val("Caregiver");
	                    $("input[id$='hfGender']").val("Female");
	                    nextStep = 1;
	                    nextSelectorHeader = 23;
	                }
	                else if (target == "CaregiverMan2") {
	                    $("input[id$='hfProductUserType']").val("Caregiver");
	                    $("input[id$='hfGender']").val("Male");
	                    nextStep = 1;
	                    nextSelectorHeader = 22;
	                }
	                else if (target == "CaregiverOther3") {
	                    $("input[id$='hfProductUserType']").val("Other");
	                    $("input[id$='hfGender']").val("Unknown4");
	                    nextStep = 0;
	                    nextSelectorHeader = 31;
	                }
	                else if (target == "OtherWoman1") {
	                    $("input[id$='hfProductUserType']").val("Other");
	                    $("input[id$='hfGender']").val("Female");
	                    nextStep = 1;
	                    nextSelectorHeader = 33;
	                }
	                else if (target == "OtherMan2") {
	                    $("input[id$='hfProductUserType']").val("Other");
	                    $("input[id$='hfGender']").val("Male");
	                    nextStep = 1;
	                    nextSelectorHeader = 32;
	                }
	            }
	            else if (currentStep == 1) {
	                waistSize = $("#txtWaistSize").val();

	                if (validateDecimal(waistSize) && (waistSize < 100)) {
	                    //if waist size is between sizes go to intermediate step
	                    if (gender == "Female") {
	                        if ((waistSize >= femaleSMMinSize && waistSize <= femaleSMMaxSize) || (waistSize >= femaleMLMinSize && waistSize <= femaleMLMaxSize))
	                            nextStep = 2;
	                        else nextStep = 3;
	                    } else if (gender == "Male") {
	                        if ((waistSize >= maleLMinSize && waistSize <= maleMMaxSize))
	                            nextStep = 2;
	                        else nextStep = 3;
	                    }
	                    $("input[id$='hfWaistSize']").val(Math.ceil(waistSize));
	                }
	                else {
	                    $(".size-error").removeClass("display-none");
	                    errorCount++;
	                }
	            }
	            else if (currentStep == 2) { $("input[id$='hfFit']").val(target); nextStep = 3; }
	            else if (currentStep == 3) { $("input[id$='hfActivityLevel']").val(target); nextStep = 4; }
	            else if (currentStep == 4) { $("input[id$='hfQuantity']").val(target); nextStep = 5; }
	            else if (currentStep == 5) { $("input[id$='hfPreference']").val(target); nextStep = 6; }
	        }
	        else {
	            $("input[id$='hfGender']").val(target);
	            if (target == "Other3") { currentSelectorHeader = 21; }
	            else { nextStep = 1; }
	        }

	        gender = $("input[id$='hfGender']").val();
	        productUserType = $("input[id$='hfProductUserType']").val();

	        $("input[id$='hfCurrentStep']").val(nextStep);
	        $("input[id$='hfCurrentSelectorHeader']").val(nextSelectorHeader);
	        if (errorCount == 0 && nextStep == 6) {
	            determineFinalRecommendation(target);
	        }
	        else if (errorCount == 0) {
	            ajaxProductSelector(nextSelectorHeader, nextStep, gender, productUserType, "");
	        }
	    }

	    function determineFinalRecommendation(preference) {
	        var size = "";
	        var fit = $("input[id$='hfFit']").val();
	        var quantity = "";
	        var gender = $("input[id$='hfGender']").val();
	        var productUserType = $("input[id$='hfProductUserType']").val();
	        var currentStep = $("input[id$='hfCurrentStep']").val();
	        var currentSelectorHeader = $("input[id$='hfCurrentSelectorHeader']").val();

	        var waistSize = 0;
	        var absorbency = "";
	        var productType = "";
	        var productRecommendationId = "";

	        waistSize = $("#hfWaistSize").val();



	        //if waist size is between sizes look at fit preference to determine sizing bias
	        if ((gender == "Male") || (preference == "OpenSides2")) {
	            if ((waistSize >= maleLMinSize && waistSize <= maleMMaxSize)) {

	                if (fit == "Looser1") {
	                    size = "L/XL";
	                }
	                else size = "S/M";
	            }
	            else {
	                if (waistSize < maleLMinSize) { size = "S/M"; }
	                else if (waistSize > maleMMaxSize) { size = "L/XL"; }
	            }
	        }
	        else if (gender == "Female") {
	            if (waistSize >= femaleSMMinSize && waistSize <= femaleSMMaxSize) {
	                if (fit == "Looser1") {
	                    size = "L";
	                }
	                else size = "S/M";
	            }
	            else if (waistSize >= femaleMLMinSize && waistSize <= femaleMLMaxSize) {
	                if (fit = "Looser1") {
	                    size = "XL";
	                }
	                else size = "L";
	            }
	            else {
	                if (waistSize < femaleSMMinSize) { size = "S/M"; }
	                else if (waistSize > femaleSMMaxSize && waistSize < femaleMLMinSize) { size = "L"; }
	                else if (waistSize > femaleMLMaxSize) { size = "XL"; }
	            }
	        }
	        $("input[id$='hfSize']").val(size);
	        if (preference == "Inside3") {
	            productType = "Guard"; $("input[id$='hfSize']").val("One size fits most");
	        }
	        else if (preference == "StepIn1")
	        { productType = "Underwear"; }
	        else if (preference == "OpenSides2") {
	            productType = "Adjustable";
	            absorbency = "Maximum";
	        }
	        if (productType != "Adjustable") {
	            quantity = $("input[id$='hfQuantity']").val();
	            if (quantity == "Slight1") {
	                if (gender == "Male" && preference != "Inside3") absorbency = "Maximum";
	                else absorbency = "Moderate";
	            }
	            else if (quantity == "Moderate2") {
	                if (gender == "Male" && preference != "Inside3") absorbency = "Maximum";
	                else absorbency = "Moderate";
	            }
	            else if (quantity == "Considerate3") {
	                if (gender == "Male") {
	                    if (preference == "Inside3")
	                    //override product type for considerate leakage and guard
	                        productType = "Underwear";
	                }
	                absorbency = "Maximum";
	            }
	        }
	        $("input[id$='hfAbsorbency']").val(absorbency);
	        productRecommendationId = gender + "_" + productType + "_" + absorbency;
	        ajaxProductRecommendation(currentSelectorHeader, currentStep, gender, productRecommendationId, size);
	    }

	    $(".product-styles > ul > li").click
		(
			function() {

			    var gender = $(this).attr("class").replace(/[^a-zA-Z]/g, "");
			    var productID = $(this).attr("class").replace(/[^0-9]/g, "");

			    $('.product-styles > ul > li').removeAttr('style');
			    $(this).css('background-position', '0 -85px');


			    $("#product-detail-left").hide(400).css({ visibility: "hidden", display: "" });
			    $("#product-detail-right").hide(400).css({ visibility: "hidden", display: "" });

			    ajaxProductDetail(productID, gender);


			}

		);

	    $("#browse-womens").click(function() {
	        $("#product-detail").addClass("display-none");
	        ajaxProductLineup("Female");
	        return false;
	    });
	    $("#browse-mens").click(function() {
	        $("#product-detail").addClass("display-none");
	        ajaxProductLineup("Male");
	        return false;
	    });
	    $("#browse-womens.disabled, #browse-mens.disabled").click(function() {
	        return false;
	    });

	    $(".product-detail-link").live('click',
            function(event) {
                event.preventDefault();
                var gender = $(this).attr("id").replace(/[^a-zA-Z]/g, "");
                var productID = $(this).attr("id").replace(/[^0-9]/g, "");
                ajaxProductDetail(productID, gender);
            });
	    $(".where-to-buy-link").live('click',
            function(event) {
                event.preventDefault();
                var pid = $("#hfPidTarget").val();
                var gender = $("#hfProductGender").val();
                var size = $("#lblSize").text();
                
                $(location).attr('href', '/where-to-buy/?gender=' + gender + '&pid=' + pid + '&size=' + size);
            });

	    $(".swatches img").live(
			"mouseenter",
			function(event) {
			    var image_arr = $(this).css("filter").match(/progid:DXImageTransform.Microsoft.AlphaImageLoader\(src='(.*)', sizingMethod='image'\)/, "")
			    var image_src = (image_arr) ? image_arr[1].replace("_thumb.png", ".jpg") : $(this).attr("src").replace("_thumb.png", ".jpg");
			    $("#callout").attr("src", image_src);
			}
		);


	    // tooltips
	    $(function() {
	        $('.product-styles li').tooltip({
	            track: true,
	            top: -10
	        });
	    });

	}
);

function ajaxProductSelector(selectorHeaderId, stepId, gender, productusertype, productRecommendationId) {
    $.ajax
	(
		{
		    url: "/AJAX/ProductSelector.aspx",
		    data: "selectorHeaderId=" + selectorHeaderId + "&stepId=" + stepId + "&gender=" + gender + "&productusertype=" + productusertype + "&theme=" + $("#theme").html(),
		    success: function(data) {
		        $("#product-selector").empty();
		        $("#product-selector").html(data);
		        // Reapply pngFix to elements newly added to DOM
		        depend.pngFix();

		        if (currentStep = $("input[id$='hfCurrentStep']").val() == 1) {
		            $("#txtWaistSize").focus();
		            if ($("input[id$='hfWaistSize']").val() != "") {
		                $("#txtWaistSize").val($("input[id$='hfWaistSize']").val());
		            }
		        }
		        
		        if ($("#product-selector").hasClass("display-none")) {
		            $("#product-selector").slideDown(500);
		            $("#product-selector").removeClass("display-none");
		        }
		        selectorBreadcrumbs();
		    }
		}
	);
}

function ajaxProductRecommendation(selectorHeaderId, stepId, gender, productRecommendationId, size) {
    $.ajax
	(
		{
		    url: "/AJAX/ProductSelector.aspx",
		    data: "selectorHeaderId=" + selectorHeaderId + "&stepId=" + stepId + "&gender=" + gender + "&productRecommendationId=" + productRecommendationId + "&theme=" + $("#theme").html(),
		    success: function(data) {
		        $("#product-selector").empty();
		        $("#product-selector").html(data);
		        // Reapply pngFix to elements newly added to DOM
		        depend.pngFix();
		        if(productRecommendationId != "Male_Guard_Moderate")
		            $("#lblSize").text(size);

		        if ($("#product-selector").hasClass("display-none")) {
		            $("#product-selector").slideDown(500);
		            $("#product-selector").removeClass("display-none");
		        }
		    }
		}
	);
}


var curGender = "";

function ajaxProductLineup(gender) {
    $.ajax
	(
		{
		    url: "/AJAX/ProductLineup.aspx",
		    data: "gender=" + gender + "&theme=" + $("#theme").html(),
		    success: function(data) {
					
		    $("#product-lineup-placeholder").empty().html(data);
			
			$('#product-detail').slideUp();
			
			if(gender == 'Female' || gender == 'women' ){
				$('#product-lineup-placeholder').insertAfter('.women.margin-left-30px');
				$('#browse-womens').addClass('disabled');
				$('#browse-mens').removeClass('disabled');
				window.location.hash = "#womensection";
			}else if(gender == 'Male' || gender == 'men'){
				$('#product-lineup-placeholder').insertAfter('.men.margin-left-30px');
				$('#browse-mens').addClass('disabled');
				$('#browse-womens').removeClass('disabled');
				window.location.hash = "#mensection";
			}
		        // Reapply pngFix to elements newly added to DOM
		        depend.pngFix();

		        if ($("#product-lineup-placeholder").hasClass("display-none")) {
		            $("#product-lineup-placeholder").slideDown(500);
		            $("#product-lineup-placeholder").removeClass("display-none");
		 			$("#product-detail").addClass("display-none");
					$('div.product-styles ul li').each(function(index) {
							$(this).css('background-position','0 0');
					 });
		        }else{
					if(gender == curGender){
						$("#product-lineup-placeholder").slideUp();
						$("#product-lineup-placeholder").addClass("display-none");

						if (gender == 'Female' || gender == 'women') {
							$('#browse-womens').removeClass('disabled');
			            } else if (gender == 'Male' || gender == 'men') {
							$('#browse-mens').removeClass('disabled');
						}
					}
				}
				
					curGender = gender;
		    }
		}
	);
}

function scrollGo(argEle) {
    var targetY = $(argEle).offset().top;
    window.scrollTo(0,targetY)
}


function ajaxProductDetail(id, gender)
{
    $.ajax
	(
		{
		    url: "/AJAX/ProductDetail.aspx",
		    data: "id=" + id.replace(/[^0-9]/g, "") + "&gender=" + gender + "&theme=" + $("#theme").html(),
		    success: function(data) {

				//Turn all off before turning on new one.
				$('div.product-styles ul li').each(function(index) {
							$(this).css('background-position','0 0');
				});
			
				//Find current product and set active
		        $('div.product-styles ul li').each(function(index) {
		            if ($(this).attr('class').match(id + '_' + gender) != null ) {
		                $(this).css('background-position', '0 -85px');
		            }
		        });

		        $("#product-detail").slideUp(500, function() {
		            $(this).addClass('display-none').empty().html(data);
		            $('#product-lineup-placeholder').slideUp();
		            $('#browse-womens, #browse-mens').removeClass('disabled');

		            if (gender != null) {
		                if (gender == 'Female' || gender == 'women') {
		                    $('#product-detail').insertAfter('.women.margin-left-30px');
		                } else if (gender == 'Male' || gender == 'men') {
		                    $('#product-detail').insertAfter('.men.margin-left-30px');
		                }
		            }
		            // Reapply pngFix to elements newly added to DOM
		            depend.pngFix();

		            if ($("#product-detail").hasClass("display-none")) {
		                $("#hero").addClass("display-none");
		                $("#product-detail").slideDown(500);
		                $("#product-detail").removeClass("display-none");
		                $("#product-lineup-placeholder").addClass("display-none");
		            }

		            // set focus event on element
                    setTimeout("scrollGo('#product-detail')",500);
		        });

		    }
		}
	);
}

