var pm = {
	
	$links: null,
	size:0,
	
	firstPage:'start',
	
	currentIndex:0,
	
	activ:true,
	
	beforChange: null,
	
	$currentSub: null,
	$defaultContent: null,
	
	
	lastPath:'',
	
	init: function () {
		
		/** sub menu hover binding **/
		$('#menu > ul > li')
			.hover (
				function () {
					$(this)
						.children('.sub')
						.css('display','block')
						.stop()
						.fadeTo(300,1);
				}, 
				
				function () {
					$(this)
						.children('.sub')
						.stop()
						.fadeTo(300,0,function () {$(this).css('display','none')});				
				}
			);
		
		
		
		$('.sub').fadeTo(0,0, function () {$(this).css('display','none')});
		
		pm.$links = $( '#menu > ul > li > a' );
		pm.size = pm.$links.length;
		SWFAddress.onChange = pm.onChange;
		
		$( window ).resize(pm.onResize);
		
		
		delete pm.init;
	},
	
	
	
	onChange: function () {
		
		if (pm.beforChange) {
			pm.beforChange(pm.onChange);
			pm.beforChange = null;
			return;	
		}
		
		try {
			var fn = pm.lastPath.toString()+"_close";
				window[fn]();
		}catch(e) {}	
		
		var np = SWFAddress.getPathNames();
		
		if (np.length == 0) np[0] = pm.firstPage;
		
		var selectetSub = null;
		var trigger = '';
		if (np.length > 1) {
			selectetSub = np[1];
			np = np[0];
			trigger = np+'_'+selectetSub;
		}else{
			trigger = np;
		}
			
		pm.lastPath = np.toString();
		var newIndex = 0;
		
		try {
			var pageTracker = _gat._getTracker('UA-25804967-1');
				pageTracker._trackPageview("/"+np.toString());
		} catch(e){
			
		};
		
		var specialTrigger = sp.hasTrigger(trigger);
		
			pm.$links.each(function (i, elem) {
				$a = $(this);
				if (pm.normLink($a.attr('href')) == np) {
					
					/** call onOpen **/
					try {
						var fn = np.toString()+"_open";
						window[fn]();
					}catch(e) {}
					/** call onOpen **/
					
					newIndex = i;
					$('.acitv').removeClass('acitv');
					
					$newSub = $a.parent().children('.sub');
					pm.$currentSub = $newSub;
	
	
					if (specialTrigger == false) {
					if (np.length > 1) {
						/** sub selectet **/
						var selctor = '#'+np+'-content';

						$newSub
							.find('a[href="#'+pm.normLink($a.attr('href'))+'/'+selectetSub+'"]')
							.addClass('acitv');
					
						$(selctor)
							.stop()
							.fadeTo(300,0, function () {
								$(this)
									.css('display','none')
									.parent()
									.children('.sub-loader')
									.stop()
									.fadeTo(0,0)
									.css('display','block')								
									.fadeTo(300,1);
									
									pm.$defaultContent = $(selctor);
									pm.beforChange = pm.restorDefaultcontent;
									
									pm.loadSubContent(selectetSub);

							});
					}else{
						var selctor = '#'+np+'-content';
						$(selctor)
							.css('display','block')
							.stop()
							.fadeTo(0,1)
							.parent()
							.children('.sub-loader')
							.css('display','none');
					}
					
					
					}else{
						specialTrigger();
					}
								
					
					
					$a.addClass('acitv');
				}
			});
				
			pm.currentIndex = newIndex;
			
			if (pm.currentIndex == 0)
				$( '#nav-arrow-left' ).animate({opacity: 0},200);
			else
				$( '#nav-arrow-left' ).animate({opacity: 1},200);
		
		
			if (pm.currentIndex == (pm.$links.length-1))
				$( '#nav-arrow-right' ).animate({opacity: 0},200);
			else
				$( '#nav-arrow-right' ).animate({opacity: 1},200);		
				
			if ( pm.activ == true) {
				slider.scollTo( newIndex );
			}
	},
	
	
	restorDefaultcontent: function (cb) {
		
		if (pm.$defaultContent != null) {
			pm
			.$defaultContent
			.css('display','block')
			.stop()
			.fadeTo(0,1)
			.parent()
			.children('.sub-loader')
			.css('display','none')
			.children('.sub-inner')
			.html('');
		}
		
		pm.$defaultContent = null;
		pm.beforChange = null;
		pm.onChange();
	},
	
	
	loadSubContent: function (path) {
		pm
		.$defaultContent
		.parent()
		.children('.sub-loader')
		.addClass('black-bg')
		.children('.sub-inner')
		.addClass('loader');
		
			var parameters = '';
			if (SWFAddress.getParameterNames()) {
				for (var i = 0; i < SWFAddress.getParameterNames().length; i++) {
					parameters += '&' + SWFAddress.getParameterNames()[i] + '=' +SWFAddress.getParameter(SWFAddress.getParameterNames()[i]);
				}
			}		
		
		
		$.get('templates/sub_'+path+'.php',parameters, function (htmlData) {
			pm
			.$defaultContent
			.parent()
			.children('.sub-loader')
			.removeClass('black-bg')
			.children('.sub-inner')
			.removeClass('loader')
			.html(htmlData);
		});
		
	},
	
	
	showNext: function () {
		if (pm.currentIndex != (pm.$links.length-1) ) {
			pm.currentIndex ++;	
			window.location.hash = pm.normLink( $(pm.$links[pm.currentIndex]).attr('href') );
		}
	},
	
	
	showPrev: function () {
		if (pm.currentIndex != 0 ) {
			pm.currentIndex --;
			window.location.hash = pm.normLink( $(pm.$links[pm.currentIndex]).attr('href') );
		}		
	},
	
	
	
	onResize:function () {
		
		slider.scollTo( pm.currentIndex, 0 );
		
	},
	
	
	normLink: function (link) {
		if (link.indexOf('#') != -1 ) {
			link = link.split('#')[1];				
		}
		return link;
	},
	
	
	hideContentLayers: function () {
		$('.content').css('display','none');
	},
	
	showContentLayers: function () {
		$('.content').css('display','block');
	}
	
	
	
}
