var activeinputs = [];
activeinputs['count'] = 0;

activeinputs['FirstName'] = [];
activeinputs['FirstName']['ID'] = 'FirstName';
activeinputs['FirstName']['default'] = 'First Name';
activeinputs['FirstName']['required'] = true;
activeinputs['count']++;

activeinputs['LastName'] = [];
activeinputs['LastName']['ID'] = 'LastName';
activeinputs['LastName']['default'] = 'Last Name';
activeinputs['LastName']['required'] = true;
activeinputs['count']++;

activeinputs['Email'] = [];
activeinputs['Email']['ID'] = 'Email';
activeinputs['Email']['default'] = 'Email Address';
activeinputs['Email']['required'] = true;
activeinputs['Email']['type'] = "email";
activeinputs['count']++;

activeinputs['HomePhone'] = [];
activeinputs['HomePhone']['ID'] = 'HomePhone';
activeinputs['HomePhone']['default'] = 'Home Phone';
activeinputs['HomePhone']['required'] = false;
activeinputs['HomePhone']['type'] = "phonenumber";
activeinputs['count']++;

activeinputs['CellPhone'] = [];
activeinputs['CellPhone']['ID'] = 'CellPhone';
activeinputs['CellPhone']['default'] = 'Cell Phone';
activeinputs['CellPhone']['required'] = false;
activeinputs['CellPhone']['type'] = "phonenumber";
activeinputs['count']++;

activeinputs['SkypeName'] = [];
activeinputs['SkypeName']['ID'] = 'SkypeName';
activeinputs['SkypeName']['default'] = 'Skype Name';
activeinputs['SkypeName']['required'] = false;
activeinputs['count']++;

checkLoad();
function checkLoad()
{
	loaded = 0;

	for (var k in activeinputs)
	{
		if (isArray(activeinputs[k]))
		{
			if ($(activeinputs[k]['ID'])) loaded++;
		}
	}

	// Check for loaded status
	if (loaded == activeinputs.count)
	{
		initActiveTexts()
	}else{
		window.setTimeout('checkLoad();', 250);
	}
}

function initActiveTexts()
{
	activetexts = $$('input.activetext');
	for (i = 0; i < activetexts.length; i++)
	{
		if (activetexts[i].value == '' || activetexts[i].value == activeinputs[activetexts[i].id]['default'])
		{
			activetexts[i].setStyle('color: #ccc;');
			activetexts[i].value = activeinputs[activetexts[i].id]['default'];
		}

		Event.observe(activetexts[i], 'focus', function()
		{
			if ($(this).value == activeinputs[$(this).id]['default'])
			{
				$(this).value = '';
				$(this).setStyle('color: #333;');
			}
		});

		Event.observe(activetexts[i], 'blur', function()
		{
			if ($(this).value == '')
			{
				$(this).setStyle('color: #ccc;');
				$(this).value = activeinputs[$(this).id]['default'];
			}
		});
	}
}

function validateForm()
{
	ret = true;
	prevs = $$('#jserrors p');
	for (i = 0; i < prevs.length; i++)
	{
		prevs[i].remove();
	}

	activetexts = $$('input.activetext');
	for (i = 0; i < activetexts.length; i++)
	{
		// If the element exists...
		if ($(activeinputs[activetexts[i].id]['ID']))
		{
			// If the element is required or has a specified type
			if (activeinputs[activetexts[i].id]['required'] == true || activeinputs[activetexts[i].id]['type'] != null)
			{
				if (activeinputs[activetexts[i].id]['type'] == "email")
				{
					if (activeinputs[activetexts[i].id]['required'] == true || ($(activeinputs[activetexts[i].id]['ID']).value != '' && $(activeinputs[activetexts[i].id]['ID']).value != activeinputs[activetexts[i].id]['default']))
					{
						regexp = /^([a-z0-9_.-])+@([a-z0-9-\.])+\.([a-z]{2,4})+$/i;
						if (!regexp.test($(activeinputs[activetexts[i].id]['ID']).value))
						{
							ret = false;
							$('jserrors').insert(new Element('p', {}).insert('You must enter a valid email address for '+activeinputs[activetexts[i].id]['default']+'.'));
						}
					}
				}else if (activeinputs[activetexts[i].id]['type'] == "phonenumber")
				{
					if (activeinputs[activetexts[i].id]['required'] == true || ($(activeinputs[activetexts[i].id]['ID']).value != '' && $(activeinputs[activetexts[i].id]['ID']).value != activeinputs[activetexts[i].id]['default']))
					{
						regexp = /([^0-9])*/g;
						if($(activeinputs[activetexts[i].id]['ID']).value.replace(regexp, '').length != 10)
						{
							ret = false;
							$('jserrors').insert(new Element('p', {}).insert('You must enter a valid phone number for '+activeinputs[activetexts[i].id]['default']+'.'));
						}
					}
				}else{
					if ($(activeinputs[activetexts[i].id]['ID']).value == '' || $(activeinputs[activetexts[i].id]['ID']).value == activeinputs[activetexts[i].id]['default'])
					{
						ret = false;
						$('jserrors').insert(new Element('p', {}).insert(activeinputs[activetexts[i].id]['default']+' is a required field.'));
					}
				}
			}
		}
	}

	// Custom validation:
	if ($('agreetoterms') && $('agreetoterms').checked != true)
	{
		ret = false;
		$('jserrors').insert(new Element('p', {}).insert('You must agree to the Terms and Conditions.'));
	}

	if ($('self_led1') && $('self_led2') && $('teacher_led')
		&& !$('self_led1').checked && !$('self_led2').checked && !$('teacher_led').checked
	)
	{
		ret = false;
		$('jserrors').insert(new Element('p', {}).insert('You must select an account type.'));
	}

	if ($('Password') && $('ConfirmPassword'))
	{
		if ($F('Password') == '')
		{
			ret = false;
			$('jserrors').insert(new Element('p', {}).insert('Password is a required field.'));
		}else if ($F('Password') != $F('ConfirmPassword'))
		{
			ret = false;
			$('jserrors').insert(new Element('p', {}).insert('Your passwords did not match.'));
		}
	}





	// Show errors, ITIS
	if (ret == false)
	{
		$('jserrors').show();
		$('jserrors').scrollTo();
	}else{
		// Clear values for non-required form fields if they're default
		for (i = 0; i < activetexts.length; i++)
		{
			if (activeinputs[activetexts[i].id]['required'] == false && $F(activeinputs[activetexts[i].id]['ID']) == activeinputs[activetexts[i].id]['default'])
			{
				$(activeinputs[activetexts[i].id]['ID']).value = '';
			}
		}
	}

	return ret;
}



function isArray(obj)
{
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}


