// JavaScript Document
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();


function addRemoveClass(id,className){
	var domObj,currentClass;
	if(typeof id == 'object'){
		domObj = id;
	}else{
		domObj = document.getElementById(id);
	}
	currentClass = domObj.className;
	if (currentClass.indexOf(className)<0){
		currentClass = currentClass+" "+className;
		domObj.className = currentClass;
	}else{
		currentClass = currentClass.replace(className, "");
		domObj.className = currentClass;
	}
}
function hideEmail(first,second){
	document.write('<a href="mailto:'+first+'@'+second+'">'+first+'@'+second+'</a>');
}
function isChecked(id,msg){
	field = document.getElementById(id);
	if(field.checked){
		return true;
	}else{
		alert(msg);
		field.focus();
		return false;
	}
}
function getLabel_Select(sId,value){
	var oSelect = document.getElementById(sId);
	for(var i=0;i<oSelect.options.length;i++){
		if(oSelect.options[i].value==value){
			return oSelect.options[i].text;
		}
	}
	return "";
}
function initSelectValue(selectID,selectValue){
	var selectObj = document.getElementById(selectID);
	for(var i=0;i<selectObj.options.length;i++){
		if(selectValue == selectObj.options.item(i).value){
			selectObj.selectedIndex = i;
		}
	}
}
function validateSelectList(selectID,msg){
	var selectObj = document.getElementById(selectID);
	if(selectObj.value==""||-1 == parseInt(selectObj.value)){
		alert(msg);
		selectObj.focus();
		return false;
	}else{
		return true;
	}
}
function checkFieldLength(field,length,displayName){
	var field = document.getElementById(field);
	field.value = removeLeadingAndTrailingChar (field.value, " ");
	if(field.value.length < length){
		if(length == 1){
			alert("Please make sure "+displayName+" is completed.");
			field.select();
			field.focus();
		}else{
			alert("Please make sure "+displayName+" has at least "+length+" characters.");
			field.select();
			field.focus();
		}
		return false;
	}else{
		return true;
	}
}
function removeLeadingAndTrailingChar (inputString, removeChar){
	var returnString = inputString;
	if (removeChar.length){
		while(''+returnString.charAt(0)==removeChar){
			returnString=returnString.substring(1,returnString.length);
		}
		while(''+returnString.charAt(returnString.length-1)==removeChar){
			returnString=returnString.substring(0,returnString.length-1);
		}
	}
	return returnString;
}
// emailName is the name of the text field
function validateEmail(id) {
	var emailObj = document.getElementById(id);
	if (window.RegExp) {
		var regstr_1 = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)"; //invalid email
		var regstr_2 = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4})(\\]?)$"; //valid email
		var reg1 = new RegExp(regstr_1);
		var reg2 = new RegExp(regstr_2);
		if (emailObj.value.length > 0 && !reg1.test(emailObj.value) && reg2.test(emailObj.value)){
			return true;
		}else{
			alert("Please enter a valid email address.");
			emailObj.focus();
			emailObj.select();
			return false;
		}
	}else{
		var p=emailObj.value.indexOf('@'); var z=emailObj.value.indexOf('.');
        if (z<1 || z==(emailObj.value.length-1) || p<1 || p==(emailObj.value.length-1)){
			alert("Please enter a valid email address.");
			emailObj.focus();
			emailObj.select();
			return false;
		}else{
			return true;
		}
	}
}
function matchFields(field_1,field_2,displayName){
	var field_1 = document.getElementById(field_1);
	var field_2 = document.getElementById(field_2);
	if(field_1.value != field_2.value){
		alert("Please make sure that both "+displayName+" match correctly.");
		field_1.select();
		field_1.focus();
		return false;
	}else{
		return true;
	}
}

function firstCap(obj){
	var aString = obj.value.split(' ');
	for(i=0;i<aString.length;i++){
		var first = aString[i].substring(0,1).toUpperCase();
		var end = aString[i].substring(1);
		aString[i] = first+end;
	}
	obj.value = aString.join(' ');
}
function allLowerCase(obj){
	obj.value = obj.value.toLowerCase();
}
function stripUrlKey(obj){
	obj.value = obj.value.replace(' ','');
	allLowerCase(obj);
	var illegalChars = /[\W_]/; //allow everything except letters and numbers
	var newValue = '';
	//run each character and check
	for(i=0;i<obj.value.length;i++){
		if (!illegalChars.test(obj.value.charAt(i))) {
			newValue += obj.value.charAt(i);
		}
	}
	obj.value = newValue;
}

function onlyNumbers(obj){
	obj.value = obj.value.replace(' ','');
	var newValue = '';
  	var numbers = /[0-9]+/;
	//run each character and check
	for(i=0;i<obj.value.length;i++){
		if (numbers.test(obj.value.charAt(i))) {
			newValue += obj.value.charAt(i);
		}
	}
	obj.value = newValue;
} 

function limitString(str,length){
	if(str.length<length-3){
		for(var i=str.length;i<(length);i++){
			str += ' ';
		}
		//str += '...';
	}else{
		str = str.substring(0,(length));
		//str += '...';
	}
	return str;
}
