/* --------------- */
/* mikeybyker 2008 */
/* --------------- */
/* --------------- */
/*   Global vars   */
/* --------------- */

var CHARITYENGINE = window.CHARITYENGINE || {};

CHARITYENGINE.utils = function(){

	return { 
		version: "0.1",
		addEvent : function(obj,type,fn){
			try{
				if(obj.addEventListener) obj.addEventListener(type,fn,false);
				else if(obj.attachEvent){
					obj["e"+type+fn]=fn
					obj[type+fn]=function(){ obj["e"+type+fn](window.event)}
					obj.attachEvent("on"+type,obj[type+fn]);
				}
			} catch(e){/*alert(e)*/}
		},
		removeEvent : function(obj,type,fn){
			if(obj.removeEventListener) obj.removeEventListener(type,fn,false);
			else if(obj.detachEvent){
				obj.detachEvent("on"+type,obj[type+fn])
				obj[type+fn]=null
				obj["e"+type+fn]=null;
			}
		},
		setClassName : function(_element, _className)
		{
			if (_element.className)
			{
				_element.className = _className;
			}	
		},
		hasClass : function(_element, _className)
		{
			var pattern = new RegExp("(^| )" + _className + "( |$)");
			if (_element.className && pattern.test(_element.className))
			{
				return true;
			}
			return false;
		},
		addClass : function(_element, _className)
		{
			if (!this.hasClass(_element, _className))
			{
				if (_element.className == "")
				{
					_element.className = _className;
				}
				else
				{
					_element.className += " " + _className;
				}
			}
		},
		removeClass : function(_element, _className)
		{
			var pattern = new RegExp("(^| )" + _className + "( |$)");
			_element.className = _element.className.replace(pattern, "$1");
			_element.className = _element.className.replace(/ $/, "");
		},
		getRequestParameter: function(param) {
			var q = document.location.search || document.location.hash;
			if (param == null) { return q; }
			if(q) {
				var pairs = q.substring(1).split("&");
				for (var i=0; i < pairs.length; i++) {
					if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
						return pairs[i].substring((pairs[i].indexOf("=")+1));
					}
				}
			}
			return "";
		},
		popup : function(_url, _parameters)
		{
			var DEFAULT_TARGET = 'RBS';
			var DEFAULT_HEIGHT = 390;
			var DEFAULT_WIDTH = 490;
			var DEFAULT_LEFT = 10;
			var DEFAULT_TOP = 10;

			if (!window.focus) return true;

			var default_parameters = {    
				height: DEFAULT_HEIGHT,
				width: DEFAULT_WIDTH,
				left: DEFAULT_LEFT,
				top: DEFAULT_TOP,
				toolbar: 0,
				scrollbars: 0,
				location: 0,
				statusbar: 0,
				menubar: 0,
				resizable: 1
			};

			_parameters = _parameters || {};
			for (var parameter in default_parameters) {
				// As IE5 support required, can't use the in operator:
				var inObj = typeof _parameters[parameter]!="undefined";
				// If no IE5 support, use the following
				// if ((! (parameter in _parameters)) || _parameters[parameter] === null) {
				if (!inObj || _parameters[parameter] === null) {
						_parameters[parameter] = default_parameters[parameter];
				}
			}

			var href = typeof _url == 'string' ? _url : _url.href;
			var target = _parameters.target || _url.target || DEFAULT_TARGET;
			delete _parameters['target'];

			var parameterString = '';
			for (var parameter in _parameters) {
				if (parameterString != '') parameterString += ',';
				parameterString += parameter + '=' +
				(_parameters[parameter] === true ? '1' :
				(_parameters[parameter] === false ? '0' : _parameters[parameter]));
			}

			var newWin = window.open(href, target, parameterString);
			newWin.focus();

			return false;

		},
		/*
		*	Open a popup centered to the screen - requires popup size, else opens link in new window
		*/
		centerPopup : function(_url, _parameters)
		{
			var DEFAULT_SCREEN_HEIGHT = 390;
			var DEFAULT_SCREEN_WIDTH = 490;
			if(!_parameters || _parameters.height==null || _parameters.width==null){
				return true;
			}
			_parameters.top = ((screen.height? screen.height : DEFAULT_SCREEN_HEIGHT) -_parameters.height)/2;
			_parameters.left = ((screen.width? screen.width : DEFAULT_SCREEN_WIDTH)-_parameters.width)/2;
			
			popup(_url, _parameters);
			return false;
		},
		validateEmail : function(field1){
			var emailRegEx = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			var str = $(field1).value || null;
			if(!str){
				return false;
			}
			if(str.match(emailRegEx)){
					return true;	
			} else{
				alert('Please enter a valid email address.');
				return false;
			}
		}
	};
}();

function init(){
	// foo
}

function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}
// temp

