/* Javascript by Daniel Cohen Gindi (c) danielgindi@gmail.com 054-5655765 */
/* Version: 2009-05-17 */

ajax = function() { }
ajax.loadScriptFromUrl = function(url, uniqueName, useCounter) {
    // uniqueName, useCounter: safeties against script caching
    var scriptTag = null;
    var headTag = document.getElementsByTagName('head')[0];
    if (uniqueName) {
        var newCounter = false;
        uniqueName = '$ajax_load_' + uniqueName;
        scriptTag = $find(uniqueName);
        if (scriptTag) headTag.removeChild(scriptTag);
        else newCounter = true;
        scriptTag = document.createElement('script');
        scriptTag.id = uniqueName;

        if (useCounter) {
            uniqueName += '_counter$';
            var counter;
            if (newCounter) counter = 0;
            else counter = eval(uniqueName);
            counter++;
            eval(uniqueName + '=' + counter);
            if (url.indexOf('?') >= 0) url += '&_counter$=' + counter;
            else url += '?_counter$=' + counter;
        }
    }
    else {
        scriptTag = document.createElement('script');
    }
    headTag.appendChild(scriptTag);
    scriptTag.src = url;
}
ajax.parseXmlString = function(xml) {
    var xmlDoc = null;
    if (window.ActiveXObject) {
        try {
            xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
            xmlDoc.async = false;
            xmlDoc.loadXML(xml);
        } catch (e) {
        }
    }
    else if (DOMParser) {
        var parser = new DOMParser();
        xmlDoc = parser.parseFromString(xml, "application/xml");
    }
    if (xmlDoc && xmlDoc.documentElement) return xmlDoc.documentElement;
}
ajax.parseXmlFile = function(url) {
    var xmlDoc = null;
    if (window.ActiveXObject) {
        try {
            xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
        } catch (e) {
            try {
                xmlDoc = document.implementation.createDocument("", "", null);
            } catch (e) {
            }
        }
    }
    xmlDoc.async = false;
    xmlDoc.load(url);
    if (xmlDoc && xmlDoc.documentElement) return xmlDoc.documentElement;
}