var position = 'left';
var nav_width = 58;
var nav_bg_width = nav_width;
var nav_height = 400;
var cookie_name = 'web_xc_fixed_nav_status';

var fixnav_slider = false;
var fixnav_bg_slider = false;

if (window.attachEvent) {
	var width_offset = 0;
	var nav_height = nav_height + 30;
}
else {
	var width_offset = 17;
}

function init_fixed_navigation() {
	if (window.attachEvent) {
		window.attachEvent('onscroll', fixed_navigation_scrollEvent);
		window.attachEvent('onresize', fixed_navigation_resizeEvent);
		//stupid ie primitive css style: http://www.howtocreate.co.uk/tutorials/javascript/browserwindow
		var window_width = document.documentElement.clientWidth;
		if (window_width == 0) {
			window_width = document.body.clientWidth;
		}
	}
	else {
		window.addEventListener('scroll', fixed_navigation_scrollEvent, false);
		window.addEventListener('resize', fixed_navigation_resizeEvent, false);
		var window_width = window.innerWidth;
	}
	var navigator_bg = $('fixed_navigation_bg');
	var navigator = $('fixed_navigation');
	var div = new Element('div', {
		'id':'separator', 'styles':{
			'height' : (nav_height - 30) + 'px'
		}
	});
	var hideButton = new Element('a',{'id':'hideNavButton', 'href':'javascript:hide_nav();'}).setText('hide');
	div.injectInside(navigator_bg);
	hideButton.injectInside(navigator_bg);

	var navigator_bg_small = $('fixed_navigation_bg_small');
	var div_small = new Element('div', {'id':'separator', 'styles':{'height':'5px'}});
	var showButton = new Element('a',{'id':'showNavButton', 'href':'javascript:show_nav();'}).setText('show');
	
	div_small.injectInside(navigator_bg_small);
	showButton.injectInside(navigator_bg_small);

	navigator_bg.setStyle('top', '0px');
	navigator.setStyle('top', '0px');
	navigator_bg.setStyle('width', nav_bg_width + 'px');
	navigator.setStyle('width', nav_width + 'px');
	navigator_bg.setStyle('height', nav_height + 'px');
	
	navigator_bg_small.setStyle('top', '0px');
	navigator_bg_small.setStyle('width', nav_bg_width + 'px');
	navigator_bg_small.setStyle('height', '30px');

	if (position == 'left') {
		navigator_bg.setStyle('left', '0px');
		navigator.setStyle('left', '0px');
		navigator_bg_small.setStyle('left', '0px');
	}
	else if (position == 'center') {
		navigator_bg.setStyle('left', (window_width/2 - nav_bg_width/2) + 'px');
		navigator.setStyle('left', (window_width/2 - nav_width/2) + 'px');
		navigator_bg_small.setStyle('left', (window_width/2 - nav_bg_width/2) + 'px');
	}
	else if (position == 'right') {
		navigator_bg.setStyle('left', (window_width - nav_bg_width - width_offset) + 'px');
		navigator.setStyle('left', (window_width - nav_width - width_offset) + 'px');
		navigator_bg_small.setStyle('left', (window_width - nav_bg_width - width_offset) + 'px');
	}
	
	fixnav_slider = new Fx.Slide('fixed_navigation', {mode : 'vertical'});
	fixnav_bg_slider = new Fx.Slide('fixed_navigation_bg', {mode : 'vertical'});

	if (readCookie(cookie_name)==null) {
		//createCookie(cookie_name, 1, 100);
		hide_small();
	}
	else {
		hide_full();
	}
	$('hideNavButton').addEvent('click', function(e){
		e = new Event(e);
		fixnav_slider.slideOut();
		fixnav_bg_slider.slideOut().chain(function() {
			show_small();
		});
		createCookie(cookie_name, 1, 100);
		e.stop();
	});
	$('showNavButton').addEvent('click', function(e){
		e = new Event(e);
		hide_small();
		fixnav_slider.slideIn();
		fixnav_bg_slider.slideIn();
		eraseCookie(cookie_name);
		e.stop();
	});
}

function hide_small() {
	var navigator_bg_small = $('fixed_navigation_bg_small');
	navigator_bg_small.setStyle('display', 'none');
}

function show_small() {
	var navigator_bg_small = $('fixed_navigation_bg_small');
	navigator_bg_small.setStyle('display', 'block');
}

function hide_full() {
	fixnav_slider.hide();
	fixnav_bg_slider.hide();
}

function fixed_navigation_scrollEvent() {
	var navigator_bg_small = $('fixed_navigation_bg_small');
	var navigator_bg = $('fixed_navigation_bg');
	var navigator = $('fixed_navigation');
	if(window.pageYOffset) {
		var top = window.pageYOffset;
	}
	else {
		var top = document.documentElement.scrollTop;
	}
	navigator_bg.setStyle('top', top + 'px');
	navigator.setStyle('top', top + 'px');
	navigator_bg_small.setStyle('top', top + 'px');

	if(window.pageXOffset) {
		var window_width = window.innerWidth;
		var left = window.pageXOffset;
	}
	else {
		var window_width = document.documentElement.clientWidth;
		if (window_width == 0) {
			window_width = document.body.clientWidth;
		}
		var left = document.documentElement.scrollLeft;
	}
	
	if (position == 'left') {
		navigator_bg.setStyle('left', '0px');
		navigator.setStyle('left', '0px');
		navigator_bg_small.setStyle('left', '0px');
	}
	else if (position == 'center') {
		navigator_bg.setStyle('left', (window_width/2 - nav_bg_width/2) + 'px');
		navigator.setStyle('left', (window_width/2 - nav_width/2) + 'px');
		navigator_bg_small.setStyle('left', (window_width/2 - nav_bg_width/2) + 'px');
	}
	else if (position == 'right') {
		navigator_bg.setStyle('left', (window_width - nav_bg_width - width_offset) + 'px');
		navigator.setStyle('left', (window_width - nav_width - width_offset) + 'px');
		navigator_bg_small.setStyle('left', (window_width - nav_bg_width - width_offset) + 'px');
	}
	
}

function fixed_navigation_resizeEvent() {
	if (window.attachEvent) {
		//stupid ie primitive css style: http://www.howtocreate.co.uk/tutorials/javascript/browserwindow
		var window_width = document.documentElement.clientWidth;
		if (window_width == 0) {
			window_width = document.body.clientWidth;
		}
	}
	else {
		var window_width = window.innerWidth;
	}
	
	var navigator_bg = $('fixed_navigation_bg');
	var navigator = $('fixed_navigation');
	var nav_bg_width = navigator_bg.style.width.split("p")[0];
	if (position == 'left') {
		navigator_bg.setStyle('left', '0px');
		navigator.setStyle('left', '0px');
	}
	else if (position == 'center') {
		navigator_bg.setStyle('left', (window_width/2 - nav_bg_width/2) + 'px');
		navigator.setStyle('left', (window_width/2 - nav_width/2) + 'px');
	}
	else if (position == 'right') {		
	
		navigator_bg.setStyle('left', (window_width - nav_bg_width - width_offset) + 'px');
		navigator.setStyle('left', (window_width - nav_width - width_offset) + 'px');
	}
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
