function confirmDelete(candidate) {
		return confirm('You are about to delete a ' + candidate + ' from the system.\n\n' +
					   'This process is immediate and cannot be reversed. If you are sure\n' +
					   'this is what you want to do, click OK. Otherwise click Cancel and\n' +
					   'the ' + candidate + ' will not be deleted.');
}

function isNumeric(sText) {
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1)  {
         IsNumber = false;
		 break;
      }
    }
   	return IsNumber;
}

function generatePassword(randomLength, length, noPunction) {
    if (parseInt(navigator.appVersion) <= 3) {
        window.alert("Sorry this only works in 4.0+ browsers");
        return "";
    }
	var sPassword = '';
    if (randomLength) {
        length = Math.random();

        length = parseInt(length * 100);
        length = (length % 7) + 6;
    }
    for (var i=0; i < length; i++) {
        var numI = getRandomNum();
        if (noPunction) {
			while (checkPunc(numI)) {
				numI = getRandomNum();
			}
		}
        sPassword = sPassword + String.fromCharCode(numI);
    }
    return sPassword;
}

function getRandomNum() {
    // between 0 - 1
    var rndNum = Math.random();

    // rndNum from 0 - 1000
    rndNum = parseInt(rndNum * 1000);

    // rndNum from 33 - 127
    rndNum = (rndNum % 94) + 33;
    return rndNum;
}

function checkPunc(num) {
    if ((num >=33) && (num <=47)) { return true; }
    if ((num >=58) && (num <=64)) { return true; }
    if ((num >=91) && (num <=96)) { return true; }
    if ((num >=123) && (num <=126)) { return true; }

    return false;
}

function getMonthName(month) {
	
	var retVal = ''
	
	switch (month) {
		case 0 :
			retVal = 'January';
			break;
		case 1 :
			retVal = 'February';
			break;
		case 2 :
			retVal = 'March';
			break;
		case 3 :
			retVal = 'April';
			break;
		case 4 :
			retVal = 'May';
			break;
		case 5 :
			retVal = 'June';
			break;
		case 6 :
			retVal = 'July';
			break;
		case 7 :
			retVal = 'August';
			break;
		case 8 :
			retVal = 'September';
			break;
		case 9 :
			retVal = 'October';
			break;
		case 10 :
			retVal = 'November';
			break;
		case 11 :
			retVal = 'December';
			break;
	}
	
	return retVal;
}

function getMonthNumber(monthName) {
	var retVal = ''
	
	switch (monthName) {
		case 'January' :
		case 'Jan' :
			retVal = 0;
			break;
		case 'February' :
		case 'Feb' :
			retVal = 1;
			break;
		case 'March' :
		case 'Mar' :
			retVal = 2;
			break;
		case 'April' :
		case 'Apr' :
			retVal = 3;
			break;
		case 'May' :
			retVal = 4;
			break;
		case 'June' :
		case 'Jun' :
			retVal = 5;
			break;
		case 'July' :
		case 'Jul' :
			retVal = 6;
			break;
		case 'August' :
		case 'Aug' :
			retVal = 7;
			break;
		case 'September' :
		case 'Sep' :
			retVal = 8;
			break;
		case 'October' :
		case 'Oct' :
			retVal = 9;
			break;
		case 'November' :
		case 'Nov' :
			retVal = 10;
			break;
		case 'December' :
		case 'Dec' :
			retVal = 11;
			break;
	}
	
	return retVal;
}

function checkMail(testAddress) {
	if (testAddress) {
		//var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		//var filter = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,4})(\]?)$/;
		var filter = /^.+\@.+$/;
		/*
		JS  ^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$
		PHP ^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-z]{2,4})$
		*/
		return filter.test(testAddress);
	} else {
		return false;	
	}
}

function CreateBookmarkLink() {
	var strTitle;
	var strUrl;
	if (CreateBookmarkLink.arguments.length > 0) {
		strUrl = CreateBookmarkLink.arguments[0];
	} else {
		strUrl = "http://www.element76.co.uk/easglasgow/login-form.php";
		strTitle = "EASG Login";
	}
	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(strTitle, strUrl, "");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite(strUrl, strTitle);
	}
}

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_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}