diff -r 6edf399cfa26 -r 430c1a7a09de src/js/main.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/js/main.js Wed Nov 30 12:17:19 2011 +0100 @@ -0,0 +1,124 @@ +/* main file */ + +if ( window.IriSP === undefined && window.__IriSP === undefined ) { + var IriSP = {}; + var __IriSP = IriSP; /* for backward compatibility */ +} + +/* crap code will be the first against the wall when the + revolution comes */ +IriSP.loadLibs = function( libs, customCssPath, callback ) { + // Localize jQuery variable + IriSP.jQuery = null; + + /* FIXME : to refactor using popcorn.getscript ? */ + /******** Load jQuery if not present *********/ + if ( window.jQuery === undefined || window.jQuery.fn.jquery !== '1.4.2' ) { + + var script_tag = document.createElement( 'script' ); + script_tag.setAttribute( "type", "text/javascript" ); + script_tag.setAttribute( "src", libs.jQuery ); + + script_tag.onload = scriptLibHandler; + script_tag.onreadystatechange = function () { // Same thing but for IE + if ( this.readyState == 'complete' || this.readyState == 'loaded' ) { + scriptLibHandler(); + } + }; + + // Try to find the head, otherwise default to the documentElement + ( document.getElementsByTagName("head")[0] || document.documentElement ).appendChild( script_tag ); + } else { + // The jQuery version on the window is the one we want to use + IriSP.jQuery = window.jQuery; + scriptLibHandler(); + } + + /******** Called once jQuery has loaded ******/ + function scriptLibHandler() { + + var script_jqUi_tooltip = document.createElement( 'script' ); + script_jqUi_tooltip.setAttribute( "type", "text/javascript" ); + script_jqUi_tooltip.setAttribute( "src", libs.jQueryToolTip ); + script_jqUi_tooltip.onload = scriptLoadHandler; + script_jqUi_tooltip.onreadystatechange = function () { // Same thing but for IE + if ( this.readyState == 'complete' || this.readyState == 'loaded' ) { + scriptLoadHandler( "jquery.tools.min.js loded" ); + } + }; + + var script_swfObj = document.createElement('script'); + script_swfObj.setAttribute( "type","text/javascript" ); + script_swfObj.setAttribute( "src",libs.swfObject ); + script_swfObj.onload = scriptLoadHandler; + script_swfObj.onreadystatechange = function () { // Same thing but for IE + if ( this.readyState == 'complete' || this.readyState == 'loaded' ) { + scriptLoadHandler( "swfobject.js loded" ); + } + }; + + var script_jqUi = document.createElement( 'script' ); + script_jqUi.setAttribute( "type","text/javascript" ); + script_jqUi.setAttribute( "src",libs.jQueryUI ); + script_jqUi.onload = scriptLoadHandler; + script_jqUi.onreadystatechange = function () { // Same thing but for IE + if ( this.readyState == 'complete' || this.readyState == 'loaded' ) { + scriptLoadHandler( "jquery-ui.min.js loded" ); + } + }; + + + ( document.getElementsByTagName("head")[0] || document.documentElement ).appendChild( script_jqUi_tooltip); + ( document.getElementsByTagName("head")[0] || document.documentElement ).appendChild( script_jqUi ); + ( document.getElementsByTagName("head")[0] || document.documentElement ).appendChild( script_swfObj ); + + + }; + + /******** Called once all lib are loaded ******/ + var loadLib = 0; + /* FIXME : ugly */ + function scriptLoadHandler( Mylib ) { + //alert(Mylib); + loadLib +=1; + if( loadLib===3 ) { + main(); + } + }; + + /******** Our main function ********/ + function main() { + + + // Make our own IriSP.jQuery and restore window.jQuery if there was one. + IriSP.jQuery = window.jQuery.noConflict( true ); + // Call our Jquery + IriSP.jQuery( document ).ready( function($) { + + /******* Load CSS *******/ + var css_link_jquery = IriSP.jQuery( "", { + rel: "stylesheet", + type: "text/css", + href: libs.cssjQueryUI, + 'class': "dynamic_css" + } ); + var css_link_custom = IriSP.jQuery( "", { + rel: "stylesheet", + type: "text/css", + href: customCssPath, + 'class': "dynamic_css" + } ); + + css_link_jquery.appendTo( 'head' ); + css_link_custom.appendTo( 'head' ); + + // to see dynamicly loaded css on IE + if ( $.browser.msie ) { + $( '.dynamic_css' ).clone().appendTo( 'head' ); + } + + callback(); + }); + } +}; +