/**
* $HeadURL: http://svn.vinterwebb.se/svn/liko_07-1183/trunk/Liko.Web/jscript/slingguide.js $
* $Date: 2009-12-22 14:39:47 +0100 (ti, 22 dec 2009) $
* $Author: olov.nilzen $
* $Revision: 264 $
**/


var s;
var lk_wrz;
var currsel = null;
var currfileid = null;

var productsofinterest = []; 

$.fn.clearForm = function() {
  return this.each(function() {
    var type = this.type, tag = this.tagName.toLowerCase();
    if (tag == 'form' || tag == 'fieldset')
      return $(':input',this).clearForm();
    if (type == 'text' || type == 'password' || tag == 'textarea')
      this.value = '';
    else if (type == 'checkbox' || type == 'radio')
      this.checked = false;
    else if (tag == 'select')
      this.selectedIndex = -1;
  });
};

var Vinter = {

    currentSelection: new Array(),
    parentSelection: new Array(),
    selString: null,

    createTooltip: function(id, text) {

        var offset = 0;

        var tooltip = $("<div />")
			.attr("id", id + "-tooltip")
			.css({
			    top: $("#" + id).offset().top - 20,
			    left: $("#" + id).offset().left
			})
			.addClass("slider-tooltip-container");

        tooltip
			.html("<span>" + text + "</span>")
			.appendTo($("body"));

        if (id == "handle1")
            offset = (tooltip.width() / 2);

        tooltip
			.css({ left: $("#" + id).offset().left - offset });


    },

    displayHelpPage: function() {

        $.blockUI({
            message: $("#helpDialog"),
            css: {
                width: "740px",
                left: "15%",
                textAlign: "left",
                padding: "10px",
                border: "0",
                top: "5%"
            }
        });

        $.cookie("lk_guide_display_help", "false");

    },

    createMoreInfo: function(cls) {
        $("<em></em>").html(translation.clicktoclose).appendTo(".moreinfo");

        $(".moreinfo-link").click(function(e) {

            e.preventDefault();

            $(".moreinfo").fadeOut("fast");

            var div = $("#" + this.rel);

            div.fadeIn("fast");
            div.click(function() { $(this).fadeOut("fast"); return false; });

            $(document).bind("click.tooltip", function(e) {
                div.fadeOut("fast");
                $(document).unbind("click.tooltip");
            });

            return false;

        });

    },

    slingSelectionUpdated: function(e) {

        var attr = "";

        for (var i = 0; i < Vinter.currentSelection.length; i++) {
            if (Vinter.currentSelection[i].data.length > 0)
                attr += Vinter.currentSelection[i].data.join(",") + "|";
        }

        attr = attr.replace(/\|$/g, "");

        // add special exclude if no amputation is selected
        if (!attr.match(/25|26|65/)) attr += "|89";

        // add special exclude if solo isn't selected
        if (!attr.match(/76,78/)) attr += "|90";

        // add special exclude if toilet isn't selected
        if (!attr.match(/50|51|52/)) attr += "|91";

        // remove head stability good and trunk stability good
        if (attr.match(/48|35/)) attr = attr.replace(/\|55|\|58/g, "");

        $("#attribute").val(attr);

        if (attr == Vinter.selString) return;
        SlingsData.GetSlingsByAttribute(attr);

        Vinter.selString = attr;
    },

    saveSelectionClick: function(e) {
        if ($(this).hasClass("active") != true) return false;

        blockWithContent($("#saveSelectionForm"));
        $("#saveSelectionBtn").click(function() {
            did = "";

            Vinter.saveSelectionToServer();
        });

        return false;
    },

    saveSelectionToServer: function() {
        var c = $.cookie("lk_guide_selection_saves");
        c = (c == null) ? [] : JSON.parse(c);

        var savename = $("#saveName").val();

        $.get(pagedata.baseUrl + "SlingData.ashx", { a: "save", data: Vinter.selString, name: savename }, function(id) {
            c.push({ "id": id, "name": savename });
            $.cookie("lk_guide_selection_saves", JSON.stringify(c), { path: '/', expires: 365 });
            $("#saveBtn").removeClass("active");

            Vinter.getSavedSelections();

            $.unblockUI();
            $("#saveSelectionBtn").unbind();
        });

        return false;
    },

    getSavedSelections: function(str) {
        var c = $.cookie("lk_guide_selection_saves");
        if (c == null) return;

        $("#saves #savedfiles").empty();


        c = JSON.parse(c);

        var ul = $("<ul />");

        $.each(c, function(i, item) {
            var a = $("<a />")
				.attr("href", "did?=" + item.id)
				.attr("rel", item.id)
				.text(item.name)
				.click(function() {

				    if (currfileid == this.rel) {
				        $.unblockUI();
				        return false;
				    }
				    $.blockUI({
				        css: {
				            border: 'none',
				            padding: '15px',
				            backgroundColor: '#000',
				            '-webkit-border-radius': '10px',
				            '-moz-border-radius': '10px',
				            opacity: '.5',
				            color: '#fff'
				        },
				        message: "<h3>" + translation.loading + "<h3>"
				    })
				    Vinter.getSavedSelectionFromServer(this.rel);
				    return false;
				});

            var li = $("<li />").append(a).appendTo(ul);
        });

        ul.appendTo($("#saves"));

        $("<input type='button' value='" + translation.cancel_button + "' />")
			.click(function() {
			    $.unblockUI();
			})
			.appendTo("#saves");

        $("#openBtn").addClass("active");
    },

    getSavedSelectionFromServer: function(id) {

        Vinter.clearForm();

        var retval = $.get(pagedata.baseUrl + "SlingData.ashx", { a: "get", did: id }, function(text) {
            $.unblockUI();
            currfileid = id;
            if (text.length > 0)
                firstRenderSlings(text);
        })
    },

    clearForm: function() {
        $("#slider").slider("moveTo", values.length - 1, 1);
        $("#slider").slider("moveTo", 0, 0);

        $("form").clearForm();
        Vinter.selString = [];
        productsofinterest = [];

        $("#saveBtn").removeClass("active")
        $("#sendToFriendBtn").removeClass("active");
        $("#downloadBtn").removeClass("active");

        $("input[type=radio]", ".selected").attr("disabled", "disabled");

        $(".selected").removeClass("selected");

        Vinter.handleSelection();
    },

    resetSelection: function() {

        blockWithContent($("#confirmDialog"));

        $("#confirmBtn").click(function() {
            Vinter.clearForm();
            $.unblockUI();
            return false;
        });

    },

    getCurrentSelection: function(e, selectedOnly) {

        var obj = {};
        var selections = [];
        var results = [];

        $(".column").each(function(i, item) {

            var sel = $("input:checked", item)

            if (sel.length == 0)
                return;

            var head = $("h2", this);
            head = head.html().split("<");

            var col = [];

            // Get checkboxes
            sel.each(function(n, item) {

                var str = $("span", item.parentNode).text();
                str = $.trim(str.replace("[i][i]", ""));

                col.push(new Object({
                    type: item.className,
                    text: str
                }));

            });

            selections.push(new Object({
                column: head[0],
                selection: col
            }
				)
			);

        });

        $("#slingsContainer li").children().each(function(i, item) {

            if (selectedOnly) {
                var sel = $(".selected", item);

                if (sel.length > 0) {
                    var model = $("h4", item.parentNode).text();
                    results.push(new Object({
                        type: item.tagName,
                        text: model + " " + $(item).text()
                    }));
                }

            } else {

                results.push(new Object({
                    type: item.tagName,
                    text: $(item).text()
                }));

            }

        });
        $.extend(obj, new Object({ "selections": selections }));
        $.extend(obj, new Object({ "slider": { title: $("#weightSpanHeader").get(0).childNodes[0].nodeValue, start: values[$("#slider").slider("value", 0)].text, stop: values[$("#slider").slider("value", 1)].text} }));
        $.extend(obj, new Object({ "results": results }));

        return obj;

    },

    handleSelection: function(e) {
        /* Empty current selection */
        Vinter.parentSelection = Vinter.currentSelection;
        Vinter.currentSelection = [];
        /*$("#slingsContainer").block({
        message: "loading...",	
        css: { 
        border: 'none', 
        padding: '10px', 
        backgroundColor: '#3e3e3e', 
        '-webkit-border-radius': '5px', 
        '-moz-border-radius': '5px', 
        opacity: '.9', 
        color: '#FFF' 
        },
        overlayCSS: {
        backgroundColor: "#FFF"
        }
        });*/

        $("#loader").fadeIn();

        /*
        * Set up actions for different types
        */
        var actions = {

            "group-checkbox": function(obj) {
                return null;
            },

            "checkbox": function(obj) {

                if (obj.checked == true)
                    return obj.value;
                else return null;

            },
            "ui-slider": function(obj) {

                var ids = new Array();

                var min = $("#slider").slider("value", 0);
                var max = $("#slider").slider("value", 1);
                var ids = new Array();

                for (var i = min; i <= max; i++)
                    ids.push(values[i].id);

                return ids.join(",");

            },

            "minislider": function(obj) {
                var val;

                if (obj.id == "headstability") {
                    val = headstability[$("#headstability").slider("value")];

                }
                else if (obj.id == "bodystability") {
                    val = bodystability[$("#bodystability").slider("value")];
                }

                return val.id;
            },

            "select": function(obj) {
                if ($(obj).val() != "null")
                    return $(obj).val();
                else return null;
            },

            "radio": function(obj) {
                if (obj.checked == true && obj.value != "null" && obj.disabled == false)
                    return obj.value;
                else return null;
            }
        }

        $(".guide-parameters").each(function(i, item) {

            var arr = new Array();

            /* Get parameters */
            var values = $("input, checkbox, select, #slider, .minislider", item);

            values.each(function(i, item) {
                if ($(item).hasClass("minislider"))
                    $(item).removeClass("ui-slider");

                var val = actions[item.className].call(i, item)
                if (val != null)
                    arr.push(val);
            });

            /* Add to current selection */
            if (arr.length > 0)
                Vinter.currentSelection.push({ data: arr });
        });

        var isChanged = false;

        if (Vinter.currentSelection.length != Vinter.parentSelection.length)
            isChanged = true;
        else
            for (var i = 0; i < Vinter.currentSelection.length && isChanged == false; i++)
            for (var j = 0; j < Vinter.currentSelection[i].data.length && isChanged == false; j++)
            if (Vinter.currentSelection[i].data[j] != Vinter.parentSelection[i].data[j])
            isChanged = true;

        // check if any changes
        if (isChanged)
            $("#slingsContainer").trigger("currentSelectionUpdated");
        else
            $("#loader").fadeOut();
    }
}

function sortSlings(a, b)
{
    var sa = s[a];
    var sb = s[b];
    
    if (sa.type != sb.type)
        return (sa.type > sb.type) ? 1 : -1;
    else if (sa.materialId != sb.materialId)
        return (sa.materialId > sb.materialId) ? 1 : -1;
    else if (sa.sizeId != sb.sizeId)
        return (sa.sizeId > sb.sizeId) ? 1 : -1;
    else
        return 0;
}

function firstRenderSlings(attr)
{	

	$("#introduction").hide();
	$("#resultHeader").show();
	
	if (attr == null) return;
		
	var loop = attr.split("|");
	
	var sv = loop[0].split(",");
	
	$.each(values, function(i, item) {
		if (item.id == sv[0]) v1 = i;
		if (item.id == sv[sv.length - 1]) v2 = i;
	});
	
	$("#slider").slider("moveTo", v2, 1);
	$("#slider").slider("moveTo", v1, 0);
	
	
	// Update checkboxes/radiobuttons
	for (var i = 1; i < loop.length; i++)
	{
		var item = $('input[value=' + loop[i] + ']');
		if (item.length > 0)
		{
			
			if (item.hasClass("checkbox"))
			{
				item.parent().trigger("click");
				if (item.parent().parent().parent().parent().hasClass("toggle"))
					item.parent().parent().parent().parent().find("ul").fadeIn();
			}
			
			if (item.hasClass("radio"))
			{
				$("label.group-checkbox", item.parent().parent()).trigger("click");
				item.attr("checked", "checked");
			}
			
		}
	}
	
	SlingsData.GetSlingsByAttribute(attr);
}

/*
* Render slings
* gets two arguments, index array and slings array
*/
function renderSlings(artnos, slings)
{
	
	var container = $("#slingsContainer")
		.empty();
	
	// Check if nothing is selected and slider range @ max
	// if so, disable buttons and empty list

	var sl = $("#slider");
	if (artnos.length == 0 || ($(".selected").length == 0 && sl.slider("value", 0) == 0 && sl.slider("value", 1) == values.length - 1))
	{
		$("#saveBtn, #newBtn, #downloadBtn, #sendToFriendBtn, #printBtn").removeClass("active");
		container.html(translation.nohits);
		return false;
	}
	
	
	// Activate menu buttons
	$("#saveBtn, #newBtn, #downloadBtn, #sendToFriendBtn, #printBtn").addClass("active");
	
	s = slings;
	
	var header = $("#resultHeader");
	header.empty();
	
	header.append($("<h3 />").text(translation.result));
	header.append($("<p />").html(translation.resultintro));
	
	var ul = $("<ol />"), prev;
	
	artnos.sort(sortSlings);
	
	var used = new Array();
	
	for (var i = 0; i < artnos.length; i++)
	{
		
	    if (jQuery.inArray(artnos[i], used) > -1)
	        continue;
        else
            used.push(artnos[i]);
	
		var sling = slings[artnos[i]];
		
		if (sling.type != prev) {

			/**
			* Ugly hack for removing links on US website
			*/
			
			var slingurl = translation.baseurl + "?artno=" + sling.artno;
			var rel = "external";

			if (pagedata.language == "na-en")
			{
				slingurl = "#";
				rel = "";
			}
			
			var li = $("<li />")
				.attr("id", sling.artno)
				.html("<h4><a href='" + slingurl + "' rel='" + rel + "'>" + sling.type + "</a></h4>" +
					  "<em><a href='" + translation.baseurl + "?artno=" + sling.artno + "' class='art'>" + sling.size.desc + ", " + sling.material + ", " + sling.model +  " (" + sling.artno + ")</a></em>");
		
		}
		else
		{
			$("<em />")
				.html("<a href='" + translation.baseurl + "?artno=" + sling.artno + "' class='art'>" + sling.size.desc + ", " + sling.material + ", " + sling.model +  " (" + sling.artno + ")</a>")
				.appendTo(li);	
		}
		
		li.appendTo(ul);
		prev = sling.type;
	}
	
	ul.find("li").each(function(i, item) {
		
		var rm = false;
		var count = 0;
		
		$(item).find("em").each(function(n, em) {
			if (n >= 5)
			{
				$(em).addClass("hidden-listing").hide();
				rm = true;
				count++;
			}
		});

		if (rm == true)
			$("<em class='readmore'>" + translation.morepre + count + translation.moreafter + "</em>").click(function() {
				$(".hidden-listing", this.parentNode).removeClass("hidden-listing").show();
				$(this).hide();
			}).appendTo(item);
	});
	
	container
		.append(ul)
		.unblock();
	
	$("#result .art").toggle(function() {	
			$(this).addClass("selected").removeClass("print-hide");
			$(".selected-tools a, #orderBtn").addClass("active");
			return false;
		}, 
		function() {
			$(this).addClass("print-hide").removeClass("selected");
			
			if ($("#result .art.selected").length == 0)
				$(".selected-tools a, #orderBtn").removeClass("active");

			return false;
		});
	
	$("a[rel=external]").click(function() {
		window.open(this.href);
		return false;
	});
	
	var t;
	
	$("h4 > a")
		.append("<em class='linkarrow'>&nbsp;&rsaquo;</em>")
	
	
	$("ol li h4")
		.bind("mouseenter", function(e) {
				
				var x = e.pageX;
				var y = e.pageY;
				var query = "&artno=" + $(this.parentNode).attr("id") + "&pageid=" + pagedata.currentpageid;
							
				t = setTimeout(function(e) {
					SlingsData.GetThumbnail(x, y, query);
				}, 1000);
				
				return false;
			})
		.bind("mouseleave", function(e) {
				clearTimeout(t);
				$("#preview-thumbnail").fadeOut("fast", function() {$(this).remove()});;
			});
		
	$("#loader").fadeOut();
	
	/**
	* Render hidden div with selection for browsers that don't have the onbeforeprint-event.
	*/
	if (!$.browser.msie)
		renderCurrentSelectionForPrint();
}

function activateCheckbox(obj)
{
	$(obj).addClass("selected");			
	$("input", obj).attr("checked", "checked");
}

function deactivateCheckbox(obj)
{
	$(obj).removeClass("selected");
	$("input", obj).attr("checked", "");
}

function groupCheckboxActivate(obj) 
{
	$(obj).addClass("selected");
	$(obj.parentNode).addClass("selected");
	$('input[type="checkbox"]', obj).attr("checked", "checked");
	$('input[type="radio"]', obj.parentNode).attr("disabled", "");

	if ($('input:checked[type="radio"]]', obj.parentNode).length == 0)
		$($('input[type="radio"]', obj.parentNode).get(0)).attr("checked", "checked");
}

function groupCheckboxDeactivate(obj)
{
	$(obj).removeClass("selected");
	$(obj.parentNode).removeClass("selected");
	$('input[type="checkbox"]', obj).attr("checked", "");
	$('input[type="radio"]', obj.parentNode).attr("disabled", "disabled");
}

function blockWithContent(blockcontent, opt)
{
	
	var options = $.extend({
		message: blockcontent,
		css: {
			width: "350px",
			textAlign: "left",
			padding: "10px",
			border: "0",
			top: "20%"
		}	
	}, opt)

	$.blockUI(options);
}

function renderCurrentSelectionForPrint()
{
	var selection = Vinter.getCurrentSelection();
	$("#currentselection").empty();
	
	var dl = $("<dl />")	
	
	$("<dt />").text(selection.slider.title).appendTo(dl);
	$("<dd />").text(selection.slider.start + " - " + selection.slider.stop).appendTo(dl);
	
	for (var i = 0; i < selection.selections.length; i++)
	{
		$("<dt />").text(selection.selections[i].column).appendTo(dl);
		
		$.each(selection.selections[i].selection, function(i, item) {
			$("<dd />").text(item.text).appendTo(dl);	
		});
	}

	$("#currentselection").append(dl);

}

$().ready(function() {

    SlingsData.Init({
        url: pagedata.baseUrl + "SlingData.ashx?lang=" + pagedata.language,
        loader: "#loader",
        onComplete: function() {
            if (did.length > 0)
                Vinter.getSavedSelectionFromServer(did);

            Vinter.getSavedSelections();

            if ($.cookie("lk_guide_display_help") != "false")
                Vinter.displayHelpPage();

        },
        onUpdate: renderSlings,
        blockUI: true,
        showLoader: true,
        maxHits: 200
    });

    $(".getbyattribute").click(function(e) {
        var attr = $("#attribute").val();
        SlingsData.GetSlingsByAttribute(attr);
        return false;
    });

    $("#slider").slider({
        range: true,
        steps: values.length - 1,
        min: 0,
        handles: [{ start: 0 }, { start: values.length - 1}],
        axis: "horizontal",
        max: values.length - 1,
        start: function(e, ui) {
            $("#" + ui.handle.attr("id") + "-tooltip").addClass("active-tooltip");
        },

        stop: function(e, ui) {
            $("#" + ui.handle.attr("id") + "-tooltip").removeClass("active-tooltip");
            Vinter.handleSelection();
        },

        slide: function(e, ui) {

            var min = values[$("#slider").slider("value", 0)];
            var max = values[$("#slider").slider("value", 1)];
            var offset = 0;

            if (ui.handle[0].id == "handle1") {
                offset = $("#" + ui.handle.attr("id") + "-tooltip").width();
            }

            $("#" + ui.handle.attr("id") + "-tooltip")
				.css({
				    left: ui.handle.offset().left - (offset / 2)
				})
				.html("<span>" + values[ui.value].text + "</span>");

        }

    });

    // If this is the first visit, show intro-text
    if ($.cookie("lk_guide_first_visit") == null) {
        $("#resultHeader").hide();
        //$.cookie("lk_guide_first_visit", "false", { path: '/', expires: 365 });
    }

    // Setup the slider tooltips
    Vinter.createTooltip("handle1", values[$("#slider").slider("value", 0)].text);
    Vinter.createTooltip("handle2", values[$("#slider").slider("value", 1)].text);
    Vinter.createMoreInfo(".moreinfo");

    /*
    var wrz;
	
	$(window).bind("resize", function() {
	
		clearInterval(wrz);
		
		wrz = setTimeout(function() {
    $(".slider-tooltip-container").remove();
    Vinter.createTooltip("handle1", values[$("#slider").slider("value", 0)].text);
    Vinter.createTooltip("handle2", values[$("#slider").slider("value", 1)].text);
    }, 500);
	
	});
    */

    $(".guide-parameters input").click(Vinter.handleSelection);
    $(".guide-parameters select").change(Vinter.handleSelection);
    $("#slingsContainer").bind("currentSelectionUpdated", Vinter.slingSelectionUpdated);

    /*
    * Make labels clickable
    */
    $("label.checkbox").click(function(e) {
        var _this = this;

        if ($(this).hasClass("selected") == false)
            activateCheckbox(this);
        else
            deactivateCheckbox(this);

        Vinter.handleSelection();
        return false;
    });

    $("label.group-checkbox").click(function(e) {

        if ($(this).hasClass("selected") == false)
            groupCheckboxActivate(this);
        else
            groupCheckboxDeactivate(this);

        Vinter.handleSelection();
        return false;
    });

    $(".selected-tools a").click(function() {
        if ($(this).hasClass("active") != true)
            return false;
    });

    $("#printSelected").click(function() {

        $("#result .art").each(function(i, elm) {
            var item = $(this);

            item.addClass("print-hide");

            if (item.hasClass("selected")) {
                item.removeClass("print-hide");
            } else {
                // $("#orderBtn").removeClass("active");
            }

        });

        $("#result h4").each(function(i, item) {

            if ($(".selected", this.parentNode).length == 0)
                $(this.parentNode).addClass("print-hide");

        });

        $.unblockUI();

        setTimeout(function() {
            window.print();
        }, 500);

        return false;

    });

    $("h4 > a, #guideTools a").append("<em class='linkarrow'>&nbsp;&rsaquo;</em>");

    $("#orderBtn").click(function(e) {

        if ($(this).hasClass("active") != true) return false;

        var sel = Vinter.getCurrentSelection(e, true);
        var result = "";
        var selection = "";

        var d = $("<ul />");

        $.each(sel.results, function() {
            result += this.text + "\n";
            d.append($("<li />").text(this.text));
        });
        $("#currentOrderResult").val(result);

        $.each(sel.selections, function() {

            selection += "<h3>" + this.column + "</h3><ul>";

            for (var i = 0; i < this.selection.length; i++) {
                selection += "<li>" + this.selection[i].text + "</li>";
            }

            selection += "</ul>";

        })

        $("#orderFormSelection")
			.empty()
			.append(d);

        $("#currentOrderSelection").val(selection);
        $("#currentOrderWeightSpan").val(sel.slider.start + " - " + sel.slider.stop);

        $("#orderSent").hide();

        blockWithContent($("#orderForm"), {
            message: $("#orderForm"),
            css: {
                width: "500px",
                textAlign: "left",
                padding: "10px",
                border: "0",
                top: "20%"
            }
        });

    });

    $("#sendOrderForm").click(function() {

        var validation = jQuery.validate({
            messageheader: translation.validationerror,
            messagecontainer: "#ordervalidation",
            fieldset: "#orderfieldset"
        });


        if (validation) {
            $.get(pagedata.baseUrl + "SlingData.ashx", { a: "save", data: Vinter.selString, name: "" }, function(id) {

                var postdata = {};

                postdata["pageid"] = pagedata.currentpageid;
                postdata["did"] = id;

                // Get form data
                $("input.text, input[type=hidden], textarea", "#orderForm").each(function(i, item) {
                    postdata[item.name] = $(item).val();
                });

                $("#orderForm input[type=checkbox]").each(function(i, item) {
                    postdata[item.id] = $(item).attr("checked");
                });

                // Submit
                $.ajax({
                    type: "GET",
                    url: pagedata.baseUrl + "SlingData.ashx?a=sendorder",
                    data: postdata,
                    dataType: "text",
                    success: function(data) {
                        // console.log(data);
                    },
                    complete: function() {
                        productsofinterest = [];
                        $("#orderfieldset").clearForm();
                        $("#orderFormSelection, #orderfieldset, h4, p", $("#orderForm")).hide();

                        $("#orderSent, #orderSent p").show();
                        
                        setTimeout(function() {
                            $("#orderFormSelection, #orderfieldset, h4, p", $("#orderForm")).show();
                            $.unblockUI();
                        }, 4000);
                    }
                });
            });
        }

        return false;

    });

    $("#cancelOrderForm").click(function() {
        productsofinterest = [];
        $.unblockUI();
    });

    $("#sendFeedbackBtn").click(function() {
        if ($(this).hasClass("active") != true) return false;

        $("#feedbackSent").hide();

        blockWithContent($("#feedbackForm"));
        return false;
    });

    $("#sendFeedbackForm").click(function() {

        var validation = jQuery.validate({
            messageheader: translation.validationerror,
            messagecontainer: "#feedbackvalidation",
            fieldset: "#feedbackfieldset"
        });


        if (validation) {
            var postdata = {};

            postdata["pageid"] = pagedata.currentpageid;

            // Get form data
            $("input.text, input[type=hidden], textarea", "#feedbackForm").each(function(i, item) {
                postdata[item.name] = $(item).val();
            });

            $("#feedbackForm input[type=checkbox]").each(function(i, item) {
                postdata[item.id] = $(item).attr("checked");
            });

            // Submit
            $.ajax({
                type: "GET",
                url: pagedata.baseUrl + "SlingData.ashx?a=sendfeedback",
                data: postdata,
                dataType: "text",
                success: function(data) {
                    // console.log(data);
                },
                complete: function() {
                    productsofinterest = [];
                    $("#feedbackfieldset").clearForm();

                    $("#feedbackfieldset, h4, p", $("#feedbackForm")).hide();

                    $("#feedbackSent, #feedbackSent p").show();

                    setTimeout(function() {
                        $("#feedbackfieldset, h4, p", $("#feedbackForm")).show();
                        $.unblockUI();
                    }, 4000);
                }
            })
        }

        return false;

    });

    $("#cancelFeedbackForm").click(function() {
        $.unblockUI();
    });

    if ($.cookie("lk_guide_selection_saves")) {
        $("#openBtn").addClass("active");
    }

    $("#openBtn").click(function() {
        if ($(this).hasClass("active") != true) return false;

        blockWithContent($("#saves"));
        return false;
    });

    $("#saveBtn").click(Vinter.saveSelectionClick);

    $("#printBtn").click(function() {
        if ($(this).hasClass("active") != true) return false;
        blockWithContent($("#printOptions"));

        $("#printAll").bind("click", function() {

            $(".print-hide").each(function() {
                $(this).removeClass("print-hide");
            });

            $.unblockUI();

            setTimeout(function() {
                $("#printAll").unbind("click");
                window.print();
            }, 500);

            return false;

        });

        var so = $("<div />").attr("id", "selectedOptions");
        return false
    });

    $("#sendToFriendBtn").click(function() {

        if ($(this).hasClass("active") != true) return false;
        blockWithContent($("#sendToFriendForm"));

        $("#sendToFriendClick").click(function() {

            var validation = jQuery.validate({
                messageheader: translation.validationerror,
                messagecontainer: "#sendToFriendValidation",
                fieldset: "#sendToFriendFieldset"
            });

            if (validation) {
                $.get(pagedata.baseUrl + "SlingData.ashx", { a: "save", data: Vinter.selString, name: "" }, function(id) {

                    $("#did").val(id);
                    var postdata = {};

                    postdata["pageid"] = pagedata.currentpageid;
                    postdata["a"] = "sendtofriend";

                    // Get form data
                    $("input.text, input[type=hidden], textarea", "#sendToFriendFieldset").each(function(i, item) {
                        postdata[item.name] = $(item).val();
                    });

                    // Submit
                    $.ajax({
                        type: "GET",
                        url: pagedata.baseUrl + "SlingData.ashx",
                        data: postdata,
                        dataType: "text",
                        success: function(data) {
                        },
                        complete: function() {
                            $("#sendToFriendFieldset").clearForm();
                            $.unblockUI();
                        }
                    })


                });

                $(this).unbind("click");

                return false;
            }
        });



        return false
    });


    $(".unblock-ui").click(function() {
        $.unblockUI();
    });

    $(".toggle").toggle(function() {
        $("legend", this).addClass("open");
        $("ul", this).fadeIn();
    },
		function() {
		    $("legend", this).removeClass("open");
		    $("ul", this).fadeOut();
		});

    $("#newBtn").click(Vinter.resetSelection);
    $("#helpBtn").click(Vinter.displayHelpPage);


    $("#downloadBtn").click(function() {

        if ($(this).hasClass("active") != true) return false;

        var selection = Vinter.getCurrentSelection();

        var iframe = $("<iframe frameborder='0' />")
							.addClass("iframe")
							.css({
							    height: "240px",
							    width: "100%"
							})
							.attr("src", "/RtfExport.aspx?pageId=" + pagedata.currentpageid);

        blockWithContent(iframe);
        return false;

    });

    // Re-set the form on page load.
    $("form").clearForm();

    // Make sure ppl don't accidentaly click the back-button or reloads the page
    // display a confirm-window if they do.
    $(window).bind('beforeunload', function(e) {
        e.originalEvent.returnValue = " ";
        return;
    });

    $(window).bind("resize", function() {

        if ($.browser.msie == true) {

            if (lk_wrz != 'undefined')
                clearTimeout(lk_wrz);

            lk_wrz = setTimeout(function() {
                $(".slider-tooltip-container").remove();
                Vinter.createTooltip("handle1", values[$("#slider").slider("value", 0)].text);
                Vinter.createTooltip("handle2", values[$("#slider").slider("value", 1)].text);
            }, 100);

        } else {
            $(".slider-tooltip-container").remove();
            Vinter.createTooltip("handle1", values[$("#slider").slider("value", 0)].text);
            Vinter.createTooltip("handle2", values[$("#slider").slider("value", 1)].text);
        }
    });


    if ($.browser.msie)
        $(window).bind("beforeprint", renderCurrentSelectionForPrint);

});