﻿function Entities() { };
Entities.prototype = {

    chargeCss: function (filename) {
        if (this.estChargeCss(filename))
            return;

        var fileref = document.createElement("link")
        fileref.setAttribute("rel", "stylesheet")
        fileref.setAttribute("type", "text/css")
        fileref.setAttribute("href", filename)
        if (typeof fileref != "undefined")
            document.getElementsByTagName("head")[0].appendChild(fileref)
    },

    estChargeCss: function (filename) {
        var links = document.getElementsByTagName("link");
        for (var i = 0; i < links.length; i++) {
            if (links[i].getAttribute('href') == filename)
                return true;
        }

        return false;
    },

    ajouterEventValidation: function (event, boutonID, condition) {
        event = event || window.event;
        if (event.which || event.keyCode) {
            if ((event.which == 13) || (event.keyCode == 13)) {
                var launchEvent = true;
                if (typeof (condition) === 'function') {
                    launchEvent = condition();
                }
                if (!launchEvent)
                    return true;
                if (event.preventDefault)       //IE6
                    event.preventDefault();
                document.getElementById(boutonID).click();
                return false;
            }
        } else
            return true;
    },

    bloquerContenu: function (id) {
        $(id).block({
            message: null,
            overlayCSS: { backgroundColor: 'transparent' }
        });

    },

    debloquerContenu: function (id) {
        $(id).unblock();
    },

    _dictionnaire: {
        '*pro': 'http',
        '*pros': 'https',
        '*w3': 'www',
        '*colon': ':',
        '*slash': '/',
        '*quest': '?',
        '*amp': '&',
        '*equal': '=',
        '*under': '_',
        '*com': '.com',
        '*fr': '.fr',
        '*aspx': '.aspx',
        '*html': '.html',
        '*htm': '.htm',
        '*dot': '.'
    },

    lien: function () {
        var lien = ''

        for (var i = 0; i < arguments.length; i++) {
            var portion = arguments[i];
            var valeur = this._dictionnaire[portion];
            lien += valeur ? valeur : portion;
        }

        this.ouvrirLien(lien);
    },

    ouvrirLienNouvelleFenetre: function () {
        var lien = ''

        for (var i = 0; i < arguments.length; i++) {
            var portion = arguments[i];
            var valeur = this._dictionnaire[portion];
            lien += valeur ? valeur : portion;
        }
        window.open(lien);
    },

    ouvrirLien: function (lien) {
        var s = 'ent.loc';
        s = 'cum' + s + 'ation';
        s = 'do' + s + '=\'';
        eval(s + lien + '\'');
    },

    imprimer: function () {
        /* if (top) {            
        top.print();
        }
        else
        window.print();*/
        try {
            document.execCommand('print', false, null);
        } catch (ex) {
            window.print();
        }
    },

    supprimerParametreQuerystring: function (url, param) {
        var indexQ = url.indexOf('?');
        var indexA = url.indexOf('#');
        if (indexQ < 0)
            return url;

        var path = url.substring(0, indexQ);
        var querystring = null;
        var anchor = null;
        if (indexA > -1) {
            querystring = url.substring(indexQ + 1, indexA);
            anchor = url.substring(indexA + 1);
        } else
            querystring = url.substring(indexQ + 1);
        var params = querystring.split('&');
        params.remove(param);
        querystring = '?';
        $(params).each(function (i, item) {
            querystring += item + '&';
        });
        var final = path + querystring.substring(0, querystring.length - 1);
        if (anchor != null)
            final += '#' + anchor;
        return final;
    },

    ajouterParametreQuerystring: function (url, param, value) {
        url = this.supprimerParametreQuerystring(url, param);
        var indexQ = url.indexOf('?');
        var indexA = url.indexOf('#');
        if (indexQ < 0) {
            url += '?' + param + '=' + value;
            return url;
        }
        var path = url.substring(0, indexQ);
        var querystring = null;
        var anchor = null;
        if (indexA > -1) {
            querystring = url.substring(indexQ + 1, indexA);
            anchor = url.substring(indexA + 1);
        } else
            querystring = url.substring(indexQ + 1);

        var params = querystring.split('&');
        params.push(param + '=' + value);
        querystring = '?';
        $(params).each(function (i, item) {
            querystring += item + '&';
        });
        var final = path + querystring.substring(0, querystring.length - 1);
        if (anchor != null)
            final += '#' + anchor;
        return final;
    },

    recupererParametreQuerystring: function (url, param) {
        var indexQ = url.indexOf('?');
        var indexA = url.indexOf('#');
        if (indexQ < 0)
            return url;

        var path = url.substring(0, indexQ);
        var querystring = null;
        var anchor = null;
        if (indexA > -1) {
            querystring = url.substring(indexQ + 1, indexA);
            anchor = url.substring(indexA + 1);
        } else
            querystring = url.substring(indexQ + 1);
        var params = querystring.split('&');
        for (i = 0; i < params.length; i++) {
            var cparam = params[i].split('=');
            if (param == (cparam[0]))
                return cparam[1];
        }
        return null;
    }

};

Array.prototype.remove = function (s) {
    for (i = 0; i < this.length; i++) {
        var param = this[i].split('=');
        if (s == (this[i].split('=')[0]))
            this.splice(i, 1);
    }
};

var entities = new Entities();

String.prototype.startsWith = function (str) { return (this.match("^" + str) == str); }

String.prototype.trim = function () { return this.replace(/^\s*/, "").replace(/\s*$/, ""); }

window.scrollTo = function () { }
