/*! LAB.js (LABjs :: Loading And Blocking JavaScript)
    v2.0.3 (c) Kyle Simpson
    MIT License
*/
(function(o){var K=o.$LAB,y="UseLocalXHR",z="AlwaysPreserveOrder",u="AllowDuplicates",A="CacheBust",B="BasePath",C=/^[^?#]*\//.exec(location.href)[0],D=/^\w+\:\/\/\/?[^\/]+/.exec(C)[0],i=document.head||document.getElementsByTagName("head"),L=(o.opera&&Object.prototype.toString.call(o.opera)=="[object Opera]")||("MozAppearance"in document.documentElement.style),q=document.createElement("script"),E=typeof q.preload=="boolean",r=E||(q.readyState&&q.readyState=="uninitialized"),F=!r&&q.async===true,M=!r&&!F&&!L;function G(a){return Object.prototype.toString.call(a)=="[object Function]"}function H(a){return Object.prototype.toString.call(a)=="[object Array]"}function N(a,c){var b=/^\w+\:\/\//;if(/^\/\/\/?/.test(a)){a=location.protocol+a}else if(!b.test(a)&&a.charAt(0)!="/"){a=(c||"")+a}return b.test(a)?a:((a.charAt(0)=="/"?D:C)+a)}function s(a,c){for(var b in a){if(a.hasOwnProperty(b)){c[b]=a[b]}}return c}function O(a){var c=false;for(var b=0;b<a.scripts.length;b++){if(a.scripts[b].ready&&a.scripts[b].exec_trigger){c=true;a.scripts[b].exec_trigger();a.scripts[b].exec_trigger=null}}return c}function t(a,c,b,d){a.onload=a.onreadystatechange=function(){if((a.readyState&&a.readyState!="complete"&&a.readyState!="loaded")||c[b])return;a.onload=a.onreadystatechange=null;d()}}function I(a){a.ready=a.finished=true;for(var c=0;c<a.finished_listeners.length;c++){a.finished_listeners[c]()}a.ready_listeners=[];a.finished_listeners=[]}function P(d,f,e,g,h){setTimeout(function(){var a,c=f.real_src,b;if("item"in i){if(!i[0]){setTimeout(arguments.callee,25);return}i=i[0]}a=document.createElement("script");if(f.type)a.type=f.type;if(f.charset)a.charset=f.charset;if(h){if(r){e.elem=a;if(E){a.preload=true;a.onpreload=g}else{a.onreadystatechange=function(){if(a.readyState=="loaded")g()}}a.src=c}else if(h&&c.indexOf(D)==0&&d[y]){b=new XMLHttpRequest();b.onreadystatechange=function(){if(b.readyState==4){b.onreadystatechange=function(){};e.text=b.responseText+"\n//@ sourceURL="+c;g()}};b.open("GET",c);b.send()}else{a.type="text/cache-script";t(a,e,"ready",function(){i.removeChild(a);g()});a.src=c;i.insertBefore(a,i.firstChild)}}else if(F){a.async=false;t(a,e,"finished",g);a.src=c;i.insertBefore(a,i.firstChild)}else{t(a,e,"finished",g);a.src=c;i.insertBefore(a,i.firstChild)}},0)}function J(){var l={},Q=r||M,n=[],p={},m;l[y]=true;l[z]=false;l[u]=false;l[A]=false;l[B]="";function R(a,c,b){var d;function f(){if(d!=null){d=null;I(b)}}if(p[c.src].finished)return;if(!a[u])p[c.src].finished=true;d=b.elem||document.createElement("script");if(c.type)d.type=c.type;if(c.charset)d.charset=c.charset;t(d,b,"finished",f);if(b.elem){b.elem=null}else if(b.text){d.onload=d.onreadystatechange=null;d.text=b.text}else{d.src=c.real_src}i.insertBefore(d,i.firstChild);if(b.text){f()}}function S(c,b,d,f){var e,g,h=function(){b.ready_cb(b,function(){R(c,b,e)})},j=function(){b.finished_cb(b,d)};b.src=N(b.src,c[B]);b.real_src=b.src+(c[A]?((/\?.*$/.test(b.src)?"&_":"?_")+~~(Math.random()*1E9)+"="):"");if(!p[b.src])p[b.src]={items:[],finished:false};g=p[b.src].items;if(c[u]||g.length==0){e=g[g.length]={ready:false,finished:false,ready_listeners:[h],finished_listeners:[j]};P(c,b,e,((f)?function(){e.ready=true;for(var a=0;a<e.ready_listeners.length;a++){e.ready_listeners[a]()}e.ready_listeners=[]}:function(){I(e)}),f)}else{e=g[0];if(e.finished){j()}else{e.finished_listeners.push(j)}}}function v(){var e,g=s(l,{}),h=[],j=0,w=false,k;function T(a,c){a.ready=true;a.exec_trigger=c;x()}function U(a,c){a.ready=a.finished=true;a.exec_trigger=null;for(var b=0;b<c.scripts.length;b++){if(!c.scripts[b].finished)return}c.finished=true;x()}function x(){while(j<h.length){if(G(h[j])){try{h[j++]()}catch(err){}continue}else if(!h[j].finished){if(O(h[j]))continue;break}j++}if(j==h.length){w=false;k=false}}function V(){if(!k||!k.scripts){h.push(k={scripts:[],finished:true})}}e={script:function(){for(var f=0;f<arguments.length;f++){(function(a,c){var b;if(!H(a)){c=[a]}for(var d=0;d<c.length;d++){V();a=c[d];if(G(a))a=a();if(!a)continue;if(H(a)){b=[].slice.call(a);b.unshift(d,1);[].splice.apply(c,b);d--;continue}if(typeof a=="string")a={src:a};a=s(a,{ready:false,ready_cb:T,finished:false,finished_cb:U});k.finished=false;k.scripts.push(a);S(g,a,k,(Q&&w));w=true;if(g[z])e.wait()}})(arguments[f],arguments[f])}return e},wait:function(){if(arguments.length>0){for(var a=0;a<arguments.length;a++){h.push(arguments[a])}k=h[h.length-1]}else k=false;x();return e}};return{script:e.script,wait:e.wait,setOptions:function(a){s(a,g);return e}}}m={setGlobalDefaults:function(a){s(a,l);return m},setOptions:function(){return v().setOptions.apply(null,arguments)},script:function(){return v().script.apply(null,arguments)},wait:function(){return v().wait.apply(null,arguments)},queueScript:function(){n[n.length]={type:"script",args:[].slice.call(arguments)};return m},queueWait:function(){n[n.length]={type:"wait",args:[].slice.call(arguments)};return m},runQueue:function(){var a=m,c=n.length,b=c,d;for(;--b>=0;){d=n.shift();a=a[d.type].apply(null,d.args)}return a},noConflict:function(){o.$LAB=K;return m},sandbox:function(){return J()}};return m}o.$LAB=J();(function(a,c,b){if(document.readyState==null&&document[a]){document.readyState="loading";document[a](c,b=function(){document.removeEventListener(c,b,false);document.readyState="complete"},false)}})("addEventListener","DOMContentLoaded")})(this);

/* load script */
(function( path, ua ) {
    var isSmartPhone = ua.indexOf( 'iphone' ) !== -1 || ua.indexOf( 'android' ) !== -1;
    
    // options 
    $LAB.setGlobalDefaults({ BasePath: '/common/' });
    
    // all page 
    $LAB
    .queueScript( 'js/global/lib.js' )
    .queueWait()
    .queueScript( 'js/global/snippet.js', 'js/global/gnav.js', 'js/global/rollover.js', 'js/global/scroll.js', 'js/global/external.js' );
    
    if ( path === '/' ) {
        $LAB
        .queueScript( 'js/lib/gallery.js', 'js/lib/puzzle.js', 'js/lib/tumblr.js', 'js/lib/skroll.js', 'js/lib/twitter.js' )
        .queueWait(function() {
            jQuery(function() {
                var $tumblr = jQuery( '#tumblrFeed' ),
                    $twitter = jQuery( '#twitterIT' );
                
                jQuery( '#slideWrapper' ).gallery();
                $tumblr.getTumblr({
                    callback: function() {
                        jQuery( 'a', $tumblr ).external();
                    }
                });
                $twitter.getTwitter({
                    callback: function() {
                        var skroll, resizeTimeout;
                        
                        skroll = jQuery.skroll( '#twitterIT' );
                        jQuery( window ).on( 'resize.skroll', function() {
                            clearTimeout( resizeTimeout );
                            resizeTimeout = setTimeout(function() {
                                skroll.refresh();
                            }, 200 );
                        });
                        
                        jQuery( 'a', $twitter ).external();
                    }
                });
            });
        });
    
    } else if ( path === '/company/about/' ) {
        $LAB.queueScript( 'js/lib/gmap.js' );
    
    } else if ( path === '/company/history/' ) {
        $LAB
        .queueScript( 'js/lib/tab.js' )
        .queueWait(function() {
            jQuery(function() {
                jQuery( '#historyTable' ).tab();
            });
        });
    
    } else if ( path === '/news/all/' ) {
        $LAB
        .queueScript( 'js/lib/tab.js' )
        .queueWait(function() {
            jQuery(function() {
                jQuery( '#topicList' ).tab();
            });
        });
    
    } else if ( path.indexOf( '/works/' ) !== -1 ) {
        $LAB
        .queueScript( 'js/lib/scrollimg.js' )
        .queueWait(function() {
            jQuery(function() {
                jQuery( 'div.modScrollImg' ).scrollImg();
            });
        });
    
    } else if ( path === '/contact/form/' || path === '/recruit/entry/' ) {
        $LAB
        .queueScript( 'js/lib/form.js' )
        .queueWait(function() {
            jQuery(function() {
                jQuery( '#mailform' ).efo();
            });
        });
    }
    
    // !smartphone 
    if ( !isSmartPhone ) {
        $LAB
        .queueScript( 'js/global/widget.js' )
        .queueWait(function() {
            jQuery(function() {
                jQuery( '#footerTop' ).sitemapWidget();
                jQuery( '#socialLink' ).socialWidget();
            });
        });
    }
    
    // run 
    $LAB
    .runQueue()
    .wait(function() {
        jQuery(function() {
            jQuery( '#globalNav' ).gnav();
            jQuery( 'img.rollover' ).rollover();
            jQuery( 'a[href^="#"]' ).scroll();
            jQuery( 'a', document.body ).external();
        });
    });
})( this.location.pathname.replace( /index.\w+$/, '' ), navigator.userAgent.toLowerCase() );
