/*!{ in.js -- xKit -- v[ 1.9.4 ] }!*/
( 'use strict' );
/* Set the domain for Same Origin Policy. */
if( window.document.location.hostname ){
window.document.domain = window.document.location.hostname ;
}
/**/
/* This is a global object. [ warning(?) ] */
var loader = {
DOMref : { main : undefined , scripts : undefined }
, hasEventListeners : ( ( typeof( document.addEventListener ) == 'function' ) ? true : false )
, nodeType : ( ( !document.doctype.publicId && !( document.all[ 0 ] ).text ) ? 'var' : 'span' )
, scripts : []
, config : { errorTimeout : 12 , defaultTimeout : 4 }
, remove : {
arrayReference : function( index ){ /* The main removal handler. */
( loader.scripts[ index ] ).DOMnode.onload = undefined ;
( loader.scripts[ index ] ).DOMnode.onerror = undefined ;
loader.scripts[ index ] = null ;
}
, scriptURI : function( URI ){
var e = ( loader.scripts ).length - 1 ;
while( e-- ){
if( loader.scripts[ e ] && ( loader.scripts[ e ] ).sourceURI === URI ){
loader.remove.arrayReference( e );
break ;
}
}
}
}
, require : {
scriptURI : function( URI , defer , functions ){ /* functions = { load , exit , fail , timeout } */
if( !URI ){ return( false ); }
var e = ( loader.scripts ).length ;
while( e-- ){
if( ( loader.scripts[ e ] ).sourceURI == URI ){
return( false ); // It's already loaded. //
}
}
var hasFunctions = ( ( functions && typeof( functions ) == 'object' ) ? ( true ) : ( false ) ) ;
var hasLoaded = false ;
var scriptNode = document.createElement( 'script' ) ;
scriptNode.setAttribute( 'src' , URI );
scriptNode.setAttribute( ( defer ? 'defer' : 'async' ) , 'on' );
( loader.DOMref.scripts ).appendChild( scriptNode );
( loader.scripts ).push( { DOMnode : scriptNode , sourceURI : URI , stateEvents : functions /*, loadStatus : false */ } );
function stateHandler( state ){
if( typeof( functions[ state ] ) == 'function' ){
( functions[ state ] ).call( this ) ;
}
}
scriptNode.onerror = function(){
if( !hasLoaded ){ window.setTimeout( function(){ if( !hasLoaded ){
scriptNode.onerror = undefined ;
scriptNode.onload = undefined ;
loader.remove.scriptURI( URI );
stateHandler( 'fail' );
scriptNode.parentNode.removeChild( scriptNode );
} } , loader.config.errorTimeout ) };
}
scriptNode.onload = function(){
hasLoaded = true ;
stateHandler( 'load' ) ;
} ;
return( true );
}
}
, DOMready : {
state : false
, functionStack : []
, add : function( e ){
if( loader.DOMready.state ){
e(); return( false );
}else{
( loader.DOMready.functionStack ).push( e ); return( true );
}
}
, run : function(){
var e = ( loader.DOMready.functionStack ).length ;
while( e-- ){
loader.DOMready.functionStack[ e ]();
loader.DOMready.functionStack.shift();
}
loader.DOMready.functionStack = [] ;
}
, fire : function(){
if( !window.document.body ){
window.document.body = document.getElementsByTagName( 'body' )[ 0 ] ;
}
loader.DOMready.state = true ;
if( loader.hasEventListeners ){
document.removeEventListener( 'onDOMContentLoaded' , loader.DOMready.run , false ) ;
}
window.document.onreadystatechange = undefined ;
window.onload = undefined ;
loader.DOMready.run();
}
, stateHandler : function(){
if( !loader.DOMready.state && ( window.document.getElementsByTagName( 'body' )[ 0 ] ) ){
loader.DOMready.fire();
}else{
window.setTimeout( 'loader.stateHandler' , loader.config.defaultTimeout );
}
}
}
, init : function(){
if( document.getElementsByTagName( 'script' )[ 0 ] && !loader.DOMref.main ){
if( !window.document.head ){
window.document.head = document.getElementsByTagName( 'head' )[ 0 ] ;
}
/**/
loader.DOMref.main = document.createElement( loader.nodeType ) ;
loader.DOMref.main.setAttribute( 'id' , 'inject' ) ;
loader.DOMref.main.style.display = 'none' ;
loader.DOMref.main.style.visibility = 'hidden' ;
( document.getElementsByTagName( 'script' )[ 0 ] ).parentNode.insertBefore( loader.DOMref.main , document.getElementsByTagName( 'script' )[ 0 ] );
/**/
loader.DOMref.scripts = document.createElement( loader.nodeType ) ;
loader.DOMref.scripts.setAttribute( 'id' , 'script-pool' ) ;
( loader.DOMref.main ).appendChild( loader.DOMref.scripts );
/**/
if( document.readyState ){
window.document.onreadystatechange = loader.DOMready.stateHandler ;
}
if( loader.hasEventListeners ){
document.addEventListener( 'onDOMContentLoaded' , loader.DOMready.stateHandler , false ) ;
}
window.onLoad = loader.DOMready.fire ;
/**/
/* Injection file request. */
loader.require.scriptURI(
( document
.getElementsByTagName( 'script' )[ 0 ]
.getAttribute( 'src' )
).split( '?' )[ 1 ]
);
}else{
window.setTimeout( 'loader.init' , loader.config.defaultTimeout );
}
}
} ;
/**/
/* Loads an HTML5shim for IE versions less than 9, if needed. */
/*@cc_on
@if( loader.nodeType == 'var' && @_jscript_version < 9 ){
loader.require.scriptURI( 'http://html5shim.googlecode.com/svn/trunk/html5.js' );
}
@*/
/**/
loader.init();
/**/