﻿function validateEmailAndVerifyEmailMatch(sender, args) {
	var emailAddressTextBox = $get(sender.emailTextBox);
	var verifyEmailAddressTextBox = $get(sender.verifyEmailTextBox);
	args.IsValid = (emailAddressTextBox.value.toLowerCase() == verifyEmailAddressTextBox.value.toLowerCase()) || verifyEmailAddressTextBox.value.length == 0;
}

function verifyPasswordsMatch(sender, args) {
	var passwordTextBox = $get(sender.passwordTextBox);
	var confirmPasswordTextBox = $get(sender.confirmPasswordTextBox);
	args.IsValid = (passwordTextBox.value.toLowerCase() == confirmPasswordTextBox.value.toLowerCase()) || confirmPasswordTextBox.value.length == 0;
}

function validateEnteredAndNotDateOfBirthWatermark(sender, args) {
	args.IsValid = (ValidatorTrim(args.Value) != '' && args.Value != 'dd/mm/yyyy');
}

function validateDateOfBirthIsValidDateTime(sender, args) {
	validateEnteredAndNotDateOfBirthWatermark(sender, args);
	if (args.IsValid) {
		var date = Date.parseInvariant(args.Value, 'dd/MM/yyyy');
		args.IsValid = (date != null) && (date.getFullYear() >= 1900);
	} else {
		args.IsValid = true;
	}
}

function InitialiseCountryCodeArray()
{
	var result =new Array();

result['afghanistan'] = '93';
	result['albania'] = '355';
	result['algeria'] = '213';
	result['american samoa'] = '+1684*';
	result['andorra'] = '376';
	result['angola'] = '244';
	result['anguilla'] = '+1264*';
	result['antarctica'] = '672';
	result['antigua and barbuda'] = '+1268*';
	result['argentina'] = '54';
	result['armenia'] = '374';
	result['aruba'] = '297';
	result['ascension'] = '247';
	result['australia'] = '61';
	result['australian external territories'] = '672';
	result['austria'] = '43';
	result['azerbaijan'] = '994';
	result['bahamas'] = '+1242*';
	result['bahrain'] = '973';
	result['bangladesh'] = '880';
	result['barbados'] = '+1246*';
	result['barbuda'] = '+1268*';
	result['belarus'] = '375';
	result['belgium'] = '32';
	result['belize'] = '501';
	result['benin'] = '229';
	result['bermuda'] = '+1441*';
	result['bhutan'] = '975';
	result['bolivia'] = '591';
	result['bosnia and herzegovina'] = '387';
	result['botswana'] = '267';
	result['brazil'] = '55';
	result['british virgin islands'] = '+1284*';
	result['brunei darussalam'] = '673';
	result['bulgaria'] = '359';
	result['burkina faso'] = '226';
	result['burundi'] = '257';
	result['cambodia'] = '855';
	result['cameroon'] = '237';
	result['canada'] = '1';
	result['cape verde'] = '238';
	result['cayman islands'] = '+1345*';
	result['central african republic'] = '236';
	result['chad'] = '235';
	result['chatham island (new zealand)'] = '64';
	result['chile'] = '56';
	result['china'] = '86';
	result['christmas island'] = '61';
	result['cocos (keeling) islands'] = '61';
	result['colombia'] = '57';
	result['comoros'] = '269';
	result['congo'] = '242';
	result['congo, dem. rep. of (zaire)'] = '243';
	result['cook islands'] = '682';
	result['costa rica'] = '506';
	result['cote divoire (ivory coast)'] = '225';
	result['croatia'] = '385';
	result['cuba'] = '53';
	result['cuba (guantanamo bay)'] = '5399';
	result['curacao'] = '599';
	result['cyprus'] = '357';
	result['czech republic'] = '420';
	result['denmark'] = '45';
	result['diego garcia'] = '246';
	result['djibouti'] = '253';
	result['dominica'] = '+1767*';
	result['dominican republic'] = '+1809*';
	result['east timor'] = '670';
	result['easter island'] = '56';
	result['ecuador'] = '593';
	result['egypt'] = '20';
	result['el salvador'] = '503';
	result['ellipso (mobile satellite service)'] = '17625';
	result['emsat (mobile satellite service)'] = '88213';
	result['equatorial guinea'] = '240';
	result['eritrea'] = '291';
	result['estonia'] = '372';
	result['ethiopia'] = '251';
	result['falkland islands (malvinas)'] = '500';
	result['faroe islands'] = '298';
	result['fiji islands'] = '679';
	result['finland'] = '358';
	result['france'] = '33';
	result['french antilles'] = '596';
	result['french guiana'] = '594';
	result['french polynesia'] = '689';
	result['gabonese republic'] = '241';
	result['gambia'] = '220';
	result['georgia'] = '995';
	result['germany'] = '49';
	result['ghana'] = '233';
	result['gibraltar'] = '350';
	result['global mobile satellite system (gmss)'] = '881';
	result['globalstar'] = '8818';
	result['globalstar (mobile satellite service)'] = '17637';
	result['greece'] = '30';
	result['greenland'] = '299';
	result['grenada'] = '+1473*';
	result['guadeloupe'] = '590';
	result['guam'] = '+1671*';
	result['guantanamo bay'] = '5399';
	result['guatemala'] = '502';
	result['guinea-bissau'] = '245';
	result['guinea'] = '224';
	result['guyana'] = '592';
	result['haiti'] = '509';
	result['honduras'] = '504';
	result['hong kong'] = '852';
	result['hungary'] = '36';
	result['ico global (mobile satellite service)'] = '17621';
	result['iceland'] = '354';
	result['india'] = '91';
	result['indonesia'] = '62';
	result['inmarsat (atlantic ocean  east)'] = '871';
	result['inmarsat (atlantic ocean  west)'] = '874';
	result['inmarsat (indian ocean)'] = '873';
	result['inmarsat (pacific ocean)'] = '872';
	result['international freephone service'] = '800';
	result['international shared cost service (iscs)'] = '808';
	result['iran (islamic republic of)'] = '98';
	result['iraq'] = '964';
	result['ireland'] = '353';
	result['iridium (mobile satellite service)'] = '8816';
	result['iridium (mobile satellite service)'] = '8817';
	result['israel'] = '972';
	result['italy'] = '39';
	result['jamaica'] = '+1876*';
	result['japan'] = '81';
	result['jordan'] = '962';
	result['kazakhstan'] = '7';
	result['kenya'] = '254';
	result['kiribati'] = '686';
	result['korea, republic of'] = '850';
	result['south korea'] = '82';
	result['kuwait'] = '965';
	result['kyrgyzstan'] = '996';
	result['laos'] = '856';
	result['latvia'] = '371';
	result['lebanon'] = '961';
	result['lesotho'] = '266';
	result['liberia'] = '231';
	result['libya'] = '218';
	result['liechtenstein'] = '423';
	result['lithuania'] = '370';
	result['luxembourg'] = '352';
	result['macau'] = '853';
	result['macedonia'] = '389';
	result['madagascar'] = '261';
	result['malawi'] = '265';
	result['malaysia'] = '60';
	result['maldives'] = '960';
	result['mali'] = '223';
	result['malta'] = '356';
	result['marshall islands'] = '692';
	result['martinique'] = '596';
	result['mauritania'] = '222';
	result['mauritius'] = '230';
	result['mayotte island'] = '262';
	result['mexico'] = '52';
	result['micronesia, federal states'] = '691';
	result['midway island'] = '+1808*';
	result['moldova, republic of'] = '373';
	result['monaco'] = '377';
	result['mongolia'] = '976';
	result['montenegro'] = '382';
	result['montserrat'] = '+1664*';
	result['morocco'] = '212';
	result['mozambique'] = '258';
	result['myanmar'] = '95';
	result['namibia'] = '264';
	result['nauru'] = '674';
	result['nepal'] = '977';
	result['netherlands'] = '31';
	result['netherlands antilles'] = '599';
	result['nevis'] = '+1869*';
	result['new caledonia'] = '687';
	result['new zealand'] = '64';
	result['nicaragua'] = '505';
	result['niger'] = '227';
	result['nigeria'] = '234';
	result['niue'] = '683';
	result['norfolk island'] = '672';
	result['northern marianas islands'] = '+1670*';
	result['norway'] = '47';
	result['oman'] = '968';
	result['pakistan'] = '92';
	result['palau'] = '680';
	result['palestinian settlements'] = '970';
	result['panama'] = '507';
	result['papua new guinea'] = '675';
	result['paraguay'] = '595';
	result['peru'] = '51';
	result['philippines'] = '63';
	result['poland'] = '48';
	result['portugal'] = '351';
	result['puerto rico'] = '+1787*';
	result['qatar'] = '974';
	result['reunion'] = '262';
	result['romania'] = '40';
	result['russia'] = '7';
	result['rwanda'] = '250';
	result['saint helena'] = '290';
	result['saint kitts and nevis'] = '+1869*';
	result['saint lucia'] = '+1758*';
	result['saint pierre &amp; miquelon'] = '508';
	result['saint vincent, the grenadines'] = '+1784*';
	result['samoa'] = '685';
	result['san marino'] = '378';
	result['sao tome and principe'] = '239';
	result['saudi arabia'] = '966';
	result['senegal'] = '221';
	result['serbia'] = '381';
	result['seychelles'] = '248';
	result['sierra leone'] = '232';
	result['singapore'] = '65';
	result['slovakia (slovak republic)'] = '421';
	result['slovenia'] = '386';
	result['solomon islands'] = '677';
	result['somalia'] = '252';
	result['south africa'] = '27';
	result['spain'] = '34';
	result['sri lanka'] = '94';
	result['sudan'] = '249';
	result['suriname'] = '597';
	result['swaziland'] = '268';
	result['sweden'] = '46';
	result['switzerland'] = '41';
	result['syria'] = '963';
	result['taiwan'] = '886';
	result['tajikistan'] = '992';
	result['tanzania, united republic of'] = '255';
	result['thailand'] = '66';
	result['thuraya (mobile satellite service)'] = '88216';
	result['timor leste'] = '670';
	result['togolese republic'] = '228';
	result['tokelau'] = '690';
	result['tonga'] = '676';
	result['trinidad and tobago'] = '+1868*';
	result['tunisia'] = '216';
	result['turkey'] = '90';
	result['turkmenistan'] = '993';
	result['turks and caicos islands'] = '+1649*';
	result['tuvalu'] = '688';
	result['uganda'] = '256';
	result['ukraine'] = '380';
	result['united arab emirates'] = '971';
	result['united kingdom'] = '44';
	result['united states'] = '1';
	result['virgin islands (u.s.)'] = '+1340*';
	result['universal personal telecommunications (upt)'] = '878';
	result['uruguay'] = '598';
	result['uzbekistan'] = '998';
	result['vanuatu'] = '678';
	result['vatican city'] = '418';
	result['venezuela'] = '58';
	result['vietnam'] = '84';
	result['wake island'] = '808';
	result['wallis and futuna islands'] = '681';
	result['yemen'] = '967';
	result['zambia'] = '260';
	result['zanzibar'] = '255';
	result['zimbabwe'] = '263';

	return result;
}


function PopulateCountryCodeField(countryCodeTextBoxId, countryDropDownId)
{
	if(countryCodeTextBoxId != '' && countryDropDownId != '')
	{
		var phoneCountryCodeTextBox = $get(countryCodeTextBoxId);
		var selectedCountry = $get(countryDropDownId);
		
		if(phoneCountryCodeTextBox && selectedCountry)
		{
			var selectedCountryOptions = selectedCountry.options;
			var chosenValue = selectedCountryOptions[selectedCountryOptions.selectedIndex].value;
			
			if(chosenValue && chosenValue != '')
			{
				var countryCodeArray = InitialiseCountryCodeArray();
				if(countryCodeArray[chosenValue.toLowerCase()] && countryCodeArray[chosenValue.toLowerCase()] != '')
				{
					phoneCountryCodeTextBox.value = countryCodeArray[chosenValue.toLowerCase()];
				}
				else
				{
					phoneCountryCodeTextBox.value = '';
				}
			}
		}
	}
}

function ValidatePhoneNumberValidCharacters(sender, args) {
	var regexstring = new RegExp('^[ \+()0-9-\*]+$');
	
	var phoneCountryCodeTextBox = $get(sender.PhoneCountryCodeTextBox);
	var phoneAreaCodeTextBox = $get(sender.PhoneAreaCodeTextBox);
	var phoneTextBox = $get(sender.PhoneNumberTextBox);
	
	if (ValidatorTrim(phoneTextBox.value) != '' && ValidatorTrim(phoneAreaCodeTextBox.value) != '' && ValidatorTrim(phoneCountryCodeTextBox.value) != '')	{
		args.IsValid = (phoneCountryCodeTextBox.value.length <= 8) && (phoneAreaCodeTextBox.value.length <= 5) && (phoneTextBox.value.length <= 20) && (phoneCountryCodeTextBox.value.match(regexstring)) && (phoneAreaCodeTextBox.value.match(regexstring)) && (phoneTextBox.value.match(regexstring));
	} else {
		args.IsValid = false;
	}
}

