﻿/************************************************************************************************************

Ajax dynamic content

Copyright (C) 2006  DTHMLGoodies.com, Alf Magne Kalleland



This library is free software; you can redistribute it and/or

modify it under the terms of the GNU Lesser General Public

License as published by the Free Software Foundation; either

version 2.1 of the License, or (at your option) any later version.



This library is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU

Lesser General Public License for more details.



You should have received a copy of the GNU Lesser General Public

License along with this library; if not, write to the Free Software

Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA



Dhtmlgoodies.com., hereby disclaims all copyright interest in this script

written by Alf Magne Kalleland.



Alf Magne Kalleland, 2006

Owner of DHTMLgoodies.com





************************************************************************************************************/



var enableCache = true;

var jsCache = new Array();



var dynamicContent_ajaxObjects = new Array();



function ajax_showContent(divId, ajaxIndex, url) {

    var targetObj = document.getElementById(divId);

    targetObj.innerHTML = dynamicContent_ajaxObjects[ajaxIndex].response;

    if (enableCache) {

        jsCache[url] = dynamicContent_ajaxObjects[ajaxIndex].response;

    }

    dynamicContent_ajaxObjects[ajaxIndex] = false;



    ajax_parseJs(targetObj)

}



function ajax_loadContent(divId, url) {

    if (enableCache && jsCache[url]) {

        document.getElementById(divId).innerHTML = jsCache[url];

        return;

    }



    var ajaxIndex = dynamicContent_ajaxObjects.length;

    document.getElementById(divId).innerHTML = 'Loading content - please wait';

    dynamicContent_ajaxObjects[ajaxIndex] = new sack();

    dynamicContent_ajaxObjects[ajaxIndex].requestFile = url; // Specifying which file to get

    dynamicContent_ajaxObjects[ajaxIndex].onCompletion = function() { ajax_showContent(divId, ajaxIndex, url); }; // Specify function that will be executed after file has been found

    dynamicContent_ajaxObjects[ajaxIndex].runAJAX(); 	// Execute AJAX function	





}



function ajax_parseJs(obj) {

    var scriptTags = obj.getElementsByTagName('SCRIPT');

    var string = '';

    var jsCode = '';

    for (var no = 0; no < scriptTags.length; no++) {

        if (scriptTags[no].src) {

            var head = document.getElementsByTagName("head")[0];

            var scriptObj = document.createElement("script");



            scriptObj.setAttribute("type", "text/javascript");

            scriptObj.setAttribute("src", scriptTags[no].src);

        } else {

            if (navigator.userAgent.indexOf('Opera') >= 0) {

                jsCode = jsCode + scriptTags[no].text + '\n';

            }

            else

                jsCode = jsCode + scriptTags[no].innerHTML;

        }



    }



    if (jsCode) ajax_installScript(jsCode);

}





function ajax_installScript(script) {

    if (!script)

        return;

    if (window.execScript) {

        window.execScript(script)

    } else if (window.jQuery && jQuery.browser.safari) { // safari detection in jQuery

        window.setTimeout(script, 0);

    } else {

        window.setTimeout(script, 0);

    }

}