(function(){
	var methods = {
		defaultValueActsAsHint: function(element){
			element = $(element);
			element._default = element.value;

			return element.observe('focus', function(){
				if(element._default != element.value) return;
				element.removeClassName('hint').value = '';
			}).observe('blur', function(){
				if(element.value.strip() != '') return;
				element.addClassName('hint').value = element._default;
			}).addClassName('hint');
		}
	};

	$w('input textarea').each(function(tag){ Element.addMethods(tag, methods) });
})();

function setup(baseUrl) {
	var ary = $$("#nav ul li a");
	ary.push($('link-container'));
	var activeNav = null;
	for(var i = 0; ary[i]; i++) {
		ary[i].onclick = function() {
			if(activeNav) {
				$(activeNav).removeClassName("active");
			}
			
			Effect.ScrollTo(this.id.replace(/link-/, ""), { duration: .6, offset: -70 });
			
			activeNav = this;
			$(activeNav).addClassName("active");
			
			return false;
		};
		
		ary[i].onmouseover = function() {
			this.addClassName("over");
		};
		
		ary[i].onmouseout = function() {
			this.removeClassName("over");
		};
	}
	
	moveDivs();
}

function moveDivs() {
	return;
	
	var scroll = getScrollXY();
	
	var width = window.document.body.clientWidth + scroll[0];
	if(width < 1175) {
		var offset = (1175 - width)/2;
		$('masthead').style.backgroundPosition = "-" + offset + "px 0px";
		$('top-bar').style.position = "fixed";
		$('top-bar').style.left = "-" + offset-(scroll[0]/2) + "px";
	}
	else {
		$('masthead').style.backgroundPosition = "inherit";
		$('top-bar').style.position = "fixed";
		$('top-bar').style.left = "inherit";
	}
	
	setTimeout("moveDivs();", 25);
}

function confirmNav(url) {
	if(confirm("This action is irreversible. Do you wish to continue?")) {
		if(url != "" && url != "undefined" && url != null) {
			window.location = url;
		}
		else return true;
	}
}

function xml(xmlString) {
	var parser;
	var xmlDoc;
	try {
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(xmlString);
	}
	catch(e) {
		try {
			parser = new DOMParser();
			xmlDoc = parser.parseFromString(xmlString,"text/xml");
		}
		catch(e) {
			alert(e.message);
			return false;
		}
	}
	
	return xmlDoc;
}

function popup(targetDiv, file, callBack) {
	setOpac();
	
	new Ajax.Request(file, {
		method: 'get',
		onSuccess: function(transport) { 
			// $('loading-indicator').style.display = "none";
			if(transport.responseText.length == 0) {
				return;
			}
			
			var scroll = getScrollXY();
			
			var element = Builder.node('div', {id:targetDiv});
			element.innerHTML = transport.responseText;
			
			WIDTH = "100%";
			element.style.width = WIDTH;
			element.style.position = "absolute";
			element.style.left = (scroll[0]) + "px";
			element.style.top = (scroll[1] + 100) + "px";
			element.style.zIndex = 1000;
			element.style.margin = "0 auto";
			
			document.body.appendChild(element);
			
			if(callBack) {
				callBack();
			}
		}
	});
}

function closePopup(divName) {
	var div = $(divName);
	if(div) {
		div.parentNode.removeChild(div);
		restoreOpac();
	}
}

var opacDiv = null;
function setOpac() {
	var scroll = getScrollXY();
	
	opacDiv = document.createElement('div');
	opacDiv.style.position = "absolute";
	opacDiv.style.left = "0px";
	opacDiv.style.top = "0px";
	opacDiv.style.width = document.body.clientWidth + scroll[0] + "px";
	opacDiv.style.height = document.body.clientHeight + scroll[1] + "px";
	opacDiv.style.backgroundColor = "#000000";
	opacDiv.style.zIndex = "999";
	opacDiv.style.opacity = 0;
	opacDiv.style.mozOpacity = 0;
	document.body.appendChild(opacDiv);
	
	$(opacDiv).morph('opacity:.5; -moz-opacity: .5', { duration: .3 });
	
	window.onresize = function() {
		var scroll = getScrollXY();
		opacDiv.style.width = document.body.clientWidth + scroll[0] + "px";
		opacDiv.style.height = document.body.clientHeight + scroll[1] + "px";
	};
}

function restoreOpac() {
	opacDiv.parentNode.removeChild(opacDiv);
	window.onresize = null;
}

function getScrollXY() {
	var scrOfX = 0, scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
	return [ scrOfX, scrOfY ];
}

