var jsLoader=new(function(){var a={};function b(){var z=this,y,x=new Array();this.processCalls=function(w){y=w;z.enqueueCall=function(v){y(v||[])};for(var i=0;i<x.length;++i){z.enqueueCall(x[i])};x.length=0};this.enqueueCall=function(w){x[x.length]=w}};this.uaInfo=new(function(){var a=navigator.userAgent.toLowerCase(),b=navigator.appVersion.toLowerCase(),c=["msie","gecko","opera"],d=[function(){return-1},function(){return parseFloat(b.split("msie")[1])},function(){return parseFloat(b)},function(){var s=parseFloat(a.split("opera")[1]),t=parseFloat(a.split("opera/")[1]);return isNaN(s)?t:s}],e=["","win","mac"],i=e.length;this.code=c.length;while(this.code-->0&&a.indexOf(c[this.code])<0);if(isNaN(this.version=d[this.code+1]())){this.version=-1}while(i-->0&&navigator.platform.toLowerCase().indexOf(e[i])<0);this.platform=e[i]})();this.loadScripts=function(){var c,d="";for(var i=0;i<arguments.length;++i){c=jsLoaderData.bundles[arguments[i]];for(var j=0;j<c.length;++j){for(var k=1;k<c[j].length&&c[j][0];k+=2){d+="<script type='text/javascript' src='"+jsLoaderData.path+c[j][k]+"'"+(c[j][k+1]?" defer":"")+"><\/script>"}}};document.write(d)};this.processDeferredCalls=function(c,d){if(!a[c]){a[c]=new b()}a[c].processCalls(d)};this.enqueueDeferredCall=function(c,d){if(!a[c]){a[c]=new b()};a[c].enqueueCall(d)}})();

// Data

var jsLoaderData = new (
  function () {

    with (jsLoader.uaInfo) {
      var uaCode = code,
          uaVersion = version,
          uaPlatform = platform;
    }

    // Predefined conditions

    var c1 = uaCode == 0 && uaVersion >= 5 && uaPlatform == "win", // MSIE 5+, Windows
        c2 = uaCode == 1 && uaVersion >= 5, // Gecko based (Netscape 6+, Mozilla 1+), all platforms
        c3 = uaCode == 2 && uaVersion >= 7; // Opera 7+, all platforms

    this.path = "js/";

    this.bundles = {
      mainMenu: [
        [ c1 && uaVersion >= 5.5,
          "menu_ie.js", false,
          "menu_data.js", false ],
        [ c2 || c3,
          "menu_dom.js", false,
          "menu_data.js", false ]
      ]
    }

  }
)();
