function hide_welcome() {
	opacity('welcome', 100, 0, 300);
	setTimeout("clear_welcome()", 301);
}

function clear_welcome() {
	document.getElementById('welcome').style.display = "none";
	document.getElementById('menu').style.height = "16px";
}

//new login js

function submitEnter(myfield,e) {
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;
	
	if (keycode == 13) {
	   myfield.form.submit();
	   return false;
	}
	else return true;
}

function toggleSearchResult(id) {
	div = document.getElementById(id);
	if( div.style.height == "auto" ) div.style.height = "50px";	
	else div.style.height = "auto";
}


function toggleLoginForms() {
	if($('header_login_forms').style.display == "none") {
		$('header_login_forms').show();
		$('header_login').hide();
	} else {
		$('header_login_forms').hide();
		$('header_login').show();
	}
}

function headerLeftBG() {
	$('headerLeftTop').style.backgroundColor = "#222c31";
	$('headerLeftMid').style.backgroundColor = "#222c31";
	$('headerLeftBot').style.backgroundColor = "#222c31";
}

function headerLeftBGlight() {
	$('headerLeftTop').style.backgroundColor = "#2d383d";
	$('headerLeftMid').style.backgroundColor = "#2d383d";
	$('headerLeftBot').style.backgroundColor = "#2d383d";
}

function headerRightBG() {
	$('headerRightTop').style.backgroundColor = "#222c31";
	$('headerRightMid').style.backgroundColor = "#222c31";
	$('headerRightBot').style.backgroundColor = "#222c31";
}
function headerRightBGlight() {
	$('headerRightTop').style.backgroundColor = "#2d383d";
	$('headerRightMid').style.backgroundColor = "#2d383d";
	$('headerRightBot').style.backgroundColor = "#2d383d";
}

function headerLoginToggleUser() { $('loginUser').value = ""; }
function headerLoginTogglePass() { $('loginPass').type = "password"; $('loginPass').value = ""; }
function headerLoginToggleForgot() { $('forgotEmail').value = ""; }
function headerLoginSubmit(e) { 
	var keynum;	
	if(window.event) { keynum = e.keyCode; }
	else if(e.which) { keynum = e.which; }
	if( keynum == 13 ) $('login').submit();
}

//END

//NEW NAVIGATION

var timeout	= 500;
var closetimer	= 0;
var ddmenuitem	= 0;
var pastBar = '';
var pastDiv = '';
var pastLnk = '';

var lnkClass;
// open hidden layer
function mopen(id, bar, div, lnk) {	
	mcancelclosetime();

	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
	if(pastBar) pastBar.style.backgroundColor = '#3a4a54';
	if(pastDiv) pastDiv.style.backgroundColor = '#3a4a54';
	if(pastLnk) { 
		if( lnkClass == "header_sub" ) pastLnk.style.color = '#fff';
	}

	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';

	//disp tab
	pastBar = document.getElementById(bar);
	pastDiv = document.getElementById(div);
	pastLnk = document.getElementById(lnk);
	pastBar.style.backgroundColor = '#fff';
	pastDiv.style.backgroundColor = '#fff';
	pastLnk.style.color = '#2697e4';
	lnkClass = pastLnk.className;
}

function mclose() {
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
	if(pastBar) pastBar.style.backgroundColor = '#3a4a54';
	if(pastDiv) pastDiv.style.backgroundColor = '#3a4a54';
	if(pastLnk) { 
		if( lnkClass == "header_sub_active" ) pastLnk.style.color = '#2697e4';
		else pastLnk.style.color = '#fff';
	}
	
}

function mclosetime() {
	closetimer = window.setTimeout(mclose, timeout);
}

function mcancelclosetime() {
	if(closetimer) {
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

document.onclick = mclose();

//END

// Login form JS

function login_email() {
	var target = document.getElementById('user');
	
	if (target.value == "email") {
		target.value = "";
		target.style.color = "#333";
	}
}

function login_password() {
	var target = document.getElementById('pass');
	
	if (target.value == "password") {
		target.value = "";
		target.style.color = "#333";
		target.type = "password";
	}
}

function topUsers() {
	var target = document.getElementById('topUsersMore');
	var tuSwitch = document.getElementById('topUsersSwitch');
	
	if(target.style.display == 'none') {
		target.style.display = 'block';
		tuSwitch.style.color = 'red';
		alert(this.nextSibling.nextSibling.value)
	} else {
		target.style.display = 'none';
		tuSwitch.style.color = '#5ec100;';
		alert(this.nextSibling.nextSibling.value)
	}
}

function load() {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map"));
	var point = new GLatLng(40.007930, -105.261718);
    map.setCenter(point, 16);
	map.setMapType(G_NORMAL_MAP);
	map.addControl(new GSmallZoomControl());
	map.addOverlay(new GMarker(point));

	var lat = 40.007500;
	var lon = -105.261118;
	var latOffset = 0.0005;
	var lonOffset = 0.0008;
	var polygon = new GPolygon([
		new GLatLng(lat, lon),
		new GLatLng(lat + latOffset, lon),
		new GLatLng(lat + latOffset, lon + lonOffset),
		new GLatLng(lat, lon + lonOffset),
		new GLatLng(lat, lon)
		], "#f33f00", 5, 1, "#ff0000", 0.2);
	map.addOverlay(polygon);
  }
}

function faqSwitchGeneral() {
	$('faqGeneral').style.display = "block";
	$('faqInstruments').style.display = "none";
}

function faqSwitchInstruments() {
	$('faqGeneral').style.display = "none";
	$('faqInstruments').style.display = "block";
}

function toggleDiv( whichLayer ) {
  var elem, vis;
  if( document.getElementById ) // this is the way the standards work
    elem = document.getElementById( whichLayer );
  else if( document.all ) // this is the way old msie versions work
      elem = document.all[whichLayer];
  else if( document.layers ) // this is the way nn4 works
    elem = document.layers[whichLayer];
  vis = elem.style;
  // if the style.display value is blank we try to figure it out here
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
  vis.display = (vis.display==''||vis.display=='block')?'none':'block';
}

function showDiv( whichLayer )
{
  var elem, vis;
  if( document.getElementById ) // this is the way the standards work
    elem = document.getElementById( whichLayer );
  else if( document.all ) // this is the way old msie versions work
      elem = document.all[whichLayer];
  else if( document.layers ) // this is the way nn4 works
    elem = document.layers[whichLayer];
  vis = elem.style;
  // if the style.display value is blank we try to figure it out here
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
    vis.display = 'block';
  vis.display = 'block';
}

function hideDiv( whichLayer )
{
  var elem, vis;
  if( document.getElementById ) // this is the way the standards work
    elem = document.getElementById( whichLayer );
  else if( document.all ) // this is the way old msie versions work
      elem = document.all[whichLayer];
  else if( document.layers ) // this is the way nn4 works
    elem = document.layers[whichLayer];
  vis = elem.style;
  // if the style.display value is blank we try to figure it out here
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
    vis.display = 'none';
  vis.display = 'none';
}

function getBrowser() {
	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();
	return BrowserDetect.browser;
}

function getBrowserVersion() {
	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();
	return BrowserDetect.version;
}

function setSubDivOffset( parentLayer , childLayer ) {
	if( getBrowser() == "Explorer" ){
		chi = document.getElementById( childLayer );
		par = document.getElementById( parentLayer );
		
		offLeft = offTop = 0;
		
		do {
			offLeft += par.offsetLeft;
			offTop  += par.offsetTop;
		} while (par = par.offsetParent);

		chi.style.left = offLeft;
		chi.style.top  = offTop;
	}
}

function positionSchedule( layer ) {
	if( getBrowser() == "Explorer" ) {
		elem = document.getElementById( layer );
		elem.style.position = 'relative';
		elem.style.top = '-105';
	}
}

function fillOverallDivWithStars( layer , rating ) {
	div = document.getElementById( layer );
	div.innerHTML = "";
	numStars = Math.floor(rating);
	i = 0;
	for( ; i < numStars ; i++ ) {
		div.innerHTML += '<img src="images/star-full.gif" />';
	}
	for( ; i < 5 ; i++ ) {
		div.innerHTML += '<img src="images/star-empty.gif" />';
	}
}

function fillUserDivWithStars( layer , rating , id ) {
	div = document.getElementById( layer );
	div.innerHTML = "";
	numStars = Math.floor(rating);
	i = 0;
	for( ; i < numStars ; i++ ) {
		div.innerHTML += '<img src="images/star-full.gif" onmouseover="fillUserDivWithStars(\''+layer+'\','+(i+1)+','+id+');" onmousedown="userRatePhoto('+id+','+(i+1)+');" />';
	}
	for( ; i < 5 ; i++ ) {
		div.innerHTML += '<img src="images/star-empty.gif" onmouseover="fillUserDivWithStars(\''+layer+'\','+(i+1)+','+id+');" />';
	}
}

function activatePhotoButton( button ) {
	document.getElementById(button).style.background = "#FFBF80";
}

function deactivatePhotoButtons( buttonArray ) {
	for( i = 0 ; i < buttonArray.length ; i++ ) {
		document.getElementById(buttonArray[i]).style.background = "#EEEEEE";
	}
}

function adminMonthlyReportChartView() {
	if(document.getElementById('reportchartview').selectedIndex==1) {
		document.getElementById('reportchartmonth').style.display='none';
	} else {
		document.getElementById('reportchartmonth').style.display='inline';
	}	
}

function trim (str) {
	var	str = str.replace(/^\s\s*/, ''),
		ws = /\s/,
		i = str.length;
	while (ws.test(str.charAt(--i)));
	return str.slice(0, i + 1);
}
