var sTemplateDir = "@pp/templates/" + sTemplateName + "/"
FileSystem.load([ sTemplateDir + "css/styles.css" , sTemplateDir + "config.js" ])

_("template","page","header","navigation","eHistory","contents","footer","eMinWidth")
_("left","right","up","down","loader","option1","option2","option3","option4","option5","option6")	
	
var ID = null
, Fx = Pages = false
, oAjax
, oStaticMenu
, oPathBox
, sContents =""
, swfsound

// DOM utilities
$ = function( s ){
	if( s.nodeName ) return s
	switch( s.charAt( 0 )){
		case "#" : return getElementById( s.substring( 1 ))
		}
	return getElementsByTagName( s ) || null
	}

// XML Parser functions
getValue =function( e , s ){
	try{
		var a = e.getElementsByTagName( s ) 
		return ( a && a.length && a[0].parentNode === e ) ? a[0].firstChild.data : ""
		}catch(e){ return "" }
	}
mapChildNodes =function( e , s , f ){
	var a1 = e.getElementsByTagName( s ) 
	for( var i = 0 , ni = a1.length , a2 = [] ; i < ni ; i++ )
		a2.push( f( a1[i]))
	return a2
	}
	
// Url Parser
setQuery =function(){
	var s = window.location.search.substring( 1 )
	a = s.split( "&" )
	a.each( function( s ){ 
		var a = s.split( "=" )
		Cookie.set( a[0] , a[1])
		})
	}()

// ...
waitObject =function( aObjectsName , f , aFiles , n ){
	n = n || 0
	if( aFiles ) FileSystem.load( aFiles )
	if( n > 20 ){
		for( var i = 0 , ni = aObjectsName.length ; i < ni ; i++ )
			if( ! window[ aObjectsName[i]]){
				alert( "The object " + aObjectsName[i] + " was waited  more than 4s." )
				return true;
				}
		}
	for( var i = 0 , ni = aObjectsName.length ; i < ni ; i++ )
		if( ! window[ aObjectsName[i]])
			return setTimeout( function(){ waitObject( aObjectsName , f , null , n++ )} , 200 )
	if( f ) f()
	}

var initialize = function(){
	getPreferences =function(){
		Configuration.each( function( m , s ){
			var b = Cookie.get( s )
			window[ s ] = b === null ? m : b
			}, [Boolean,Number,String])
		
		}()
	window[ "CACHE_ID" ] = bForceRefresh ? ( new Date()).valueOf() : ""
	Template.load()
	addEvents(
		[ page , 'click' , function( evt ){
			var e = getElement( evt ), b = e.parentNode.nodeName == "A"
			if( b ) e = e.parentNode
			if( e.nodeName == "A" && e.rel ) Page.load( e.rel )
			if( b ) e.blur()
			}]
		) 
	}

waitObject([
		'GLOBAL_LOADED',
		'Cufon',
		'Custom',
		'AJAX_LOADED',
		'COOKIE_LOADED',
		'TREE_LOADED',
		'swfobject',
		'swfsound',
		"CONFIGURATION_LOADED",
		"Fonts",
		"History",
		"Page",
		"Template",
		"aNodes"
		],
	initialize
	)
