var HTML_Doc = document.getElementsByTagName("head").item(0);
var ua = navigator.userAgent.toLowerCase();
var lng = window.location.href.toLowerCase().split('lang=');

var PPC_JS_PATH = 'resources/js/';
var PPC_CSS_PATH = 'resources/css/';
var PPC_IMAGE_PATH = 'resources/images/';
var PPC_ICONS_PATH = 'resources/images/icons/';
var PPC_XML_PATH = 'resources/xml/';
var PPC_FLASH_PATH = 'resources/flash/';
var PPC_MODULES_PATH = 'main/modules/';

var jsLang = null;
var PPC_LANG = lng.length > 1 ? lng[1].substr(0,2) : 'en';

var _inc_files = Array(
	PPC_JS_PATH + 'core.js',
	PPC_JS_PATH + 'parsexml.js',
	PPC_JS_PATH + 'ajax.js',
	PPC_JS_PATH + 'functions.js',
	PPC_JS_PATH + 'swfobject.js',
	PPC_JS_PATH + 'wz_tooltip.js',
	
	PPC_CSS_PATH + 'stylesheet.css'
);

var jsError = {
	where : null,
	
	display : function(data,num) {
		var desc;
		if (typeof data == 'string') {
			desc = data;
		} else {
			desc = data.description;
			num = data.number & 0xffff;
		}
		
		var msg = '';
		msg += 'Description: ' + desc + '\n';
		if (num) msg += 'Number/Line: ' + num + '\n';
		if (this.where) msg += 'Where: ' + this.where + '\n';
		alert(msg);
	}
}

function handleError(err,url,line) {
	jsError.where = url;
	jsError.display(err,line);
	return true;
}

window.defaultOnError = window.onerror;
window.onerror = handleError;

var jsInit = {
	browser : {
		isStrict : document.compatMode == 'CSS1Compat',
		isOpera : ua.indexOf('opera') > -1,
		isSafari : (/webkit|khtml/).test(ua),
		isIE : !this.isOpera && (ua.indexOf('msie') > -1 || ua.indexOf('msie 7') > -1),
		isIE6 : !this.isOpera && ua.indexOf('msie') > -1,
		isGecko : !this.isSafari && ua.indexOf('gecko') > -1,
		isWindows : (ua.indexOf('windows') != -1 || ua.indexOf('win32') != -1),
		isMac : (ua.indexOf('macintosh') != -1 || ua.indexOf('mac os x') != -1),
		isLinux : (ua.indexOf('linux') != -1),
		isSecure : window.location.href.toLowerCase().indexOf('https') === 0,
		language : navigator.language ? navigator.language.substr(0,2) : navigator.userLanguage.substr(0,2),
		version : function() {
			var MSIE = navigator.userAgent.indexOf('MSIE') >=0 ? true : false;
			var regExp = new RegExp(".*MSIE ([0-9]\.[0-9]).*","g");
			var navigatorVersion = navigator.userAgent.replace(regExp,'$1');
			return navigatorVersion;
		}
	},
	
	ready : function(f) {
		var prev = window.onload;
		window.onload = function() { if(prev)prev(); f(); }
	},
	
	domReady:function(func){
		if(!document._ready_calls){
			document._ready_calls=new Array();
			document._dom_ready=function(){
				while(this._ready_calls.length>0){
					var func=this._ready_calls.shift();
					func();
				}
			}			
			if(this.browser.isIE){
				document.onreadystatechange = function(){
					document._dom_ready();
				}			
			}else{
				if(this.browser.isMac){
					window._safari_timer=window.setInterval(
						function(){
								 if(document.readyState=='complete');
									window.clearInterval(window._safari_timer);
									document._dom_ready();
								},100);
				}else{
					document.addEventListener("DOMContentLoaded", function(){
						document._dom_ready();
					},false);
				}
			}
		}
		document._ready_calls.push(func);
	},
	
	require : new Array(),
	
	load : function() {
		try {
			var filename,ext,file;
			
			for(var i=0; i<this.require.length; i++) {
				filename = this.require[i];
				ext = filename.substring(filename.lastIndexOf('.')+1);
				
				file = null;
				if (ext == 'js') {
					file = document.createElement('script');
					file.setAttribute('language','javascript');
					file.setAttribute('type','text/javascript');
					file.setAttribute('src',filename);
				} else if (ext == 'css') {
					file = document.createElement('link');
					file.setAttribute('rel','stylesheet');
					file.setAttribute('type','text/css');
					file.setAttribute('href',filename);
				}
				if (file) HTML_Doc.appendChild(file);
			}
		} catch(err) {
			jsError.where = 'jsInit';
			jsError.display(err);
		}
	}
}

/*jsInit.require = _inc_files;
jsInit.load();*/

jsInit.ready(function(){
	jsLang = new JKL.ParseXML(PPC_XML_PATH + 'interface.xml');
	jsLang = jsLang.parse();
	jsLang = jsLang.lang;
	
	if ($('top_flash')) {
		var so = new SWFObject(PPC_FLASH_PATH+"header.swf", "topFlash", 561, 205,8);
		so.addParam("wmode", "transparent");
		so.addVariable('keepSelected','t');
		so.addVariable('selectedWindow',0);
		so.addVariable('imageWidth',279);
		so.addVariable('imageHeight',205);
		so.addVariable('sWidth',561);
		so.addVariable('sHeight',205);
		so.addVariable('xmlPath',PPC_XML_PATH+'top_flash_images.xml');
		so.addVariable('imagePath',PPC_IMAGE_PATH+'top_flash/');
		so.write("top_flash");
	}
});
