

var Working = '<img src="_gfx/working.gif" alt="Working..." />';

var BH = {
	
}

var FormRB = {
	length : "1"
	,
	check : function(target, fields) {
		var check = Array();
		var f = document.forms[target];
		for(i=0; i<fields.length; i++) {
			var field = fields[i];
			var elem = f.elements[field];
			if(!elem) alert("Elem "+field+" missing from form "+target);
			var value = elem.value;
			var defaultValue = elem.defaultValue;
			
		if(field.toLowerCase().indexOf("email") != -1) {
				if(!this.email(target, field)) {
					check.push(field);	
					continue;
				}
			}
		if( (value.length < this.length)  ) {
				check.push(field);	
			}
		
		}
		
		if(check.length == 0) {
			return true;	
		}
		else {
			var out = "Please amend the following before submitting:\n";
			for(i=0; i<check.length; i++) {
				out +=  check[i]+" \n";
			}
			alert(out);
			f.elements[check[0]].focus();
			return false;	
		}
	}	
	,
	email : function(target, field) {
		var email = document.forms[target].elements[field].value;
		var atSym = email.indexOf('@');
		var dot = email.lastIndexOf('.');
		var space = email.indexOf(' ');
		var len = email.length;
		if (atSym < 1 || dot < atSym || len - dot <= 2 || space != -1) {
			return false;
		}
		else { 
			return true; 
		}
	}
	,
	values : function(target) {
		var f = document.forms[target];
		var out = "";
		for(i=0; i<f.elements.length; i++) {
			var elem = f.elements[i].name;
			var value = f.elements[i].value;
			out += "&"+elem+"="+value;
		}
		return out;	
	}
	,
	prep : function(target) {
		var f = document.forms[target];
		for (var i=0; i<f.elements.length; i++) {
			var element = f.elements[i];
			if (element.type == "reset"||element.type == "submit"||element.type == "radio"||element.type == "checkbox") { continue };
			if (!element.defaultValue) { continue };
			element.onfocus = function() {
				if (this.value == this.defaultValue) {
					this.value = "";
				}
			}
			element.onblur = function() {
				if (this.value == "") {
					this.value = this.defaultValue;
				}
			}
		}
	}
}

function Redirect(url) {
	location.href = url;	
}

function AjaxRB() {
	
	this.setup = function() {
		var requestObj;
		try {
			requestObj = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e) {
			requestObj = new XMLHttpRequest();
		}
		return requestObj;
	}
	
	this.get = function(url, func) {
		var http = this.setup();
		http.open("GET", url, true);
		http.onreadystatechange = function() { func(http); }
		http.send(null);
	}
	
	this.post = function(script, url, func) {
		var http = this.setup();
		http.open("POST", script, true);
		http.onreadystatechange = function() {func(http); }
		http.setRequestHeader("Content-Length", script.length + url.length + 100);
		http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		http.setRequestHeader("ENCTYPE", "plain/text");
		http.send(url);
	}
}

var EditorRB = {
	get : function() {
		return DataRB.encode(tinyMCE.getContent());
	}
	,
	set : function(string) {
		tinyMCE.setContent(DataRB.decode(string));
	}
	,
	clear : function() {
		this.set("");
	}
	,
	reset : function() {
		this.clear();
	}
}

var DataRB = {
	encode : function(str) {
		var result = "";
		for (i = 0; i < str.length; i++) {
			if (str.charAt(i) == " ") {
				result += "+";
			}
			else {
				result += str.charAt(i);
			}
		}
		return escape(result);
	}
	,
	decode : function(str) {
		var result = str.replace(/\+/g, " ");
		return unescape(result);
	}
}

function ConfirmRB(url, msg) {
	if(confirm(msg)) location.href = url;	
}

var TableRB = {
	odd : "odd",
	even : "even",
	applyStyles : function(target) {
		if(document.getElementById(target)) {
			var table = document.getElementById(target);
			table.style.borderCollapse = "collapse";
			var odd = true;
			if(table.tBodies[0]) {
				for(t=0; t<table.tBodies[0].rows.length; t++) {
					var tr = table.tBodies[0].rows[t];
					var cls = "";
					if(odd) { cls = this.odd; odd = false; }
					else { cls = this.even; odd = true; }
					tr.mem = cls;
					tr.className = cls;
					tr.onmouseover = function() {
						this.className = "highlight";
					}
					tr.onmouseout = function() {
						this.className = this.mem;
					}
				}
			}
		}
	}
}
