dynamicLoader = { 
    callback: null, 

    load: function(callback){ 
        this.callback = callback; 
        // Check whether the component was already loaded 
        var already = false; 
        var scripts = document.getElementsByTagName('script'); 
        for (var i = 0; i < scripts.length && !already; i++) { 
            if (scripts[i].src == "http://www.gmodules.com/ig/ifr?url=http://www.google.com/cse/api/011253226925399373886/cse/e-enk7krgxs/gadget&amp;synd=open&amp;w=175&amp;h=127&amp;title=busca+en+red+costablanca&amp;border=%23ffffff%7C0px%2C1px+solid+%2382CAFA%7C0px%2C2px+solid+%23BDEDFF%7C0px%2C3px+solid+%23E0FFFF&amp;output=js")  
                already = true; 
        } 
        if (!already) { 
            // component not loaded yet 
            var script = document.createElement("script"); 
            script.type = "text/javascript"; 
            script.src = "http://www.gmodules.com/ig/ifr?url=http://www.google.com/cse/api/011253226925399373886/cse/e-enk7krgxs/gadget&amp;synd=open&amp;w=175&amp;h=127&amp;title=busca+en+red+costablanca&amp;border=%23ffffff%7C0px%2C1px+solid+%2382CAFA%7C0px%2C2px+solid+%23BDEDFF%7C0px%2C3px+solid+%23E0FFFF&amp;output=js"; 
            // add event to call the callback when the script is loaded 
            if (script.addEventListener) { 
                // for firefox-like browsers 
                script.addEventListener('load', function(){ 
                    console.log('Script loaded: addEventListener'); 
                    dynamicLoader.done(); 
                }, false); 
            }else { 
                // for IE browsers 
                script.onreadystatechange = function(){ 
                    console.log('Script loaded: onreadystatechange=', script.readyState); 
                    if (script.readyState == 'complete' || script.readyState == 'loaded')  
                        dynamicLoader.done(); 
                } 
            } 
            document.getElementById('content').appendChild(script); 
        } 
        else { 
            // component already loaded. Just call the callback 
            dynamicLoader.done(); 
        } 
    }, 
    /** 
     * Tell the dynamic loader to call the callback function after a module is loaded. 
     */ 
    done: function(){ 
        if (this.callback)  
            this.callback(); 
        this.callback = null; 
    } 
}; 


