<!--
	

/*--------------------------------------------------------------------------------
	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 = '';
	var activeTab = ''; // Used by form tabs

/*--------------------------------------------------------------------------------
--------------------------------------------------------------------------------*/

	function textarea(id, date, title)
	{
		textarea = document.getElementById(id + '-edit');
		hidden_field = document.getElementById(id);
		
		if (textarea.value) 
		{
			var content = '';
			content += '<em>' + date + '</em>';
			content += '<strong>' + title + '</strong>';
			content += '<p>' + textarea.value + '</p>';
			
			hidden_field.value = content + hidden_field.value;
		}
	}

/*--------------------------------------------------------------------------------
--------------------------------------------------------------------------------*/

	function checkUncheckAll(element, checkboxId)
	{
		var checkboxes = document.forms[element.form.name].elements[checkboxId];
		
		for(i=0; i<checkboxes.length; i++)
		{
			if(element.checked == false)
			{
				checkboxes[i].checked = false;
			}
			else
			{
				checkboxes[i].checked = true;
			}
		}
	}
/*--------------------------------------------------------------------------------
	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;
	}

/*--------------------------------------------------------------------------------
	Highlights selected item in toolbar.
--------------------------------------------------------------------------------*/

	function toggleSelection(id, defaultId)
	{
		if(!window.s && defaultId)
			s = document.getElementById(defaultId);
		
		if(window.s)
			s.className = 'treeItem';
			
		id = document.getElementById(id);
		if(id)
		{
			id.className = 'treeItemSelected';
			s = id;	
		}
	}

/*--------------------------------------------------------------------------------
	Controls page selection
--------------------------------------------------------------------------------*/

	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
--------------------------------------------------------------------------------*/

	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;	
	}


/*--------------------------------------------------------------------------------
	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;
	}

/*--------------------------------------------------------------------------------
	Used by the component browser to select items within a foreign component. 
	See cms/modules/component_browser.php for full explanation
--------------------------------------------------------------------------------*/

	function componentBrowser(id, moduleComponentID, resetComponentID, multiSelect)
	{
		path  = DIR + 'cms/modules/component_browser.php';
		path += '?moduleComponentID=' + moduleComponentID;
		path += '&multiSelect=' + multiSelect;
		path += '&reset=1';
		var newIdStr = showModalDialog(path,
					window,
					'dialogWidth:718px; dialogHeight:550px; center:yes; help:no; resizable:no; scroll:auto; status:no; unadorned:no;');
		
		if(resetComponentID)
		{
			var path  = DIR + 'cms/modules/component_browser.php';
			path += '?resetComponentID=' + resetComponentID;
			showModalDialog(path, window, 'dialogWidth:10px; dialogHeight:10px; dialogLeft:0; dialogTop:0; help:no; resizable:no; scroll:auto; status:no; unadorned:no;');
		}
		
		if(newIdStr && multiSelect > 0)
		{
			idStr = ';' + document.getElementById(id).value;
			
			newIdArray = newIdStr.split(';');
			
			newIdArrayLength = newIdArray.length - 1;
			
			if(newIdArrayLength > 0)
			{
				var newStr = '';
				for(i=0; i<newIdArrayLength; i++)
				{
					if(!idStr.match(';' + newIdArray[i] + ';'))
					{
						newStr += newIdArray[i] + ';';
					}
				}
			} 
			else 
			{
				newStr = newIdStr + ';';
			}
			document.getElementById(id).value += newStr;
		} 
		else if (newIdStr) 
		{
			document.getElementById(id).value = newIdStr;
		}
	}

/*--------------------------------------------------------------------------------
	moduleComponentID	= Required. The component we are inserting into, and 
						  therefore displaying the update form of.
	ID					= Optional. The row from the component we are updating. 
						  If not specified then the form will insert.
	linkID,				= Optional. consisting of a columnName followed by a colon 
						  delimited value, it allows a value to be passed to a 
						  specific column within the components table. Useful for 
						  making associations between components.
						  i.e. rowID[301] or rowID['Value']
--------------------------------------------------------------------------------*/

	function componentInsert(moduleComponentID, ID, queryStr)
	{
		path  = 'module_insert.php';
		path += '?moduleComponentID=' + moduleComponentID;
		if(ID)
			path += '&ID=' + ID;
		if(queryStr)
			path += '&queryStr=' + queryStr;
		
		returnValue = showModalDialog(path,
					window,
					'dialogWidth:700px; dialogHeight:550px; center:yes; help:no; resizable:no; scroll:auto; status:no; unadorned:no;');
		
		if(returnValue)
			window.location = '?defaultTab=' + activeTab;
	
		return returnValue;
	}

/*--------------------------------------------------------------------------------
	Used for fieldsets and divs presented as tabs.
--------------------------------------------------------------------------------*/

	function toggleTabs(tabId, defaultTabId, tabGroup)
	{
		document.getElementById(tabId).style.display = 'block';
		document.getElementById(tabId + 'href').className = 'tabOn';
		
		if(eval('window.activeTabId' + tabGroup))
		{
			tabOff = eval('window.activeTabId' + tabGroup);
		}
		else
		{
			tabOff = defaultTabId;
		}

		if(tabOff != tabId && tabOff)
		{
			document.getElementById(tabOff).style.display = 'none';
			document.getElementById(tabOff + 'href').className = 'tabOff';
			eval('window.activeTabId' + tabGroup + ' = tabId');
		}
		
		document.getElementById('innerForm').scrollTop = 0;
		
		activeTab = tabId;
	}

/*--------------------------------------------------------------------------------
--------------------------------------------------------------------------------*/

	function removeComponentBrowserId(rowId, columnName, value)
	{
		document.getElementById(rowId).style.display = 'none';
		
		document.getElementById(columnName + '_browser').style.display = 'block';
		
		s = document.getElementById(columnName);
		sValue = ';' + s.value;
		sValue = sValue.replace(';' + value, '');
		sValue = sValue.replace(';;', ';');
		if(sValue == ';') sValue = '';
		s.value = sValue;
	}

/*--------------------------------------------------------------------------------
	Opens the library browser and places the return value into a field 
	(usually hidden) specified by 'fieldName'
--------------------------------------------------------------------------------*/

	function internalLink(fieldName,returnStrField,returnStr,directory)
	{
		var linkStr		= showModalDialog(directory + 'cms/modules/site_browser.php',
						//+ '?pageID='+pageID,
						window,
						"dialogWidth:700px;dialogHeight:550px;center:yes;edge:raised;help:no;resizable:yes;scroll:auto;status:no;unadorned:yes;");
		if(linkStr)
		{
			document.getElementById(fieldName).value = linkStr;
			document.getElementById(returnStrField).innerHTML = returnStr;
			return true;
		} else {
			return false;
		}
	}

/*--------------------------------------------------------------------------------
--------------------------------------------------------------------------------*/

	function selectPage(pageID, fieldName, root)
	{
		var linkArray = showModalDialog(root + 'cms/modules/site_browser.php'
										+ '?pageID=' + pageID,
										window,
										"dialogWidth:700px;dialogHeight:550px;center:yes;edge:raised;help:no;resizable:yes;scroll:auto;status:no;unadorned:yes;");
		if(linkArray)
		{
			document.getElementById(fieldName).value = linkArray;
			return true;
		} else {
			return false;
		}
	}

/*--------------------------------------------------------------------------------
--------------------------------------------------------------------------------*/

	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 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;
		}
	}

/*--------------------------------------------------------------------------------
	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
				&& !hidden)
				{
				//	alert(inputs[b].type);
					inputs[b].focus();
				//	if(inputs[b].type == 'text' || inputs[b].type == 'textarea')
				//		inputs[b].select();	
					return true;
				}
			}
		}
	}

/*--------------------------------------------------------------------------------
--------------------------------------------------------------------------------*/

	function toggleItem(id, defaultId)
	{
		if(!window.s && defaultId)
			s = document.getElementById(defaultId);
		
		if(window.s)
		{
			s.style.display = 'none';
			s.value = '';
		}

		s = document.getElementById(id);
		if(s)
			s.style.display = 'block';
	}

/*--------------------------------------------------------------------------------
--------------------------------------------------------------------------------*/

	function inchesToMeters(feetId, inchesId, metersId)
	{
		feet = document.getElementById(feetId).value;
		if(feet)
		{
			feet = parseInt(feet);
		}
		feetInInches = feet * 12;
		
		inches = document.getElementById(inchesId).value;
		if(inches)
		{
			inches = parseInt(inches);
		}
		
		totalInches = feetInInches + inches;
		meters = totalInches * 0.0254;
		
		meters = Math.round(meters * 100) / 100;
		
		document.getElementById(metersId).value = meters;
		
		metersToInches(feetId, inchesId, metersId);
	}

/*--------------------------------------------------------------------------------
--------------------------------------------------------------------------------*/

	function metersToInches(feetId, inchesId, metersId)
	{
		meters = document.getElementById(metersId).value;
		
		inches = meters * 39.3700787; // 1 meter = 39.3700787 inch
		if(parseInt(inches))
		{
			inches = Math.round(inches);
			inchesLeft = inches % 12;
			if(inchesLeft > 0)
			{
				document.getElementById(inchesId).value = parseInt(inchesLeft);
			} else {
				document.getElementById(inchesId).value = '';
			}
			feet = Math.floor(inches / 12);
			document.getElementById(feetId).value = parseInt(feet);
		}
	}

/*--------------------------------------------------------------------------------
	Appends the column Name to a string that is passed when submitted.
	It tells the form processing script to delete the file
--------------------------------------------------------------------------------*/

	function removeFile(element, columnName, fileName)
	{
	//	element.innerHTML = 'Submit to update change';
	//	element.style.color = 'red';
	//	element.style.textDecoration = 'none';
		element.style.display = 'none';
		document.getElementById(columnName + '_span').style.display = 'block';
		document.getElementById('deleteFiles[' + columnName + ']').value = fileName;
	}

/*--------------------------------------------------------------------------------
--------------------------------------------------------------------------------*/

	function percentageCalculator(priceId, percentageId, amountId)
	{
		// Get the percentage value
		price = document.getElementById(priceId).value;

		// Round the percentage value to 2 decimal places
		percentage = document.getElementById(percentageId).value;
		newPercentage = Math.round(percentage * 100) / 100;
		document.getElementById(percentageId).value = percentage;

		// Set the percentage price
		result = price * percentage / 100;
		document.getElementById(amountId).value = result;
	}

/*--------------------------------------------------------------------------------
--------------------------------------------------------------------------------*/

	function percentageCalculator2(priceId, percentageId, resultId)
	{
		// Get the percentage value
		price = document.getElementById(priceId).value;

		// Round the percentage value to 2 decimal places
		result = document.getElementById(resultId).value;

		// Set the percentage price
		percentage = result / price * 100;
		percentage = Math.round(percentage * 10000) / 10000;
		document.getElementById(percentageId).value = percentage;
	}

/*--------------------------------------------------------------------------------
--------------------------------------------------------------------------------*/
	
	function resetForm(formIdent) 
	{ 
	  var form, elements, i, elm; 
	  form = document.getElementById 
		? document.getElementById(formIdent) 
		: document.forms[formIdent]; 
	
		if (document.getElementsByTagName)
		{
			elements = form.getElementsByTagName('input');
			for( i=0, elm; elm=elements.item(i++); )
			{
				if (elm.getAttribute('type') == "text")
				{
					elm.value = '';
				}
				if (elm.getAttribute('type') == "checkbox")
				{
					elm.checked = false;
				}
			}
			elements = form.getElementsByTagName('select');
			for( i=0, elm; elm=elements.item(i++); )
			{
				elm.selectedIndex = 0;
			}
		}
	}
		
//-->