// ///////////////////////////////////////////////////////////////////////////////////
// // Detect Browser
// ///////////////////////////////////////////////////////////////////////////////////
var pc = navigator.appVersion.indexOf("Windows")>-1 || navigator.appVersion.indexOf("Win")>-1;
var mac = navigator.appVersion.indexOf("Macintosh") > -1;
var browserName = navigator.appName.toUpperCase();
var NS = browserName.indexOf("NETSCAPE") > -1;
var IE = browserName.indexOf("EXPLORER") > -1;
// ///////////////////////////////////////////////////////////////////////////////////

// ///////////////////////////////////////////////////////////////////////////////////
// // Detect OS.
// ///////////////////////////////////////////////////////////////////////////////////
var agt = navigator.userAgent;
var yourOS="unknown"

if ((agt.indexOf("Win95")!=-1)||(agt.indexOf("Windows 95")!=-1)) 
	yourOS='Windows 95'

if ((agt.indexOf("Win98")!=-1)||(agt.indexOf("Windows 98")!=-1))
	yourOS='Windows 98'

if ((agt.indexOf("WinNT")!=-1)||(agt.indexOf("Windows NT")!=-1))
	yourOS='Windows NT'

if ((agt.indexOf("Win16")!=-1)||(agt.indexOf("Windows 3.1")!=-1))
	yourOS='Windows 3.<i>x</i>'

if (agt.indexOf("Macintosh")!=-1){
	if (agt.indexOf("PC)")!=-1)
		yourOS='Mac PPC'
	else
		yourOS='Mac 68K'
}

if (agt.indexOf("SunOS")!=-1)
	yourOS='Unix Sun'

if (agt.indexOf("IRIX")!=-1)
	yourOS='Unix SGI'

if (agt.indexOf("HP-UX")!=-1)
	yourOS='Unix HP'

if (agt.indexOf("AIX")!=-1)
	yourOS='Unix IBM';
// ///////////////////////////////////////////////////////////////////////////////////

// ///////////////////////////////////////////////////////////////////////////////////
// // Detect Browser Version
// ///////////////////////////////////////////////////////////////////////////////////
if(IE){
	var MSIE_temp = navigator.appVersion.indexOf("MSIE") + 5;
	BrowserVer = parseInt(navigator.appVersion.substring(MSIE_temp, MSIE_temp+1));
}
else
	BrowserVer = parseInt(navigator.appVersion.substring(0, 1));
// ///////////////////////////////////////////////////////////////////////////////////

function getOperatingSystem(){
	return yourOS;
}

function getBrowserVer(){
	return BrowserVer;
}

function isNetscape(){
	if(NS)
		return true;
	else
		return false;
}

function isInternetExplorer(){
	if(IE)
		return true;
	else
		return false;
}

function isPc(){
	if(pc)
		return true;
	else
		return false;
}

function isMac(){
	if(mac)
		return true;
	else
		return false;
}

////////////////////////////////////////////////////////////////////////////////////////
// Roll over script
////////////////////////////////////////////////////////////////////////////////////////
var path = "";
var selImage = "";
var selImage2 = "";

var onNavImages = new Array;
var offNavImages = new Array;
	
function preloadImage(name){
	if(document.images){
		onNavImages[name] = new Image();
		onNavImages[name].src = path + name + "_on.gif";

		offNavImages[name] = new Image();
		offNavImages[name].src = path + name + "_off.gif";
	}
}

function msOver(name){
	if(document.images && selImage != name && selImage2 != name)
		document[name].src = onNavImages[name].src;
}

function msOut(name){
	if(document.images && selImage != name && selImage2 != name)
		document[name].src = offNavImages[name].src;
}


function setRollOverImagesPath(img_path){
	this.path = img_path;
}

function setSelectedImageName(name){
	if(document.images) document[name].src = onNavImages[name].src;
	this.selImage = name;
}

function setSelectedImageName2(name){
	if(document.images) document[name].src = onNavImages[name].src;
	this.selImage2 = name;
}




////////////////////////////////////////////////////////////////////////////////////////
// Util methods
////////////////////////////////////////////////////////////////////////////////////////

function getRandomIndex(max) {
	var randomNum = Math.random();
	randomNum = randomNum * max;
	randomNum = parseInt(randomNum);
	if(isNaN(randomNum)) randomNum = 1; // for Netscape
	return randomNum;
}

function isEmpty(s){
	if(s == null || s.length == 0) return true;
	var whitespace = " \t\n\r";
	var i;

	// Search through string's characters one by one until we find a non-whitespace character. When we do, return false; if we don't, return true.
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (whitespace.indexOf(c) == -1){
			return false;
		}
	}

	return true;
}

/**
 * Checks for a valid email.
 */
function isValidEmail(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)

	if (str.indexOf(at)==-1) return false;
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) return false;
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr) return false;
	if (str.indexOf(at,(lat+1))!=-1) return false;
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) return false;
	if (str.indexOf(dot,(lat+2))==-1) return false;
	if (str.indexOf(" ")!=-1) return false;

	return true     
 }

// gets the code of the key that was entered
function getKeyCode(e){
	var keynum = 0;

	if(window.event){ // IE
		keynum = e.keyCode
	}
	else if(e.which){ // Netscape/Firefox/Opera
		keynum = e.which
	}

	return keynum;
}