(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);

	var ary = $$('.make-hint');
	for(var i = 0; ary[i]; i++) {
		ary[i].defaultValueActsAsHint()
	}
}

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.width = document.body.clientWidth + "px";
	opacDiv.style.height = document.body.clientHeight + "px";
	opacDiv.style.left = scroll[0] + "px";
	opacDiv.style.top = "0px";
	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: .5 });
	
	window.onresize = function() {
		opacDiv.style.width = document.body.clientWidth + "px";
		opacDiv.style.height = document.body.clientHeight + "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 ];
}
