//<SCRIPT LANGUAGE=javascript>
//<!--
function setBrowser() {
	var navagent = navigator.userAgent.toLowerCase();
	var navname = navigator.appName.toLowerCase();
	var navver = parseInt(navigator.appVersion);

	// get the version in useful form for an opera browser.
	var operaagent = String(navagent.match(/opera[\/| ]\d/));
	operaagent = operaagent.replace(/[\/]/ig, ' ');
	this.op = (operaagent != 'null');

	this.mac = (navagent.indexOf('mac_powerpc') != -1);
	this.win = (navagent.indexOf('windows') != -1);
	this.ie = (navagent.indexOf('msie') != -1 && !this.op);
	this.ns = (navname.indexOf('netscape') != -1 && !this.op);
	this.ie4 = (this.ie && navver == 4);
	this.ie5 = (this.ie && navagent.indexOf('msie 5') != -1);
	this.ie6 = (this.ie && navagent.indexOf('msie 6') != -1);
	if(this.ie5) this.ie4 = false;
	if(this.ie6) this.ie4 = false;
	this.ns4 = (this.ns && navver == 4);
	this.ns6 = (this.ns && navver == 5);

	this.op5 = (this.op && operaagent == 'opera 5');
	this.op6 = (this.op && operaagent == 'opera 6');
	this.op7 = (this.op && operaagent == 'opera 7');
	this.op6up = (this.op5 || this.op6 || this.op7)
}

var is = new setBrowser();

if(is.ie4 || is.ie5 || is.ie6) {
	var pre = 'document.all';
	var suf = '.style';
	var sufH = '';
	var sufF = '';
}
if(is.ns4) {
	var pre = 'document'
	var suf = '';
	var sufH = '.document';
	var sufF = '';
}

function fnGetObj(id) {
	var o = null;
	if(is.ie4 || is.ie5 || is.ie6 || is.ns4)
		o = eval(pre + "['" + id + "']" + suf);
	if(is.ns6 || is.op6up)
		o = document.getElementById(id).style;
	return o;
}

function fnGetObjHTM(id) {
	var o = null;
	if(is.ie4 || is.ie5 || is.ie6 || is.ns4)
		o = eval(pre + "['" + id + "']" + sufH);
	if(is.ns6 || is.op6up)
		o = document.getElementById(id)
	return o;
}

String.prototype.isEmail = fnValidEmail
String.prototype.isPhone = fnValidPhone
String.prototype.isNumber = fnValidNumber

function fnValidNumber() {
	return /^\d+$/.test(this);
}

function fnValidEmail() {
	// TODO: check this validation
	return /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(this);
}

function fnValidPhone() {
	// remove spaces
	var p = this.replace(/[\(|\)| ]+/ig, '')
	// test: can have a plus at start.
	// all other characters numeric
	return /^\+?\d+$/.test(p);
}
////-->
//</SCRIPT>
