<!--
	
	
	/*--------------------------------------------------------------------
		Used by a number of pages/scripts to store the ID of the currently displayed layer.
	--------------------------------------------------------------------*/
	var s = 0; // Used by all scripts requiring a variable
	var currentDD; // Used by live/navgation
	var checkStr = '';
				
				
	/*--------------------------------------------------------------------
		Generates for each listOption value a hidden field with a matching name followed by '[]' to accessed as an array by PHP $_REQUEST
		Use: switchSelects();
	--------------------------------------------------------------------*/
	function fillField(listOptions)
	{
		var list = listOptions + '2';
		numOptions = document.getElementById(list).options.length;
		if(numOptions)
		{
			for(i=1;i<=numOptions;i++)
			{
				str = '<input type="hidden" name="';
				str+= listOptions;
				str+= '[]" value="';
				str+= document.getElementById(list).options[i-1].value;
				str+= '">';
				document.getElementById(listOptions).innerHTML += str;
			}
		} else {
			str = '<input type="hidden" name="' + listOptions + '" value="">';
			document.getElementById(listOptions).innerHTML += str;
		}
	}
	
	
	/*--------------------------------------------------------------------
		Depending on value of mode, toggles element with ID between visibility:visible/hidden or display:block/none
	--------------------------------------------------------------------*/
	function showHideLayer(layerid,mode,display)
	{
		var layer = document.getElementById(layerid);
		if (mode == 1)
		{
			if (layer.style.visibility == 'visible')
			{
				layer.style.visibility = 'hidden';
			} else {
				layer.style.visibility = 'visible';
			}
		} else {
			if(!display)
				display = 'block';
			if (layer.style.display == display)
			{
				layer.style.display = 'none';
			} else if (layer.style.display == 'none') {
				layer.style.display = display;
			}
		}
	}
	
	
	/*--------------------------------------------------------------------
	
	
	--------------------------------------------------------------------*/
	function toggleLayers(ID,value)
	{
		switch(value)
		{
			case '0':
				var int = 'none';
				var ext = 'none';
				var linkTarget = 'none';
				break;
			case 'internal':
				var int = 'block';
				var ext = 'none';
				var linkTarget = 'inline';
				break;
			case 'external':
				var int = 'none';
				var ext = 'block';
				var linkTarget = 'inline';
				break;
		}
		document.getElementById('internal' + ID).style.display = int;
		document.getElementById('external' + ID).style.display = ext;
		document.getElementById('linkTarget' + ID).style.display = linkTarget;
	}
	
	
	/*--------------------------------------------------------------------
		Depending on value of mode, sets element with ID to visibility:visible or display:block
	--------------------------------------------------------------------*/
	function showLayer(ID,mode)
	{
		var layer = document.getElementById(ID);
		if(layer)
		{
			if (mode == 1)
			{
				layer.style.visibility = "visible";
			} else {
				layer.style.display = 'block';
			}
		}
	}
	
	
	/*--------------------------------------------------------------------
		Depending on value of mode, sets element with ID to visibility:hidden or display:none;
	--------------------------------------------------------------------*/
	function hideLayer(ID,mode)
	{
		var layer = document.getElementById(ID);
		if(layer)
		{
			if (mode == 1)
			{
				layer.style.visibility = 'hidden';
			} else {
				layer.style.display = 'none';
			}
		}
	}
	
	
	/*--------------------------------------------------------------------
		class.navigation.php
		Used by navigation2();
	--------------------------------------------------------------------*/
	function toggleNav(id)
	{
		hideLayer(s,0);
		removeClass(s);
		if(s != id)
		{
			showLayer(id,0);
			addClass(id);
			s = id;
		} else {
			s = 0;
		}
	}
	
	
	/*--------------------------------------------------------------------
		Used by toggleNav();
	--------------------------------------------------------------------*/
	function addClass(id)
	{
		var obj = document.getElementById(id + 'b');
		var objClass = obj.className;
		if (objClass.search(/parent/) == -1)
			var newClass = objClass + ' open';
		obj.className = newClass;
	}
	
	
	/*--------------------------------------------------------------------
		Used by toggleNav();
	--------------------------------------------------------------------*/
	function removeClass(id)
	{
		if(id)
		{
			var obj = document.getElementById(id + 'b');
			var objClass = obj.className;
			if(objClass.search(/ open/) != -1)
			{
				var newObjClass = objClass.replace(/ open/,'');
				obj.className = newObjClass;
			}
		}
	}
	
	
	/*--------------------------------------------------------------------
		Populates 2nd select menu
		Use: twin_selects() 
	--------------------------------------------------------------------*/
	function populateSelect(formName,select1,select2,topRow)
	{
		if(select1)
		{
			select1 = formName+select1;
			selectKeys = select1 + 'k';
			select2.options.length = 0;
			if (topRow)
			{
				select2.options[0] = new Option(topRow, 0);
				select2.options[0].selected = true;
			}
			if(window[select1])
			{
				for (var i=0; i < window[select1].length; i++)
				{
					if (topRow)
					{
						select2.options[i+1] = new Option(window[select1][i],window[selectKeys][i]);
					} else {
						select2.options[i] = new Option(window[select1][i],window[selectKeys][i]);
						i+1;
					}
				}
			}
			select2.disabled = false;
		}
	}
	
	
	/*--------------------------------------------------------------------


	--------------------------------------------------------------------*/
	function populateSelect2(selectName,select1,select2,topRow)
	{
		if(select1)
		{
			select1 = selectName + select1;
			selectKeys = select1 + 'k';
			select2.options.length = 0;
			if (topRow)
			{
				select2.options[0] = new Option(topRow, 0);
				select2.options[0].selected = true;
			}
			if(window[select1])
			{
				for (var i=0; i < window[select1].length; i++)
				{
					if (topRow)
					{
						select2.options[i+1] = new Option(window[select1][i],window[selectKeys][i]);
					} else {
						select2.options[i] = new Option(window[select1][i],window[selectKeys][i]);
						i+1;
					}
				}
			}
			select2.disabled = false;
		}
		if(select2.length == 1)
			select2.disabled = true;
	}
	
	
	/*--------------------------------------------------------------------
		Possibly used or apapted for the library to preview flash movies
		NOT IN USE.
	--------------------------------------------------------------------*/
	function controlFlash(objStr) {
		var obj = document.getElementById(objStr);
		if (obj.IsPlaying()) {
			obj.stop();
		} else {
			obj.play();
		}
	}
	
		
	/*--------------------------------------------------------------------
		Highlights selected item in toolbar
		Use: class.toolbar.php
	--------------------------------------------------------------------*/
	function toggleSelection(i) {
		if(s && i)
		{
			document.getElementById(s).className='treeItem';
			document.getElementById(i).className='treeItemSelected';
			s = i;	
		}
	}
	
	
	/*--------------------------------------------------------------------
		Controls page selection
		Use: class.treemenu.php for 
	--------------------------------------------------------------------*/
	function pageSelection(ID,active,lnk)
	{
		if(active && lnk)
			parent.right.location= 'page_details.php?pageID='+ID;
		
		if(!active)
			window.location = '?activePageID='+ID;
		
		if(document.getElementById(s))
			document.getElementById(s).className='treeItem';
		document.getElementById('treeItem'+ID).className='treeItemSelected';
		pageID = ID;
		groupID = '';
		contentID = '';
		s = 'treeItem'+ID;	
	}
	
	
	/*--------------------------------------------------------------------
		Requirement: Turn this into toggleClass, will require on and off classes
		to be passed to it and their values dynamically used within the test.
	--------------------------------------------------------------------*/
	function toggleNav(thisID)
	{
		if(/plus/.test(thisID.className))
		{
			thisID.className = 'minus';
		} else if(/minus/.test(thisID.className)) {
			thisID.className = 'plus';
		}
	}
	

	/*--------------------------------------------------------------------
		Controls content selection
		Use: class.treemenu.php
	--------------------------------------------------------------------*/
	function contentSelection(cID,pID,gID,lnk)
	{
		if(lnk)
			parent.right.location= 'content_details.php?contentID='+cID+'&a='+pID+'&b=0';

		document.getElementById(s).className='treeItem';
		document.getElementById('treeItem'+pID+'_'+cID).className='treeItemSelected';
		pageID = '';
		groupID = gID;
		contentID = cID;
		s = 'treeItem'+pID+'_'+cID;	
	}
		
		
	/*--------------------------------------------------------------------
		Use to determine if 'value' is in 'array'
		NOT IN USE.
	--------------------------------------------------------------------*/
	function inArray(value,array)
	{
		for(i=0;i<array.length;i++)
		{
			if(value == array[i])
				return true;
		}
		return false;
	}
	
		
	/*--------------------------------------------------------------------
		Used by radio buttons to dynamically enable/disable associated form elements.
		For example, it may be wished for the user to only select one value from a group of selects. The user
		must select the radio associated to the select menu that they wish to choose from before making their selection.
		This in turn disables any active selects from the group so that their chosen value will not be submitted.
		Use: class.contentdetails.php
	--------------------------------------------------------------------*/
	function radioToggleSelects(id,defaultId)
	{
		if(!s && !document.getElementById(defaultId).disabled)
			s = defaultId;
		document.getElementById(s).disabled = true;
		document.getElementById(s).selectedIndex = 0;
		document.getElementById(id).disabled = false;
		s = id;
	}
	
	
	/*--------------------------------------------------------------------
		Allows a group of selects to reset each other when individually selected.
		id = individual selects IDs.
		defaultID = select menu with active option when page loads
	--------------------------------------------------------------------*/
	function toggleSelects(id,defaultID)
	{
		if(!s && defaultID)
			s = defaultID;
		if(document.getElementById(s))
			document.getElementById(s).selectedIndex = 0;
		s = id;
	}
		
	/*--------------------------------------------------------------------
		
	--------------------------------------------------------------------*/
	function moduleBrowser(ID, fieldName, moduleComponentID, dir)
	{
		var url		= dir + 'cms/modules/site_details/module_browser.php?wrap=0&moduleComponentID=' + moduleComponentID + '&fieldName=' + fieldName + '&ID=' + ID;
		var id		= 'browser';
		var config	= 'menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width=700,height=500';
		
		window.open(url, id, config);
	}
	
	/*--------------------------------------------------------------------
		Opens the library browser and places the return value into a field (usually hidden) specified by 'fieldName'
	--------------------------------------------------------------------*/
	function siteBrowser(fieldName, returnStrField, returnStr, dir, pageID)
	{
		returnStrField	= (returnStrField) ? returnStrField : '';
		returnStr		= (returnStr) ? returnStr : '';
		
		var url		= dir + 'cms/modules/site_details/sitebrowser.php?wrap=1&fieldName=' + fieldName + '&pageID=' + pageID + '&returnStrField=' + returnStrField + '&returnStr=' + returnStr;
		var id		= 'browser';
		var config	= 'menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width=700,height=500';
		
		window.open(url, id, config);
	}

	/*--------------------------------------------------------------------
	
	--------------------------------------------------------------------*/
	function downloadUpdate(ID,fieldName,ShowButton)
	{
		document.getElementById('browserMsg' + ID).innerHTML='Submit form to update changes!';
		if(ShowButton)
		{
			document.getElementById('browserBtn' + ID).style.display='inline';
		} else {
			document.getElementById('browserBtn' + ID).style.display='none';
			document.getElementById(fieldName).value='';
		}
	}
	
	
	/*--------------------------------------------------------------------
		Used by randomiser module
	--------------------------------------------------------------------*/
	function randomiser(delay,str,current)
	{
		/*--------------------------------------------------------------------
			Hide all items.
		--------------------------------------------------------------------*/
		var hideArray = str.split(',');
		for(i=0; i<hideArray.length; i++)
		{
			if(document.getElementById(hideArray[i]))
				document.getElementById(hideArray[i]).style.display = 'none';
		}
		
		/*--------------------------------------------------------------------
			Turn the string into an array.
			Get the position of the current value within the array
			and remove it using splice.
		--------------------------------------------------------------------*/
		var array = str.split(',');
		for(i=0; i<array.length; i++)
		{
			if(array[i] == current)
				n = i; 
		}
		array.splice(n,1);
		
		/*--------------------------------------------------------------------
			Randomly hide one of the remaining elements of the array 
		--------------------------------------------------------------------*/
		num = array.length-1;
		ranNum = Math.round(Math.random()*num);
		hideID = array[ranNum];
		if(document.getElementById(hideID))
			document.getElementById(hideID).style.display = 'block';
			
		/*--------------------------------------------------------------------
		--------------------------------------------------------------------*/
		setTimeout("randomiser(" + delay + ",'" + str + "','" + hideID +"')", delay*1000);
	}
	
	
	/*--------------------------------------------------------------------
	
	
	--------------------------------------------------------------------*/
	function logout(logoutLocation)
	{
		alert("For security reasons and due to a period of inactivity \r\nyou have been logged out of the system");
		top.location = logoutLocation;
	}
	
	
	/*--------------------------------------------------------------------
	
	
	--------------------------------------------------------------------*/
	function hideLanguagePanel(id)
	{
		if(timeout == 1)
			document.getElementById(id).style.display = 'none';
	}
	
	
	/*--------------------------------------------------------------------
	
	
	--------------------------------------------------------------------*/
	function checkFrameset(siteURL)
	{
		if(top.frames.length == 0)
			parent.location = siteURL + '/index.php';
	}
	
	
	/*--------------------------------------------------------------------
	
	
	--------------------------------------------------------------------*/
	function selectColor(thisID,ID,DIR)
	{
		oldColor = document.getElementById(ID).value;
		newColor = showModalDialog(DIR + 'cms/scripts/color_palette/color_palette.php?colorID=' + oldColor,
							window,
							'dialogWidth: 373px; dialogHeight: 162px; center: yes; edge: raised; help: no; resizable: yes; scroll: yes; status: no; unadorned: yes;');
		if(newColor != null)
		{
			thisID.style.backgroundColor = newColor;
			document.getElementById(ID).value = newColor;
		}
	}
	
	
	/*--------------------------------------------------------------------
	
	
	--------------------------------------------------------------------*/
	function windowSize()
	{
		var myWidth = 0, myHeight = 0;
		if( typeof( window.innerWidth ) == 'number' )
		{
			//Non-IE
			myWidth = window.innerWidth;
			myHeight = window.innerHeight;
		} else if( document.documentElement &&
		  ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
			//IE 6+ in 'standards compliant mode'
			myWidth = document.documentElement.clientWidth;
			myHeight = document.documentElement.clientHeight;
		} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
			//IE 4 compatible
			myWidth = document.body.clientWidth;
			myHeight = document.body.clientHeight;
		}
		return Array(myWidth,myHeight);
	}
	
	function windowWidth()
	{
		var size = windowSize();
		return size[0];
	}
	
	function windowHeight()
	{
		var size = windowSize();
		return size[1];
	}
	
	function setBrowserHeight(id)
	{
		windowHeight = windowHeight();
		bodyHeight = document.body.offsetHeight;
		spareHeight = windowHeight - bodyHeight;
		div = document.getElementById(id);
		divHeight = div.offsetHeight;
		newDivHeight = divHeight + spareHeight;
		div.style.height = newDivHeight;
		
		/*
			IE bug fix: Placing scrollbars outside of table width
		*/
		table = document.getElementById('browserTable');
		if(table)
		{
			tableWidth = table.offsetWidth;
			bodyWidth = document.body.offsetWidth;
			scrollWidth = bodyWidth - tableWidth;
			newTableWidth = tableWidth - scrollWidth;
			table.style.width = newTableWidth;
		}
	}
	
	
	/*--------------------------------------------------------------------
	
		Used for fieldsets and divs presented as tabs.
	--------------------------------------------------------------------*/
	function toggleTabs(ID, defaultID)
	{
		if(window.activeID)
		{
			document.getElementById(activeID).style.display = 'none';
			document.getElementById(activeID + 'a').className = 'tabOff';
		} else if (document.getElementById(defaultID)) {
			document.getElementById(defaultID).style.display = 'none';
			document.getElementById(defaultID + 'a').className = 'tabOff';
		}
		if(ID)
		{
			document.getElementById(ID).style.display = 'block';
			document.getElementById(ID + 'a').className = 'tabOn';
		}
		activeID = ID;
	}
	
	
	/*--------------------------------------------------------------------
	
		Activated by the <body onload="fieldFocus()">
		Selects the 1st forms 1st visible field
	--------------------------------------------------------------------*/
	function fieldFocus()
	{
		forms = document.getElementsByTagName('form');
		for(a=0; a<forms.length; a++)
		{
			inputs = forms[a].elements;
			for(b=0; b<inputs.length; b++)
			{
				var hidden;
				if(inputs[b].tagName == 'FIELDSET')
				{
					if(inputs[b].style.display == 'none')
					{
						hidden = 1;	
					} else {
						hidden = 0;	
					}
				}
				if(
					   inputs[b].type != 'hidden'
					&& inputs[b].type != 'textarea' // WYSIWYG bug fix
					&& inputs[b].type != 'select-one'
					&& inputs[b].type != 'button'
					&& inputs[b].type != undefined
					&& inputs[b].style.display != 'none' // Check the field isn't hidden
					&& !hidden
					&& inputs[b].style.visibility != 'hidden'
					&& inputs[b].disabled != true
				)
				{
					inputs[b].focus();
					/*
						if(inputs[b].type == 'text' || inputs[b].type == 'textarea')
						{
							inputs[b].select();	
						}
					*/
					return true;
				}
			}
		}
	}
	
	/*--------------------------------------------------------------------
	
	--------------------------------------------------------------------*/
	function BrowserSite(value, fieldName, returnStrField, returnStr)
	{
		// set field text
		opener.document.getElementById(fieldName).value = value;
		if(returnStrField) opener.document.getElementById(returnStrField).innerHTML = returnStr;
	
		// close dialogue
		window.close();
	}
	
	/*--------------------------------------------------------------------
	
	--------------------------------------------------------------------*/
	function BrowserModule(value, fieldName, ID)
	{
		// set field text
		opener.document.getElementById(fieldName).value = value;
		opener.document.getElementById('browserMsg' + ID).innerHTML = 'Submit form to update changes!';
		opener.document.getElementById('browserBtn' + ID).style.display = 'inline';
	
		// close dialogue
		window.close();
	}
	
	/*--------------------------------------------------------------------
	
	--------------------------------------------------------------------*/
	function BrowserWYSIWYG(value)
	{
		// get the fck editor object
		var oEditor = window.parent.InnerDialogLoaded(); 
		
		// set selected text to a link
		oLink = oEditor.FCK.CreateLink(value);
	
		// close dialogue
		window.parent.close();
	}
	
	function parseIntClever(input)
	{
		var buffer = '';
		
		for(i = 0; i < input.length; i++)
		{
			if(!isNaN(input.charAt(i)))
			{
				buffer += input.charAt(i);
			}
		}
		
		return buffer;
	}
	
	function limitChar(e, obj, limit)
	{
		var keynum

		if(window.event) // IE
		{
			keynum = e.keyCode
		}
		else if(e.which) // Netscape/Firefox/Opera
		{
			keynum = e.which
		}
		
		
		if(obj.value.length >= limit && keynum > 31)
		{
			alert("You cannot type more then "+limit+" characters into this field.");
			return false;
		}
		else
		{
			return true;
		}
		
	}



//-->