addLoader (
	function () {
		if (document.getElementById ("cal1")) {
		fromCal = new Epoch('epoch_basic','flat',document.getElementById('cal1'));
		toCal = new Epoch('epoch_basic','flat',document.getElementById('cal2'));
		}
	}
)


addLoader (
	function () {
	
		if (new String (window.location).indexOf("coauthorassigned") > 0)
			window.opener.document.getElementById ("wwwForm").submit();
	}
)

//front end form functions:

addLoader(
	function () {
	
		try {
		
		if (document.getElementById('javascriptenabled'))
			document.getElementById('javascriptenabled').value='1'
		
		//check for timed out popup window
		var loc = window.location.toString();
		if (window.location.toString().indexOf("nwClose") > 0 && window.opener) {
			window.opener.location = "/";
			window.close();
		}
		
		
		//check for popup close
		if (document.getElementById ("nwClose")) {
			if (document.getElementById ("nwClose").value=="1")  {
				window.opener.document.getElementById ("wwwForm").submit();
				window.close();
				}
		}


		//check for popup generic close
		if (document.getElementById ("popupClose")) {
			if (document.getElementById ("popupClose").value=="1")  {
				window.opener.location.reload(true);
				window.close();
				
				}
		}

		var arrGroup=document.getElementsByTagName('tr');
		for (var i=0;i<arrGroup.length;i++){

			if (arrGroup[i].className.indexOf(' show')) {
				arrGroup[i].className = arrGroup[i].className.replace(' show', '');
			}
		}
		var arrGroup=document.getElementsByTagName('table');
		for (var i=0;i<arrGroup.length;i++){

			if (arrGroup[i].className.indexOf(' show')) {
				arrGroup[i].className = arrGroup[i].className.replace(' show', '');
			}
		}

		var arrShow='';
		
		if(document.getElementById('show')) {
			arrShow = document.getElementById('show').value;
		}

		var arrGroup=document.getElementsByTagName('div');
		for (var i=0;i<arrGroup.length;i++){
		
		selClassName = arrGroup[i].className.replace(' show', '');
		
			if (arrShow.indexOf(selClassName)>=0) {
				if (selClassName.indexOf(' show')>=0) {
				} else {
					arrGroup[i].className = selClassName  + " show";
				}
			} else {

				if (arrGroup[i].className.indexOf(' show')>=0) {
					arrGroup[i].className = arrGroup[i].className.replace(' show', '');
				}
			}
		}

		var arrGroup=document.getElementsByTagName('img');
		for (var i=0;i<arrGroup.length;i++){

			if (arrGroup[i].className.indexOf(' show')) {
				arrGroup[i].className = arrGroup[i].className.replace(' show', '');
			}
		}
		
		} catch (e) {
			alert (e.message);
		}
	}
);

function showHelp (url, field) {
	window.open ("/casestudy/help?tab=" + $tab + "&field=" + field);
	return false;
}

function prepareSubmit() {
	var elements = document.getElementsByClassName("multidropdown");
	for (var n=0;n<elements.length;n++) {
		var element = elements[n];
		var elementName = element.id;
		var dataElement = document.getElementById (elementName + "_data");
		dataElement.value = "";
		//copy contents from listbox into hidden data control - csv
		
		for (var c=0;c<element.options.length;c++) {
			//alert 
			dataElement.value += element.options[c].value + ",";
		}
		
	}
	return false;
}





//copys a value from a dropdown list to a list control 
function populateDropdownList(elementName) {
	try {
		var dropdown = document.getElementById (elementName);
		var list = document.getElementById (elementName + "_list");
		var fieldArray = document.getElementById (elementName + "_list_data");
		
		
			for(var i = 0, max = dropdown.length; i < max; ++i) {
				if(dropdown[i].selected) {

					var strValue = dropdown[i].value; //.options[dropdown.selectedIndex].value;
					var strText = dropdown[i].text; //.options[dropdown.selectedIndex].text;
					

					if (!alreadyPopulated (list, strValue) && strValue != "" && strValue.toLowerCase() != "please select") {
						list.options[list.length] = new Option(strText, strValue);
						list.selectedIndex =-1;
						
						//increase height of select list 
						list.size=list.length;
						if (list.size ==1) list.size=2
						
						list.style.height = null;
						
						var fieldArrayText =  fieldArray.value;
						fieldArray.value = fieldArrayText + strText + ",";


					//alert("Selected Item: " + dropdown[i].value);
					}
				}
			}	
		
	} catch (e) {
		alert (e.message);
	}

}

function deleteDropdownList(elementName) {


		
		try {
		var dropdown = document.getElementById (elementName + "_list");
		var fieldArray = document.getElementById (elementName + "_list_data");
		var max=dropdown.length;
		
			for(var i = 0; i < max; ++i) {
				if(dropdown[i].selected) {

						var strText = dropdown[i].text; 
						
						if (dropdown.size != 1) {
							dropdown.size=dropdown.size-1;
						}
						dropdown[i] = null;
						max = max-1;
						//document.getElementById (elementName).selectedIndex = -1;
						i=i-1;
						
						var fieldArrayText =  fieldArray.value;
						fieldArray.value = fieldArrayText.replace(strText + ",","");

				}
			}	

			dropdown.style.display='none';
			dropdown.style.display='inline';
		
	} catch (e) {
		alert (e.message);
	}


	
}



//returns true if a value has already been copied into a list from a dropdown
function alreadyPopulated (list, strValue) {
	try {
		var retvalue = false
		for (var n=0;n<list.length;n++) {
			if (list.options[n].value==strValue)
				retvalue = true;
				
			
			if (list.options[n].value=="") {
				list.options[n] = null;
			}
		}
		return retvalue;
	} catch (e) {
		alert (e.message);
	}
}





//search form
var yearGroupVisible = false;
function searchToggleYearGroup() {
	try {
		if (yearGroupVisible == false) {
			//closed so open
			document.getElementById ("yearGroupToggleImage").src = "/template-images/layout/icons/close.gif";
			document.getElementById ("yearGroupToggleImage").title = "Close";
			
			document.getElementById ("olYearGroup").style.display='block';
			yearGroupVisible = true;
		} else {
			document.getElementById ("yearGroupToggleImage").src = "/template-images/layout/icons/open.gif";
			document.getElementById ("yearGroupToggleImage").title = "Open";
			document.getElementById ("olYearGroup").style.display='none';
			yearGroupVisible = false;
		}
	} catch (e) {
		alert (e.message)
	}
}
var curVisible = false;
function searchToggleCurriculum() {
	try {
		if (curVisible == false) {
			//closed so open
			document.getElementById ("curriculumToggleImage").src = "/template-images/layout/icons/close.gif";
			document.getElementById ("curriculumToggleImage").title = "Close";
			document.getElementById ("olCurriculum").style.display='block';
			curVisible = true;
		} else {
			document.getElementById ("curriculumToggleImage").src = "/template-images/layout/icons/open.gif";
			document.getElementById ("curriculumToggleImage").title = "Open";
			document.getElementById ("olCurriculum").style.display='none';
			curVisible = false;
		}
		/*
		var caption = document.getElementById ("curriculumToggleStatus").firstChild.data;
		if (caption.indexOf ("open") > 0) {
			//closed so open
			document.getElementById ("curriculumToggleStatus").firstChild.data = "<img src='/template-images/layout/icons/close.gif' alt='Close' title='Close' />";
			document.getElementById ("olCurriculum").style.display='block';
		}
		else{
			//open so close
			document.getElementById ("curriculumToggleStatus").firstChild.data = "<img src='/template-images/layout/icons/open.gif' alt='Open' title='Open' />";
			document.getElementById ("olCurriculum").style.display='none';
		}
		*/
	} catch (e) {
		alert (e.message)
	}
}



function abortCaseStudy() {
	return confirm ("Are you sure you want to delete?  This will delete your current case study. Click Cancel to return to and save your case study.");
}



function helpToggle(controlName) {
	try {
		elm = document.getElementById (controlName);
		if (elm.style.display != 'block')  {
			elm.style.display = 'block';
			if (document.getElementById ("img" + controlName)) {
				document.getElementById ("img" + controlName).src="/template-images/layout/icons/close.gif";
			}
		}
		else {
			elm.style.display = 'none'
			if (document.getElementById ("img" + controlName)) {
				document.getElementById ("img" + controlName).src="/template-images/layout/icons/open.gif";
			}
		}
			
		
		
	} catch (e) {
		alert (e.message);
	}
}


function toggleCaseStudyKey() {
	if (document.getElementById ("keyOpened").style.display !=  'block') {
		document.getElementById ("keyOpened").style.display = "block";
		document.getElementById ("keyClosed").style.display = "none";
		
		}
	else{
		document.getElementById ("keyOpened").style.display = 'none'
		document.getElementById ("keyClosed").style.display = "block";
		
	}
}



function openWin (url) {
	//prepareSubmit();
	window.open (url, "wn", "height=300,width=540");
}

function openWinWide (url) {
	//prepareSubmit();
	window.open (url + "&wide=true", "wn", "height=600,width=1000");
}

function openWinWideHigh (url) {
	//prepareSubmit();
	window.open (url + "&wide=true", "wn", "height=720,width=1000,scrollbars=yes");
}


function openWinBox (url) {
	//prepareSubmit();
	window.open (url, "wn", "height=480,width=540");
}


function removeOption(elementId) {
	try {
		var fieldArray = document.getElementById (elementId + "_data");
		element = document.getElementById (elementId);
		var strText = element.options[element.selectedIndex].text;
		element.options[element.selectedIndex] = null;
		if (element.size > 1) element.size=element.size-1;
		document.getElementById (elementId).selectedIndex = -1;
		var fieldArrayText =  fieldArray.value;
		fieldArray.value = fieldArrayText.replace(strText + ",","");
	} catch (e) {
		alert (e.message);
	}
}


function removeDropdownItem(element) {
	try {
	//alert (element.selectedIndex);
		
		window.setTimeout ("removeOption('" + element.id + "')", 10);
	} catch (e) {
		//alert (e.message);
	}
}


function checkTextareaLength(element, fieldName, maxLength) {
	if (element.value.length > maxLength) {
		alert (fieldName + " must be less than " + maxLength + " characters");
		element.value = element.value.slice(0, maxLength)
	}
}
function checkStandardInputLength(element, fieldName, maxlength) {
	if (element.value.length == maxlength) {
		alert (fieldName + " must be less than " + maxlength + " characters");
	}
}

function populateNmeEmail(control) {
	if (document.getElementById ("search")) {
		opt = control.options[control.selectedIndex];
		
		document.getElementById ("search").value=opt.text;
	}
}

function collapseall(notthis)
{
	var docid = document.forms[0].id;
	
	var elem = document.getElementById(docid).elements;
	var dropdown;
	var sourcename;
	
	//notthis += '_list';
	for(var i = 0; i < elem.length; i++)
	{
		if (Right(elem[i].id,5) == '_list' && elem[i].id != notthis)
		{
			singlecollapse(Left(elem[i].id,elem[i].id.length - 5));
		}
	} 
	
}
function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}
function singlecollapse(id)
{
	var objDropDown=document.getElementById(id);
	var size = objDropDown.size;
	
	if (size==4) 
	{
		size=1;
	}
	objDropDown.size=size;
	
	var imageId = id + '_image';
	var objImage=document.getElementById(imageId);
	objImage.src = "/template-images/layout/icons/down.png";
	
	var hrefId = id + '_href';
	var objImage=document.getElementById(hrefId);
	
	objImage.href = "javascript:singleextend('" + id + "')";
}
function singleextend(id)
{
	var objDropDown=document.getElementById(id);
	var size = objDropDown.size;
	
	if (size==1) 
	{
		size=4;
	}
	objDropDown.size=size;
	
	var imageId = id + '_image';
	var objImage=document.getElementById(imageId);
	objImage.src = "/template-images/layout/icons/up.png";
	
	var hrefId = id + '_href';
	var objImage=document.getElementById(hrefId);
	
	objImage.href = "javascript:singlecollapse('" + id + "')";
	
}
function extend(id){

	var objDropDown=document.getElementById(id);
	var size = objDropDown.size;
	if (size==1) {
		size=4;
		collapseall(id); //kill the open ones
		
	}else{
		collapseall(id);
		//size=1;
		//objDropDown.selectedIndex = 0;
		//objDropDown.options[0].selected = true;

		//for (var i = 0; i < objDropDown.options.length; i++) {
		//	objDropDown.options[i].selected = false;
		//}

	}		

	objDropDown.size=size 			
	objDropDown.style.display='none'
	objDropDown.style.display='inline' 

	var imageId = id + '_image';
	var objImage=document.getElementById(imageId);
			
	if (size == 1) {
		objImage.src = "/template-images/layout/icons/down.png";
	} else {
		objImage.src = "/template-images/layout/icons/up.png";
	}

	
}

function dropDownFunction(element) {
	try {
		var elementType = element.options[element.selectedIndex].tagName;
		var test =  element.options[element.selectedIndex].parentNode.tagName;
		if(elementType.toLowerCase()=='option') {
			addDropdownItem(element);
		}
		if(elementType.toLowerCase()=='optgroup') {
			populateGroupOptions(element);
		}
	} catch (e) {
		alert (e.message);
	}

}

//copys a value from a dropdown list to a list control 
function addDropdownItem(element) {
	try {
		var elementID = element.id;
		var dropdown = document.getElementById (elementID);
		var list = document.getElementById (elementID + "_list");
		var fieldArray = document.getElementById (elementID + "_list_data");
		var strValue = dropdown.options[dropdown.selectedIndex].value;
		var strText = dropdown.options[dropdown.selectedIndex].text;
		
		if (!alreadyPopulated (list, strValue) && strValue != "" && strValue.toLowerCase() != "please select") {
			list.options[list.length] = new Option(strText, strValue);
			list.selectedIndex =-1;
			
			//increase height of select list 
			list.size=list.length;
			if (list.size ==1) list.size=2
			
			list.style.height = null;
			
			var fieldArrayText =  fieldArray.value;
			
			//var fieldArrayLength=fieldArrayText.length;
			//var fieldArrayLastChar;
			
			//if(fieldArrayLength==0){
			//	fieldArrayLastChar="";
			//} else {
			//	fieldArrayLastChar=fieldArrayText.charAt(fieldArrayLength-1);
			//}
			
			//if (fieldArrayLastChar==",") {
				fieldArray.value = fieldArrayText + strText + ",";
			//}else {
			//	fieldArray.value = fieldArrayText + strText + ",";
			//}
		}	

	} catch (e) {
		alert (e.message);
	}

}

function populateGroupOptions(element) {
	try {
		var elementID = element.id;
		var objDropDown = document.getElementById (elementID);	

		for(i = 0 ; i < objDropDown.childNodes.length ; i++)
		{
			objDropDown.childNodes[i].selected = true;
		}


	} catch (e) {
		alert (e.message);
	}

}




function populateReportDates () {
    try {
                if (fromCal) {
                    fromDate = fromCal.selectedDates[0];
                    toDate = toCal.selectedDates[0];
                if (fromDate) {
                    $("fromday").value=fromDate.getDate();
                    $("frommonth").value=parseInt (fromDate.getMonth())+1;
                    $("fromyear").value=fromDate.getFullYear();
                }
                if (toDate) {
                    $("today").value=toDate.getDate();
                    $("tomonth").value=parseInt (toDate.getMonth())+1;
                    $("toyear").value=toDate.getFullYear();
                }
				//check hostname, swap dates around for live environment
				if (document.getElementById ("reportDomain").innerHTML.indexOf ("212.58.45.37") < 0 && document.getElementById ("reportDomain").innerHTML.indexOf ("192.168.1.13") < 0 && document.getElementById ("reportDomain").innerHTML.indexOf ("development") < 0 && document.getElementById ("reportDomain").innerHTML.indexOf ("dev.capita-www") < 0) {
                	//alert ("swap");
                	if (fromDate) {
						$("fromday").value=parseInt (fromDate.getMonth())+1;
						$("frommonth").value=fromDate.getDate();
						$("fromyear").value=fromDate.getFullYear();
					}
					if (toDate) {
						$("today").value=parseInt (toDate.getMonth())+1;
						$("tomonth").value=toDate.getDate();
						$("toyear").value=toDate.getFullYear();
					}
                }
                
                }
    } catch (e) {
    //alert (e.message);
    }
}

function clearUserFile() {
	var elements = document.getElementsByClassName('userfile');
	for (var n=0;n<elements.length;n++) {
		var element = elements[n];
		element.checked=false;
	}
}
function clearLibraryFile() {
	var elements = document.getElementsByClassName("libraryfile");
	for (var n=0;n<elements.length;n++) {
		var element = elements[n];
		element.checked=false;
	}
}


function captchaRefresh() {

	var url = '/wcm/site/pages/createcaptcha.aspx?refresh=true&' + rand(0,10000000);;
	
	new Ajax.Request(url, {
	method: 'get',
	onSuccess: function(transport) {
	
		try {
			var res = transport.responseText;
			var parts = res.split (":");
	
			document.getElementById ("capguid").value = parts[0];
			document.getElementById ("captcha").src= "/wcm/system/pages/downloadfile.aspx?filename=" + parts[1];
		} catch (e) {
			alert (e.message);
		}
		
	}
	});

}
function rand( min, max ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Leslie Hoare
    // +   bugfixed by: Onno Marsman
    // *     example 1: rand(1, 1);
    // *     returns 1: 1
    var argc = arguments.length;
    if (argc == 0) {
        min = 0;
        max = 2147483647;
    } else if (argc == 1) {
        throw new Error('Warning: rand() expects exactly 2 parameters, 1 given');
    }
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
