﻿/* --Temp work around fo no null next on dex expess combo boxes--
    http://devexpress.com/Support/Center/p/S131374.aspx */
var nullText = "-Select-";

function OnLostFocus(s, e) {
if (s.GetValue() != "" && s.GetValue() != null)
return;

var input = s.GetInputElement();
input.style.color = "gray";
input.value = nullText;
}

function OnGotFocus(s, e) {
var input = s.GetInputElement();
if (input.value == nullText) {
input.value = "";
input.style.color = "black";
}
}

function OnInit(s, e) {
OnLostFocus(s, e);
}
/* ----------------------------- */

function ShowHiwSubMenus (name) {
    $(".mainNavSubMenu").each(function () {
        $(this).removeClass("mainNavSubMenu");
        $(this).addClass("mainNavSubMenuHidden");
    });
    if ($("#" + name + "SubMenu").length > 0) {
        $("#" + name + "SubMenu").addClass("mainNavSubMenu");
        $("#" + name + "SubMenu").removeClass("mainNavSubMenuHidden");
    }
}

function ShowDefaultSubMenuOnLeavingHeader() {
    $(".mainNavSubMenu").each(function () {
        $(this).removeClass("mainNavSubMenu");
        $(this).addClass("mainNavSubMenuHidden");
    });
    $(".defaultSubMenu").addClass("mainNavSubMenu");
    $(".defaultSubMenu").removeClass("mainNavSubMenuHidden");
}

function ShowHidePartners(name) {
    $(".partnersShown").each(function () {
        if ($(this).attr("id") != name + "Partners") {
            $(this).hide("slow");
            $(this).addClass("partnersHidden");
            $(this).removeClass("partnersShown");
        }
    });
    if ($("#" + name + "Partners").length > 0) {
        var el = $("#" + name + "Partners")
        el.toggle("slow");
        if (el.hasClass("partnersHidden")) {
            el.removeClass("partnersHidden");
            el.addClass("partnersShown");
        }
        else {
            el.addClass("partnersHidden");
            el.removeClass("partnersShown");
        }
    }
}

function toggleHiddenContent(id) {
    var el = $("#" + id);
    if (el.hasClass("hiddenContent")) {
        el.removeClass("hiddenContent").addClass("shownContent");
    }
    else {
        el.removeClass("shownContent").addClass("hiddenContent");
    }
}

function ProductCheckedChanged() {
    var sum = 0.0;
    $(".priceCheckBox:checked").each(function () {
        var el = $(this);
        sum += parseFloat($("label[for='" + el.attr("id") + "']").text().replace(",", ""));
    });

    $(".total").val(sum);
}

//when the page is fully loaded execute this javascript
$(function () {
    //    $(".header").mouseleave(function () {
    //        ShowDefaultSubMenuOnLeavingHeader();
    //    });


    $('.grayBoxLeftFrontPage').corner({
        tl: { radius: 20 },
        tr: { radius: 0 },
        bl: { radius: 20 },
        br: { radius: 0 },
        autoPad: true,
        antiAlias: true
    });
    $('.grayBoxRightFrontPage').corner({
        tl: { radius: 0 },
        tr: { radius: 20 },
        bl: { radius: 0 },
        br: { radius: 20 },
        autoPad: true,
        antiAlias: true
    }); 
    $('.roundedPanel').corner({
        tl: { radius: 20 },
        tr: { radius: 20 },
        bl: { radius: 20 },
        br: { radius: 20 },
        autoPad: true,
        antiAlias: true
    });
    $('.roundedCorners10').corner({
        tl: { radius: 10 },
        tr: { radius: 10 },
        bl: { radius: 10 },
        br: { radius: 10 },
        autoPad: true,
        antiAlias: true
    });
});

/// <reference path="jquery-1.4.4-vsdoc.js" />
/// <reference path="jquery.validate.unobtrusive.js" />

$.validator.addMethod('requiredif',
    function (value, element, parameters) {
        var id = '#' + parameters['dependentproperty'];

        // get the target value (as a string, 
        // as that's what actual value will be)
        var targetvalue = parameters['targetvalue'];
        targetvalue =
          (targetvalue == null ? '' : targetvalue).toString();

        // get the actual value of the target control
        // note - this probably needs to cater for more 
        // control types, e.g. radios
        var control = $(id);
        var controltype = control.attr('type');
        var actualvalue =
            controltype === 'checkbox' ?
            control.attr('checked').toString() :
            control.val();

        // if the condition is true, reuse the existing 
        // required field validator functionality
        if (targetvalue === actualvalue)
            return $.validator.methods.required.call(
              this, value, element, parameters);

        return true;
    }
);

$.validator.unobtrusive.adapters.addBool("mandatory", "required");
$.validator.unobtrusive.adapters.add(
    'requiredif',
    ['dependentproperty', 'targetvalue'],
    function (options) {
        options.rules['requiredif'] = {
            dependentproperty: options.params['dependentproperty'],
            targetvalue: options.params['targetvalue']
        };
        options.messages['requiredif'] = options.message;
    });

