
function Popup_function(page) 
{
    var winTop = ((screen.height - 250) / 2);
    var winLeft= ((screen.width - 600) / 2);
	OpenWin = this.open(page, "CtrlWindow", "top="+winTop+",left="+winLeft+",toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes,width=600,height=250");
}

function Popup_full(page) 
{
    var winTop = ((screen.height - 500) / 2);
    var winLeft= ((screen.width - 600) / 2);
	OpenWin = this.open(page, "CtrlWindow", "top="+winTop+",left="+winLeft+",toolbar=yes,menubar=yes,location=yes,scrollbars=yes,resizable=yes,width=600,height=400");
}

function Popup_full_wide(page) 
{
    var winTop = ((screen.height - 500) / 2);
    var winLeft= ((screen.width - 600) / 2);
	OpenWin = this.open(page, "CtrlWindow", "top="+winTop+",left="+winLeft+",toolbar=yes,menubar=yes,location=yes,scrollbars=yes,resizable=yes,width=700,height=400");
}

function NewWindow(myPage, myName, Width, Height, Scroll, Resizable) {
    var winTop = ((screen.height - Height) / 2);
    var winLeft= ((screen.width - Width) / 2);
    winProps = 'top=' +winTop+ ',left=' +winLeft+ ',height=' +Height+ ',width=' +Width+ ',Scrollbars=' +Scroll+ ',Resizable=' +Resizable+ ';'
    Win = window.open(myPage, myName, winProps);

        if (parseInt(navigator.appVersion) >= 4) {
            Win.window.focus(); //set focus to the window
        }
}

function Popup_IRC(page) 
{
    var winTop = ((screen.height - 530) / 2);
    var winLeft= ((screen.width - 920) / 2);
	OpenWin = this.open(page, "CtrlWindow", "top="+winTop+",left="+winLeft+",toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes,width=920,height=530");
}

function download_file(page) 
{    
	var winTop = ((screen.height - 600) / 2);
    var winLeft= ((screen.width - 800) / 2);
	OpenWin = this.open(page, "CtrlWindow", "top="+winTop+",left="+winLeft+",toolbar=yes,menubar=yes,location=no,scrollbars=yes,resizable=yes,width=800,height=600");
}

function Datagrid_function(page) 
{
    var winTop = ((screen.height - 350) / 2);
    var winLeft= ((screen.width - 600) / 2);
	OpenWin = this.open(page, "CtrlWindow", "top="+winTop+",left="+winLeft+",toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes,width=600,height=350");
}

function datagrid_return_all(field_name)
{
			var parent_string = document.location+' ';
			var pos = parent_string.indexOf("&filter_field");
			var postwo = parent_string.indexOf("&order_filter");
			
			if (postwo !== -1)
			{	
				var new_header = parent_string.substr(0,postwo);
			}
			else
			{
				if (pos !== -1)
				{	
					var new_header = parent_string.substr(0,pos);
				}
				else
				{
					var new_header = document.location;
				}
				
			}
			
			document.location = new_header+'&filter_field='+field_name+'&StartRow=0&SearchString=&NumRows=10';
}

function CloseCalandar() {
    try {
        Win.close();
    } catch(e) {}
}

function writeToday(formName, elementName, nextElement){
    var tmpObj = eval("document." +formName+ "." +elementName);
    if (tmpObj.value == "") {
        var today = new Date();
        var tmpDay =  String(today.getDate());
        var tmpMonth = String(today.getMonth()+ 1);
        var tmpYear = String(today.getFullYear());
        tmpDay  = ((tmpDay.length==1)? '0':'')  + String(tmpDay);
        tmpMonth = ((tmpMonth.length==1)? '0':'') +  String(tmpMonth);
        var tmpDate = tmpDay + tmpMonth + tmpYear;
        tmpObj.value = tmpDate;
    } else {
        return;
    }
}



//this function checks if a form field is blank
function notBlank(formField)
{
    var result = true;
    var blank_spaces  = 0;

    for (var i=0; i < formField.value.length; i++)
    {
         if (formField.value.charAt(i) == " ")
        {
             blank_spaces ++;
        }
    }

    if ((formField.value == "") || (blank_spaces == formField.value.length))
    {
        result = false;
    }

    return result;
}

function checkLength(formField, fieldName, minLength, maxLength)
{
     if ((formField.value.length < minLength) && (formField.value.length > 0))
    {
         alert ('The ' + fieldName + ' field must be longer than ' + minLength + ' characters');
		 if((formField.name == 'Password') || (formField.name == 'Password2')){
		 	document.profile.Password.value = oldpassword;
			document.profile.Password2.value = oldpassword;	
			}
        formField.focus();
    }

    if (formField.value.length > maxLength)
    {
         alert('The ' + fieldName + ' field cannot be longer than ' + maxLength + ' characters');
		 if((formField.name == 'Password') || (formField.name == 'Password2')){
		 	document.profile.Password.value = oldpassword;
			document.profile.Password2.value = oldpassword;	
			}
        formField.focus();
    }
}

function isEmailAddr(email)
{
  var result = false;

  if (notBlank(email))
  {

      var theStr = new String(email.value);
      var index = theStr.indexOf("@");

      if (index > 0)
      {
           var pindex = theStr.indexOf(".",index);
        if ((pindex > index+1) && (theStr.length > pindex+1))
        result = true;
      }
      if (result == false)
      {
            alert('Please enter a complete email address in the form: yourname@yourdomain.com');
         email.focus();
      }
   }
}

function inValidCharSet(str,charset)
{
    var result = true;

    // Note: doesn't use regular expressions to avoid early Mac browser bugs
    for (var i=0;i<str.length;i++)
        if (charset.indexOf(str.substr(i,1))<0)
        {
            result = false;
            break;
        }

    return result;
}

   function allDigits(formField)
{
   if (notBlank(formField))
   {

        var newString = "";

        for (i=0; i < formField.value.length; i++)
        {
             if (formField.value.charAt(i) != " ")
           {
                 newString += formField.value.charAt(i);
            }
        }

        formField.value = newString;

        if ((formField.value.charAt(0) != "+") && (inValidCharSet(formField.value,"0123456789")))
        {
             alert('The cell / telephone number must be preceded by a "+", in accordance with international format \n e.g. +27828683762 for South Africa');
            formField.focus();
        }

        else if (!inValidCharSet(formField.value,"+0123456789"))
        {
             alert('Please only enter digits preceded by a "+" in the telephone / cell field');
             formField.focus();
        }
    }
}

    function is_Number(formField){
    	
    	if(!inValidCharSet(formField.value,"0123456789"))
    	{
    		
    		alert('Please enter only digits');
    		formField.focus();
    	}
    
    
    }



function validate_amount(amount_field,decplaces)
{
    if(!inValidCharSet(amount_field.value,"0123456789."))
    {
     	 alert('Please enter only digits and a fullstop to separate decimal places in the amount field');
    	 amount_field.focus();
	}
    else if (dec(amount_field.value,decplaces) == false)
	{
		
		if (decplaces == 1)
		{	
			alert('You cannot enter more than ' + decplaces + ' decimal place in the amount field');

		}
		else
		{

			alert('You cannot enter more than ' + decplaces + ' decimal places in the amount field');
		}

		amount_field.focus();
	}
}



//Check if only two decimal places
function dec(formfield, dec_places){

if (!inValidCharSet(formfield,"0123456789"))
{
		var dec = formfield.split(".");

        if(dec[1].length > dec_places)
		{
        	return false;
        }
		else 
		{
        	return true;
        }
}
else
{
	return true;
}


}

function checkUncheckAll(box) {
			
	var currForm = box.form, c = 1;
	
		if (currForm[1].checked == true){
			while (c != (currForm.length-1)){
				c++;			
					currForm[c].checked = true;				
			}	
		}		
		if (currForm[1].checked == false){
			c = 1
			while (c != (currForm.length-1)){
				c++;	
					currForm[c].checked = false;			
			}	
		}			
}

function post_values_to_popup_function(page,formname,objname) 
{
    Popup_function(page);
    
    var tmpObj = eval("document." +formname);
    
    hiddenNOids = tmpObj.HiddenCBNo.value;
	OpenWin.document.write("<form name='Delete' action='"+page+"' method='POST'>"); 
	OpenWin.document.write("<input type='hidden' name='hiddenNOids' value=''>"); 
	OpenWin.document.Delete.hiddenNOids.value = hiddenNOids;

	var currForm = objname, c = 0, c2 = 0;
			while (c != ((parseInt(hiddenNOids))+1)){
				c++; 
					if (currForm[c].value != "checkall"){
					  if (currForm[c].checked == true){
						c2++;
					  	var textboxname = "CBdelete"+c2;
						OpenWin.document.write("<input type='hidden' name='"+textboxname+"' value='"+currForm[c].value+"'>");
					  }
					}
			}	
	OpenWin.document.write("</form>");
	OpenWin.document.forms.Delete.submit();
	OpenWin.focus();
}

function Full_page_pop(page) 
{
    var winTop = ((screen.height - 600) / 2);
    var winLeft= ((screen.width - 800) / 2);
	OpenWin = this.open(page, "CtrlWindow", "top="+winTop+",left="+winLeft+",toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes,width=800,height=600");


}

function Weblesson_page_pop(page) 
{
    var winTop = ((screen.height - 800) / 2);
    var winLeft= ((screen.width - 1010) / 2);
	OpenWin = this.open(page, "CtrlWindow", "top="+winTop+",left="+winLeft+",toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes,width=1000,height=700");
}

function refresh_slide_and_note(pSlideid)
{
	var slideid = parseInt(pSlideid);	
	parent.frames['SlideView'].location='edu_comp_l_lesson_slide_view.php?slideid='+slideid;
	parent.frames['SlideNote'].NoteEdit.slideid.value = slideid;
	parent.frames['SlideNote'].NoteEdit.subnote.click();	
}

function check_combo_boxes(objname)
{
	var result = true;
    var currForm = objname, c = -1, c2 = 0;
			while (c != (parseInt(currForm.length)-2)){
				c++; 
				if (!currForm[c].value){
					c2++;
				} 
			}	
    if (c2 == "2"){
    	result = false;
    	alert ("Sorry, but you need to fill in one of the combo boxes before you can continue");
    }
    return result;
}

    
 
 function check_combo_boxes(objname)
{
	var result = true;
    var currForm = objname, c = -1, c2 = 0;
			while (c != (parseInt(currForm.length)-2)){
				c++; 
				if (!currForm[c].value){
					c2++;
				} 
			}	
    if (c2 == "2"){
    	result = false;
    	alert ("Sorry, but you need to fill in one of the combo boxes before you can continue");
    }
    return result;
}

function checkToken(objname)
{
	
	var result = false;
	var StrAlert = "Sorry but the following users won't \nhave access to the educational offering \nunless a token is assigned to them:\n\n"
    var currForm = objname, c = 0, c2 = 0, check = 0;
			while (c != (((currForm.length-1)/3)*2)){
				c++;
				if ((currForm[c].value == 0)&&(currForm[((((currForm.length-1)/3)*2)+c2)].value == "")){
					var StrAlert = StrAlert + currForm[c-1].value + "\n";
					check = check +1;
				}
				c2++;
				if (c == 1){
					c = (2);
				}else{
					c = (c+1);
				}
				
			}	
			if (check > 0){
				alert (StrAlert);
			}else{
				result = true;
			}
    return result;
}
function post_list_values_to_popup_function(page,formname,objname) 
{
    Popup_function(page);
    
    var tmpObj = eval("document." +formname);
    
    hiddenNOids = tmpObj.rightlistbox.length;
	OpenWin.document.write("<form name='Delete' action='"+page+"' method='POST'>"); 
	OpenWin.document.write("<input type='hidden' name='hiddenNOids' value=''>"); 
	OpenWin.document.Delete.hiddenNOids.value = hiddenNOids;

	var currForm = objname, c = 0, c2 = 0;
			while (c != ((parseInt(hiddenNOids)))){
				c++; 
				var textboxname = "CBdelete"+c;
						OpenWin.document.write("<input type='hidden' name='"+textboxname+"' value='"+tmpObj.rightlistbox[c-1].value+"'>");
					  
					
			}	
	OpenWin.document.write("</form>");
	OpenWin.document.forms.Delete.submit();
	OpenWin.focus();
}

function assess_l_page_pop(page) 
{
    var winTop = ((screen.height - 768) / 2);
    var winLeft= ((screen.width - 1010) / 2);
	OpenWin = this.open(page, "CtrlWindow", "top="+winTop+",left="+winLeft+",toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes,width=1010,height=768");
	
}

function off_access_tokens(personroleid,itemavailableid,roleid)
{
	parent.frames['viewuser'].location='edu_off_edit_view_user_iframe.php?personroleid='+personroleid+'&eduoffid='+itemavailableid+'&selection=true&roleid='+roleid;	
	
}

function generate_audit_trail()
{

	var personroleid = parent.AuditTrail.PersonRoleID.value;
	var objectandtypeids = parent.AuditTrail.ObjectID.value;
	var actionid = parent.AuditTrail.ActionID.value;
	
	var objectsids = objectandtypeids.split(":");
	var objectid = objectsids[0];
	var objecttypeid = objectsids[1];
			
	parent.frames['audit_iframe'].location='audit_trail_compile_iframe.php?personroleid='+personroleid+'&objectid='+objectid+'&objecttypeid='+objecttypeid+'&actionid='+actionid+'&records=true';	
	
}

function comp_access_tokens(personroleid,itemavailableid,roleid)
{
	parent.frames['viewuser'].location='edu_comp_edit_view_user_iframe.php?personroleid='+personroleid+'&eduoffid='+itemavailableid+'&selection=true&roleid='+roleid;	
	
}
function add_contact_to_email(email)
{
	var element = parent.mailform.focusname.value; 
	//var i;
	var text;
	
	if (parent.mailform[element].value)
	{
		parent.mailform[element].value = parent.mailform[element].value + ", " + email;
	}else{
		parent.mailform[element].value = email;
	}
}

function add_contact_to_message(username)
{
	var element = parent.mailform.focusname.value; 	
	var text;
	
	if (parent.mailform[element].value)
	{
		parent.mailform[element].value = parent.mailform[element].value + ", " + username;
	}else{
		parent.mailform[element].value = username;
	}
}

function msg_recipients(imid)
{
	parent.frames['viewuser'].location='internal_message_recipient_iframe.php?imid='+imid+'&selection=true';	
	
}

function item_instances(tempid){
	
	
	//parent.document.location = 'index.php?pg=277&bc=1&tm=8&tempid='+tempid;
	// go straight to assessment page
	parent.document.location = 'index.php?pg=143&bc=1&tm=8';
}


function comp_instances(tempid){
	
	parent.document.location = 'index.php?pg=318&bc=1&tm=19&tempid='+tempid;
}



function check_multiple_email(email)
{

      var theStr = email;
      var index = theStr.indexOf("@");
	var result = false;
      if (index > 0)
      {
           var pindex = theStr.indexOf(".",index);
        if ((pindex > index+1) && (theStr.length > pindex+1))
        result = true;
      }
      if (result == false)
      {
	    return true;
      } else {
	   	return false;
	  }
   
}

function multiple_email(email_list,e){
			
			if(email_list != ""){
			var arr_emails = email_list.split(",");
			for (var a=0;a<arr_emails.length;a++){

				var result = check_multiple_email(arr_emails[a]);
				
				if(result == true){
					
					e.focus();
					alert(arr_emails[a]+' is not a valid E-Mail format. Please enter the correct E-Mail address.');
					
					break;

				}
									
			}
			}
	
}

function submit_dropdown(form_name)
{	
	form_name.submit();	
}

function nothing()
{	
	//alert('You cannot click on the end of the bread crumb');	
}

function check_date_time(theform,StartDate,StartHour,StartMinute,EndDate,EndHour,EndMinute){
	
		var now=new Date();

		var day = now.getDate();
		var month = now.getMonth()+1;
		var year = now.getYear();
		var curhour = now.getHours ();
		var curmin = now.getMinutes();
		
		if(day < 10){
			day = "0"+day;	
		}
		
		if(month < 10){
			month = "0"+month;	
		}
		
		var today = year + "-" + month + "-" +day;
		var blntime = false;
		var blnsd = false;
		var blned = false;
		var err = "";
				
		if((StartDate == 0) || (StartDate == "0000-00-00")){
			
			err += "Please select a Start Date\n";
			blnsd = true;
		} 
		
		if((EndDate == 0) || (EndDate == "0000-00-00")){
			
			err += "Please select an End Date\n";	
			blned = true;
			
		} else { 
			
			if(EndDate < today){
				
				err += "Please select an End Date that has not yet passed\n";	
				
			}
			if(EndDate < StartDate){
				
				err += "Please choose an End Date that is after the Start Date\n";	
			} 
			
			if (StartDate < today) {
				err += "Please select a Start Date that is after today's date\n";
				blnsd = true;			
			}
		}
		
		if((EndDate == StartDate) && (blnsd == false) && (blned == false)){
			
			if(StartHour > EndHour){
				
				blntime = true;
				
			}
			if((StartHour == EndHour) && (StartMinute >= EndMinute)){
				blntime = true;
			}
			
			if ((StartHour < curhour) && (StartDate == today)) {
				err += "Please select a Start Time that is after the current time\n";			
			}
			
			if ((StartHour == curhour) && (StartMinute < curmin) && (StartDate == today)) {
				err += "Please select a Start Time that is after the current time\n";			
			}
			
			if(blntime == true){	
				err += "Please select a Start Time that is before the End Time\n";
				blntime = false;
			}
		}
		
	
	
	
	if(err != ""){
		alert("Invalid Date/Time\n\n"+err);	
	} else {
		
		theform.submit();	
	}
	
}
function check_start_date_time(theform,StartDate,StartHour,StartMinute){
	
		var now=new Date();

		var day = now.getDate();
		var month = now.getMonth()+1;
		var year = now.getYear();
		var curhour = now.getHours ();
		var curmin = now.getMinutes();
		
		if(day < 10){
			day = "0"+day;	
		}
		
		if(month < 10){
			month = "0"+month;	
		}
		
		var today = year + "-" + month + "-" +day;
		var blntime = false;
		var blnsd = false;
		var err = "";
				
		if((StartDate == 0) || (StartDate == "0000-00-00")){
			
			err += "Please select a Start Date\n";
		} else if (StartDate < today) {
			err += "Please select a Start Date that is after today's date\n";			
		} else if ((StartDate == today) && (StartHour < curhour)) {
			err += "Please select a Start Time that is after the current time\n";			
		} else if ((StartDate == today) && (StartHour == curhour) && (StartMinute < curmin)) {
			err += "Please select a Start Time that is after the current time\n";			
		}
		
	
	if(err != ""){
		alert("Invalid Date/Time\n\n"+err);	
	} else {
		
		theform.submit();	
	}
	
}

function check_both(theform,StartDate,EndDate,Currency){
	
		var now=new Date();

		var now=new Date();

		var day = now.getDate();
		var month = now.getMonth()+1;
		var year = now.getYear();
		var startdate = StartDate;
										
		if(month < 9){
								
			var dispmonth = "0"+ month;
								
		} else {
			var dispmonth = month;
		}
						
		if(day < 9){
										
			var dispday = "0"+ day;
									
		} else {
			var dispday = day;
		}			
						
		var today = year + "-" + dispmonth + "-" +dispday;
		
		var blntime = false;
		var blnsd = false;
		var blned = false;
		var err = "";
		
		
		if((StartDate == 0) || (StartDate == "0000-00-00")){
			
			err += "Please select a Start Date\n";
			blnsd = true;
		} 
		
		if((EndDate == 0) || (EndDate == "0000-00-00")){
			
			err += "Please select an End Date\n";	
			blned = true;
			
		} else { 
			
			if(EndDate < today){
				
				err += "Please select an End Date that has not yet passed\n";	
			}
			if(EndDate < StartDate){
				
				err += "Please choose an End Date that is after the Start Date\n";	
			} 
		}
	if (Currency != "notcharge")	
	{
		
	if(Currency == ""){
		
	err += "Please select a value for the access token";	
	}
	}
			
	if(err != ""){
		alert("Error\n\n"+err);	
	} else {
		
		theform.submit();	
	}
	
	
}

function check_both_access_token(theform,StartDate,EndDate,Currency,sd_check,ed_check,Degree){
	
		var now=new Date();
		var now=new Date();
		var day = now.getDate();
		var month = now.getMonth()+1;
		var year = now.getYear();
		var startdate = StartDate;

		if(month < 9){
								
			var dispmonth = "0"+ month;
								
		} else {
			var dispmonth = month;
		}
						
		if(day < 9){
										
			var dispday = "0"+ day;
									
		} else {
			var dispday = day;
		}			
						
		var today = year + "-" + dispmonth + "-" +dispday;
									
		var blntime = false;
		var blnsd = false;
		var blned = false;
		var err = "";
		
		
		if((StartDate == 0) || (StartDate == "0000-00-00")){
			
			err += "Please select a Start Date\n";
			blnsd = true;
		} else if(StartDate < sd_check){
			
			if(Degree == 1){
			//err += "Please make the Access Token Start Date after the Course End Date\n";
			} else {
			//err += "Please make the Access Token Start Date after the Module End Date\n";
			}
		} 
		
		if((EndDate == 0) || (EndDate == "0000-00-00")){
			
			err += "Please select an End Date\n";	
			blned = true;
			
		} else { 
			
			if(EndDate < today){
				
				err += "Please select an End Date that has not yet passed\n";	
			}
			if(EndDate < StartDate){
				
				err += "Please choose an End Date that is after the Start Date\n";	
			}
			if(EndDate < sd_check){
				if(Degree == 1){
				err += "Please make the Access Token End Date after the Course Start Date\n";
				} else {
				err += "Please make the Access Token End Date after the Module Start Date\n";	
				}
			} 
		}
	if (Currency != "notcharge") {
			
		if(Currency == ""){
			err += "Please select a value for the access token";	
		}
	}
			
	if(err != ""){
		alert(err);	
	} else {
		
		theform.submit();	
	}
	
	
}

function check_extension(extension,thisform,thisfile){
	
	
	var dot = thisfile.lastIndexOf('.');
	var ext = thisfile.substr(dot,4);
	if(ext != extension){
			
		alert("Please only select files with the extension " + extension);
						
	} else {
		
		thisform.submit();	
	}
	
}

function set_applet(uploadapplet, file, filename, dir, hidden_filename){

var val = file.value;	
var no = val.lastIndexOf(".");
var ext = val.substr(no); 

if((ext ==".ppt") || (ext==".doc") || (ext==".xls") || (ext==".pdf")){
	
	// set applet file
	uploadapplet.setFile(file.value);
	uploadapplet.setFileName(filename + ext);
	uploadapplet.setDir(dir);
	hidden_filename.value = file.value;

} else {
	// Don't alert anything. Upload manager will take care of error messages
	
	// make sure that applet reset
	uploadapplet.setFile("default.txt");
	uploadapplet.setFileName("default.txt");
		
}

			
}

function postal_same(physical,postal,checkbox){
	
	if(checkbox.checked == true){
		postal.value = physical.value;
	}
}
