﻿// Ajout de points de suspension si le texte depasse la largeur specifiee
function autoEllipseText(element, text, width) {
    element.innerHTML = '<span  id="ellipsisSpan" style="white-space:nowrap;border:1px solid gray;">' + text + '</span>';
    inSpan = document.getElementById('ellipsisSpan');
    if (inSpan.offsetWidth > width) {
        var i = 1;
        inSpan.innerHTML = '';
        while (inSpan.offsetWidth < (width) && i < text.length) {
            inSpan.innerHTML = text.substr(0, i) + '...';
            i++;
        }

        returnText = inSpan.innerHTML;
        element.innerHTML = '';
        return returnText;
    }
    return text;
}



function getArrayChildren(el) {
    var arr = new Array(), i = 0, l = el.childNodes.length;

    for (i = 0; i < l; i++) {
        if (el.childNodes[i].nodeType == 1) {
            arr.push(el.childNodes[i]);
        }
    }

    return arr;
}

function getStyle(oElm, strCssRule) {
    var strValue = "";

    if (document.defaultView && document.defaultView.getComputedStyle) {
        strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
    }
    else if (oElm.currentStyle) {
        strCssRule = strCssRule.replace(/\-(\w)/g, function(strMatch, p1) {
            return p1.toUpperCase();
        });
        strValue = oElm.currentStyle[strCssRule];
    }

    return strValue;
}

function getStyleValue(el, style) {
    var res = getStyle(el, style);
    if (res.length > 2)
        res = eval(res.substr(0, res.length - 2));

    return res;
}

function loadjscssfile(filename, filetype) {
    if (filetype == "js") { //if filename is a external JavaScript file
        var fileref = document.createElement('script')
        fileref.setAttribute("type", "text/javascript")
        fileref.setAttribute("src", filename)
    }
    else if (filetype == "css") { //if filename is an external CSS file
        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)
}

// fonction permettant de recuperer les elements
// possedant la classe/les classes passee(s) en parametre
document.getElementsByClassName = function(clsName) {
    var retVal = new Array();
    var elements = document.getElementsByTagName("*");
    for (var i = 0; i < elements.length; i++) {
        if (elements[i].className.indexOf(",") >= 0) {
            var classes = elements[i].className.split(" ");
            for (var j = 0; j < classes.length; j++) {
                if (classes[j] == clsName) {
                    retVal.push(elements[i]);
                }
            }
        }
        else if (elements[i].className == clsName)
            retVal.push(elements[i]);
        else if (elements[i].className.indexOf(clsName + " ") >= 0)
            retVal.push(elements[i]);
    }
    return retVal;
}

// Ajax
function createXHR() {
    var xhr = null;

    if (window.XMLHttpRequest || window.ActiveXObject) {
        if (window.ActiveXObject) {
            try {
                xhr = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e) {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        else
            xhr = new XMLHttpRequest();
    }
    else
        return null;

    return xhr;
}

function LoadMapDealerESP(longitude, latitude, serverName, mapDealerId) {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById(mapDealerId));

        map.setCenter(new GLatLng(latitude, longitude), 8);

        var icon = new GIcon();
        icon.image = serverName + "images/dealer.png";
        icon.iconAnchor = new GPoint(6, 20);
        icon.infoWindowAnchor = new GPoint(11, 1);

        var point = new GLatLng(latitude, longitude);

        opts = { "icon": icon,
            "clickable": false,
            "labelText": "",
            "labelOffset": new GSize(-22, -15)
        };

        var marker = new LabeledMarker(point, opts);

        map.addOverlay(marker);
    }
}

// AO, 31/08/2009
function getElementsByClassName(classname, node) {
    if (!node)
        node = document.getElementsByTagName("body")[0];

    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");

    for (var i = 0, j = els.length; i < j; i++)
        if (re.test(els[i].className))
        a.push(els[i]);

    return a;
}

function ShowSessionExpiredMessage(msg) {
    var obj;

    if (parent.codeMessageHiddenFieldId)
        obj = parent;
    else
        obj = parent.parent;

    var message = obj.document.getElementById(obj.codeMessageHiddenFieldId);
    //message.value = msg;
    message.value = "ESP_SESSION_TIMEOUT";
    obj.document.getElementById(obj.hdShowPopinOkActionId).value = "window." + ((obj == "parent") ? "parent" : "parent.parent") + ".window.location.reload();";
    obj.document.getElementById(obj.hdShowPopinClosingCrossActionId).value = "window." + ((obj == "parent") ? "parent" : "parent.parent") + ".window.location.reload();";
    obj.ShowPopinMessage();
}

function popup(adr, name, width, height, is_scrollbar) {
    if (typeof (name) != "undefined")
        name = "popup";

    if (typeof (width) != "undefined")
        width = screen.width;

    if (typeof (height) != "undefined")
        height = screen.height;

    if (typeof (is_scrollbar) != "undefined")
        is_scrollbar = "true";

    var largeur = screen.availWidth;
    var hauteur = screen.availHeight;
    var demiL = ((largeur - width) / 2);
    var demiH = ((hauteur - height) / 2);
    name = window.open(adr, name, 'scrollbars=' + is_scrollbar + ',screenX=0,screenY=0,status=0,location=0, menubar=0,toolbar=0,resizable=0,width=' + width + ',height=' + height + ',top=' + demiH + ',left=' + demiL);
}

function checkEnterOld(e) {
    var characterCode;

    if (e && e.which) {
        e = e;
        characterCode = e.which;
    }
    else {
        e = event;
        characterCode = e.keyCode;
    }

    if (characterCode == 13) {
        document.forms[0].submit();
        return false;
    }
    else
        return true;
}
