// common.js
// Common functions for dynamic content
// Author: mmoriart@nrhs.health.nsw.gov.au
<!--

//Auto center window script
var win = null;
function NewWindow(mypage,myname,w,h,scroll,toolbar,menubar,location,status,directories,resizable){
	if ( h == 0 ) { h = screen.height; }
	if ( w == 0 ) { w = screen.width; }
	LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
	TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
	settings =
	'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',toolbar='+toolbar+',menubar='+menubar+',location='+location+',status='+status+',directories='+directories+',resizable='+resizable+''
	win = window.open(mypage,myname,settings)
}
		
//determine if the browser can handle the show/hide function  
var supported=(document.getElementById || document.all);

//set initial state of DOM objects to track whether items are to expanded or contracted by default - in ranges
if (supported) {
	var max = 101;
	//alert(document.cookie);
	var allcookies = document.cookie;
	var pos = allcookies.indexOf("shown=");
	if (pos != -1) {
		var start = pos + 6;
		var end = allcookies.indexOf(";",start);
		if (end == -1) end = allcookies.length;
		var value = allcookies.substring(start,end);
		value = unescape(value);
		var shown = value.split(",");
		for ( var i=1; i<=max; i++) {
			if ( shown[i] == "true") {
				shown[i] = true;
			} else {
				shown[i] = false;
			} 
		}
	} else {
		var shown = new Array();
		for (var i=1;i<=max;i++){
			if(i<=50) {
			shown[i] = false; 		
			}
			else {
				shown[i] = true; 
			}
		}
	}
}

// function to show or hide menu content
function showHide(i,documentroot) {
	if (!supported) {
		alert('This link does not work in your browser.');
		return;
	}
	// toggle the state of the menu
	shown[i] = (shown[i]) ? false : true;
	current = (shown[i]) ? 'none' : 'block';
	if(i==100) {
		curimage = (shown[i]) ? '/images/icons/white_expand_box.gif' : '/images/icons/white_collapse_box.gif';
	} else {
		curimage = (shown[i]) ? '/images/icons/toggle_02.gif' : '/images/icons/toggle_01.gif';
	}
	
	// swap the icon and the display style		
	if (document.getElementById) {
			document.getElementById('number'+i).style.display = current;
			document.images['toggle'+i].src = curimage;
	}
	else if (document.all){
		document.all['number'+i].style.display = current;
		document.images['toggle'+i].src = curimage;
	}
	//store the array in a cookie
	var cookieStr = escape(shown.join(","));
	document.cookie = "shown=" + cookieStr + "; path=" + documentroot; // shown  // 
}

// function to show or hide menu content
function showHideNoImage(i,documentroot) {
	if (!supported) {
		alert('This link does not work in your browser.');
		return;
	}
	// toggle the state of the menu
	shown[i] = (shown[i]) ? false : true;
	current = (shown[i]) ? 'none' : 'block';
	
	// swap the icon and the display style		
	if (document.getElementById) {
			document.getElementById('number'+i).style.display = current;
	}
	else if (document.all){
		document.all['number'+i].style.display = current;
	}
	//store the array in a cookie
	var cookieStr = escape(shown.join(","));
	document.cookie = "shown=" + cookieStr + "; path=" + documentroot; // shown  // 
}


function showHideToolbox(i,j,documentroot) {
	if (!supported) {
		alert('This link does not work in your browser.');
		return;
	}
	// toggle the state of the menu
	shown[i] = (shown[i]) ? false : true;
	current = (shown[i]) ? 'none' : 'block';
	if (i==100) {
		curimage = (shown[i]) ? '/images/icons/white_expand_box.gif' : '/images/icons/white_collapse_box.gif';
	} else {
		curimage = (shown[i]) ? '/images/icons/toggle_02.gif' : '/images/icons/toggle_01.gif';
	}
	
	// swap the icon and the display style		
	if (document.getElementById) {
			document.getElementById('number'+i).style.display = current;
			document.images['toggle'+i].src = curimage;
	}
	else if (document.all){
		document.all['number'+i].style.display = current;
		document.images['toggle'+i].src = curimage;
	}
	
	if ( shown[j] == false ) {
		shown[j] = true;
		if (document.getElementById) {
			document.getElementById('number'+j).style.display = 'none';
			document.images['toggle'+j].src = '/images/icons/toggle_02.gif';
		}
		else if (document.all){
			document.all['number'+j].style.display = 'none';
			document.images['toggle'+j].src = '/images/icons/toggle_02.gif';
		}
	}
	
	//store the array in a cookie
	var cookieStr = escape(shown.join(","));
	document.cookie = "shown=" + cookieStr + "; path=" + documentroot; // shown  // 
}

function writeMenu(id) {
	var str = "<div class=\"" + ((shown[id]) ? "menuClosed" : "menuOpen") + "\" id=\"number" + id + "\">";
	document.write(str);
}

function selectToggleImg(id) {
	var str = "<img src=\"/images/icons/" + ((shown[id]) ? "toggle_02.gif" : "toggle_01.gif") 
		+ "\" alt=\"Show/Hide Menu Category\" hspace=\"5\" vspace=\"2\" border=\"0\" "
		+ "id=\"toggle" + id + "\" name=\"toggle" + id + "\">";
	document.write(str);
}
		
//preload dynamic images for swapping
function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function writeClosingDiv() {
	var str = "</div>";
	document.write(str);
}

function viewEvents(day, month, year) {
	var newWindow = window.open('/viewevents.php?d=' + day + '&m=' + month + '&y=' + year, 
		'postScreen', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=600,height=350');
	newWindow.focus();
}

function validateEventForm(frm) {
	var retVal = true;
	var msg = "Not all required fields have been completed.\nPlease supply:\n";
	
	if ( frm.title.value == '' ) {
		msg += "Title.\n";
		retVal = false;
	}
	
	if ( frm.location.value == '' ) {
		msg += "Location.\n";
		retVal = false;
	}
	
	if ( frm.event_start.value == '' ) {
		msg += "Event Date.\n";
		retVal = false;
	}
	
	for ( var i=0; i<frm.e_type.length; i++ ) {
		if ( frm.e_type[i].checked ) {
			var e_type = frm.e_type[i].value;
			break;
		}
	}
	
	if ( e_type == 'ranged' ) {
		if ( frm.event_end.value == '' ) {
			msg += "Event End Date.\n";
			retVal = false;
		}
	} else if ( e_type == 'recurring' ) {
		if ( frm.recurring_end.value == '' ) {
			msg += "Recurring Event End Date.\n";
			retVal = false;
		}
	}
	
	if ( frm.eventtype.value == 'none' ) {
		msg += "Event Type.\n";
		retVal = false;
	}
	
	if ( frm.eventtext.value == '' ) {
		msg += "Event message.\n";
		retVal = false;
	}
	
	if ( !retVal ) { 
		alert(msg); 
	}
	return retVal;
}

// function for showing / hiding recurring and ranged events.
function toggleSpan(spn) {
	// swap the display visibility style 
	if (document.getElementById) {
		if ( spn.value == 'recurring' ) {
			document.getElementById('recurring').style.visibility = 'visible';
			document.getElementById('ranged').style.visibility = 'hidden';
			document.getElementById('event_end').value = '';
		} else if ( spn.value == 'ranged' ) {
			document.getElementById('recurring').style.visibility = 'hidden';
			document.getElementById('ranged').style.visibility = 'visible';
			document.getElementById('recurring_end').value = '';
		} else {
			document.getElementById('recurring').style.visibility = 'hidden';
			document.getElementById('ranged').style.visibility = 'hidden';
			document.getElementById('recurring_end').value = '';
			document.getElementById('event_end').value = '';
		}
	} else if ( document.all ) {
		if ( spn.value == 'recurring' ) {
			document.all['recurring'].style.visibility = 'visible';
			document.all['ranged'].style.visibility = 'hidden';
			document.all['event_end'].value = '';
		} else if ( spn.value == 'ranged' ) {
			document.all['recurring'].style.visibility = 'hidden';
			document.all['ranged'].style.visibility = 'visible';
			document.all['recurring_end'].value = '';
		} else {
			document.all['recurring'].style.visibility = 'hidden';
			document.all['ranged'].style.visibility = 'hidden';
			document.all['event_end'].value = '';
			document.all['recurring_end'].value = '';
		}
	}
}

function refreshParent() {
	if ( window.opener.location == 'http://int.nrahs.nsw.gov.au/' ) {
		window.opener.location = '/';
	}	
	//window.opener.location = window.opener.location;
}
// functions for image rollovers
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
// end image rollover functions

function validatePackageApplication(frm) {
	var retVal = true;
	var msg = 'Not all required fields have been completed.\n'
		+ 'Please supply:\n';
		
	if ( frm.name.value == '' ) {
		msg += 'Name.\n';
		retVal = false;
	}
	if ( frm.address1.value == '' ) {
		msg += 'Address.\n';
		retVal = false;
	}
	if ( frm.suburb.value == '' ) {
		msg += 'Suburb.\n';
		retVal = false;
	}
	if ( frm.postcode.value == '' ) {
		msg += 'Postcode.\n';
		retVal = false;
	}
	if ( frm.state.value == '' ) {
		msg += 'State.\n';
		retVal = false;
	}
	if ( frm.phonehome.value == '' && frm.phonework.value == '') {
		msg += 'Either Home or Work Phone.\n';
		retVal = false;
	}
	
	if ( frm.email.value != '' && !echeck(frm.email.value) ) {
		alert('Email address appears to be invalid\nPlease check for spaces or incorrect characters.');
		return false;
	}
	if ( frm.emailpackage) {
		if ( frm.emailpackage.checked ) {
			if ( frm.email.value == '' ) {
				msg += 'Email Address.\n';
				retVal = false;
			}
		}
	} else {
		if ( frm.email.value == '' ) {
			msg += 'Email Address.\n';
			retVal = false;
		}
	}
	
	if ( !retVal) {
		alert(msg);
	}
	return retVal;
}

// function to validate Helpdesk Form
function validateHelpdeskForm(frm) {
	var retVal = true;
	var msg = "Not all required fields have been completed.\nPlease supply:\n";
	
	if ( frm.name.value == '' ) {
		msg += "Your Name.\n";
		retVal = false;
	}
	
	if ( frm.phone.value == '' ) {
		msg += "Your Phone Number.\n";
		retVal = false;
	}
	
	if ( frm.directorate.value == '' ) {
		msg += "Your Directorate.\n";
		retVal = false;
	}
	
	if ( frm.department.value == 'none' ) {
		msg += "Your Department.\n";
		retVal = false;
	}
	
	if ( frm.location.value == '' ) {
		msg += "Your Location.\n";
		retVal = false;
	}
	
	if ( frm.position.value == '' ) {
		msg += "Your Position.\n";
		retVal = false;
	}
	
	if ( frm.description.value == '' ) {
		msg += "A Description of Your Problem.\n";
		retVal = false;
	}
	
	if ( !retVal ) { 
		alert(msg); 
	}
	return retVal;
}

function echeck(str) {
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	
	if (str.indexOf(at)==-1){
		 return false;
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		 return false;
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
			return false;
	}
	 if (str.indexOf(at,(lat+1))!=-1){
			return false;
	 }
	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
			return false;
	 }
	 if (str.indexOf(dot,(lat+2))==-1){
			return false;
	 }
	 if (str.indexOf(" ")!=-1){
			return false;
	 }

	 return true;					
}

function checkTestForm(frm) {
	var retVal = true;
	var msg = "Not all required fields have been completed.\nPlease supply:\n";
	
	if ( frm.testname.value == '' ) {
		msg += 'Test Name\n';
		retVal = false;
	}
	if ( frm.subdivisionid.value == '0' ) {
		msg += 'Subdivision\n';
		retVal = false;
	}
	if ( frm.reviewer.value == '0' ) {
		msg += 'Reviewer\n';
		retVal = false;
	}
	
	if ( !retVal ) { 
		alert(msg); 
	}
	return retVal;
}

function validateFleetForm(frm) {
	var retVal = true;
	var msg = "Not all required fields have been completed.\nPlease supply:\n";
	
	if ( frm.driver.value == '' ) {
		msg += 'Driver\n';
		retVal = false;
	}
	if ( frm.passengers.value == '' ) {
		msg += 'Number of Passengers\n';
		retVal = false;
	}
	if ( frm.fleet.value == '0' ) {
		msg += 'Fleet\n';
		retVal = false;
	}
	
	if ( frm.event_start.value == '' ) {
		msg += 'Booking Date\n';
		retVal = false;
	}
	for ( var i=0; i<frm.e_type.length; i++ ) {
		if ( frm.e_type[i].checked ) {
			var e_type = frm.e_type[i].value;
		}
	}
	
	switch (e_type) {
		case 'ranged':
			if ( frm.event_end.value == '' ) {
				msg += 'Booking End Date\n';
				retVal = false;
			}
			break;
		case 'recurring':
			if ( frm.interval.value == '0' ) {
				msg += 'Booking Interval\n';
				retVal = false;
			}
			if ( frm.recurring_end.value == '' ) {
				msg += 'Recurring Booking End Date\n';
				retVal = false;
			}
			break;
	}
	
	if ( frm.startHour.value == '12' && frm.startMinute.value == '00' && frm.startMeridian.value == 'am' ) {
		msg += 'Booking Start Time\n';
		retVal = false;
	}
	if ( frm.endHour.value == '12' && frm.endMinute.value == '00' && frm.endMeridian.value == 'am' ) {
		msg += 'Booking End Time\n';
		retVal = false;
	}
	
	if ( frm.destination.value == '' ) {
		msg += 'Destination\n';
		retVal = false;
	}
	if ( frm.costcentre.value == '' ) {
		msg += 'Cost Centre\n';
		retVal = false;
	}
	if ( frm.department.value == '' ) {
		msg += 'Department\n';
		retVal = false;
	}
	
	if ( !retVal ) { 
		alert(msg); 
	}
	return retVal;
}

function showHideChildMenuItems(div, menuid, siteid) {
	var img;
	var visible = false;
	if ( document.all ) {
		img = eval('document.all.img_' + menuid);
		if ( document.all[div].style.display == 'none' ) {
			document.all[div].style.display = 'inline';
			img.src = '/images/icons/folder_open.gif';
			visible = true;
		} else {
			document.all[div].style.display = 'none';
			img.src = '/images/icons/folder_closed.gif';
		}	
	}
	else if ( document.getElementById ){
		if ( document.getElementById(div).style.display == 'none' ) {
			document.getElementById(div).style.display = 'inline';
			document.getElementById('img_' + menuid).src = '/images/icons/folder_open.gif';
			visible = true;
		} else {
			document.getElementById(div).style.display = 'none';
			document.getElementById('img_' + menuid).src = '/images/icons/folder_closed.gif';
		}
	}
	
	var thisCookie = "submenus_" + siteid + "=";
	
	var allcookies = document.cookie;
	var pos = allcookies.indexOf("submenus_" + siteid + "=");
	
	if (pos != -1) {
		var start = pos + thisCookie.length;
		var end = allcookies.indexOf(";",start);
		if (end == -1) end = allcookies.length;
		var value = allcookies.substring(start,end);
		value = unescape(value);
		var shown = value.split(",");
		var resultshown = new Array();
		var j = 0;
		var found = false;
		for ( var i=0; i<shown.length; i++) {
			if ( shown[i] == menuid ) {
				found = true;
				if ( visible ) {
					resultshown[j++] = shown[i];
				} 
			} else {
				resultshown[j++] = shown[i];
			}
		}
		if ( found == false ) {
			resultshown[j] = menuid;
		}
		var cookieStr = escape(resultshown.join(","));
	} else {
		var cookieStr = menuid;
	}

	//alert("submenus_" + siteid + "=" + cookieStr + ';');
	document.cookie = "submenus_" + siteid + "=" + cookieStr + ';'; 

}

// Get today's current date.
function getTodaysDate() {
	var now = new Date();
	
	// Array list of days.
	var days = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
	
	// Array list of months.
	var months = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
	
	// Calculate the number of the current day in the week.
	var date = ((now.getDate()<10) ? "0" : "")+ now.getDate();
	
	// Calculate four digit year.
	function fourdigits(number)	{
		return (number < 1000) ? number + 1900 : number;
									}
	
	// Join it all together
	today =  days[now.getDay()] + ", " + date + " " +
				  months[now.getMonth()] + " " 
				   + " " +
					(fourdigits(now.getYear())) ;
					//Print out date
					
	document.write("" +today+ "");
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

//-->
