(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) {
 	setupClickTracking(baseUrl);
	
	$$(".hint").each(function(element) {
		element.defaultValueActsAsHint();
	});
	
	var col1 = $('col-1-inner');
	var col2 = $('col-2-inner');
	if(col1 && col2) {
		var col1Height = col1.getHeight();
		var col2Height = col2.getHeight();
		if(col1Height > col2Height) {
			$('col-2-inner').style.height = col1Height + "px";
		}
	}
}

function newsletterSubscribe(frm) {
	frm.request({ 
		onSuccess: function(transport) {
			alert(transport.responseText);
		}
	});
}

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 ];
}

