function Trim(sString)
{
	return sString.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function isDate(iDay, iMonth, iYear)
{
	//Check to make sure that they have selected a valid date
	var ary30Days = new Array("4","6","9","11");
	var bLeapYear = iYear / 4;
	
	//Is this a leap yer
	if (parseInt(bLeapYear) == bLeapYear)
		bLeapYear = true;
	else
		bLeapYear = false;
	
	//ensure that all values have been passed
	//if they havent, how can the date be correct
	if (isNaN(parseInt(iDay)) || isNaN(parseInt(iMonth)) || isNaN(parseInt(iYear)))
		return false;
	
	if (parseInt(iMonth) == 2)
	{
		if (bLeapYear && (parseInt(iDay) > 29))
			return false;
		else if (!bLeapYear && parseInt(iDay) > 28)
			return false;
	}
	else if (parseInt(iDay) > 30)
	{
		for (i = 0; i < ary30Days.length; i++)
		{
			if (parseInt(iMonth) == ary30Days[i])
				return false;
		}
	}
	return true;
}

function isEmail(sEmail)
{
	// Create the RegEx object
	var rgEmail = /([a-zA-Z0-9][-._a-zA-Z0-9]*)*[a-zA-Z0-9]+@?([a-zA-Z0-9][-_a-zA-Z0-9]*\.)+[a-zA-Z]{2,7}/g;
	var aryResult = sEmail.match(rgEmail);
	var bRtn = false;
	
	if (aryResult != null)
		bRtn = ((aryResult[0] == sEmail) ? true : false);
	
	return bRtn;
}

function checkdates(frm, dates)
{
	var aryDateFields = dates.split(",");
	if (dates.length > 0)
	{
		for (var iDate = 0; iDate < aryDateFields.length; iDate++)
		{
			try
			{
				iDay = eval('frm.' + aryDateFields[iDate] + 'day.value');
			}
			catch (e)
			{ iDay = 0; }
			
			try
			{
				iMonth = eval('frm.' + aryDateFields[iDate] + 'month.value');
			}
			catch (e)
			{ iMonth = 0; }
			
			try
			{
				iYear = eval('frm.' + aryDateFields[iDate] + 'year.value');
			}
			catch (e)
			{ iYear = 0; }
			
			if (!isDate(iDay, iMonth, iYear))
			{
				oYear = eval('frm.' + aryDateFields[iDate] + 'year');
				if (oYear.alt)
					alert(oYear.alt); 
				else if (oYear.title)
					alert(oYear.title); 
				else
					alert('You must enter a valid date for ' + aryDateFields[iDate]); 
				return false;
			}
		}
		return true;
	}
	return true;
}

function checktimes(frm, dates)
{
	var aryDateFields = dates.split(",");
	if (dates.length > 0)
	{
		for (var iDate = 0; iDate < aryDateFields.length; iDate++)
		{
			var iHour = eval('frm.' + aryDateFields[iDate] + 'hour.value');
			var iMinute = eval('frm.' + aryDateFields[iDate] + 'minutes.value');
			if((Trim(iHour).length == 0 || isNaN(iHour)) || (Trim(iMinute).length == 0 || isNaN(iMinute)))
			{
				var doc = eval('frm.' + aryDateFields[iDate] + 'minutes');
				if (doc.alt)
					alert(doc.alt); 
				else if (doc.title)
					alert(doc.title);
				else
					alert('You must enter a valid time for ' + fieldlist[element]); 
				doc.focus();
				return false;
			}
			
		}
	}
	return true;
}

function isNumeric(frm, sFields)
{
	// csv list of values to check
	var fieldlist = sFields.split(",");
	for(var element=0; element<fieldlist.length; element++)
	{
		if (fieldlist[element].length)
		{
			var doc = eval('frm.' + fieldlist[element]);
			var iNum = parseInt(doc.value);
			if(isNaN(iNum))
			{
				if (doc.alt)
					alert(doc.alt); 
				else if (doc.title)
					alert(doc.title);
				else
					alert('You must enter a numeric value for ' + fieldlist[element]); 
				if (Trim(doc.value) == 0)
					doc.value = 0;
				doc.focus();
				return false;
			}
		}
	}
	return true;
}

function validateform(frm, sFields)
{
	// csv list of values to check
	var fieldlist = sFields.split(",");
	for(var element=0; element<fieldlist.length; element++)
	{
		if (fieldlist[element].length)
		{
			var doc = eval('frm.' + fieldlist[element]);
			doc.value = Trim(doc.value);
			if(doc.value == "")
			{
				if (doc.alt)
					alert(doc.alt); 
				else if (doc.title)
					alert(doc.title);
				else
					alert('You must enter a value for ' + fieldlist[element]); 
				doc.focus();
				return false;
			}
		}
	}
	return true;
}

function validateForms(frm)
{
	if (!validateform(frm, frm.lstRequired.value) || 
			!isNumeric(frm, frm.lstRequiredNumeric.value) || 
			!checkdates(frm, frm.lstRequiredDate.value) || 
			!checktimes(frm, frm.lstRequiredTime.value))
		return false;
	else
		return true;
}

function setFlash(sFlash, sObject, iWidth, iHeight)
{
	var oFlash = new FlashObject(sFlash, sFlash, iWidth, iHeight, 5);
	oFlash.addParam("menu", false);
	oFlash.addParam("loop", false);
	oFlash.write(sObject);
	return false;
}

function setHomeBanner(sFlash)
{
	setFlash(sFlash, 'tdFlashBanner', 733, 139);
	return false;
}

function setBanner()
{
	setFlash("banner_flatprotect.swf", "tdBanner1", 162, -1); // bit hacky, but hey...
	setFlash("banner_bs.swf", "tdBanner2", 162, 70);
	setFlash("ban_2.swf", "tdBanner3", 162, 70);
	setFlash("ban_1.swf", "tdBanner4", 162, 70);
	setFlash("ban_3.swf", "tdBanner5", 162, 70);
	setFlash("banner_directors.swf", "tdBanner6", 162, 70);
}

function setServices()
{
	setFlash("products1_ci.swf", "tdService1", 195, 11);
	setFlash("products2_pi.swf", "tdService2", 195, 11);
	setFlash("products3_pci.swf", "tdService3", 195, 11);
	setFlash("products4_cccs.swf", "tdService4", 195, 11);
	setFlash("products5_spi.swf", "tdService5", 195, 11);
	setFlash("products7_pci.swf", "tdService6", 195, 11);
	setFlash("products8_pf.swf", "tdService7", 195, 11);
	setFlash("products9_v.swf", "tdService9", 195, 11);
}

function setServices1()
{
	setFlash("products2_pi.swf", "tdService2", 195, 11);
	setFlash("products3_pci.swf", "tdService3", 195, 11);
	setFlash("products4_cccs.swf", "tdService4", 195, 11);
	setFlash("products5_spi.swf", "tdService5", 195, 11);
	setFlash("products7_pci.swf", "tdService6", 195, 11);
	setFlash("products8_pf.swf", "tdService7", 195, 11);
	setFlash("products9_v.swf", "tdService9", 195, 11);
}

function setAbout()
{
	setFlash("about_company.swf", "tdAbout1", 195, 11);
	setFlash("about_group.swf", "tdAbout2", 195, 11);
	setFlash("about_awards.swf", "tdAbout3", 195, 11);
}
