﻿/// <reference path="~/Scripts/Utilities.js />

var widescreenOffset = null;
var widescreen = false;

var currentWidth = null;
//var expandedWidth = null;

var jqWidescreen = null;
var jqOriginalWidth = null;

function GetDate()
{
	var now = new Date();
	return now.toDateString();
}

function GetTime()
{
	var now = new Date();
	var hours = now.getHours();
	var minutes = now.getMinutes();
	var seconds = now.getSeconds();
	
	hours = (hours <= 9 ? "0" : "") + hours;
	minutes = (minutes <= 9 ? "0" : "") + minutes;
	seconds = (seconds <= 9 ? "0" : "") + seconds;
	
	var time = hours + ":" + minutes + ":" + seconds;
	return time;
}

function SetCopyAndPaste()
{
	$(".copy-and-paste").click
	(
		function(e)
		{
			this.select();
		}
	)
}

function SetExternalLinks()
{
	$("a[@rel$='external']").click
	(
		function(e)
		{
			this.target = "_blank";
		}
	);
}

function Tick(el)
{
	$(el).html(GetTime());

	setTimeout
	(
		function()
		{
			Tick(el);
		},
		1000
	)
}

function JQLoads()
{
	$(document).ready
	(
		function($)
		{
			SetExternalLinks();
			

		
		/* BEGIN on loaded functions */
			var fadeDuration = 150; //time in milliseconds

			var originalFontSize = null;

			
			
			function GetOriginalFontSize()
			{
				var currentFontSize = null;
				var suffix = null;
			
				var css = $(".map").css("font-size");
				var style = GetStyle($(".map").get(0), "font-size");
				
				if (css == style)
				{
					currentFontSize = parseInt(css);
					suffix = "px";
				}
				else
				{
					currentFontSize = parseInt(style);
					suffix = "%";
				}
				
				originalFontSize = currentFontSize + suffix;
			}
			

			

			
			


			SetIE6();
			if (IsIE6())
			{
				WireMenu();
			}
			
			
			
			var MediaHasBackgroundImage = $(".content .container-media .media").css("background-image");
			var GraphicHasBackgroundImage = $(".content .container-graphic .graphic").css("background-image");
			var HasBackgroundImage = MediaHasBackgroundImage || GraphicHasBackgroundImage;
			
			if ((HasBackgroundImage) && (HasBackgroundImage != "none"))
			{
				$(".container-breadcrumbs").prepend("<a class=\"widescreen-trigger\">click here for widescreen!</a>");
			}

			$(".widescreen-trigger").click
			(
				function(event)
				{
					var newWidth = null;
					var offsetLeft = $(".container-main").css("padding-left");
					var offsetRight = $(".container-main").css("padding-right");
					var widescreenOffset = parseInt(offsetLeft) + parseInt(offsetRight);
					var expandedWidth = document.body.offsetWidth - widescreenOffset;
					
					if (jqWidescreen == null)
					{
						jqOriginalWidth = parseInt($(".widescreen").css("width"));
						jqWidescreen = false;
					}
					
					jqWidescreen = !jqWidescreen;
					
					if (jqWidescreen == true)
					{
						newWidth = expandedWidth + "px";
					}
					else
					{
						newWidth = jqOriginalWidth + "px";
						
					}
					

					$(".widescreen").animate
					(
						{ width: newWidth }, "slow",
						function()
						{
							if (jqWidescreen == true)
							{
								$(".widescreen").css("width", "100%");
							}
						}
					);

					event.preventDefault();
				}
			)




			SetCopyAndPaste();
			


			
			
			
		
			//Tick();
			$("#GPSDate").html(GetDate());		
			
			$("#GPSDown").click
			(
				function()
				{
					var factor = -1;
					var currentFontSize = null;
					var newFontSize = null;
					var suffix = null;
				
					var css = $(".map").css("font-size");
					var style = GetStyle($(".map").get(0), "font-size");
					
					if (css == style)
					{
						currentFontSize = parseInt(css);
						newFontSize = currentFontSize + factor;
						suffix = "px";
					}
					else
					{
						currentFontSize = parseInt(style);
						newFontSize = currentFontSize + (factor * 10);
						suffix = "%";
					}
					
					$(".map").css({ fontSize: newFontSize + suffix });
				}
			)
			
			$("#GPSUp").click
			(
				function()
				{
					var factor = +1;
					var currentFontSize = null;
					var newFontSize = null;
					var suffix = null;
				
					var css = $(".map").css("font-size");
					var style = GetStyle($(".map").get(0), "font-size");
					
					if (css == style)
					{
						currentFontSize = parseInt(css);
						newFontSize = currentFontSize + factor;
						suffix = "px";
					}
					else
					{
						currentFontSize = parseInt(style);
						newFontSize = currentFontSize + (factor * 10);
						suffix = "%";
					}
					
					$(".map").css({ fontSize: newFontSize + suffix });
				}
			)
			
			$("#GPSDefault").click
			(
				function()
				{
					$(".map").css({ fontSize: originalFontSize });
				}
			)
			


			$(".map li a").hover
			(
				function()
				{
					$(this).animate({ paddingLeft: "60px" }, fadeDuration);
				},
				function()
				{
					$(this).animate({ paddingLeft: "30px" }, fadeDuration);
				}
			);
										

			

			
		
		/* END - on loaded functions */
		}
	);
}

function SetIE6()
{
	if (IsIE6())
	{
		MatchColumnHeights();	
	}
}

function MatchColumnHeights()
{
	var highest = null;
	
	var left_height = $(".container-column-left").height();
	var right_height = $(".container-column-right").height();
	var middle_height = $(".container-column-middle").height();			
	
	if (left_height > right_height)
	{
		highest = left_height;
	}
	else
	{
		highest = right_height;
	}
	
	if (middle_height > highest)
	{
		highest = middle_height;
	}

	$(".container-column-left").height(highest);
	$(".container-column-right").height(highest);
	$(".container-column-middle").height(highest);
}

function WireMenu()
{
	$(".menu a.parent").addClass("collapsed");
	
	$(".menu a.parent").click
	(
		function(event)
		{
			$(this).next().toggle();
			event.preventDefault();
			
			var remove = "collapsed";
			var add = "expanded";
			
			if ($(this).hasClass("expanded"))
			{
				remove = "expanded";
				add = "collapsed";
			}
				
			$(this).removeClass(remove).addClass(add);
		}
	).next().hide();

	$(".menu .selected").parent().prev("a").removeClass("collapsed").addClass("expanded");
	$(".menu .selected").parent().parent().prev("a").removeClass("collapsed").addClass("expanded");
	$(".menu .selected").parent().removeClass("collapsed").addClass("expanded").show().parent().removeClass("collapsed").addClass("expanded").show().parent().removeClass("collapsed").addClass("expanded").show().prev("a").removeClass("collapsed").addClass("expanded");
}

function IsIE6()
{
	return (BrowserDetect.browser == "Explorer" && BrowserDetect.version == "6")
}








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();