(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) });
})();

var featureInterval = 6000;
var aryFeatures = [];
var curFeature = 0;
var isCycling = true;
var isAnimating = false;

function setup(baseUrl) {
 	setupClickTracking(baseUrl);
	
	aryFeatures = $$("#banner_list .banner");
	if(aryFeatures.length) {
		rotateFeature();
		$('banner_list').onmouseover = function() {
			// $('prev-feature').style.display = "block";
			// $('next-feature').style.display = "block";
		};
		$('banner_list').onmouseout = function() {
			// $('prev-feature').style.display = "none";
			// $('next-feature').style.display = "none";
		};
	}
}

function rotateFeature(dir, force) {
	if(!dir) {
		dir = 1;
	}
	
	if(!isAnimating && (isCycling || (!isCycling && force))) {
		isAnimating = true;
		
		Effect.Fade(aryFeatures[curFeature], { duration: .5 });
		curFeature = (curFeature+dir) % aryFeatures.length;
		if(curFeature < 0) {
			curFeature = aryFeatures.length - 1;
		}
		Effect.Appear(aryFeatures[curFeature], { duration: .5, afterFinish: function() { isAnimating = false; } });
	}
	
	if(isCycling) {
		setTimeout("rotateFeature(1);", featureInterval);
	}
}

function previousFeature() {
	isCycling = false;
	rotateFeature(-1, true);
}

function nextFeature() {
	isCycling = false;
	rotateFeature(1, true);
}

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 ];
}

