﻿var blockUI = function(id) {
    if (id == null)
        id = "domMessage";
    jQuery.blockUI(jQuery('#' + id).html(), null, {
        fadeOut: 100,
        pageMessage: 'asdfasdfasdf',//$('#' + id).html(),
        overlayCSS: {
            backgroundColor: "#000",
            opacity: "0.75"
        },
        css: {
            backgroundColor: '#232323',
            border: '1px solid #ccc',
            padding: '4px',
            width: '260px',
            color: '#ccc'
        }
    });
}


//plugin jQuery, permet de faire des call à des web services .net
jQuery.callWS = jQuery.callWS = function(options) {
    var defaults = {
        url: '',
        data: null,
        success: function(data, textStatus) {
            alert(data.d);
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            alert(XMLHttpRequest.responseText);
        },
        securityKey: null
    };

    var settings = jQuery.extend(defaults, options);

    if (settings.data == null) {
        jQuery.ajax({
            type: "POST",
            url: settings.url,
            contentType: "application/json; charset=utf-8",
            beforeSend: function(xhr) {
                xhr.setRequestHeader("Content-type", "application/json; charset=utf-8");
                if (settings.securityKey != null)
                    xhr.setRequestHeader("securityTicket", settings.securityKey);
            },
            dataType: "json",
            success: settings.success,
            error: settings.error
        });
    } else {
        jQuery.ajax({
            type: "POST",
            url: settings.url,
            data: settings.data,
            contentType: "application/json; charset=utf-8",
            beforeSend: function(xhr) {
                xhr.setRequestHeader("Content-type", "application/json; charset=utf-8");
                if (settings.securityKey != null)
                    xhr.setRequestHeader("securityTicket", settings.securityKey);
            },
            dataType: "json",
            success: settings.success,
            error: settings.error
        });
    }
};

var Parameter = Base.extend({
    constructor: function(parameterName, parameterValue) {
        this.name = parameterName;
        this.value = parameterValue;
    },
    name: null,
    value: null,
    getName: function() {
        return this.name;
    },
    getValue: function() {
        return this.value;
    }
});

var DataBuilder = Base.extend({
    parameters: new Array(5), //prends pour acquis qu'on ne va pas avoir de méthode de plus que cinq paramètres
    add: function(parameterName, parameterValue) {
        this.parameters[this.parameters.length] = new Parameter(parameterName, parameterValue);
    },
    clear: function() {
        this.parameters = new Array(5);
    },
    toJSONString: function() {
        var s = "";
        for (i = 0; i < this.parameters.length; i++) {
            if (this.parameters[i] != null) {
                if (s != "")
                    s += ",";
                s += '"' + this.parameters[i].getName() + '":' + this.parameters[i].getValue();
            }
        }
        if (s != "")
            s = "{" + s + "}";
        return s;
    }
});




/**
*
*  Javascript trim, ltrim, rtrim
*  http://www.webtoolkit.info/
*
*
**/
function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}
function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+jQuery", "g"), "");
}