$(document).ready(function () {
    if ($.browser.msie && $.browser.version < 7) {
        $(".png24").pngFix();
        $(".blogitem .content").append("<div class='clearer'></div>"); // fix floating tags in Blog
    }
    homepage();
    centerHeader();
    setSearch();
    //openInNewWindow();
    seperateProductCats();
    contactCardStyle();
    $("#leftColumn .article:first").addClass("first");

    if ($("#leftColumn .article .infoBox").length > 0) {
        $(".infoBox").parents(".article").css("background", "none");

    }
    PISheetsHandler();
    PISheetLayout();

    reservedMessageLayout();

    if ($("body").hasClass("tmpl-heritage")) heritage();

    $(".overlay[rel]").overlay();
});
var defaultSearchText = new Array();
function setSearch() {
    
    $(".searchInput").each(function (i) {
        defaultSearchText[i] = $(this).attr("title");
        $(this).val(defaultSearchText[i]);

        $(this).focus(function () {
            if ($(this).val() == defaultSearchText[i]) $(this).val("");
        });

        $(this).blur(function () {
            if ($(this).val() == "") $(this).val(defaultSearchText[i]);
        });

        $(this).keydown(function (e) {
            if (e.keyCode == '13') {
                $(this).siblings(".searchSubmit").click();
                return false;
            }
        });

        $(this).siblings(".searchSubmit").click(function () {
            var val = encodeURIComponent($(this).siblings(".searchInput").val());
            var searchurl = $(this).siblings(".searchLocation").val();
            if (val != defaultSearchText) {
				if (searchurl.indexOf('?') > 0)
					document.location = searchurl + "&searchtext=" + val;
				else
					document.location = searchurl + "?searchtext=" + val;
            }
        });

    });

}


$(window).resize(function () {
    centerHeader();
});

var settings = {
    "width": 1400, // width of the header
    "siteWidth": 979 // width of the actual site
};

function openInNewWindow() {
	$("a[rel='blank']").each(function () {
		$(this).attr({
			//target: "_blank",
			href: "javascript:window.open('" + $(this).attr("href") + "');void(0);",
			title: "Link opent in een nieuw venster"
		});
	});
}

function centerHeader() {
    if ($(window).width() < settings.width && $(window).width() > settings.siteWidth) {
        var left = (settings.width - $(window).width()) / 2;
        $("#headerContainer, #footerContainer").css({ "left": -left });
        $("#wrapper").css({ "overflow": "hidden", "width": $(window).width() });
    } else if ($(window).width() < settings.siteWidth) {
        var left = (settings.width - $(window).width()) / 2;
        $("#headerContainer, #footerContainer").css({ "left": -left });
        $("#wrapper").css({ "overflow": "visible", "width": settings.siteWidth });
    } else {
		$("#wrapper").css({ "overflow": "auto", "width": "auto" });
        $("#headerContainer, #footerContainer").css({ "left": 0 });
    }
}

$.urlParam = function (name) {
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
    if (!results) { return null; }
    return results[1] || null;
};

$.extend({ 
    URLEncode: function (c) {
    var o = ''; var x = 0; c = c.toString(); var r = /(^[a-zA-Z0-9_.]*)/;
    while (x < c.length) {
        var m = r.exec(c.substr(x));
        if (m != null && m.length > 1 && m[1] != '') {
            o += m[1]; x += m[1].length;
        } else {
            if (c[x] == ' ') o += '+'; else {
                var d = c.charCodeAt(x); var h = d.toString(16);
                o += '%' + (h.length < 2 ? '0' : '') + h.toUpperCase();
            } x++;
        } 
    } return o;
},
    URLDecode: function (s) {
        var o = s.replace(/\+/g, ' '); var binVal, t; var r = /(%[^%]{2})/;
        while ((m = r.exec(o)) != null && m.length > 1 && m[1] != '') {
            b = parseInt(m[1].substr(1), 16);
            t = String.fromCharCode(b); o = o.replace(m[1], t);
        } return o;
    }
});

function flagComment(commentId) {
	$.post('/Services/FlagComment.ashx', { 'commentid': commentId });
	alert('Comment flagged');
}

seperateProductCats = function () {
    $(".tmpl-productlibrary .productGroup").each(function () {
        $(this).find(".productCat").each(function (i) {
            if (i % 2 == 1 && i != $(this).parent().find(".productCat").length-1) {
                $(this).after("<div class='productSep'>&nbsp;</div>");
            }
        });
    });
}

homepage = function () {
    if ($("#carrouselContainter").length > 0) {
        // carrousel found
        var items = $("#carrousel li").length;
        var navigItems = new Array();

        $("#carrouselNav ul").empty();
        for (i = 0; i < items; i++) {
            var counter = (i + 1);
            $("#carrouselNav ul").append("<li><a href='#' rel='carrousel_" + counter + "'>" + counter + "</a></li>");
            navigItems[i] = "#carrouselNav ul li a[rel=carrousel_" + counter + "]";
        }
        $("#carrousel li").each(function () {
            $(this).click(function () {
                window.location = $(this).find("a.bottom_button").attr("href");
            });
        });
        $("#carrouselNav li:first").addClass("on");
        $("#carrouselReadmore").attr("href", $("#carrousel li:first").find(".bottom_button").attr("href"));
        $("#carrouselReadmore").attr("target", $("#carrousel li:first").find(".bottom_button").attr("target"));
        $("#carrouselContainter").jCarouselLite({
            auto: 5000,
            btnNext: '#carrousel_next',
            btnPrev: '#carrousel_prev',
            btnGo: navigItems,
            circular: true,
            speed: 1000,
            easing: 'easeout',
            beforeStart: function (el) {
                $("#carrouselReadmore").fadeOut("fast");
                $("#carrouselNav li").removeClass("on");
            },
            afterEnd: function (el) {
                $("#carrouselReadmore").attr("href", $(el[0]).find(".bottom_button").attr("href"));
                $("#carrouselReadmore").attr("target", $(el[0]).find(".bottom_button").attr("target"));
                $("#carrouselReadmore").fadeIn("fast");
                var elementID = $(el[0]).attr("id");
                $("#carrouselNav a[rel=" + elementID + "]").parent().addClass("on");
            }
        });
    }

    if ($.browser.msie && $.browser.version < 8) {
        if ($(".tmpl-homepage").length > 0) {
            $("#leftColumn").addClass("ie6fix"); // absolute positioned elements next to floating elements causes IE6 to detach the absolute element. hence we temporarily stop the sibling from floating.

            // due to DOM issues we need to move the middleColumn down the DOM so it's on top of the footer for older IE Versions.
            var offset = $("#middleColumn").offset();
            $("body").append($("#middleColumn"));
            $("#middleColumn").css({
                left: offset.left,
                top: offset.top
            });
            $(window).resize(function () {
                $("#middleColumn").css({
                    left: offset.left,
                    top: offset.top
                });
            });

            $("#leftColumn").removeClass("ie6fix");  // adding float back.

        }
    }

    $("#currentLang").click(function () {
        $("#language div").show();
        $(this).hide();
        return false;
    });
    $("#language div").bind("mouseleave", function () {
        $("#currentLang").show();
        $(this).hide();
    });
}

function contactCardStyle() {
    $("body.tmpl-twocolumnwithtop ul.contactList").each(function (a) {
        $("li:odd", $(this)).addClass("right");
    });

    $(".tmpl-twocolumnwithtop .contactList li .name").click(function () {
        if ($(this).hasClass("open")) {
            $(this).parents(".contactList").find("li .content").hide();
            $(this).parents(".contactList").find("li .name").removeClass("open");
        } else {
            $(this).parents(".contactList").find("li .content").hide();
            $(this).parents(".contactList").find("li .name").removeClass("open");
            $(this).addClass("open");
            $(this).siblings(".content").toggle();
        }
    });
};


function PISheetsHandler() {
    $("body.tmpl-pisheets a.pisheet").click(function () {
        var partid = $(this).attr('data');
        if (partid) {
            $.getJSON('/handler/PISheetHandler.ashx', { partid: partid }, function (data) {
                var items = [];
                var prodgroup = "";
                var prodcategory = "";
                var category = "";

                $.each(data, function (index, val) {
                    if (index == 0) {
                        prodgroup = val.ProductGroup;
                        parentcategory = val.ParentCategory;
                        category = val.Category;
                    }
                       items.push('<li><a href="' + val.Url + '" id="' + val.ID + '" class="' + val.Target + '" ' + (val.Target == 'pdf' ? 'target="_blank"' : '') + '>' + val.Name + '</a></li>');
                });

                if (category) {
                    category = "<h4>" + category + "</h4>";
                } else {
                    category = "";
                }
                if (items.length > 0) {
                    $("#pisheet_items").html("<h2>" + parentcategory + "</h2><h3>" + prodgroup + "</h3>" + category + "<ul>" + items.join('') + "</ul>");
                }

            });

        }
        return false;
    });


    $("a.pisheets_header").click(function () {
        $(".pisheets_header").removeClass("active").parent("li").find("ul").hide();
        $(this).next("ul").show();
        $(this).addClass("active");
        return false;
    });

    $("a.pisheet").click(function () {
        $("a.pisheet").removeClass("active");
        $(this).addClass("active");
        return false;
    });


}

function heritage() {
    $(".pin").hover(function () {
        var year = $(this).attr("id").substr(1);
        $(this).addClass("hover");
        $("#timeline").addClass("hover");

        $(".tooltip span").removeClass("active");
        $(".tooltip #t" + year).addClass("active");
        $(".article#a" + year).addClass("active");

    }, function () {
        $(this).removeClass("hover");
        $("#timeline").removeClass("hover");

        $(".tooltip span").removeClass("active");
        $(".tooltip span#default").addClass("active");

        $("#leftColumn .article").removeClass("active");
    });
    $("#timeline ul.nav li").hover(function () {
        $(this).addClass("hover");
    }, function () {
        $(this).removeClass("hover");
    });
    $(".relatedItems .productCat:last").addClass("last");
}

function PISheetLayout() {
    $("table.blocks").each(function () {
        $("tr:first", this).addClass("first");
        $("tr", this).each(function() {
            $("td:last", this).addClass("last");
        });
    });
    $("table.tabular").each(function () {
        $("tr:first", this).addClass("first");
        $("tr", this).each(function () {
            $("td", this).each(function (i) {
                if (i % 2 == 1) {
                    $(this).addClass("alt");
                }
            });
        });
    });
}


function reservedMessageLayout() {

        $(".reservedMessage").each(function () {
            $(this).css({
                "margin-top": -$(this).outerHeight() / 2,
                "margin-left": -$(this).outerWidth() / 2,
                "behavior": "url(/include/htc/pie.htc)"
            });
        });
    if ($.browser.msie && $.browser.version < 7) {
        $(".reservedMessage").each(function () {
            $(this).css({
                "margin-top": 0,
                "margin-left": -$(this).outerWidth() / 2,
                "behavior": "url(/include/htc/pie.htc)"
            });
        });
    }
}

function CheckAgree(evt, args) {
    args.IsValid = $('span.check input:checked').length > 0;
}
