Date.prototype.fnGetNumericDateString = GetNumericDateString;

var nDelegates=0;
function GetNumericDateString()
{
	var sDateString =new String();
	sDateString=this.getYear() + "/" + Pad(this.getMonth()+1)+ "/" + Pad(this.getDate());
	return sDateString;
}
function Pad(pnMonth)
{
	var sMonth= new String(pnMonth);
	
	if(sMonth.length<2)
	{
		sMonth="0"+sMonth;
	}
	return sMonth;
}

function BookingSubmit()
{
	try
	{
		var formBooking = document.getElementById("frmBooking");
		var dtNow = new Date();
		var oRE = /\s/g;
		
		var sEmail = "";
		sEmail = "mailto:tack@global.co.za?subject=Course%20Booking%20for%20"+dtNow.fnGetNumericDateString();
		//
		sEmail +="&body=";
		sEmail +="Company Details%0d";
		var inputCompany = document.getElementById("txtCompany");
		if(inputCompany.value.length==0)
		{
			alert("The Company Name is a required field");
			return;
		}
		sEmail +=inputCompany.value + ",%20";
		
		var inputTel = document.getElementById("txtTel");
		if(inputTel.value.length==0)
		{
			alert("The Telephone Number is a required field");
			return;
		}
		sEmail +=inputTel.value + ",%20";
		
		var inputFax = document.getElementById("txtFax");
		if(inputFax.value.length==0)
		{
			alert("The Fax Number is a required field");
			return;
		}
		sEmail +=inputFax.value + ",%20";
		
		var inputEmail = document.getElementById("txtEmail");
		if(inputEmail.value.length==0)
		{
			alert("The Email Address is a required field");
			return;
		}
		sEmail +=inputEmail.value + ",%20";
		
		var inputManager = document.getElementById("txtManager");
		if(inputManager.value.length==0)
		{
			alert("The Authorising Executive/Manager is a required field");
			return;
		}
		sEmail +=inputManager.value + "%0d%0d";
		
		sEmail +="Postal Address Details%0d";
		var inputPOBox = document.getElementById("txtPOBox");
		if(inputPOBox.value.length==0)
		{
			alert("The Postal Address is a required field");
			return;
		}
		sEmail +=inputPOBox.value + ",%20";	
		
		var selectCity = document.getElementById("cmbCity");
		var inputCity = document.getElementById("txtCity");
		if(selectCity.value.length==0&&inputCity.value.length==0)
		{
			alert("The City field is a required field");
			return;
		}
		else
		{
			sEmail +=(selectCity.value==""?inputCity.value:selectCity.value);
			sEmail +=",%20";		
		}
		
		
		
		var selectRegion = document.getElementById("cmbRegion");
		var inputRegion = document.getElementById("txtRegion");
		if(selectRegion.value.length==0&&inputRegion.value.length==0)
		{
			alert("The Region field is a required field");
			return;
		}
		else
		{
			sEmail +=(selectRegion.value==""?inputRegion.value:selectRegion.value);
			sEmail +=",%20";		
		}
		
		var inputPostal
		var inputPostalCode = document.getElementById("txtPostalCode");
		if(inputPostalCode.value.length==0)
		{
			alert("The Postal Code is a required field");
			return;
		}
		sEmail +=inputPostalCode.value + ",%0d%0d";
		
		sEmail +="Other%0d";
		var inputJoinMailYes = document.getElementById("radJoinMailYes");
		sEmail +=(inputJoinMailYes.checked==true?"Join mailing list=YES,%20":"");
		var inputJoinMailNo = document.getElementById("radJoinMailNo");
		sEmail +=(inputJoinMailNo.checked==true?"Join mailing list=NO,%20":"");
		sEmail +="%0d%0d";
		
		sEmail +="Delegates%0d";
		var collNames = document.getElementsByName("txtName");
		var collSurnames=document.getElementsByName("txtSurname");
		var collCourses=document.getElementsByName("cmbCourse");
		if(collNames.length==0)
		{
			alert("At Least 1 delegate must be allocated");
			return;
		}
		
		if(collNames(0).value.length==0&&collSurnames(0).value.length==0&&collCourses(0).value.length==0)
		{
			alert("At least one delegate details must be completed.");
			return;
		}
		
		
		for(i=0; i <collNames.length; i++ )
		{
			if(collNames(i).value.length==0)
			{
				alert("The delegate must have a Name.");
				return;
			}
			sEmail +=collNames(i).value + ",%20";
			if(collSurnames(i).value.length==0)
			{
				alert("The delegate must have a Surname.");
				return;
			}
			sEmail +=collSurnames(i).value + ",%20";
			if(collCourses(i).value.length==0)
			{
				alert("The delegate must have a Course.");
				return;
			}
			sEmail +=collCourses(i).value + ",%20";
			sEmail +="%0d";
		}
		var sValue = sEmail;//sEmail.substr(0,2047);
		sValue=sValue.replace(oRE,"%20");
		formBooking.action=sValue;
		
		formBooking.submit();

	}
	catch(e)
	{
		
	}
}

function EnquiriesSubmit()
{
	try
	{
		var formEnquiry = document.getElementById("frmEnquiry");
		var dtNow = new Date();
		var oRE = /\s/g;
		
		var sEmail = "";
		sEmail = "mailto:tack@global.co.za?subject=Enquiry%20for%20"+dtNow.fnGetNumericDateString();
		sEmail +="&body=";
		sEmail +="Personel Details%0d";
		var selectTitle = document.getElementById("cmbTitle");
		if(selectTitle.value.length==0)
		{
			alert("The Title is a required field");
			return;
		}
		sEmail +="Title: "+selectTitle.value + ",%0d";
		
		var inputFirstName = document.getElementById("txtFirstName");
		if(inputFirstName.value.length==0)
		{
			alert("The First Name is a required field");
			return;
		}
		sEmail +="Firstname: "+inputFirstName.value + ",%0d";
		
		var inputSurame = document.getElementById("txtSurname");
		if(inputSurame.value.length==0)
		{
			alert("The Surname is a required field");
			return;
		}
		sEmail +="Surname: "+inputSurame.value + ",%0d";

		var selectDesignation = document.getElementById("cmbDesignation");
		if(selectDesignation.value.length==0)
		{
			alert("The Designation is a required field");
			return;
		}
		sEmail +="Designation:"+selectDesignation.value + ",%0d";
		
		var inputCompany = document.getElementById("txtCompany");
		sEmail +="Company: "+inputCompany.value + ",%0d";
		
		var inputTel = document.getElementById("txtTel");
		if(inputTel.value.length==0)
		{
			alert("The Telephone Number is a required field");
			return;
		}
		sEmail +="Tel: "+inputTel.value + ",%0d";
		
		var inputFax = document.getElementById("txtFax");
		sEmail +="Fax: "+inputFax.value + ",%0d";
		
		var inputEmail = document.getElementById("txtEmail");
		if(inputEmail.value.length==0)
		{
			alert("The Email Address is a required field");
			return;
		}
		sEmail +="Email: "+inputEmail.value + ",%0d";
		sEmail +="%0d";
		
		sEmail +="Other%0d";
		var selectInterest = document.getElementById("cmbInterest");
		sEmail +="My particular area of interest: "+selectInterest.value + ",%0d";
		
		var selectKnowAbout = document.getElementById("cmbKnowAbout");
		sEmail +="I would like to know more about: "+selectKnowAbout.value + ",%0d";
		
		var inputBrochureYes = document.getElementById("radBrochureYes");
		sEmail +=(inputBrochureYes.checked==true?"Would you like to receiver our corporate brochure?=YES,%20":"");
		var inputBrochureNo = document.getElementById("radBrochureNo");
		sEmail +=(inputBrochureNo.checked==true?"Would you like to receiver our corporate brochure?=NO,%20":"");
		sEmail +="%0d";
		
		var inputProgrammeYes = document.getElementById("radProgrammeYes");
		sEmail +=(inputProgrammeYes.checked==true?"Would you like to receiver our open course programme?=YES,%20":"");
		var inputProgrammeNo = document.getElementById("radProgrammeNo");
		sEmail +=(inputProgrammeNo.checked==true?"Would you like to receiver our open course programme?=NO,%20":"");
		sEmail +="%0d";
		
		var inputServiceYes = document.getElementById("radServicesYes");
		sEmail +=(inputServiceYes.checked==true?"May we contact you from time to time regarding our services?=YES,%20":"");
		var inputServiceNo = document.getElementById("radServicesNo");
		sEmail +=(inputServiceNo.checked==true?"May we contact you from time to time regarding our services?=NO,%20":"");
		sEmail +="%0d";
		
		
		var sValue = sEmail;//sEmail.substr(0,2047);
		sValue=sValue.replace(oRE,"%20");
		formEnquiry.action=sValue;
		
		formEnquiry.submit();

	}
	catch(e)
	{
		
	}
}

function ViewEZine(psUrl)
{
	window.showModelessDialog(psUrl,"","center:yes;edge:sunken;resizable:yes");
}

function ViewSchedule(psUrl)
{
	var windowSchedule = window.open(psUrl,"_blank","center=yes,edge=sunken,resizable=yes,menubar=yes");
}

function ViewCourses()
{
	var selectCourse = document.getElementById("cmbCourse");
	window.navigate("Default.asp?M=Courses&S="+selectCourse.value);
}

function ViewCourse(pMenuKey,pSubMenuKey,pSubSubMenuKey,psColour)
{
	window.navigate("Default.asp?M="+pMenuKey+"&S="+pSubMenuKey+"&SS="+pSubSubMenuKey+"&C="+psColour.toLowerCase());
}
function ViewCalendar(psCourse)
{
	var sDefaultCourse = new String(psCourse);
	window.navigate("Default.asp?M=M2&DC="+(sDefaultCourse.length==0?"":sDefaultCourse.toString()));
}
function MenuSelect(pMenuKey,pSubMenuKey,pSubSubMenuKey,psColour,poElement)
{
	var tblMenu = document.getElementById("tblMenuBar");
	
	
	for(nIndex=0; nIndex < tblMenu.rows.length; nIndex++)
	{
		var tdMenuItem =tblMenu.rows(nIndex).cells(0);
		tdMenuItem.className="bgWhite";
		var trMenuItem = tdMenuItem.getElementsByTagName("TR");
		trMenuItem(0).className = "MainNavStatic";
	}
	
	//Check if it is booking course
	var sDefaultBooking ="";
	switch(pMenuKey.toUpperCase())
	{
		case "BOOKACOURSE":
			if(typeof(poElement)!="undefined")
			{
				var sCourseName = poElement.coursename;
				var sCourseDate= poElement.coursedate;
			 	sDefaultBooking = sCourseName.toString()+" ["+sCourseDate.toString()+"]";
			}

		break;
		case "ENQUIRIES":
		
		break;
		case "HOME":
			
		break;
		case "TIPS":
		
		break;
		case "NEWS":
		
		break;
		case "ABOUTTACK":
		case "CONTACTUS":
		case "TRAINER":
		
		break;
		
		default:
			var tdMenuItem = document.getElementById("td"+pMenuKey+pSubMenuKey);
			tdMenuItem.className = "MainNavActive";
			var trMenuItem = document.getElementById("tr"+pMenuKey+pSubMenuKey+"Sub");
			trMenuItem.className = "MainNavActive";
	}
	window.navigate("Default.asp?M="+pMenuKey+"&S="+pSubMenuKey+"&SS="+pSubSubMenuKey+"&C="+psColour.toLowerCase()+"&DB="+(sDefaultBooking.length==0?"":sDefaultBooking.toString()));
	
}

function KeyNavSelect(fontElement)
{
	var colKeyNav=document.getElementsByName("KeyNav");
	for(iIndex=0; iIndex<colKeyNav.length;iIndex++)
	{
		colKeyNav(iIndex).className = "fontKeyNavStatic";
	}
	
	
	fontElement.className="fontKeyNavActive";
	
}

function QuickNavSelect(fontElement)
{
	var colKeyNav=document.getElementsByName("QuickNav");
	for(iIndex=0; iIndex<colKeyNav.length;iIndex++)
	{
		colKeyNav(iIndex).className = "fontQuiNavStatic";
	}
	
	fontElement.className="fontQuiNavActive";
	
}

function DoOnload(psMenu)
{
	switch(psMenu.toUpperCase())
	{
		case "HOME":
			var fontElement = document.getElementsByName("QuickNav")(0);
			QuickNavSelect(fontElement);
		break;
		case "TIPS":
			var fontElement = document.getElementsByName("QuickNav")(1);
			QuickNavSelect(fontElement);
		break;
		case "NEWS":
			var fontElement = document.getElementsByName("QuickNav")(2);
			QuickNavSelect(fontElement);
		break;
		case "BOOKACOURSE":
			var fontElement = document.getElementsByName("KeyNav")(0);
			KeyNavSelect(fontElement);
		break;
		case "ABOUTTACK":
			var fontElement = document.getElementsByName("KeyNav")(1);
			KeyNavSelect(fontElement);
		break;
		case "CONTACTUS":
			var fontElement = document.getElementsByName("KeyNav")(2);
			KeyNavSelect(fontElement);
		break;
		case "ENQUIRIES":
			var fontElement = document.getElementsByName("KeyNav")(3);
			KeyNavSelect(fontElement);
		break;
	}
}

function deleteDelegate(poElement)		
{
	var tableDelegates = document.getElementById("tblDelegates");
	var tdCell = poElement.parentElement;
	var trRow = tdCell.parentElement;
	
	if(trRow!=null)
	{
		tableDelegates.deleteRow(trRow.rowIndex);
		nDelegates--;
	}
	
}

function checkNumeric(poElement)
{
	/*
	This does a check for numeric values in the control
	poElement must have the following attribute:
	maxlen=  number of characters
	maxvalue= a maximum value that can be entered
	minvalue = a minimum value that can be entered
	precision=number of decimal places to the right
	*/
	var oRE = /[^0-9,.-]/g;
	var sMaxLength = new String(poElement.maxlen);
	var sMaxValue = new String(poElement.maxvalue);
	var sMinValue = new String(poElement.minvalue);
	var sPrecision = new String(poElement.precision);
	var sElementValue =  new String(poElement.value);
	var nElementValue = new Number();
	
	var nMaxLength=0;
	var nMaxValue=0;
	var nMinValue=0;
	var nPrecision=0;
	
	
	if(typeof(sMaxLength.toString())=="string")
	{
		nMaxLength = new Number(sMaxLength);
	}
	if(typeof(sMaxValue.toString())=="string")
	{
		nMaxValue = new Number(sMaxValue);
	}
	if(typeof(sMinValue.toString())=="string")
	{
		nMinValue = new Number(sMinValue);
	}
	if(typeof(sPrecision.toString())=="string")
	{
		nPrecision = new Number(sPrecision);
	}
	//Check if value has all legal characters
	if(oRE.test(sElementValue.toString())==true)
	{
		//Error, there are non numeric characters
		nElementValue=nMinValue;
		alert("Illegal Characters","You have entered illegal characters." );
	}
	else
	{
		//Check the precision
		if(nPrecision==0)
		{
			//Check the length of the string
			if(sElementValue.length<=nMaxLength)
			{
				//Value is required as an integer
				nElementValue = parseInt(sElementValue.toString());
				
				//Check if value falls within the min and max
				if (nElementValue.valueOf()<nMinValue.valueOf()|| nElementValue.valueOf()>nMaxValue.valueOf())
				{
					nElementValue = nMinValue.valueOf();
					alert ("Value Out of Range","You have entered a value that is not within the maximum and minimum values.");
				}
			}
			else
			{
				nElementValue = nMinValue.valueOf();
				alert ("Exceeded Maximum Length","There is a maximum character length for this input. It is currently "+sMaxLength+" and the text provided has exceed this.");
			}
		}
		else
		{
			//Check the length of the string
			if(sElementValue.length<=nMaxLength)
			{
				//Value is required as an decimal
				nElementValue = parseFloat(sElementValue.toString());
				nElementValue = new Number(nElementValue.toFixed(nPrecision));
				
				//Check if value falls within the min and max
				if (nElementValue.valueOf()<nMinValue.valueOf() || nElementValue.valueOf()>nMaxValue.valueOf())
				{
					nElementValue = nMinValue.valueOf();
					alert ("Value Out of Range","You have entered a value that is not with the maximum and minimum values.");
				}

			}
			else
			{
				nElementValue = nMinValue.valueOf();
				alert ("Exceeded Maximum Length","You have entered too many characters that have exceeded the maximum length.");
			}
		}
	}
	poElement.value =nElementValue;
}


function checkAlphaNumeric(poElement)
{
	/*
	This does a check for numeric values in the control
	poElement must have the following attribute:
	maxlength: Number of characters
	datatype: email|text |phone
	
	*/
	//var oRE = /\W\B[^\n\r]/gi;
	var oRE = /\W\B\S\'/gim;
	var oREEmail = /[^0-9a-zA-Z\.@\-_]/gi;
	var oREPhone = /[^0-9-()]/gi;
	var sMaxLength = new String(poElement.maxlen);
	var sDataType = new String(poElement.datatype);
	var sElementValue =  new String(poElement.value);
	var sElementTempValue ="";
	
	
	var nMaxLength=0;
	if(typeof(sMaxLength.toString())=="string")
	{
		nMaxLength = new Number(sMaxLength);
	}
	
	//First check the datatype
	switch(sDataType.toLowerCase())
	{
		case "email":
			//Check if value has all legal characters
			if(oREEmail.test(sElementValue.toString())==true)
			{
				//Error, there are non alphanumeric characters
				sElementTempValue="";
				alert ("Illegal Characters","You have entered illegal characters." );
			}
			else
			{
				var oREPeriod = /\./g;
				var aPeriods = sElementValue.match(oREPeriod);
				//Check for length
				if(sElementValue.length>nMaxLength.valueOf())
				{
					sElementTempValue="";
					alert ("Exceeded Maximum Length","There is a maximum character length for this input. It is currently "+nMaxLength+" and the text provided has exceed this.");
				}
				else
				{
					
					//Check for periods,
					if(aPeriods ==null )
					{
						sElementTempValue="";
						alert ("Invalid Email Address","You have entered in an invalid email address.");
					}
					else
					{
						if(aPeriods.length<1)
						{
							sElementTempValue="";
							alert ("Invalid Email Address","You have entered in an invalid email address.");
						}
						else
						{
							sElementTempValue=sElementValue.toString();
						}
						
					}
				}
			}
		break;
		case "text":
			//Check if value has all legal characters
			if(oRE.test(sElementValue.toString())==true)
			{
				//Error, there are non alphanumeric characters
				sElementTempValue="";
				alert ("Illegal Characters","You have entered illegal characters.");
			}
			else
			{
				//Check for length
				if(sElementValue.length>nMaxLength.valueOf())
				{
					//sElementTempValue="";
					alert ("Exceeded Maximum Length","There is a maximum character length for this input. It is currently "+nMaxLength+" and the text provided has exceed this.");
				}
				else
				{
					sElementTempValue=sElementValue.toString();
				}
			}
		break;
		case "phone":
			//Check if value has all legal characters
			if(oREPhone.test(sElementValue.toString())==true)
			{
				//Error, there are non alphanumeric characters
				sElementTempValue="";
				alert ("Illegal Characters","You have entered illegal characters.");
			}
			else
			{
				//Check for length
				if(sElementValue.length>nMaxLength.valueOf())
				{
					sElementTempValue="";
					alert ("Exceeded Maximum Length","There is a maximum character length for this input. It is currently "+nMaxLength+" and the text provided has exceed this.");
				}
				else
				{
					sElementTempValue=sElementValue.toString();
				}
			}
		break;
		default:
			//Check if value has all legal characters
			if(oRE.test(sElementValue.toString())==true)
			{
				//Error, there are non alphanumeric characters
				sElementTempValue="";
				alert ("Illegal Characters","You have entered illegal characters.");
			}
			else
			{
				//Check for length
				if(sElementValue.length>nMaxLength.valueOf())
				{
					sElementTempValue="";
					alert ("Exceeded Maximum Length","There is a maximum character length for this input. It is currently "+nMaxLength+" and the text provided has exceed this.");
				}
				else
				{
					sElementTempValue=sElementValue.toString();
				}
			}
	}/*Switch*/
	
	switch(poElement.tagName.toUpperCase())
	{
		case "TEXTAREA":
			//alert(sElementValue.substring(0, 2999));
			sElementTempValue = sElementValue.substring(0, nMaxLength);
			var oREwhitespace = /\f\n\r\t\v/ig;
			
			poElement.innerText = sElementTempValue.replace(oREwhitespace, "");
		break;
		case "INPUT":
			
			poElement.value = sElementTempValue;
		break;
		default:
			
			poElement.value = sElementTempValue;
	}
	
	
}

