function AttachOnload(MyFunction) {
	if (window.attachEvent) { window.attachEvent("onload",MyFunction); }
	else if (window.addEventListener) { window.addEventListener("load",MyFunction,false); }
}

// Check for targetblank
function makeLinksPopup() {
	convertLinks("a");	// Links
	convertLinks("area");	// Image Maps
}


function convertLinks(tagType) {
	var targets = document.getElementsByTagName(tagType); 
	if (targets) {
		for (var i = 0; i < targets.length; i++) {
			if (targets[i].rel) {
				if (targets[i].rel == "targetblank") {
					targets[i].target = "_blank";
				}
			}
		}
	}
}

function splitBrowsers(id) {
	if (typeof(document.styleSheets[id].cssRules) == "object") {
		return document.styleSheets[id].cssRules;
	}
	else {
		return document.styleSheets[id].rules;
	}
}

function getStyleBySelector( selector ) {
   var sheetList = document.styleSheets;
   var ruleList;
   var i, j;

   /* look through stylesheets in reverse order that they appear in the document */
   for (i=sheetList.length-1; i >= 0; i--) {
	   ruleList = splitBrowsers(i);
	   for (j=0; j<ruleList.length; j++) {
		   if (ruleList[j].selectorText == selector) {
				return ruleList[j].style;
		   }   
	   }
   }
   return null;
}

// Alternative to m.offsetLeft as some browsers take their offsets from the body while others take it from the parent element
function FindPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x) { curleft += obj.x; }
	return curleft;
}

// Alternative to m.offsetTop as some browsers take their offsets from the body while others take it from the parent element
function FindPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y) { curtop += obj.y; }
	return curtop;
}

// get the height of the window
function GetWindowHeight() {
	if (window.innerHeight) 
		var window_height = window.innerHeight;
	else {
		if (document.documentElement.clientHeight)
			var window_height = document.documentElement.clientHeight;
		else
			var window_height = document.body.clientHeight;
	}
	return window_height;
}

// get the position of the scroll bar
function GetScrollTop() {
	if (window.pageYOffset)
		var window_top = window.pageYOffset;
	else {
		if (document.documentElement.scrollTop)
			var window_top = document.documentElement.scrollTop;
		else
			var window_top = document.body.scrollTop;
	}
	return window_top;
}

function writeThickboxCSS() {
	var obj1=getStyleBySelector("#TB_overlay");
	obj1.Opacity="0.6";
	obj1.MozOpacity="0.6";
	obj1.filter="alpha(opacity=60)";

	var obj2=getStyleBySelector("#TB_HideSelect");
	obj2.Opacity="0";
	obj2.MozOpacity="0";
	obj2.filter="alpha(opacity=0)";
}

// Attaches a style to the page e.g. AttachStyle("#wrapper", "width:500px");
function AttachStyle(to, what) {

	// IE of course needs its own version
		if (document.createStyleSheet) {
			var obj = document.createStyleSheet();
			return obj.addRule(to, what);
		}

	// for the good browsers
		var head = document.getElementsByTagName("head")[0];
		var obj = document.createElement("STYLE");

		if (obj && head) {
			obj.setAttribute("type", "text/css");

			var entry = document.createTextNode(to + " { " + what + " }");

			if (obj.appendChild && head.appendChild) {
				obj.appendChild(entry);
				head.appendChild(obj);
			}
		}
}

// attaches a stylesheet to the page
function AttachStyleSheet(src) {

	var head = document.getElementsByTagName("head")[0];
	var obj = document.createElement("link");

	if (obj && head) {
		obj.setAttribute("type", "text/css");
		obj.setAttribute("rel", "stylesheet");
		obj.setAttribute("href", src);

		if (head.appendChild) head.appendChild(obj);
	}
}

function LoadFlash() 
{
	var flash_header = document.getElementById("flash_header");
	if (!flash_header) return;
	
	flash_header.innerHTML = '<EMBED src="images/header2.swf" quality="high" loop="false" bgcolor=#88D03C WIDTH="381" HEIGHT="197" NAME="Header Flash File" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" style="z-index: 9;"></EMBED>';
}


function ViewHoverOptions() 
{
	document.getElementById("hoverimg").style.display = "block"; 
	return;
}

function HideHoverOptions() 
{
	document.getElementById("hoverimg").style.display = "none"; 
	return;
}


function CheckLength(val,id) {
	
	var Length = val;
	var ID = id;
	var Pass = document.getElementById("password");

	if (Pass) {
		if (Pass.value.length < Length) {
			document.getElementById(ID).style.display = 'block'; 				
			document.getElementById(ID).innerHTML = 'Your password must be at least ' + Length + ' characters long!'; 
		} else {
			document.getElementById(ID).style.display = 'none'; 				
		}
	}

}

function GetVerticalPosition(obj) 
{
	var y = 0;

	if (typeof(obj) == "string") obj = document.getElementById(obj); 

	if (obj.offsetTop == 'undefined') obj = obj.parentNode;

	while (obj)
	{
		y+= obj.offsetTop;
		obj = obj.offsetParent;
	}

	return y;
}

function HighlightFormField() 
{
	var error_pos = 260;
	var windowHeightOffset = 75;

	if (highlight_field)
	{
		highlight_field = document.getElementById(highlight_field); 

		if (highlight_field)
		{
			highlight_field.style.borderColor = "#C00000";
			highlight_field.style.backgroundColor = "#EBD9D9";

			// only focus field if the error and field can both be seen on the screen at the same time...
				var offsetHeight = GetVerticalPosition(highlight_field);
				var scrollTop = GetScrollTop()
				var windowHeight = GetWindowHeight();

				//document.title = "oH=" + offsetHeight + ", ep=" + error_pos + ", wH=" + windowHeight + ", wHO=" + windowHeightOffset + ", oH-ep=" + (offsetHeight - error_pos) + ", wH-wHO=" + (windowHeight - windowHeightOffset); 

				if ((offsetHeight - error_pos) <= (windowHeight - windowHeightOffset))
				{
					//document.title = "FOCUS: " + document.title;
					try
					{
						highlight_field.focus();
					}
					catch(e) {  }
				}
		}
	}
}

var highlight_field = "";


document.getObjectsInObject = function(objectName,objectSearch) 
{
	objectSearch = objectSearch.toUpperCase();

	var container = this.getElementById(objectName);

	var arr = new Array();

	if (container.hasChildNodes()) {

		for (var i=0;i<container.childNodes.length; i++)
		{
			var tagName = container.childNodes[i].tagName || "";

			if (tagName.toUpperCase() == objectSearch) {

				arr.push(container.childNodes[i]);

			}
		}

	}

	return arr;
}

function changeLayer(id) 
{
	var divs = document.getObjectsInObject("container", "div");

	for (var i = 0; i < divs.length ; i++)
	{
		var div_id = document.getElementById(divs[i].id);

		div_id.style.display = "none";
	}

	var display_layer = document.getElementById(id);

	
	display_layer.style.display = "block";
}

function changeLayer2(id) 
{
	var divs = document.getObjectsInObject("comms_container", "div");

	for (var i = 0; i < divs.length ; i++)
	{
		var div_id = document.getElementById(divs[i].id);

		div_id.style.display = "none";
	}

	var display_layer = document.getElementById(id);

	
	display_layer.style.display = "block";
}


function ShowRating(rating, address,on_vid_page,inc_links,video_id,base_address) 
{
	var r = rating;
	var rating_return = "";
	var file_path = address;
	var onvid = on_vid_page;
	var ilinks = inc_links;
	var vid_id = video_id;
	var base = base_address;
	
	if (r <= 5) {

			rating_return += "<ul>";

			if (r > 0) 
				rating_return += "<li>" + (ilinks == 1? "<a href=\"#\" onmouseover=\"ratingsHover(1)\" onmouseout=\"ratingsClear()\" onclick=\"doRating('" + vid_id +"','1'); ShowRating('1','" + base + "',1); return false;\">" : "") + "<img id=\"r1\" src=\"" + file_path + "images/ratings/stage_5.gif\" width=\"12\" height=\"12\" alt=\"Bad\">"  + (ilinks == 1? "</a>" : "") +  "</li>";				
			else
				rating_return += "<li>" + (ilinks == 1? "<a href=\"#\" onmouseover=\"ratingsHover(1)\" onmouseout=\"ratingsClear()\" onclick=\"doRating('" + vid_id +"','1'); ShowRating('1','" + base + "',1); return false;\">" : "") + "<img id=\"r1\" src=\"" + file_path + "images/ratings/empty.gif\" width=\"12\" height=\"12\"" + (ilinks == 1? " alt=\"Blank Rating\" " : " alt=\"You must be logged in to rate a video!\" title=\"Blank rating - Please ensure you are logged in if you want to rate this video!\" ") + ">"  + (ilinks == 1? "</a>" : "") +  "</li>";
		
			if (r >= 2) 
				rating_return += "<li>" + (ilinks == 1? "<a href=\"#\" onmouseover=\"ratingsHover(2)\" onmouseout=\"ratingsClear()\" onclick=\"doRating('" + vid_id +"','2'); ShowRating('2','" + base + "',1); return false;\">" : "") + "<img id=\"r2\" src=\"" + file_path + "images/ratings/stage_4.gif\" width=\"12\" height=\"12\" alt=\"Okay\">"  + (ilinks == 1? "</a>" : "") +  "</li>";				
			else
				rating_return += "<li>" + (ilinks == 1? "<a href=\"#\" onmouseover=\"ratingsHover(2)\" onmouseout=\"ratingsClear()\" onclick=\"doRating('" + vid_id +"','2'); ShowRating('2','" + base + "',1); return false;\">" : "") + "<img id=\"r2\" src=\"" + file_path + "images/ratings/empty.gif\" width=\"12\" height=\"12\"" + (ilinks == 1? " alt=\"Blank Rating\" " : " alt=\"You must be logged in to rate a video!\" title=\"Blank rating - Please ensure you are logged in if you want to rate this video!\" ") + ">"  + (ilinks == 1? "</a>" : "") +  "</li>";

			if (r >= 3) 
				rating_return += "<li>" + (ilinks == 1? "<a href=\"#\" onmouseover=\"ratingsHover(3)\" onmouseout=\"ratingsClear()\" onclick=\"doRating('" + vid_id +"','3'); ShowRating('3','" + base + "',1); return false;\">" : "") + "<img id=\"r3\" src=\"" + file_path + "images/ratings/stage_3.gif\" width=\"12\" height=\"12\" alt=\"Good\">"  + (ilinks == 1? "</a>" : "") +  "</li>";				
			else
				rating_return += "<li>" + (ilinks == 1? "<a href=\"#\" onmouseover=\"ratingsHover(3)\" onmouseout=\"ratingsClear()\" onclick=\"doRating('" + vid_id +"','3'); ShowRating('3','" + base + "',1); return false;\">" : "") + "<img id=\"r3\" src=\"" + file_path + "images/ratings/empty.gif\" width=\"12\" height=\"12\"" + (ilinks == 1? " alt=\"Blank Rating\" " : " alt=\"You must be logged in to rate a video!\" title=\"Blank rating - Please ensure you are logged in if you want to rate this video!\" ") + ">"  + (ilinks == 1? "</a>" : "") +  "</li>";

			if (r >= 4) 
				rating_return += "<li>" + (ilinks == 1? "<a href=\"#\" onmouseover=\"ratingsHover(4)\" onmouseout=\"ratingsClear()\" onclick=\"doRating('" + vid_id +"','4'); ShowRating('4','" + base + "',1); return false;\">" : "") + "<img id=\"r4\" src=\"" + file_path + "images/ratings/stage_2.gif\" width=\"12\" height=\"12\" alt=\"Very Good\">"  + (ilinks == 1? "</a>" : "") +  "</li>";				
			else
				rating_return += "<li>" + (ilinks == 1? "<a href=\"#\" onmouseover=\"ratingsHover(4)\" onmouseout=\"ratingsClear()\" onclick=\"doRating('" + vid_id +"','4'); ShowRating('4','" + base + "',1); return false;\">" : "") + "<img id=\"r4\" src=\"" + file_path + "images/ratings/empty.gif\" width=\"12\" height=\"12\"" + (ilinks == 1? " alt=\"Blank Rating\" " : " alt=\"You must be logged in to rate a video!\" title=\"Blank rating - Please ensure you are logged in if you want to rate this video!\" ") + ">"  + (ilinks == 1? "</a>" : "") +  "</li>";

			if (r == 5) 
				rating_return += "<li>" + (ilinks == 1? "<a href=\"#\" onmouseover=\"ratingsHover(5)\" onmouseout=\"ratingsClear()\" onclick=\"doRating('" + vid_id +"','5'); ShowRating('5','" + base + "',1); return false;\">" : "") + "<img id=\"r5\" src=\"" + file_path + "images/ratings/stage_1.gif\" width=\"12\" height=\"12\" alt=\"Funky!\">"  + (ilinks == 1? "</a>" : "") +  "</li>";				
			else
				rating_return += "<li>" + (ilinks == 1? "<a href=\"#\" onmouseover=\"ratingsHover(5)\" onmouseout=\"ratingsClear()\" onclick=\"doRating('" + vid_id +"','5'); ShowRating('5','" + base + "',1); return false;\">" : "") + "<img id=\"r5\" src=\"" + file_path + "images/ratings/empty.gif\" width=\"12\" height=\"12\"" + (ilinks == 1? " alt=\"Blank Rating\" " : " alt=\"You must be logged in to rate a video!\" title=\"Blank rating - Please ensure you are logged in if you want to rate this video!\" ") + ">"  + (ilinks == 1? "</a>" : "") +  "</li>";

			rating_return += "</ul>";

		
		if (onvid<1) {
			return document.write(rating_return);
		} else {
			document.getElementById("ratings").innerHTML = "Rate this video:&nbsp;&nbsp;&nbsp;" + rating_return; 
		}
	}
}

var img_stage_1 = new Image();
img_stage_1.src = "images/ratings/stage_5.gif";

function ratingsHover(rating_num) 
{
	var num = rating_num;

	if (num) {

		var r1 = document.getElementById("r1"); 
		var r2 = document.getElementById("r2"); 
		var r3 = document.getElementById("r3"); 
		var r4 = document.getElementById("r4"); 
		var r5 = document.getElementById("r5"); 
		var r_txt = document.getElementById("ratings_txt"); 

		r_txt.style.display = "block";

		if (num>=1) {

			r1.src = img_stage_1.src;

			if (num>=2)
				r2.src = "images/ratings/stage_4.gif";
			else
				r2.src = "images/ratings/empty.gif";

			if (num>=3)
				r3.src = "images/ratings/stage_3.gif";
			else
				r3.src = "images/ratings/empty.gif";

			if (num>=4)
				r4.src = "images/ratings/stage_2.gif";
			else
				r4.src = "images/ratings/empty.gif";

			if (num==5)
				r5.src = "images/ratings/stage_1.gif";
			else
				r5.src = "images/ratings/empty.gif";

			if (num==5)
				r_txt.innerHTML = 'Funky!';
			else if (num==4)
				r_txt.innerHTML = 'Very Good';
			else if (num==3)
				r_txt.innerHTML = 'Good';
			else if (num==2)
				r_txt.innerHTML = 'Okay';
			else
				r_txt.innerHTML = 'Bad';

		}
	}
}

function ratingsClear() 
{
	
	for (var i = 1;i<=5;i++)
	{
		document.getElementById("r" + i).src = "images/ratings/empty.gif"; 
	}
		document.getElementById("ratings_txt").style.display = "none"; 
}

function showLayer(layer_id) 
{
	var layer = document.getElementById(layer_id);

	if (layer) 
		layer.style.display = '';
}

function hideLayer(layer_id) 
{
	var layer = document.getElementById(layer_id);

	if (layer) 
		layer.style.display = 'none';
	
}

function hideBeta() 
{
	var id = document.getElementById("beta_img"); 

	id.style.display = "none";
}

function MyConfirm(theMessage,theTitle,YesIsDefault) 
{
	var answer = false;

	if (!YesIsDefault) YesIsDefault = false;

	if (!theTitle) theTitle = document.title;
	else if (theTitle == "") theTitle = document.title;

	if (hasVBscript)
	{
		answer = VBConfirm(theMessage,theTitle,(YesIsDefault ? 0 : 256));
		answer = (answer == 6);
	}
	else
		answer = confirm(theMessage);	

	return answer;
}

AttachOnload(makeLinksPopup);
AttachOnload(writeThickboxCSS);
AttachOnload(HighlightFormField);