﻿/* htmlEncode */
function htmlEncode(text) {
    text = text.replace(/&/g, "&amp;");
    text = text.replace(/</g, "&lt;");
    text = text.replace(/>/g, "&gt;");
    return (text);
}

/* splitQueryString */
function splitQueryString(str) {
    var ret = {};
    var pairs = str.split('&');
    for (var i in pairs) {
        if (pairs[i].trim() != '') {
            var args = pairs[i].split('=');
            if (args[0].trim() != '') {
                ret[args[0]] = args.length > 1 ? args[1].trim() : '';
            }
        }
    }
    return ret;
}

/* ComponentArt_MaskedInput_Transforms */
if (window.cart_maskedinput_transforms_loaded) {
    window.ComponentArt_MaskedInput_Transforms.Date = {
        'validate': function(maskedInput) {
            var digits = this.unmask(maskedInput);
            var dateStr = digits.replace(/^(\d{2})(\d{2})(\d{2}|\d{4})$/, '$1/$2/$3');
            return !isNaN(Date.parse(dateStr));
        },

        'unmask': function(maskedInput) {
            // Simply remove all the non-digits from the edited text:
            return maskedInput.masked.value.replace(/[^\d]/g, '');
        },

        'mask': function(maskedInput) {
            // Just insert slashes if we have exactly 6 or 8 digits:
            var digits = maskedInput.unmasked.value;
            return digits.replace(/^(\d{2})(\d{2})(\d{2}|\d{4})$/, '$1/$2/$3');
        }
    };
}

/* WebServiceComplete */
var CA_DataGrid_firstWebServiceComplete = true;
var CA_DataGrid_ListTopAnchor = "#listTop";
function CA_DataGrid_WebServiceComplete(sender, eventArgs) {
    if (CA_DataGrid_firstWebServiceComplete) {
        CA_DataGrid_firstWebServiceComplete = false;
    } else if (window.location.hash == CA_DataGrid_ListTopAnchor) {
        window.location = window.location;
    }
    else {
        window.location = window.location + CA_DataGrid_ListTopAnchor;
    }
}

function arrayOfStringArraysToString(arrs) {
    if (arrs == null) { return 'null'; }

    var ret = '[';
    for (var arrInd in arrs) {
        ret += '['
        for (var strInd in arrs[arrInd]) {
            ret += '\'' + arrs[arrInd][strInd].replace(/'/g, '\\\'') + '\',';
        }
        if (ret.charAt(ret.length - 1) == ',') { ret = ret.substr(0, ret.length - 1); }
        ret += '],'
    }
    if (ret.charAt(ret.length - 1) == ',') { ret = ret.substr(0, ret.length - 1); }
    ret += ']';
    return ret;
}

window.ComponentArt_Init_PlainMenu = function(placeHolderId, itemLooks, scrollLooks, clientTemplates, events) {
    if (!(window.cart_menu_kernel_loaded && window.cart_menu_support_loaded)) {
        var tpls = arrayOfStringArraysToString(clientTemplates);
        var evts = arrayOfStringArraysToString(events);
        var ils = arrayOfStringArraysToString(itemLooks);
        var sls = arrayOfStringArraysToString(scrollLooks);
        var code = 'ComponentArt_Init_PlainMenu(\'' + placeHolderId + '\', ' + ils + ', ' + sls + ', ' + tpls + ', ' + evts + ')';
        setTimeout(code, 500);
        return;
    }

    if (itemLooks == null) {
        itemLooks = [[0, 'Splitter', 1, 'splitter', 27, 0, 28, 0], [0, 'ItemLook', 1, 'item', 2, 'selectedItem', 27, 0, 28, 0], [0, 'SelectedItemLook', 1, 'selectedItem', 2, 'selectedItem', 27, 0, 28, 0]];
    }
    if (scrollLooks == null) {
        scrollLooks = [[0, 'ItemLook'], [0, 'ItemLook']];
    }

    var eventsObj = null;
    if (events != null && events.length > 0) {
        eventsObj = {};
        for (var eventInd in events) {
            eventsObj[events[eventInd][0]] = eval(events[eventInd][1]);
        }
    }

    if (!(window.cart_menu_documentmousedownhandled)) {
        ComponentArt_AddEventHandler(document, 'mousedown', function(event) { ComponentArt_Menu_DocumentMouseDown(event); });
        window.cart_menu_documentmousedownhandled = true;
    }

    window[placeHolderId] = new ComponentArt_Menu(placeHolderId, [], itemLooks, scrollLooks, null, false);
    var menu = window[placeHolderId];
    menu.Postback = function() { __doPostBack('', '') };
    menu.PropertyStorageArray = [
		['ApplicationPath', ''],
		['AutoPostBackOnSelect', false],
		['AutoPostBackOnCheckChanged', false],
		['BaseUrl', ''],
		['CascadeCollapse', true],
		['ClientEvents', eventsObj],
		['ClientSideOnContextMenuHide', null],
		['ClientSideOnContextMenuShow', null],
		['ClientSideOnItemMouseOut', null],
		['ClientSideOnItemMouseOver', null],
		['ClientSideOnItemSelect', null],
		['ClientTemplates', clientTemplates],
		['CollapseDelay', 500],
		['CollapseDuration', 200],
		['CollapseSlide', 2],
		['CollapseTransition', 0],
		['CollapseTransitionCustomFilter', null],
		['ContextControlId', null],
		['ContextData', null],
		['ContextMenu', 0],
		['ControlId', placeHolderId],
		['CssClass', null],
		['DefaultChildSelectedItemLookId', ''],
		['DefaultDisabledItemLookId', ''],
		['DefaultGroupCssClass', null],
		['DefaultGroupExpandDirection', 0],
		['DefaultGroupExpandOffsetX', 0],
		['DefaultGroupExpandOffsetY', 0],
		['DefaultGroupHeight', null],
		['DefaultGroupItemSpacing', null],
		['DefaultGroupOrientation', 0],
		['DefaultGroupWidth', null],
		['DefaultItemLookId', ''],
		['DefaultItemTextAlign', 0],
		['DefaultItemTextWrap', false],
		['DefaultSelectedItemLookId', ''],
		['DefaultTarget', ''],
		['ExpandDelay', 0],
		['ExpandDisabledItems', true],
		['ExpandDuration', 200],
		['ExpandedOverridesHover', false],
		['ExpandOnClick', false],
		['ExpandSlide', 2],
		['ExpandTransition', 0],
		['ExpandTransitionCustomFilter', null],
		['ForceHighlightedItemID', ''],
		['Height', null],
		['HideSelectElements', true],
		['HighlightExpandedPath', true],
		['ImagesBaseUrl', ''],
		['MultiPageId', null],
		['Orientation', 1],
		['OverlayWindowedElements', true],
		['PopUpZIndexBase', 999],
		['PlaceHolderId', placeHolderId],
		['ScrollingEnabled', false],
		['SelectedItemPostBackID', null],
		['ShadowColor', '#8D8F95'],
		['ShadowEnabled', true],
		['ShadowOffset', 2],
		['SoaService', ''],
		['TopGroupExpandDirection', 0],
		['TopGroupExpandOffsetX', 0],
		['TopGroupExpandOffsetY', 0],
		['TopGroupItemSpacing', null],
		['WebService', ''],
		['WebServiceCustomParameter', ''],
		['WebServiceMethod', ''],
		['TopGroupExpandOffsetY', 0],
		['Width', 80]
	];
    menu.LoadProperties();
    ComponentArt_Menu_MarkSelectedItem(menu);
    ComponentArt_Menu_MarkForceHighlightedItem(menu);
    ComponentArt_ClientStateControls[ComponentArt_ClientStateControls.length] = menu;
    menu.Initialize();
    ComponentArt_Menu_RenderMenu(menu);
    ComponentArt_Menu_InitKeyboard(menu);
    window[placeHolderId + '_loaded'] = true;
}

