// Array to hold handles to document links
var document_links = new Array();
// Array to hold handles to external links
var external_links = new Array();

//enable text search
var TextSearch;
var rad1;
var rad2;
var btnsearch;

//CSS Removal/Restore global vars
var tolink;
var removed_css = new Array();

function addEvent(elm, evType, fn, useCapture)
{
	if (elm.addEventListener)
	{
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.attachEvent)
	{
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}
	else
	{
		elm['on' + evType] = fn;
	}
}

function getElement(e)
{
	var el;
	if (window.event && window.event.srcElement)
	{
		el = window.event.srcElement;
	}
	if (e && e.target)
	{
		el = e.target;
	}
	if (!el)
	{
	return false;
	}
	else
	{
		return el;
	}
}

function addListeners()
{
	addLinkListeners();
	setContentHeight();
	tolink = document.getElementById("text_only_link").firstChild;
	addEvent(tolink, 'click', setTextOnly, false);
	
//Check if CSS Cookie has been set and if so change CSS
var Check_Cookie = readCookie("CSS_Switch");
if (Check_Cookie == "TXT")
	{ 
		var csstags = document.getElementsByTagName("link");
		while (csstags.length > 0)
			{
				if(csstags[0].getAttribute("rel") == 'stylesheet')
					{
						var removecss = csstags[0].getAttribute("href");
						removed_css.push(csstags[0].getAttribute("href"));
						removejscssfile(removecss, "css");	
					}
			}
				
			tolink.innerHTML = "Graphical version";
			loadjscssfile("/Styles/text_only.css", "css");
	}
//------------------------------------------------------

//when page loads disabled the search until an option is selected
TextSearch = document.getElementById("txt_search");
TextSearch.disabled = true;

btnsearch = document.getElementById("btn_search");
btnsearch.disabled = true;

Rad1 = document.getElementById("Rad1");
Rad2 = document.getElementById("Rad2");

addEvent(Rad1, 'click', enableSearch, false);
addEvent(Rad2, 'click', enableSearch, false);
//--------------------------------------------------------------

}

addEvent(window, 'load', addListeners, false);

function enableSearch(e){
	TextSearch.disabled = false;
	btnsearch.disabled = false;
}

	
function setTextOnly(e){
		
if(tolink.innerHTML != "Graphical version")
	{
		
		var csstags = document.getElementsByTagName("link");
			while (csstags.length > 0)
				{
					if(csstags[0].getAttribute("rel") == 'stylesheet')
						{
							var removecss = csstags[0].getAttribute("href");
							removed_css.push(csstags[0].getAttribute("href"));
							removejscssfile(removecss, "css");
						}
					}
				
		tolink.innerHTML = "Graphical version";
		loadjscssfile("/Styles/text_only.css", "css");
		createCookie("CSS_Switch","TXT",120);
	}
		
else
	{
		
		removejscssfile("/Styles/text_only.css", "css");
		tolink.innerHTML = "<strong>Text only version</strong>";
		eraseCookie("CSS_Switch");
			
			for (var i = 0; i < removed_css.length; i++)
				{
					loadjscssfile(removed_css[i], "css");
				}
	}


if (window.event)
	{
		window.event.returnValue = false;
	}
	else if (e && e.preventDefault)
	{
		e.preventDefault();
	}
	else
	{
		return false;
	}
}

function addLinkListeners()
{
	var links = document.getElementsByTagName("a");
	for (var i = 0; i < links.length; i++)
	{
		if (/^document$/.test(links[i].className))
		{
			document_links.push(links[i]);
		}
		if (/^external$/.test(links[i].className))
		{
			external_links.push(links[i]);
		}
	}
	for (var d = 0; d < document_links.length; d++)
	{
		addEvent(document_links[d], 'click', openLinkInNewWindow, false);
	}
	for (var e = 0; e < external_links.length; e++)
	{
		addEvent(external_links[e], 'click', openLinkInNewWindow, false);
	}
	
	var h_tab = document.getElementById("btn_home");
	var h_text = document.getElementById("btn_home_text");
	addEvent(h_tab, 'mouseover', mOver_Home, false);
	addEvent(h_tab, 'mouseout', mOut_Home, false);
	addEvent(h_text, 'mouseover', mOver_Home, false);
	addEvent(h_text, 'mouseout', mOut_Home, false);
	
	var s_tab = document.getElementById("btn_school_leavers");
	var s_text = document.getElementById("btn_school_leavers_text");
	addEvent(s_tab, 'mouseover', mOver_SL, false);
	addEvent(s_tab, 'mouseout', mOut_SL, false);
	addEvent(s_text, 'mouseover', mOver_SL, false);
	addEvent(s_text, 'mouseout', mOut_SL, false);
	
	var a_tab = document.getElementById("btn_adult_learners");
	var a_text = document.getElementById("btn_adult_learners_text");
	addEvent(a_tab, 'mouseover', mOver_AL, false);
	addEvent(a_tab, 'mouseout', mOut_AL, false);
	addEvent(a_text, 'mouseover', mOver_AL, false);
	addEvent(a_text, 'mouseout', mOut_AL, false);
	
	var e_tab = document.getElementById("btn_employers");
	var e_text = document.getElementById("btn_employers_text");
	addEvent(e_tab, 'mouseover', mOver_Emp, false);
	addEvent(e_tab, 'mouseout', mOut_Emp, false);
	addEvent(e_text, 'mouseover', mOver_Emp, false);
	addEvent(e_text, 'mouseout', mOut_Emp, false);
	
	var i_tab = document.getElementById("btn_international");
	var i_text = document.getElementById("btn_international_text");
	addEvent(i_tab, 'mouseover', mOver_Int, false);
	addEvent(i_tab, 'mouseout', mOut_Int, false);
	addEvent(i_text, 'mouseover', mOver_Int, false);
	addEvent(i_text, 'mouseout', mOut_Int, false);
	
	var j_tab = document.getElementById("btn_jobs");
	var j_text = document.getElementById("btn_jobs_text");
	addEvent(j_tab, 'mouseover', mOver_Job, false);
	addEvent(j_tab, 'mouseout', mOut_Job, false);
	addEvent(j_text, 'mouseover', mOver_Job, false);
	addEvent(j_text, 'mouseout', mOut_Job, false);
}

function openLinkInNewWindow(e)
{
	var curLink = getElement(e);
	if (curLink.nodeName == "IMG")
	{
		curLink = curLink.parentNode;
	}
	var destination = curLink.getAttribute("href");
	window.open(destination);
	if (window.event)
	{
		window.event.returnValue = false;
	}
	else if (e && e.preventDefault)
	{
		e.preventDefault();
	}
	else
	{
		return false;
	}
}

function setContentHeight()
{
	var content_div = document.getElementById("content");
	var nav_div = document.getElementById("section_navigation");
	if (content_div.offsetHeight < (nav_div.offsetHeight - 38))
	{
		content_div.style.height = (nav_div.offsetHeight - 38) + 'px';
	}
}

function setOpacity(obj, opacity)
{
	opacity = (opacity == 100)?99.999:opacity;
	
	// IE/Win
	obj.style.filter = "alpha(opacity="+opacity+")";
	
	// Safari<1.2, Konqueror
	obj.style.KhtmlOpacity = opacity/100;
	
	// Older Mozilla and Firefox
	obj.style.MozOpacity = opacity/100;
	
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = opacity/100;

}

function mOver_Home(e)
{
	var tab = document.getElementById("btn_home");
	setOpacity(tab, 50);
}

function mOut_Home(e)
{
	var tab = document.getElementById("btn_home");
	setOpacity(tab, 100);
}

function mOver_SL(e)
{
	var tab = document.getElementById("btn_school_leavers");
	setOpacity(tab, 50);
}

function mOut_SL(e)
{
	var tab = document.getElementById("btn_school_leavers");
	setOpacity(tab, 100);
}

function mOver_AL(e)
{
	var tab = document.getElementById("btn_adult_learners");
	setOpacity(tab, 50);
}

function mOut_AL(e)
{
	var tab = document.getElementById("btn_adult_learners");
	setOpacity(tab, 100);
}

function mOver_Emp(e)
{
	var tab = document.getElementById("btn_employers");
	setOpacity(tab, 50);
}

function mOut_Emp(e)
{
	var tab = document.getElementById("btn_employers");
	setOpacity(tab, 100);
}

function mOver_Int(e)
{
	var tab = document.getElementById("btn_international");
	setOpacity(tab, 50);
}

function mOut_Int(e)
{
	var tab = document.getElementById("btn_international");
	setOpacity(tab, 100);
}

function mOver_Job(e)
{
	var tab = document.getElementById("btn_jobs");
	setOpacity(tab, 50);
}

function mOut_Job(e)
{
	var tab = document.getElementById("btn_jobs");
	setOpacity(tab, 100);
}


//Remove CSS/or JS

function loadjscssfile(filename, filetype){
 if (filetype=="js"){ //if filename is a external JavaScript file
  var fileref=document.createElement('script')
  fileref.setAttribute("type","text/javascript")
  fileref.setAttribute("src", filename)
 }
 else if (filetype=="css"){ //if filename is an external CSS file
  var fileref=document.createElement("link")
  fileref.setAttribute("rel", "stylesheet")
  fileref.setAttribute("type", "text/css")
  fileref.setAttribute("href", filename)
  
  if(filename == '/Styles/print.css')
  	  {
		  fileref.setAttribute("media", "print");
	  }
  else
	{	
		fileref.setAttribute("media", "screen");
	}
 }
 if (typeof fileref!="undefined")
  document.getElementsByTagName("head")[0].appendChild(fileref)
}

function removejscssfile(filename, filetype){
 var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist from
 var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to test for
 var allsuspects=document.getElementsByTagName(targetelement)
 for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove
  if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1)
   allsuspects[i].parentNode.removeChild(allsuspects[i]) //remove element by calling parentNode.removeChild()
 }
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
