﻿// this handler is added to the link, but the style is addes to the containing span. Used by mihas menu
function toggleSpanClass(eventElement) {
    var element = new String(eventElement.target.id);
    var span = element.replace('link', 'span');

    Sys.UI.DomElement.toggleCssClass($get(span), "menuHover");
}

jQuery.fn.center = function(absolute) {
    return this.each(function() {
        var t = jQuery(this);

        t.css({
            position: absolute ? 'absolute' : 'fixed',
            left: '50%',
            top: '50%',
            zIndex: '99'
        }).css({
            marginLeft: '-' + (t.outerWidth() / 2) + 'px',
            marginTop: '-' + (t.outerHeight() / 2) + 'px'
        });

        if (absolute) {
            t.css({
                marginTop: parseInt(t.css('marginTop'), 10) + jQuery(window).scrollTop(),
                marginLeft: parseInt(t.css('marginLeft'), 10) + jQuery(window).scrollLeft()
            });
        }
    });
};

//var _listPageID = $("#hiddenListPageID").val();

function isArray(obj) {
    return obj.constructor == Array;
}

function ExecuteAjax(paramArray, method, successCallBack, errorCallBack) {    
    //Create list of parameters in the form:
    var paramList = '';
    if (paramArray.length > 0) {
        for (var i = 0; i < paramArray.length; i += 2) {
            if (paramList.length > 0) {
                paramList += ',';
            }
            paramList += '"' + paramArray[i] + '":'
            if (isArray(paramArray[i + 1])) {
                paramList += "[";
                for (var j = 0; j < paramArray[i + 1].length; j++) {
                    if (j > 0) paramList += ",";
                    paramList += '"' + escapeNewLineChars(paramArray[i + 1][j]) + '"'
                }
                paramList += "]";
            }
            else
                paramList += '"' + escapeNewLineChars(paramArray[i + 1]) + '"';
        }
    }

    paramList = '{' + paramList + '}';

    $.ajax({
        type: "POST",
        url: "Service.svc/" + method,
        data: paramList,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successCallBack,
        error: errorCallBack
    });
}

function escapeNewLineChars(valueToEscape) {
    if (isNaN(valueToEscape)) {
        if (valueToEscape != null && valueToEscape != "") {
            var tmp = valueToEscape.replace(/\n/g, "\\n");
            tmp = tmp.replace(/\\/g, "\\\\");
            tmp = tmp.replace(/"/g, "'");
            return tmp;
        } else {
            return valueToEscape;
        }
    }
    else
        return valueToEscape;
}
