// Web analytics by Kaiax http://www.kaiax.com
(function(){
	var readyBound = false;
	var isReady = false;
	function bindReady() {
		    if ( readyBound ) return;
		    readyBound = true;
		
		    // Catch cases where $(document).ready() is called after the
		    // browser event has already occurred.
		    if ( document.readyState === "complete" ) {
		        return ready();
		    }
	
		    // Mozilla, Opera and webkit nightlies currently support this event
		    if ( document.addEventListener ) {
		        // Use the handy event callback
		        document.addEventListener( "DOMContentLoaded", function() {
		            document.removeEventListener( "DOMContentLoaded", arguments.callee, false );
		            ready();
		        }, false );
		
		    // If IE event model is used
		    } else if ( document.attachEvent ) {
		        // ensure firing before onload,
		        // maybe late but safe also for iframes
		        document.attachEvent("onreadystatechange", function() {
		            if ( document.readyState === "complete" ) {
		                document.detachEvent( "onreadystatechange", arguments.callee );
		                ready();
		            }
		        });
		
		        // If IE and not an iframe
		        // continually check to see if the document is ready
		        // NOTE: DO NOT CHANGE TO ===, FAILS IN IE.
		        if ( document.documentElement.doScroll && window == window.top ) (function() {
		            if ( isReady ) {
		                return;
		            }
		
		            try {
		                // If IE is used, use the trick by Diego Perini
		                // http://javascript.nwbox.com/IEContentLoaded/
		                document.documentElement.doScroll("left");
		            } catch( error ) {
		                setTimeout( arguments.callee, 0 );
		                return;
	            }
		
		            // and execute any waiting functions
		            ready();
		        })();
		    }
	}
	
	function ready(){
		if(isReady){
			return;
		}
		kaiax_track();	
		isReady = true;		
	}
	//url encode string
	function _kx_escape(_kx_str){
		if(typeof(encodeURIComponent) == 'function') {
			return encodeURIComponent(_kx_str);
		} else {
			return escape(_kx_str);
		}
	};
	function _kx_plug_normal(_kx_pl){
		if (_kx_tm.indexOf(_kx_pl) != -1 && (navigator.mimeTypes[_kx_pl].enabledPlugin != null)) {
			return '1';
		}
		return '0';
	};

	function _kx_plug_ie(_kx_pl){
		kx_found = false;
		document.write('<SCR' + 'IPT LANGUAGE=VBScript>\n on error resume next \n kx_found = IsObject(CreateObject("' + _kx_pl + '")) </SCR' + 'IPT>\n');
		if (kx_found) {
			return '1';
		}
		return '0';
	};


	//return kaiax url
	function _kx_getUrlLog(){
		var _kx_url = window.location.protocol+'//www.kaiax.com/serveronly/visit.php';
		var _kx_da = new Date();
		var siteId='';
		if(typeof _kaiaxSiteId != 'undefined'){
			siteId = '&site_id='+_kaiaxSiteId;
		}
		var _kx_src = _kx_url
			+'?res='+screen.width+'x'+screen.height	+'&col='+screen.colorDepth
			+'&fla='+_kx_fla+'&dir='+_kx_dir+'&qt='+_kx_qt+'&realp='+_kx_rea+'&pdf='+_kx_pdf
			+'&wma='+_kx_wma+'&java='+_kx_jav+'&cookie='+_kx_cookie
			+'&title='+_kx_title
			+'&urlref='+_kx_escape(_kx_rtu)
			+'&p='+_kx_escape(window.location.href)
			+siteId
			+'&t='+_kx_da.getTime()
			+'&';
		return _kx_src;
	};	

	//write tracking code
	function kaiax_track(){		
		if (_kx_called) {
			return;
		}
		var _kx_src = _kx_getUrlLog();
		if(window.top!=window.self){
			setTimeout(function(){
				var script = document.createElement('script');
					script.setAttribute('src',_kx_src);
					script.setAttribute('type','text/javascript');
					document.body.appendChild(script);
					_kx_called = true;
			},200);
			return;
		}
		var script = document.createElement('script');
			script.setAttribute('src',_kx_src);
			script.setAttribute('type','text/javascript');
			document.body.appendChild(script);
		_kx_called = true;
	};

	window['_kaiax_init'] = function(p,v){
		var t;
		var parameters='page_id='+p+'&visit_id='+v+'&';
		while(t = document.getElementById('_KAIAX_TEST_EXISTS'))
		{
			t.id = '';
			parameters+='t_id[]='+t.getAttribute('t_id')+'&p_id[]='+t.getAttribute('p_id')+'&';
		}
		if (parameters != 'page_id=' + p + '&visit_id=' + v + '&') {
			var script = document.createElement('script');
			var link = window.location.protocol+'//www.kaiax.com/serveronly/test.php'
			script.setAttribute('src', link+'?'+parameters);
			script.setAttribute('type', 'text/javascript');
			document.body.appendChild(script);
		}
	};

	//detect plugins and other information
	var _kx_jav = '0'; if(navigator.javaEnabled()) _kx_jav='1';
	var _kx_agent = navigator.userAgent.toLowerCase();
	var _kx_moz = (navigator.appName.indexOf("Netscape") != -1);
	var _kx_ie = (_kx_agent.indexOf("msie") != -1);
	var _kx_win = ((_kx_agent.indexOf("win") != -1) || (_kx_agent.indexOf("32bit") != -1));
	var _kx_cookie = (navigator.cookieEnabled)? '1' : '0';

	if((typeof (navigator.cookieEnabled) == "undefined") && (_kx_cookie == '0')) {
		document.cookie="_kx_testcookie"
		_kx_cookie=(document.cookie.indexOf("_kx_testcookie")!=-1)? '1' : '0';
	}

	var _kx_dir='0',_kx_fla='0',_kx_pdf='0',_kx_qt = '0',_kx_rea = '0',_kx_wma='0';

	if (_kx_win && _kx_ie){
		_kx_dir = _kx_plug_ie("SWCtl.SWCtl.1");
		_kx_fla = _kx_plug_ie("ShockwaveFlash.ShockwaveFlash.1");
		if (_kx_plug_ie("PDF.PdfCtrl.1") == '1' || _kx_plug_ie('PDF.PdfCtrl.5') == '1' || _kx_plug_ie('PDF.PdfCtrl.6') == '1') _kx_pdf = '1';
		_kx_qt = _kx_plug_ie("Quicktime.Quicktime"); // Old : "QuickTimeCheckObject.QuickTimeCheck.1"
		_kx_rea = _kx_plug_ie("rmocx.RealPlayer G2 Control.1");
		_kx_wma = _kx_plug_ie("wmplayer.ocx"); // Old : "MediaPlayer.MediaPlayer.1"
	} else {
		var _kx_tm = '';
		for (var i = 0, len = navigator.mimeTypes.length; i < len; i++) {
			_kx_tm += navigator.mimeTypes[i].type.toLowerCase();
		}
		_kx_dir = _kx_plug_normal("application/x-director");
		_kx_fla = _kx_plug_normal("application/x-shockwave-flash");
		_kx_pdf = _kx_plug_normal("application/pdf");
		_kx_qt  = _kx_plug_normal("video/quicktime");
		_kx_rea = _kx_plug_normal("audio/x-pn-realaudio-plugin");
		_kx_wma = _kx_plug_normal("application/x-mplayer2");
	}
	var _kx_rtu = '';
	try {
		_kx_rtu = top.document.referrer;
	} catch(e1) {
		if(parent){
			try{ _kx_rtu = parent.document.referrer; } catch(e2) { _kx_rtu=''; }
		}
	}
	if(_kx_rtu == '') {
		_kx_rtu = document.referrer;
	}

	var _kx_title = '';
	if (document.title && document.title != "") {
		_kx_title = _kx_escape(document.title);
	}
	var _kx_called;
	
	//test replace code
	window['_kaiax_test_replace'] = function(id,content){
		var el = document.getElementById(id);
		if(el){
			el.innerHTML = content;
		}
		el = null;
		return true;	
	};


	//add onload handler so we can stop the timmer and try it by hand
	if(typeof(window.onload) =='function'){
		oldLoad = window.onload;
		window.onload = function(){
			ready();
			oldLoad.call(window);
		}
	}else{
		if(window.addEventListener)
		{
			window.addEventListener("load",ready,false);
		}else{
			window.attachEvent("onload",ready);	
		}
	}
	bindReady();
})();