var brwsrName;
loadStyles();
var brwsrVer;
//var site = 'http://localhost/ucr_agops/irrSched/';
var site = 'http://agops.ucr.edu/irrSched/';
function browserType(){
	this.ver=navigator.appVersion
	//this.dom=document.getElementById?1:0
	this.dom = (document.getElementById && !document.all) ? 1 : 0;
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
	this.ie4=(document.all && !this.dom)?1:0;
	this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
	return this;
}

var brwsrType = new browserType();

function loadStyles() {
	brwsrVer = getBrwsr('nu');
	var filename, fileref;
	fileref = document.createElement("link");
	fileref.setAttribute("rel", "stylesheet");
	fileref.setAttribute("type", "text/css");

	if(getBrwsr('brwsr') == 'ff' || getBrwsr('brwsr') == 'moz' || getBrwsr('brwsr') == 'nn') {
		filename = site + 'library/oc_ff.css';
		brwsrName = 'ff';
	}
	if(getBrwsr('brwsr') == 'ie') {
		filename = site + 'library/oc_ie.css';
		brwsrName = 'ie';
	}
	if(getBrwsr('brwsr') == 'saf') {
		filename = site + 'library/oc_ff.css';
		brwsrName = 'ff';
	}
	//default:
	if(getBrwsr('brwsr') != 'ie' && getBrwsr('brwsr') != 'ff' && getBrwsr('brwsr') != 'saf' && getBrwsr('brwsr') != 'moz' && getBrwsr('brwsr') != 'nn') {
		filename = site + 'library/oc_ie.css';
		brwsrName = 'ie';
	}
	fileref.setAttribute("href", filename);
	if (typeof fileref!="undefined") {
		document.getElementsByTagName("head")[0].appendChild(fileref);
	}
}

getForm();
/*
function getForm() {
	var url = 'http://agops.ucr.edu/message/;
	window.location = url;
}
*/
function getForm() {
	var obj = document.contact;
	var ver_arr = brwsrVer.split(".");
	var majVer = ver_arr[0];
	brwsrVer = majVer;
	var par = 'oc_parent';
	var dLayer = 'ifrm_login';
	if(createLayer(par, dLayer)) {
		var dest = site + 'contact.php';
		var params = 'brwsr=' + brwsrName + '&bVer= ' + brwsrVer;
		try {
			xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
			alert('browser doesn\'t support ajax.');
		}
		xmlhttp.open("POST", dest, true);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader("Content-length", params.length);
		xmlhttp.setRequestHeader("Connection", "close");
		xmlhttp.onreadystatechange = function() { triggered(dLayer, 1); } ;
		xmlhttp.send(params);
		/*
		xmlhttp.onreadystatechange = function() { triggered(dLayer, 1); } ;
		xmlhttp.open("GET", dest);
		xmlhttp.send(null);
		*/
	}
}

function sendMessage() {
	var par = 'oc_parent';
	var dLayer = 'ifrm_login';
	if(createLayer(par, dLayer)) {
		//var dest = 'http://localhost/cgi-bin/contact.cgi';		
		var dest = '../../../cgi-bin/contact.cgi';
		var obj = document.contact;
		var fname = obj.fname.value;
		var email = obj.emaddr.value;
		var msg = obj.msgtxt.value;
		var srcObj = obj.mnuCategory;
		var source = srcObj.options[srcObj.selectedIndex].value;
		var params = 'fname=' + fname + '&emaddr= ' + email + '&mnuCategory=' + source + '&msgtxt=' + msg;
		try {
			xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
			alert('browser doesn\'t support ajax.');
		}
		xmlhttp.open("POST", dest, true);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader("Content-length", params.length);
		xmlhttp.setRequestHeader("Connection", "close");
		xmlhttp.onreadystatechange = function() { triggered(dLayer); } ;
		xmlhttp.send(params);
	}
}

function triggered(lyr) { if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) { document.getElementById(lyr).innerHTML = xmlhttp.responseText; }}

function createLayer(par, child) {
	if(document.getElementById(child)) {
		return true;
	} else {
		var lyrParent = document.getElementById(par);
		var docmethod = 'document.createElement';
		var lyr = eval(docmethod + '("div")');
		lyr.className = child;
		lyr.id = child;
		//var btnTxt = 'detail stuff';
		//lyr.appendChild(document.createTextNode(btnTxt));
		lyrParent.appendChild(lyr);
	}
	return true;
}

function validateMessage() {
	clearErrors('contact');
	var obj = document.contact;
	var txtName = obj.fname.value;	
	var txtEm = obj.emaddr.value;
	txtName = trim(txtName);
	txtEm = trim(txtEm);
	var errCount = 0;
	if(txtName == '') {
		errCount++;
		displayError('err_contName');
	}
	if(txtEm == '') {
		errCount++;
		displayError('err_contEmail_1');
	} else {
		if(!checkEmail(txtEm)) {
			errCount++;
			displayError('err_contEmail_2');
		}
	}
	if(errCount == 0) {
		sendMessage();
	}
}

function displayError(err) {
	if(document.getElementById(err)) {
		var lyr = document.getElementById(err);
		lyr.style.display = 'block';
	}
}

function checkEmail(emailStr) {
	var checkTLD = 1;
	var knownDomsPat = /^(com|net|org|edu|tv|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|firm|int|nom|store|web|us|uk|au|ca)$/;
	var emailPat = /^(.+)@(.+)$/;
	var specialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars = "\[^\\s" + specialChars + "\]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChars + '+';
	var word = "(" + atom + "|" + quotedUser + ")";
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray = emailStr.match(emailPat);

	if (matchArray == null) {
		//alert("Email address seems incorrect (check @ and .'s)");
		return false;
	}
	var user = matchArray[1];
	var domain = matchArray[2];
	for (i = 0; i < user.length; i++) {
		if (user.charCodeAt(i) > 127) {
			//alert("Ths username contains invalid characters.");
			return false;
	   }
	}
	for (i = 0; i < domain.length; i++) {
		if (domain.charCodeAt(i) > 127) {
			//alert("Ths domain name contains invalid characters.");
			return false;
		}
	}
	if (user.match(userPat) == null) {
		//alert("The username doesn't seem to be valid.");
		return false;
	}
	var IPArray = domain.match(ipDomainPat);
	if (IPArray != null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("Destination IP address is invalid!");
				return false;
			}
		}
		return true;
	}
	var atomPat = new RegExp("^" + atom + "$");
	var domArr = domain.split(".");
	var len = domArr.length;
	for (i = 0;i < len; i++) {
		if (domArr[i].search(atomPat) == -1) {
			//alert("The domain name does not seem to be valid.");
			return false;
		}
	}
	if (checkTLD && domArr[domArr.length-1].length != 2 && domArr[domArr.length-1].search(knownDomsPat) == -1) {
		//alert("The address must end in a well-known domain or two letter " + "country.");
		return false;
	}
	if (len < 2) {
		//alert("This address is missing a hostname!");
		return false;
	}

	return true;
}


/* try this: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php */

