var topOffset = 10;					// how far from the top
var topLimit = 310;					// the gap from the top
var leftLimit = 950;				// the left limit
var scrolling = false;				// scrolling (binary)
var _global_duration = 0.6;			// duration for the slide

clearField = function(element,defaultValue) {
	if (element.value == defaultValue) {
		element.value = "";
	}
}

moveNav = function() {
	var pos = findPos($('nav'));
	var newpos = document.body.scrollTop;
	var finishpos = newpos+topOffset;
	if (finishpos < topLimit) { finishpos = topLimit; }
	moveElement('nav', pos[1], finishpos);
}

moveElement = function(ider, startpos, finishpos, duration) {
	if (duration == null) { duration = _global_duration; }
	var moveby = finishpos - startpos;
	new Effect.MoveBy( 'nav', moveby, 0, { duration: duration, afterFinish: function() { scrolling=false; } });
}

// via quirksmode
findPos = function(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}


readCookie = function(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;
}


hideClass = function(cn, includeOpen) {
	var c = document.body.getElementsByClassName(cn);
	$A(c).each( function(s) {
		if (includeOpen || s.className == cn) {
			s.style.display = "none";
		}
	});
}


Event.observe(window, 'load', function() {

	// if the previous (x) co-ordinate is saved then the nav will go back to there
	var ck = readCookie('silverchair-navposition');
	if (ck) {
		$('nav').style.left = ck+"px";
	}
	$('nav').style.display = "block";
	
	$('nav').style.top = topLimit+"px";
	
	new Draggable('nav', { handle:'nav-dragger', zindex:50, starteffect:null, endeffect:null, 
		onEnd: function() { 
			var pos = findPos($('nav'));
			// if on the flash - move it
			if ( (pos[1] < topLimit || pos[1] == topLimit) && (pos[0] < leftLimit || pos[0] == leftLimit) ) { 
				$('nav').style.top = topLimit+"px";
			}
		}
	});
	
	// cycle through all the links on the page and fix so it does something before changing the page
	// remember the location of the nav
	var all_links = document.body.getElementsByTagName('a');
	$A(all_links).each( function(el) {
	
		var classer = el.className;
		var rel = el.getAttribute('rel');

		if ((rel == null || rel == 'undefined') || (classer.indexOf('noclick') == -1 && rel != 'noclick' && rel.indexOf('lightbox') == -1)) {
			
			el.onclick = function() {
				if (classer == 'backlink') {
					history.back();
					return false;
				}
				else {
					var expires = "";
					var nav_position = findPos($('nav'));
					document.cookie = "silverchair-navposition="+nav_position[0]+expires+"; path=/";
				}
			
			}
		}
	});
	
});

Event.observe(window, 'scroll', function() {
	if (!scrolling) {
		scrolling = true;
		setTimeout("moveNav()", 500);
	}
});