var curPage = 'cat';

function handleChange(event) {
    var index, rel, links = document.getElementsByTagName('a');
    for (var i = 0, l; link = links[i]; i++) {
        index = link.rel.indexOf('?');
        rel = (index > -1) ? link.rel.substr(0, index) : link.rel;
        link.className = rel == event.path ? 'selected' : '';
    }
   	var parameters = '';
    for (var p in event.parameters) {
    	parameters += '&' + p + '=' + event.parameters[p];
    }
				
		var path = event.path.split('/');
		
		var cat = (path[1]!='')?path[1]:'/';
		var subcat = (path.length>2 && path[2].length>0)?path[2]:false;
		var medialink = (path.length>3 && path[3].length>0)?path[3]:false;
		var title = 'SAP - Stock Footage and Press Photos';
		
		
		var WT_cg_n = (cat !== false)?Utf8.decode(custnavdecode(cat)):'';
		var WT_cg_s = (subcat !== false)?Utf8.decode(custnavdecode(subcat)):'';
		var WT_ti = title;
		if(WT_cg_n != '/') WT_ti += ' - ' + WT_cg_n;
		if(subcat !== false) WT_ti += ' - ' + WT_cg_s;
		title = WT_ti;
		if(medialink !== false) WT_ti += ' - ' + Utf8.decode(custnavdecode(medialink));
		
		WT_ti = escape(WT_ti);
		WT_cg_n = escape(WT_cg_n);
		WT_cg_s = escape(WT_cg_s);
		DCS_dcsuri = SWFAddress.getPath();
		if(SWFAddress.getQueryString().length > 0) DCS_dcsuri += '?'+SWFAddress.getQueryString();
		DCS_dcsuri = escape(custnavdecode(DCS_dcsuri));
		dcsMultiTrack('WT.ti', WT_ti, 'WT.cg_n', WT_cg_n, 'WT.cg_s', WT_cg_s, 'DCS.dcsuri', DCS_dcsuri);
		
		
		SWFAddress.setTitle(title);
		updateNavHighlight(cat);
		
		
		var page = '';
		if(cat=='/'){ page += 'categories.php?'; currPage = 'cat'; }
		else if(cat=='search'){ 
			page += 'search.php?c='+cat;
			if(medialink !== false) page += '&s='+subcat+'&ml='+medialink+'&'; 
			currPage = 'search'; 
		}
		else if(cat=='b-roll'){ page += 'search.php?c=search&sca=b_roll&'; currPage = 'search'; }
		else {
			if(subcat!==false){
					if(medialink !== false){ page += 'search.php?c='+cat+'&sc='+subcat+'&ml='+medialink+'&'; currPage = 'search'; }
					else{ page += 'search.php?c='+cat+'&sc='+subcat+'&'; currPage = 'search'; }
			}
			else if(subcat===false){ page += 'subcategories.php?c='+cat+'&'; currPage = 'subcat'; }
			else{ page += 'categories.php?'; currPage = 'cat'; }
		}
		if (parameters.length>0 && cat!='b-roll') page += parameters+'&';
		
		getPage(page);
};

function updateNavHighlight(path){
	path = path.replace(/\//g, '');
	$$('div.LeftNavActiveBg').each(function(e){e.className='LeftNavLightBg';});
	$('navlnk_').className = 'LeftNavActiveBg2';
	try{$('navlnk_'+custnavencode(path)).className = 'LeftNavActiveBg';}catch(e){}
};

function getPage(url){
	//showPage('Loading ...');
	contentDynHide = new Effect.Opacity('contentdyn', {duration:0,from:1,to:.75});
	new Effect.ScrollTo('content_top',{duration:.5});
	new Ajax.Request('templates/'+url+'rnd='+Math.random(), {
		method: 'get',
		onSuccess: function(transport) {
			checkApp(transport.responseText);
			/*showPage(transport.responseText);
			SAP_getPopularDls(false);*/
		},
		onFailure: function(){
			getPage('categories.php?');
		}
	});
};

var appLoaded = false;
var appLoadTries = 0;
var appLoadMaxTries = 10;
function checkApp(r){
	if(appLoaded){
		showPage(r);
		SAP_getPopularDls(false);
	} else {
		var contents = [['functions.pack','tracker'],
										['search.pack','doSearch'],
										['categories.pack','getPosition'],
										['subcategories.pack','cat_makeCategoryObject'],
										['results.pack','startPreview'],
										['player.pack','getPageSize']
										];
		var reloadContents = [];
		for(var i=0;i<contents.length;i++){
			
			var Loaded = false;
			try{
				if(typeof(eval(contents[i][1])) == "function") Loaded = true;
			}
			catch(e){}
			
			if(!Loaded){
				appLoaded = false;
				if(appLoadTries >= appLoadMaxTries){
					history.go(0);
					return 0;
				}
				appLoadTries++;
				
				// load the scripts
				var oldScript = $('script_'+contents[i][0]);
				if (oldScript == null) {
					var head = document.getElementsByTagName("head")[0];
					var script = document.createElement('script');
					script.id = 'script_'+contents[i][0];
					script.type = 'text/javascript';
					script.src = 'js/'+contents[i][0]+'.js';
					head.appendChild(script);
				}
				setTimeout(function(){checkApp(r);}, 500);
				
				return 0;
			}
		}
		appLoaded = true;
		checkApp(r);
	}
};

function showPage(r){
	_curClip = -1;
	$('resultscrollpos').style.top = '0px';
	$('contentdyn').innerHTML = r;
	contentDynHide = new Effect.Opacity('contentdyn', {duration:0,from:.75,to:1});
	if(r.indexOf('<!-- NAV_CATEGORIES -->')>=0){ buildCats(); checkEventBannerPos('top'); }
	if(r.indexOf('<!-- NAV_SUBCATEGORIES -->')>=0){ buildSubcats(); checkEventBannerPos('top'); }
	if(r.indexOf('<!-- NAV_SEARCH -->')>=0){ buildMediafilter(); _curList = eval($F('SAPcurrList')); checkEventBannerPos('bottom'); }
	if(r.indexOf('<!-- NAV_DIRECTVIEW -->')>=0) if($F('SAPdirectview') >= 0) startPreview($F('SAPdirectview'));
	
	adBCheck('stockfootage_eventbanner_container0');
	adBCheck('stockfootage_eventbanner_container1');
};

function checkEventBannerPos(p){
	switch(p){
		case 'top':
			if($('stockfootage_eventbanner') && !$('stockfootage_eventbanner').descendantOf('stockfootage_eventbanner_container0'))
				$('stockfootage_eventbanner_container0').appendChild($('stockfootage_eventbanner'));
			break;
		case 'bottom':
			if($('stockfootage_eventbanner') && !$('stockfootage_eventbanner').descendantOf('stockfootage_eventbanner_container1'))
				$('stockfootage_eventbanner_container1').appendChild($('stockfootage_eventbanner'));
			break;
	}
};

function custnavencode(s){
	s = escape(s);
	s = s.replace(/\*/g, '%2A');
	s = s.replace(/%/g, '__x');
	return s;
};
function custnavdecode(s){
	s = s.replace(/__x/g, '%');
	s = s.replace(/%2A/g, '*');
	s = unescape(s);
	return s;
};

SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);
