// JavaScript Document

//Images -----------------------------------------------------------------------
//var picCommunMapOn = createImage("Images/nav_communmap_on.gif");
//var picCommunMapOff = createImage("Images/nav_communmap_off.gif");

//var picCrabReportOn = createImage("Images/nav_crabreportbut_on.gif");
//var picCrabReportOff = createImage("Images/nav_crabreportbut_off.gif");

//var picComReturnOn = createImage("Images/nav_comreturn_on.gif");
//var picComReturnOff = createImage("Images/nav_comreturn_off.gif");

var picBackSearchOn = createImage("Images/nav_backsearch_on.gif");
var picBackSearchOff = createImage("Images/nav_backsearch_off.gif");

var picHarbourListOn = createImage("Images/nav_harbourlist_on.gif");
var picHarbourListOff = createImage("Images/nav_harbourlist_off.gif");

var picEquipSearchOn = createImage("Images/nav_equipsearch_on.gif");
var picEquipSearchOff = createImage("Images/nav_equipsearch_off.gif");

var picCommunShowOn = createImage("Images/nav_communshow_on.jpg");
var picCommunShowOff = createImage("Images/nav_communshow_off.jpg");

var picCommunIntroOn = createImage("Images/nav_communintro_on.jpg");
var picCommunIntroOff = createImage("Images/nav_communintro_off.jpg");

var picAboutOn = createImage("Images/nav_about_on.gif");
var picAboutOff = createImage("Images/nav_about_off.gif");

var picWeatherOn = createImage("Images/nav_weather_on.gif");
var picWeatherOff = createImage("Images/nav_weather_off.gif");

var picBuoyOn = createImage("Images/nav_buoy_on.gif");
var picBuoyOff = createImage("Images/nav_buoy_off.gif");

var picSeabedOn = createImage("Images/nav_seabed_on.gif");
var picSeabedOff = createImage("Images/nav_seabed_off.gif");

var picWaterOn = createImage("Images/nav_water_on.gif");
var picWaterOff = createImage("Images/nav_water_off.gif");

var picOceanOn = createImage("Images/nav_ocean_on.gif");
var picOceanOff = createImage("Images/nav_ocean_off.gif");

var picCommunOn = createImage("Images/nav_commun_on.gif");
var picCommunOff = createImage("Images/nav_commun_off.gif");

var picHarbourOn = createImage("Images/nav_harbour_on.gif");
var picHarbourOff = createImage("Images/nav_harbour_off.gif");

var picNewsOn = createImage("Images/nav_news_on.gif");
var picNewsOff = createImage("Images/nav_news_off.gif");

var picHowtoOn = createImage("Images/nav_howto_on.gif");
var picHowtoOff = createImage("Images/nav_howto_off.gif");

var picDownloadOn = createImage("Images/nav_download_on.gif");
var picDownloadOff = createImage("Images/nav_download_off.gif");

//var picBuoyAboutOn = createImage("images/buoy_about_on.png");
//var picBuoyAboutOff = createImage("images/buoy_about_off.png");

var picBuoyInfoOn = createImage("images/buoy_info_on.jpg");
var picBuoyInfoOff = createImage("images/buoy_info_off.jpg");

var picBuoyDataOn = createImage("images/buoy_data_on.jpg");
var picBuoyDataOff = createImage("images/buoy_data_off.jpg");

var picBuoyForecastOn = createImage("images/buoy_forecast_on.jpg");
var picBuoyForecastOff = createImage("images/buoy_forecast_off.jpg");

var picBuoyHistoryOn = createImage("images/buoy_history_on.jpg");
var picBuoyHistoryOff = createImage("images/buoy_history_off.jpg");

var picBuoyMetOn = createImage("/images/buoy_met_on.jpg");
var picBuoyMetOff = createImage("/images/buoy_met_off.jpg");

var picBuoyWaterOn = createImage("/images/buoy_water_on.jpg");
var picBuoyWaterOff = createImage("/images/buoy_water_off.jpg");

var picForecastOn = createImage("images/forecast_on35.jpg");
var picForecastOff = createImage("images/forecast_off35.jpg");

var picBackOn = createImage("images/back_on.jpg");
var picBackOff = createImage("images/back_off.jpg");

var picTidesOn = createImage("images/tides_on35.jpg");
var picTidesOff = createImage("images/tides_off35.jpg");

function createImage(imagePath){
	var img = new Image();
	img.src = imagePath;
	return img;
}

function rollon(imageid, imagename){
	var img = new Element(imagename);
	img.obj.src = eval(imageid + "On.src");
	img = null;
}

function rolloff(imageid, imagename){
	var img = new Element(imagename);
	img.obj.src = eval(imageid + "Off.src");
	img = null;
}

function preloadImages() {
  var d=document; if(d.images){ if(!d.p) d.p=new Array();
    var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

//Show/Hide -----------------------------------------------------------------------------

function showDiv(divName){
	var div = new Element(divName);
	div.changeDisplay("block");
	div = null;
}

function hideDiv(divName){
	var div = new Element(divName);
	div.changeDisplay("none");
	div = null;
} 

// Form functions -----------------------------------------------------------------------------

function setFieldValue(fieldName, fieldValue, parent){
	parent = (parent == null) ? false : parent;
	var field = new Element(fieldName, parent);
	field.obj.value = fieldValue;
	field = null;
}

function getFieldValue(fieldName, parent){
	parent = (parent == null) ? false : parent;
	return field = new Element(fieldName, parent).obj.value;
}

function getCheckedStatus(buttonName){
	var button = new Element(buttonName);
	var result = button.obj.checked;
	button = null;
	alert(result);
	return result;
}

function selectAll(fieldName, NumFields){
	for(var x=1;x<NumFields+1;x++){
		selectButton(fieldName + x);
	}
}

function deSelectAll(fieldName, NumFields){
	for(var x=1;x<=NumFields;x++){
		deSelectButton(fieldName + x);
	}
}

function selectButton(buttonName){
	var button = new Element(buttonName);
	button.obj.checked = true;
	button = null;
}

function deSelectButton(buttonName){
	var button = new Element(buttonName);
	button.obj.checked = false;
	button = null;
}

function submitForm(formName){
	var form = new Element(formName);
	form.obj.submit();
	form = null;
}


//Grab X and Y coordinates of an image -----------------------------------------------------------------------------
function point_it(event){
    var pos_x = event.offsetX?(event.offsetX):event.pageX-document.getElementById("pointer_div").offsetLeft;
    var pos_y = event.offsetY?(event.offsetY):event.pageY-document.getElementById("pointer_div").offsetTop;	
	var left = 0;
	var top = 0;
	if(BrowserDetect.browser == "Firefox"){
		left = pos_x-32;
		top = pos_y-235;
	}else{
		left = pos_x-3;
		top = pos_y-10;
	}
    document.getElementById("dot").style.left = (left) ;
    document.getElementById("dot").style.top = (top) ;
    document.getElementById("dot").style.visibility = "visible" ;
	if(BrowserDetect.browser == "Explorer"){
		top = top + 8;
	}
	setFieldValue('crab_x', left);
	setFieldValue('crab_y', top);
}

//Form field checks -----------------------------------------------------------------------------
//Data Request*******************************************************************************
function checkDataRequest(){
	var  check = false,
	message = "",
	email = getFieldValue('email'),
	fname = getFieldValue('fname'),
	lname = getFieldValue('lname'),
	button,
	buoy_id = getFieldValue('id'),
	number_of_fields = getFieldValue('number_of_fields'); 
	
	for(var x = 1; x <= number_of_fields; x++){
		button = new Element('data' + buoy_id + x);
		
		if(button.obj.checked == true){
			check = true;
		}
	}
	if(check == false){
		message += "\n\nNo data types were selected.";
	}	
	if(email == ""){
		message += "\n\nAn email is required to notify you when your data request has been processed.";
	}
	if(fname == "" || lname == ""){
		message += "\n\nFirst and last name are used in naming the requested data file and can not be blank.";
	}
	if(getFieldValue('startyear') == 0 || getFieldValue('startmonth') == 0){
		message += "\n\nA complete start date is required.";
	}
	if(getFieldValue('endyear') == 0 || getFieldValue('endmonth') == 0){
		message += "\n\nA complete end date is required.";
	}
	if(message == ""){
		setFieldValue('check','true');
		return true;  
	}else{
		message = "Your request could not be processed for the following reason(s):" + message;
		alert(message);
		return false;
	}
}

//Harbour Equipment Query********************************************************
function checkEquipmentSearch(){
	var check = false;
	for(var x=1;x<=10;x++){
		var button = new Element('equipment' + x);
		if(button.obj.checked == true){
			check = true;
		}
	}
	if(check == false){
		alert("You must select a minimum of one piece of equipment to search for");
	}else{
		setFieldValue('check','true');  
	}
	return check;
}


//String functions -----------------------------------------------------------------------------
function LTrim(strText){
	var startAt, strLength;

	startAt = strLength;
	strLength = strText.length;
	
	for(var i=0; i < strLength; i++){
	  if(strText.charAt(i) != " "){
		startAt = i;
		break;
	  }
	}

	strText = strText.substr(startAt);
	return strText;
}

function RTrim(strText){
	var endAt, strLength;
	
	endAt = 0;
	strLength = (strText.length-1);
	
	for(var i=strLength; i >= 0; i--){
		if(strText.charAt(i) != " "){
			endAt = i+1;
			break;
		}
	}
	
	strText = strText.substring(0,endAt);
	return strText;
}

function Trim(strText){
	return LTrim(RTrim(strText));
}

//Image pop up and other media-------------------------------------------------------------------------------
function popImage(imageURL,imageTitle){
	var PositionX = 100;
	var PositionY = 100;
	var defaultWidth  = 500;
	var defaultHeight = 500;
	var AutoClose = true;
	if (parseInt(navigator.appVersion.charAt(0))>=4){
		var isNN=(navigator.appName=="Netscape")?1:0;
		var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;
	}
	var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY;
	var optIE='scrollbars=no,width=150,height=100,left='+PositionX+',top='+PositionY;
	
	if (isNN){
		imgWin=window.open('about:blank','',optNN);
	}
	if (isIE){
		imgWin=window.open('about:blank','',optIE);
	}
	with (imgWin.document){
		writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');
		writeln('<sc'+'ript>');
		writeln('var isNN,isIE;');
		writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
		writeln('isNN=(navigator.appName=="Netscape")?1:0;');
		writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
		writeln('function reSizeToImage(){');writeln('if (isIE){');
		writeln('window.resizeTo(300,300);');
		writeln('width=300-(document.body.clientWidth-document.images[0].width);');
		writeln('height=300-(document.body.clientHeight-document.images[0].height);');
		writeln('window.resizeTo(width,height);}');
		writeln('if (isNN){');       
		writeln('window.innerWidth=document.images["map"].width;');
		writeln('window.innerHeight=document.images["map"].height;}}');
		writeln('function doTitle(){document.title="'+imageTitle+'";}');
		writeln('</sc'+'ript>');
		if (!AutoClose){
			writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()">');
		}else{
			writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
		}
		writeln('<img name="map" src="'+imageURL+'" style="display:block"></body></html>');
		close();		
	}
}

function popInfo(url,winname,height,width){
	var newwindow;
	var parameters = 'height=' + height + ',width=' + width + ',scrollbars=yes';
	newwindow=window.open(url,winname,parameters);
}

function waterWindow(page,name,width,height){
	newWindow = window.open(page,name,"left=15, top=50, width=" + width + ", height=" + height + ", status=no, menubar=no, toolbar=no, resizable=no, scrollbars=no");
	newWindow.focus();
	//return newWindow;
}

function runFlash(flashElement){
	if(flashElement == "seabed"){
		document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="140" height="140" id="flythrough" align="middle">');
		document.write('<param name="allowScriptAccess" value="sameDomain">');
		document.write('<param name="movie" value="flythrough.swf">');
		document.write('<param name="menu" value="false">');
		document.write('<param name="quality" value="high">');
		document.write('<param name="bgcolor" value="#f3f3f3">');
		document.write('<embed src="flythrough.swf" menu="false" quality="high" bgcolor="#f3f3f3" width="150" height="150" name="flythrough" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">');
		document.write('</object>');
	}else if(flashElement == "intro"){
		document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="868" height="115" id="intro" align="middle">');
		document.write('<param name="allowScriptAccess" value="sameDomain" />');
		document.write('<param name="movie" value="intro.swf" />');
		document.write('<param name="loop" value="false" />');
		document.write('<param name="menu" value="false">');
		document.write('<param name="scale" value="noborder">');
		document.write('<param name="quality" value="high">');
		document.write('<param name="bgcolor" value="#cccccc">');
		document.write('<param name="wmode" value="transparent">');
		document.write('<embed src="intro.swf" loop="false" quality="high" bgcolor="#cccccc" width="868" height="115" name="intro" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
		document.write('</object>');
	}
}

//Data Request form date field formatting-------------------------------------------------------------------------------

var month_array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); 

function setDays(monthField,dayField,yearField){
	var month = new Element(monthField);
	var monthValue = parseInt(month.obj.value);
	var day = new Element(dayField);
	var monthDays  = 0;
	var check = false;
	var currentdate = new Date();
	var currentYear = currentdate.getFullYear();
	var currentDay = currentdate.getDate();
	var currentMonth = (currentdate.getMonth() + 1);
	
	switch(monthValue){
		case 4: case 6: case 9: case 11:
			check = true;
			monthDays = 30;
			break;
		case 1: case 3: case 5: case 7: case 8: case 10: case 12:
			check = true;
			monthDays = 31;
			break;
		case 2:
			check = true;
			if(checkYear(currentYear)){
				monthDays = 29;
				break;
			}else{
				monthDays = 28;
				break;
			}
		default:
			check = false;
			day.obj.options.length = 0;
			day.obj.disabled = true;
	}
	
	if(check == true){
		day.obj.disabled =false;
		if(currentYear == getFieldValue(yearField) && currentMonth == monthValue){
			monthDays = currentDay;
		}
		day.obj.options.length = 0;
		for(x=0;x<monthDays;x++){
			day.obj.options[x] = new Option(x+1,x+1,false,false);
		}	
	}
}

function setMonths(monthField,dayField,yearField){
	var day = new Element(dayField);
	var month = new Element(monthField);
	var currentdate = new Date();	
	var currentYear = currentdate.getFullYear();
	var currentMonth = currentdate.getMonth();
	month.obj.disabled = false;
	if(currentYear == getFieldValue(yearField)){
		month.obj.options.length = 0;
		month.obj.options[0] = new Option('',0,false,false);
		for(x=1;x<=currentMonth+1;x++){
			month.obj.options[x] = new Option(month_array[x-1],x,false,false);
		}		
	}else if(getFieldValue(yearField) != 0){
		month.obj.options[0] = new Option('',0,false,false);
		for(x=1;x<=12;x++){
			month.obj.options[x] = new Option(month_array[x-1],x,false,false);
		}
	}else{
		month.obj.options.length = 0;
		month.obj.disabled = true;
		day.obj.options.length = 0;
		day.obj.disabled = true;
	}
}

function setYears(buoy,startField,endField){
	var startfield = new Element(startField);
	var endfield = new Element(endField);
	var startYear = 0;
	var counter=0;
	var year = new Date();
	year = year.getFullYear();
	startfield.obj.options.length = 0;
	endfield.obj.options.length = 0;
	switch(buoy){
		case 1: case 2:
			startYear = 2006;
			break;	
		case 3:
			startYear = 2007;
			break;		
		case 4:
			startYear = 2008;
			break;
		case 7: case 8:
			startYear = 2010;
			break;		
		default:
			startYear = 2007;
			break;
	}
	startfield.obj.disabled = false;
	endfield.obj.disabled = false;
	startfield.obj.options[counter] = new Option('',0,false,false);
	counter ++;
	while(startYear <= year){
		startfield.obj.options[counter] = new Option(startYear,startYear,false,false);
		endfield.obj.options[counter] = new Option(startYear,startYear,false,false);
		counter++;
		startYear++;
	}
}


function clearDataRequest(){
	for(x=1; x<6;x++){
		hideDiv('buoy' + x);					
	}
	hideDiv('dateInfo');	
}

function checkYear(checkDate){
	checkDate = parseInt(checkDate);
	if(checkDate%4 == 0)	{
		if(checkDate%100 != 0){
			return true;
		}else{
			if(checkDate%400 == 0){
				return true;
			}else{
				return false;
			}
		}
	}
	return false;
}

//Buoy data page---------------------------------------------------------------------------------------------------------
var newWindow=null;


function buoyWindow(page,name,width,height){
	newWindow = window.open(page,name,"left=15, top=50, width=" + width + ", height=" + height + ", status=no, menubar=no, toolbar=no, resizable=yes, scrollbars=yes");
	newWindow.focus();
	return newWindow;
}

function buoyWinClose(){
	if(newWindow && !newWindow.closed){
		newWindow.close();
	}
}

function buoyDescription(num){
	var buoyDescript = "";
	
	switch(num){
		case 1:
			buoyDescript = "buoy/Buoy1Description.html";
			break;
		case 2:
			buoyDescript = "buoy/Buoy2Description.html";
			break;
		case 3:
			buoyDescript = "buoy/Buoy3Description.html";
			break;
		case 4:
			buoyDescript = "buoy/IOT1Description.html";
			break;
		case 5:
			buoyDescript = "buoy/LordsCoveBuoy.html";
			break;
	}
		
	return buoyDescript;
}

function buoyHistory(num){
	alert("BEGIN!");
	var buoyHist = "";
	
	alert("SWITCH!");
	switch(num){
		case 1:
			buoyHist = "buoy/DisplayBuoyHistory.php";
			break;
		case 2:
			buoyHist = "buoy/SatlanticBuoyHistory.php?buoyID=2";
			break;
		case 3:
			buoyHist = "buoy/SatlanticBuoyHistory.php?buoyID=1";
			break;
		case 4:
			buoyHist = "buoy/DisplayIOTBuoyHistoryPilotBoardingStation.php";
			break;
		case 5:
			buoyHist = "buoy/DisplayIOTBuoyHistoryLordsCove.php";
			break;
	}

	alert("RETURN!");
	return buoyHist;
}

function changeDataInterval(formName, interval){
	setFieldValue('numRecs', interval);
	submitForm(formName);
}

function changeTimeZone(formName, timeZone){
	setFieldValue('timeZone', timeZone);
	submitForm(formName);
}

function setFieldAndSubmit(formName, fieldName, value){
	setFieldValue(fieldName, value);
	submitForm(formName);
}

//Buoy data page---------------------------------------------------------------------------------------------------------
function WindBarb(){
	WindBarbWindow = window.open("wind_barb2.gif","wind_barb","width=275,height=340,toolbar=no,status=no,resizeable=no,left=800,top=400");
	WindBarbWindow.focus();
}
function WindBarbFocus(){
	if(WindBarbWindow && !WindBarbWindow.closed){
		WindBarbWindow.focus();
	}
}	

function formatTime(currentDate) {
	var now = new Date(currentDate);
	var hour = now.getHours();
	var minutes = now.getMinutes();
	var sec = now.getSeconds();
	var day = now.getDay();
	var month = now.getMonth();
	var year = now.getFullYear();
	var utc_day = now.getUTCDay();
	var utc_month = now.getUTCMonth();
	var utc_year = now.getUTCFullYear();
	var utc_hour = now.getUTCHours();
	var utc_minutes = now.getUTCMinutes();
	var utc_sec = now.getUTCSeconds();
	var d_names = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");	
	var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	var local_date = d_names[day] + ", " + m_names[month] + " " + now.getDate() + ", " + year;
	var utc_date = d_names[utc_day] + ", " + m_names[utc_month] + " " + now.getUTCDate() + ", " + utc_year;
	var presec = "";
	var premin = "";
	var prehour = "";
	var preutcsec = "";
	var preutcmin = "";
	var preutchour = "";
	if (minutes < 10){premin = "0";}
	if (sec < 10){presec = "0";}
	if (hour < 10){prehour = "0";}
	if (utc_minutes < 10){preutcmin = "0";}
	if (utc_sec < 10){preutcsec = "0";}
	if (utc_hour < 10){preutchour = "0";}
	var ouput = '<table><tr><td><strong>Local: </strong></td><td>' + local_date + ' ' + prehour + hour + ':' + premin + minutes + ':' + presec + sec + '</td></tr><tr><td><strong>UTC: </strong></td><td>' + utc_date + ' ' + preutchour + utc_hour + ':' + preutcmin + utc_minutes + ':' + preutcsec + utc_sec + '</td></tr></table>';
	sec = parseInt(sec) + 1;	
	now.setSeconds(sec);
	setTimeout("formatTime('" + now + "')", 1000);
	document.getElementById('clocks').innerHTML = ouput;
}

// Added by RLL  Start:April.14.11 ------------------------------------------------------------------------------
function showDiv(boxid){
   document.getElementById(boxid).style.visibility="visible";
}

function hideDiv(boxid){
   document.getElementById(boxid).style.visibility="hidden";
}

function changeContentInner(text){
		document.getElementById("contentInner").innerHTML = text;
}

function collapseDiv(boxid){
   document.getElementById(boxid).style.display="none";
}

function expandDiv(boxid){
   document.getElementById(boxid).style.display="block";
}

//---- PBIMPC stuff-----
function pbimcContacts(){
	document.getElementById("pbimc-menu").style.backgroundImage="url(Images/pbimpc_bg_1.png)";
	expandDiv('pbimc-contacts');
	collapseDiv('pbimc-mission');
	collapseDiv('pbimc-info');
	collapseDiv('pbimc-members');
}

function pbimcMission(){
	document.getElementById("pbimc-menu").style.backgroundImage="url(Images/pbimpc_bg_2.png)";
	collapseDiv('pbimc-contacts');
	expandDiv('pbimc-mission');
	collapseDiv('pbimc-info');
	collapseDiv('pbimc-members');
}

function pbimcInfo(){
	document.getElementById("pbimc-menu").style.backgroundImage="url(Images/pbimpc_bg_4.png)";
	collapseDiv('pbimc-contacts');
	collapseDiv('pbimc-mission');
	expandDiv('pbimc-info');
	collapseDiv('pbimc-members');
}

function pbimcMembers(){
	document.getElementById("pbimc-menu").style.backgroundImage="url(Images/pbimpc_bg_3.png)";
	collapseDiv('pbimc-contacts');
	collapseDiv('pbimc-mission');
	collapseDiv('pbimc-info');
	expandDiv('pbimc-members');
}
