﻿
/// <reference path="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.4.min.js" />


jQuery.fn.label = function () {
    var val = jQuery("label[for='" + jQuery(this).attr("id") + "']").first().text();
    if (val != null && val.length > 0)
        return val.replace(':', '');
    return jQuery(this).attr("title");
};
jQuery.fn.watermark = function () {
    return this.each(function () {
        var label = jQuery("label[for='" + jQuery(this).attr("id") + "']");
        jQuery(label).not(".show").hide();
        jQuery(this)
            .focus(function () { if (jQuery(this).val() == jQuery(this).label()) jQuery(this).val(""); })
            .blur(function () { if (jQuery(this).val() == "") jQuery(this).val(jQuery(this).label()); });
        if (jQuery(this).val() == '')
            jQuery(this).val(jQuery(this).label());
    });
};
jQuery.validator.addMethod("notLabel", function (value, element) {
    return value != jQuery(element).label();
}, "Field is required");
jQuery.validator.addMethod("anychecked", function (value, element) {
    return jQuery(element).parents(".checkbox-group").find(":checked").length > 0;
}, "Please select at least one");
jQuery.validator.addClassRules("required", {
    required: true,
    notLabel: true
});
jQuery.validator.addClassRules("anychecked", {
    anychecked: true
});

jQuery(document).ready(function () {
    jQuery(".no-js").removeClass("no-js").addClass("js");

    jQuery(".fancy-checkbox").each(function () {
        var wrap = this;
        
        if (jQuery("input", this).is(":checked"))
            jQuery(wrap).addClass("checked");
        jQuery("input", this)
            .hide()
            .change(function () {
                var checked = jQuery(this).is(":checked");
                //deselect any with matching name (in case of radio buttons)
                var name = jQuery(this).attr("name");
                jQuery("[name='" + name + "']").parents(".fancy-checkbox").removeClass("checked");
                if (checked)
                    jQuery(wrap).addClass("checked");
                else
                    jQuery(wrap).removeClass("checked");
            });
    });

    jQuery(".button-agenda").each(function () {
        var details = jQuery(this).parent().next(".event-agenda-details");
        if (details.length == 0)
            return;
        details.hide();
        jQuery(this).css("cursor", "pointer").click(function () { jQuery(details).slideToggle("200"); });
    });

    jQuery(".tabs").each(function () {
        var self = this;
        jQuery(".tab-menu a", this).click(function (e) {
            e.preventDefault();
            jQuery(this)
                .blur()
                .parent()
                .addClass("current")
                .siblings()
                .removeClass("current");
            var panel = jQuery("a[name='" + jQuery(this).attr("href").replace("#", "") + "']", self).parents(".tab-panel");
            panel.siblings(".tab-panel").hide().removeClass("current");
            panel.fadeIn("slow").addClass("current");
        });
        jQuery(".tab-panel", this).not(".current").hide();
    });
    jQuery(".password,.username")
        .addClass("watermark-show")
        .focus(function () { jQuery(this).removeClass("watermark-show"); })
        .blur(function () {
            if (jQuery(this).val().length == 0)
                jQuery(this).addClass("watermark-show");
        });

    jQuery(".menu-ribbon").each(
        function () {
            var linkHash = jQuery("a", this).first().attr("name");
            jQuery("a", this).each(
                function () {
                    var href = jQuery(this).attr("href");
                    if (href != null && href.length > 0 && href.indexOf('#') < 0)
                        jQuery(this).attr("href", href + "#" + linkHash);
                });
        });
    jQuery(".ribbon-trigger")
        .click(function (e) {
            e.preventDefault();
            jQuery(this).parent("li").first().addClass("active");
            var link = jQuery(this).attr("href");
            link = link.substring(1);
            var panel = jQuery("a[name='" + link + "']").parent(".menu-ribbon").first();
            var easingType = "swing";
            if (panel.is(":visible")) {
                panel.slideUp({ duration: 500, easing: easingType });
            }
            else {
                if (jQuery(".menu-ribbon:visible").length > 0) {
                    jQuery(".menu-ribbon:visible").slideUp({ duration: 500, easing: 'easeInOutQuad', complete: function () { panel.slideDown({ duration: 500, easing: easingType }); } });
                }
                else {
                    panel.slideDown({ duration: 800, easing: easingType });
                }
            }


        });
    if (document.location.hash != '') {
        var panel = jQuery("a[name='" + document.location.hash.substring(1) + "']").parent(".menu-ribbon").first().show();
    }

    jQuery(".ui-accordion").each(
    function () {
        var acc = jQuery(this);
        jQuery("div.panel", acc)
        //.css("overflow", "hidden")
            .not(":eq(0)")
            .hide();
        jQuery("h3", acc)
            .not(":eq(0)")
            .addClass("collapsed");
        jQuery("h3", acc)
            .css("cursor", "pointer")
        //.css("overflow", "hidden")
            .click(function (e) {
                e.preventDefault();
                if (jQuery(this).next("div.panel").is(":visible")) {
                    jQuery(this)
                            .addClass("collapsed")
                            .next("div.panel")
                            .hide("slow");
                }
                else {
                    jQuery("div.panel", acc).slideUp("slow");
                    jQuery("h3", acc).addClass("collapsed")
                    jQuery(this)
                            .removeClass("collapsed")
                            .next("div.panel")
                            .show("slow");
                }
            });
    });


    //    jQuery("a.subscribe").attr("href", URL_SUBSCRIBE);
    //    jQuery("a.register").attr("href", URL_REGISTER);
    //    jQuery("a.request-quote").attr("href", URL_QUOTE);
    //    jQuery("a.request-info").attr("href", URL_REQUEST_INFO);
    //    jQuery("a.register, a.subscribe, a.request-info")
    //            .prettyPhoto(
    //            {
    //                social_tools: "",
    //                theme: 'facebook',
    //                deeplinking: false,
    //                target: ".mainForm",
    //                changepicturecallback: jQuery.rebind,
    //                default_width: 670,
    //                default_height: 560,
    //                zIndex: 9999

    //            });
    //    jQuery("a.request-quote")
    //            .prettyPhoto(
    //            {
    //                social_tools: "",
    //                theme: 'facebook',
    //                deeplinking: false,
    //                target: ".mainForm",
    //                changepicturecallback: jQuery.rebind,
    //                default_width: 650,
    //                default_height: 760,
    //                zIndex: 9999

    //            });

    //hook up update panel callbacks
    if (Sys != undefined && jQuery != undefined) { Sys.WebForms.PageRequestManager.aspAjaxBegin = function (sender, args) { $(document).trigger("ajaxStart", sender, args); }; Sys.WebForms.PageRequestManager.aspAjaxEnd = function (sender, args) { $(document).trigger("ajaxComplete", sender, args); }; $(document).ready(function () { if (Sys != undefined) { var prm = Sys.WebForms.PageRequestManager.getInstance(); if (!prm.get_isInAsyncPostBack()) { prm.add_beginRequest(Sys.WebForms.PageRequestManager.aspAjaxBegin); prm.add_endRequest(Sys.WebForms.PageRequestManager.aspAjaxEnd); } } }); $(document).unload(function () { if (Sys != undefined) { Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(Sys.WebForms.PageRequestManager.aspAjaxBegin); Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(Sys.WebForms.PageRequestManager.aspAjaxEnd); } }); }

    jQuery.rebind();
});

jQuery.rebind = function () {
    jQuery(".anychecked").click(function () { 
        if($(this).is(":checked"))
            $(this).parents(".checkbox-group").find("input[type='checkbox']").removeClass("error"); 
        $("form.mainForm").validate().element(".anychecked"); });

    jQuery(".form .textbox").watermark();
    jQuery(".captcha-refresh")
    .css("cursor", "pointer")
    .click(function () {
        jQuery(".captcha").attr("src", URL_LOADING_ICON);
        jQuery.get(URL_CAPTCHA_HANDLER + "?update=true", null, function () {
            jQuery(".captcha").attr("src", URL_CAPTCHA_HANDLER);
        })
    });
    $('form.mainForm').validate({
        errorLabelContainer: ".feedback",
        wrapper: "li",
        errorPlacement: function () { },
        rules: {
            captcha: { remote: URL_CAPTCHA_HANDLER }
        }
    });
    //jQuery(".mainForm").validate();
    $('.submit')
        .click(function (e) {
            //e.preventDefault();
            if (!jQuery("form.mainForm").valid()) {
                e.preventDefault();
                alert("Please check the highlighted fields are correct");
            }
            //            else {
            //                var data = jQuery("form.mainForm").serialize();
            //                jQuery.post(
            //                        jQuery(this).attr("href"),
            //                        data,
            //                        function (d) { alert(d); if (d.indexOf("Thank you") >= 0) $.prettyPhoto.close(); },
            //                        "html");
            //            }
        });

    $(".show-control").each(function () {
        var linked = "#" + $(this).attr("data-control");
        $(linked).hide();
        $(this).click(function () { $(linked).fadeToggle(400); });
    });
};
