﻿jQuery(document).ready(
    function() {
        AddClassToColumnsBasedOnTdCount();
        HideBasketTotalsSubTable();
        AddClassToDisabledInputParent();
        HideTreeWhenEmpty();
        AddClassToListRadiobuttonsAndLabels();
        AddDivAroundMessages();
        AddBottomPaddingToMyAccountLists();
    }
);



/* Webkit fix for AJAX */
Sys.Browser.WebKit = {};
if (navigator.userAgent.indexOf('WebKit/') > -1) {
    Sys.Browser.agent = Sys.Browser.WebKit;
    Sys.Browser.version = parseFloat(navigator.userAgent.match(/WebKit\/(\d+(\.\d+)?)/)[1]);
    Sys.Browser.name = 'WebKit';
}
/* end webkit fix for AJAX */

/* BEGIN Quick order */
function PrepareQuickOrderForm() {
    ClearGridView();
    //set focus to the first input field.
    $(".QuickOrderInput").first().focus();
}

function ClearGridView() {
    $(".QuickOrderInput").val('');
}
/* END Quick order */

/* BEGIN Order templates */
function PrepareOrderTemplateForm() {
    $(".ordertemplatenamefield").focus();
}
/* END Order templates */

/* BEGIN content landingPage */
/* Adds class to columns based on td count in order to give the td's the right width. */
function AddClassToColumnsBasedOnTdCount() {

    var emptyCell = jQuery("#contentLandingPage .controlCategoryFlowContainer table tr .emptyCell_last");
    emptyCell.remove();
    var td = jQuery("#contentLandingPage .controlCategoryFlowContainer td");
    var tdAmount = td.length;

    if (tdAmount == 1) {
        td.addClass("oneColumn");
    }
    else if (tdAmount == 2) {
        td.addClass("twoColumn");
    }
    else if (tdAmount == 3) {
        td.addClass("threeColumn");
    }
    else if (tdAmount == 4) {
        td.addClass("fourColumn");
    }
}
/* END content landingPage */

/* BEGIN basket totals hide subtable */
/* When there is no promotion code, payment costs, shipping costs or invoice discount this table must be hidden, else design will look bad. */
function HideBasketTotalsSubTable() {
    var td = $(".controlTotalsContainer .totalsMiddleRow");
    var subTableTd = $(".controlTotalsContainer .totalsMiddleRow td");
    var subTableTdAmount = subTableTd.length;

    if (subTableTdAmount == 0) {
        td.hide()
    }
    else if (subTableTdAmount >= 1) {
        td.show()
    }
}
/* END basket totals hide subtable */

/* BEGIN add class to the parent element of disabled input */

/* trigger AddClassToDisabledInputParent function when updatepanel updates. */
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(){AddClassToDisabledInputParent();});

function AddClassToDisabledInputParent() {
    jQuery('.tbx input:disabled').parent().addClass('tbxDisabled');
    jQuery('.ddlb select:disabled').parent().addClass('ddlbDisabled');
}
/* END add class to the parent element of disabled input */

function HideTreeWhenEmpty(){
    var tree = jQuery(".controlCategoryContainer");
    var li = jQuery(".controlCategoryContainer li");
    var liAmount = li.length;
    
    if (liAmount == 0){
        tree.hide();
        tree.parent().append("&nbsp;");
    } 
}

/* trigger AddClassToListRadiobuttonsAndLabels function when updatepanel updates. */
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(){AddClassToListRadiobuttonsAndLabels();});

function AddClassToListRadiobuttonsAndLabels(){
    var rbtnListInput = jQuery(".rbtnList input");
    var rbtnListLabel = jQuery(".rbtnList label");
    rbtnListInput.wrap("<div class='rbn'></div>");
    rbtnListLabel.addClass("lbl lblRbn");
}

function AddDivAroundMessages(){
    var pageErrorMessage = jQuery(".pageErrorMessage");
    var errorMessage = jQuery(".errormessage");
    var feedbackMessage = jQuery(".feedbackMessage");
    errorMessage.wrap("<div></div>");
    feedbackMessage.wrap("<div></div>");
    pageErrorMessage.wrap("<div></div>");
}

function AddBottomPaddingToMyAccountLists(){
    var myAccountPageProfileManagement = jQuery("#myAccountPage .listProfileManagement li:first");
    var myAccountPageOrderManagement = jQuery("#myAccountPage .listOrderManagement li:first");
    var myAccountCreateProspect = jQuery("#myAccountPage .listCreateProspect li:first");
    myAccountPageProfileManagement.addClass("first");
    myAccountPageOrderManagement.addClass("first");
    myAccountCreateProspect.addClass("first");
}

function SetFocusToControl(selector) {
    jQuery(selector).focus();
}

function DisableControl(selector) {
    var control = $(selector);
    if (control != null)
        control.attr('disabled', 'disabled');
}

function CompareControlsValues(selector1, selector2, ignoreCase) {
    var text1 = $(selector1).val();
    var text2 = $(selector2).val();
    if (ignoreCase) {
        text1 = text1.toUpperCase();
        text2 = text2.toUpperCase();
    }
    return (text1 == text2);
}

function HideCalendar(selector) {
    var el = $find(selector);
    if (el != null) el.hide();
}

function CheckIfOneRbIsSelected(ids) {
    if (ids.length == 0)
        return true;
    var fl = false;
    $.each(ids, function(key, value) {
        if ($('#' + value).is(':checked')) {
            fl = true;
            return false;
        }
    });
    return fl;
}

function ShippingAddressSelector_ValidateAddressSelection(source, args) {
    args.IsValid = false;
    re = new RegExp('Address.*selectedaddress');
    for (i = 0; i < document.forms[0].elements.length; i++) {
        elm = document.forms[0].elements[i]
        if (elm.type == 'radio') {
            if (re.test(elm.id) && elm.checked) {
                args.IsValid = true;
                break;
            }
        }
    }
}

//  For Shipping/Payment methods tables.
function PrepareTableHeaders(tableSelector) {
    $('#' + tableSelector + ' th:first').attr('colspan', '2');
    $('#' + tableSelector + ' th:eq(1)').css('display', 'none');
}

function orderfailed_ShowTransmittingPopup() {
    var transmittingPopup = $('#transmittingPopup');
    if (transmittingPopup.length > 0 && $find('SubmitPopupID') != null) {
        transmittingPopup.css('display', 'block');
        $find('SubmitPopupID').show();
        return true;
    }
    else {
        return false;
    }
}

function ValidateCheckBox(selector) {
    var terms = $(selector);
    if (terms.is(':checked')) {
        terms.removeClass('chbError');
        return true;
    }
    else {
        terms.addClass('chbError');
        return false;
    }
}

/* Change onclick event handler function here to prevent double posting on double-click in Firefox */
function PreventDoublePosting(selector) {
    var submitButton = $(selector)[0];
    if (submitButton != null) {
        submitButton.blur();
        submitButton.onclick = function() { return false; };
    }
}

function ShopPopup(popupId) {
    var popupControl = $find(popupId);
    if (popupControl != null)
        popupControl.show();
}

//<![CDATA[
function SpecialCharsFilter(obj) {
    var re = /\<|\>|\&|#/g;
    var check = /\<|\>|\&|#/;
    if (check.test(obj.value)) {
        obj.value = obj.value.replace(re, "");
    }
}
//]]>

function validatePasswordLenght(oSrc, args) {
    args.IsValid = (args.Value.length >= 7);
}

function SimpleBasketDisplay_MoveGridViewHeaders(tId) {
    var t = document.getElementById(tId);
    if (t) {
        var t2 = t.cloneNode(true);
        for (i = t2.rows.length - 1; i > 0; i--)
            t2.deleteRow(i);
        t.deleteRow(0);
        if (document.getElementById("hdr"))
            document.getElementById("hdr").appendChild(t2);
    }
}

function registerTooltip(textTipSelector) {
    $(function() {
        var textTip = $(textTipSelector);
        if (textTip != null) {
            textTip.tooltip({
                track: false,
                delay: 0,
                showURL: false,
                showBody: "::",
                fade: 250,
                top: -100
            });
        }
    });
}

function DropDownVariantsControl_CheckSizeSelection(ddlSelector, lblSelector) {
    var listObject = jQuery(ddlSelector);
    var labelObject = jQuery(lblSelector);

    if (listObject.length == 0 && labelObject.length == 0)
        return true;

    if (listObject.length != 0) {
        var selectedText = listObject.val();
        if (selectedText != null && selectedText != '')
            return true;
    }

    if (labelObject.length != 0)
        return true;
    
    return false;
}

/* Radiobutton fix */
function SetUniqueRadioButton(nameregex, current) {
    re = new RegExp(nameregex);
    for (i = 0; i < document.forms[0].elements.length; i++) {
        elm = document.forms[0].elements[i]
        if (elm.type == 'radio') {
            if (re.test(elm.id)) {
                elm.checked = false;
            }
        }
    }
    current.checked = true;
}
/* End radiobutton fix */


function ValidatorOnChange(event) {
    if (!event) {
        event = window.event;
    }

    if (event.type == "change")
        return;

    Page_InvalidControlToBeFocused = null;
    var targetedControl;
    if ((typeof (event.srcElement) != "undefined") && (event.srcElement != null)) {
        targetedControl = event.srcElement;
    }
    else {
        targetedControl = event.target;
    }
    var vals;
    if (typeof (targetedControl.Validators) != "undefined") {
        vals = targetedControl.Validators;
    }
    else {
        if (targetedControl.tagName.toLowerCase() == "label") {
            targetedControl = document.getElementById(targetedControl.htmlFor);
            vals = targetedControl.Validators;
        }
    }
    var i;
    for (i = 0; i < vals.length; i++) {
        ValidatorValidate(vals[i], null, event);
    }
    ValidatorUpdateIsValid();
}

/* IEOverflowFix */
function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
    var rv = -1; // Return value assumes failure.
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-8]{1,}[\.0-8]{0,})");
        if (re.exec(ua) != null)
            rv = parseFloat(RegExp.$1);
    }
    return rv;
}

// IE Overflow fix
// only apply to IE
window.onload = function() {
    var version = getInternetExplorerVersion();

    if (version == -1 || version == 8)
        return;

    var controlVariantGridContainer = document.getElementById("controlVariantGridContainer");
    if (controlVariantGridContainer == null)
        return;

    if (controlVariantGridContainer.scrollWidth > controlVariantGridContainer.offsetWidth) {
        controlVariantGridContainer.style['paddingBottom'] = '18px';
        controlVariantGridContainer.style['overflowY'] = 'hidden';
    }
};

function IEOverflowFix() {
    var version = getInternetExplorerVersion();

    if (version == -1 || version == 8)
        return;

    var controlVariantGridContainer = document.getElementById("controlVariantGridContainer");
    if (controlVariantGridContainer == null)
        return;

    if (controlVariantGridContainer.scrollWidth > controlVariantGridContainer.offsetWidth) {
        controlVariantGridContainer.style['paddingBottom'] = '18px';
        controlVariantGridContainer.style['overflowY'] = 'hidden';
    }
};

/* End IEOverflowFix */

