/**
 * FIX IE6 IMAGE FLICKER PROBLEM
 *
 */
try {
	document.execCommand('BackgroundImageCache', false, true);
} catch(e) {}

// JS Support?
if(document.getElementById) {
	window.onload = Init;

	window.onunload = function(e) {
		var title = getActiveStyleSheet();
  		createCookie("style", title, 365);
	}
}


// Initialize page functions
function Init() {
	// Initialize CSS switching.
	setActiveStyleSheet(title);

	// Wheat maps player
	if(document.getElementById("weatherplayer")) {
		WeatherPlayer();
	}
	
	// CWB Bulletin Archives
	if(document.getElementById("bulletin")) {
		document.getElementById("bulletin").onclick =
		document.getElementById("bulletin").onkeypress = function() { ToggleContent("bulletin_list"); };
	}
	
	// Table shader
	TableShader();
	
	// Search Re-directer
	if(document.getElementById("search-btn")) {
		SearchRedirect();
	}
	
	// Page Re-sizer
	if(document.getElementById("menu") && document.getElementById("content")) {
		var menuHeight = document.getElementById("menu").offsetHeight;
		var pageHeight = document.getElementById("content").offsetHeight;

		if(menuHeight >= pageHeight) {
			document.getElementById("content").style.marginBottom = parseInt(menuHeight - pageHeight) + "px";
		}
	}
	
	// Make this my home paeg
	if(document.getElementById("sethomepage")) {
		var makeHomePage = document.getElementById("sethomepage").getElementsByTagName("a");
		makeHomePage[0].onclick =
		makeHomePage[0].onkeypress = function() { return setHomePage(this); };
	}
}	

// Search Redirector
function SearchRedirect() {
	document.getElementById("search-btn").onclick =
	document.getElementById("search-btn").onkeypress = function() {
		if(document.getElementById("keywords").value.length < 1) {
			if(document.getElementsByTagName("body")[0].className == "francais") {
				document.location.href = "/fr/search/";
			} else {
				document.location.href = "/en/search/";
			}
			return false;
		}
	};
}

// Weather Maps Player
function WeatherPlayer() {
	var mapIntroText	= document.getElementById("weather-intro");
	var mapUnauthorized	= document.getElementById("weather-unauthorized");
	var mapUnavailable	= document.getElementById("weather-unavailable");
	var mapHighlights	= document.getElementById("weather-highlights");
	var mapTargetImg	= document.getElementById("maptarget");
	var mapProgress		= document.getElementById("ajaxloader");
	var mapLinks 		= document.getElementsByTagName("a");
	var mapLinks_count	= mapLinks.length;
	
	for(var x = 0; x < mapLinks_count; x++) {
		if(mapLinks[x].className == "mapuser" || mapLinks[x].className == "mapfarmer") {
			mapLinks[x].onclick =
			mapLinks[x].onkeypress = function() {
				HighlightLink(this, mapLinks);

				mapHighlights.style.display = "none";
				mapIntroText.style.display = "none";
				mapTargetImg.style.dispaly = "none";
				mapProgress.style.display = "block";

				var selectedMap = new Image();
				
				selectedMap.onload = function() {
					// Disable (toggle off) error/status messages
					mapUnauthorized.style.display = "none";
					mapUnavailable.style.display = "none";
					
					// Show image
					mapTargetImg.style.display = "block";
					
					// Hide progress bar
					mapProgress.style.display = "none";
				};
				
				selectedMap.onerror = function() {
					// Disable image
					mapTargetImg.style.display = "none";

					// Enable (toggle on) appropriate error/status message
					if(mapTargetImg.className == "mapfarmer") {
						mapUnavailable.style.display = "none";
						mapUnauthorized.style.display = "block";
					} else {
						mapUnauthorized.style.display = "none";
						mapUnavailable.style.display = "block";
					}

					// Hide progress bar
					mapProgress.style.display = "none";
				}
				
				selectedMap.src 		= this.href;													
				mapTargetImg.src 		= selectedMap.src;
				mapTargetImg.width 		= selectedMap.width;
				mapTargetImg.height		= selectedMap.height;
				mapTargetImg.alt 		= this.firstChild.nodeValue;
				mapTargetImg.title  	= mapTargetImg.alt;
				mapTargetImg.className	= this.className;

				return false;
			};
		}
	}
	
	document.getElementById("display_highlights").onclick = 
	document.getElementById("display_highlights").onkeypress = function() {
		// Disable (toggle off) error/status messages and images
		mapIntroText.style.display = "none";
		mapUnauthorized.style.display = "none";
		mapUnavailable.style.display = "none";		
		mapTargetImg.style.display = "none";
		
		// Enable (toggle on) weather highlights
		mapHighlights.style.display = "block";
	};
	
	return false;
}

// Highlight a specific link and remove highlight 
// from any previous link(s)
function HighlightLink(e, collection) {
	for(var x = 0; x < collection.length; x++) {
		collection[x].style.color = "#757575";
		collection[x].style.fontWeight = "normal";
	}
	
	e.style.color = "#97bf0c";
	e.style.fontWeight = "bold";
}

// Toggle content block(s) on/off
function ToggleContent(e) {
	var targetContent = document.getElementById(e);
	
	if(targetContent.style.display == "" || targetContent.style.display == "none") {
		targetContent.style.display = "block";
	} else {
		targetContent.style.display = "none";
	}
}

// Make this my homepage
function setHomePage(e) {
	if(e.href.length > 0 && document.attachEvent) {
		//targetLink[0].href = "javascript:history.go(0)";
		e.style.behavior = "url(#default#homepage)";
		e.setHomePage(location.href);
		
		return false;
	} else {
		var setHomeInstruct = window.open(e.href, "setHomeInstructions");
		return false;
	}
}

// Shade tables if a trigger class name is set
function TableShader() {
	var tableShader = document.getElementsByTagName("table");
	var trigger = "shading";
	
	for(var x = 0; x < tableShader.length; x++) {
		if(tableShader[x].className == trigger) {
			var rowsInTable = tableShader[x].getElementsByTagName("tr");
			
			for(var y = 0; y < rowsInTable.length; y++) {
				if(y % 2 == 0) {
					rowsInTable[y].className = "shade";
				}
			}
		}
	}
}

// E-mail Updates Form
function submitForm(lang)
{
	var continueToSubmit = true;
	if( continueToSubmit && document.getElementById("postsubscr").OILB_37491.value.length == 0 )
	{
		continueToSubmit = false;
		if(lang == "en") { alert('You must provide your name.'); } 
		else { alert('Vous devrez indiquer votre nom'); }
		document.getElementById("postsubscr").OILB_37491.focus();
	}
	if( continueToSubmit && document.getElementById("postsubscr").OILB_EMAIL.value.length != 0 )
	{
		var emailValue = document.getElementById("postsubscr").OILB_EMAIL.value;
		if( ( emailValue.indexOf( '@' ) <= 0 ) || ( emailValue.indexOf( '.', emailValue.indexOf( '@' ) ) <= 0 ) )
	{
			continueToSubmit = false;
			if(lang == "en") { alert('You must provide a valid email address.'); }
			else { alert('Vous devrez indiquer une adresse de courriel valide'); }
			document.getElementById("postsubscr").OILB_EMAIL.focus();
		}
	}
	if( continueToSubmit && document.getElementById("postsubscr").OILB_EMAIL.value.length == 0 )
	{
		continueToSubmit = false;
		if(lang == "en") { alert('You must provide your e-mail address.'); }
		else { alert('Vous devrez indiquer votre adresse de courriel'); }
		document.getElementById("postsubscr").OILB_EMAIL.focus();
	}
	if( continueToSubmit && document.getElementById("postsubscr").OILB_40649.value.length == 0 )
	{
		continueToSubmit = false;
		if(lang == "en") { alert('You must provide your Province or State.'); }
		else { alert('Vous devrez indiquer votre province ou état'); }
		document.getElementById("postsubscr").OILB_40649.focus();
	}
	if( continueToSubmit )
	{		
		//document.getElementById("postsubscr").submit();
		return true;
	}
	return false;
}

// Text Resizer
function AdjustTextSize(dir) {
	var currStyleSheet = getActiveStyleSheet();

	// Enlarge Text
	if(dir) {
		switch(currStyleSheet) {
			case "largest":	break;				
			case "larger": setActiveStyleSheet("largest"); break;			
			case "medium": setActiveStyleSheet("larger"); break;				
			case "smaller": setActiveStyleSheet("medium"); break;				
			case "smallest": setActiveStyleSheet("smaller"); break;				
			default: setActiveStyleSheet("larger");	
		}
	} 
	// Shrink Text
	else {
		switch(currStyleSheet) {
			case "largest":	setActiveStyleSheet("larger"); break;				
			case "larger": setActiveStyleSheet("medium"); break;				
			case "medium": setActiveStyleSheet("smaller"); break;				
			case "smaller": setActiveStyleSheet("smallest"); break;				
			case "smallest": break;				
			default: setActiveStyleSheet("smaller");	
		}
	}	
	
	return false;
}

function LowBandwidth(status) {
	if(status) {
		cookieBW = "bandwidth";
		createCookie("bandwidth", cookieBW, 365);
	} else {
		cookieBW = "graphical";
		createCookie("bandwidth", cookieBW, 365);
	}	
	window.location.reload(); 
	return false;
	
}
