function Querystring(qs) { // optionally pass a querystring to parse
	this.params = new Object()
	this.get=Querystring_get

	if (qs == null)
		qs=location.search.substring(1,location.search.length)

	if (qs.length == 0) return

//	qs = qs.replace(/\+/g, ' ')
	var args = qs.split('&')

	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=')
		var name = unescape(pair[0])

		if (pair.length == 2)
			value = unescape(pair[1])
		else
			value = name

		this.params[name] = value
	}
}

function Querystring_get(key, default_) {
	if (default_ == null) default_ = null;
	var value=this.params[key]
	if (value==null) value=default_;
	return value
}


function submit_login() {
	if (document.form_client_login.client_id.value  == "") { alert ("Enter Your Client Number") ;  document.form_client_login.client_id.focus();  return false; }
	if (document.form_client_login.client_id.password  == "") { alert ("Enter Your Password") ;   document.form_client_login.password.focus();   return false; }
	document.form_client_login.submit();
}
function submit_registration() {
	var client_entry = '';
	if(undefined != document.client_entry) {
		client_entry = document.client_entry;
	} else if(undefined != document.client_entry_n) {
		client_entry = document.client_entry_n;
	} else {
		alert('Missing form');
		return (false);
	}
	
	if (client_entry.ret_page.value  == "") { alert ("Choose your reason why you want to migrate") ;  client_entry.guidelinks.focus();  return false; }
	if (client_entry.first_name.value  == "") { alert ("Enter Your First Name") ;  client_entry.first_name.focus();  return false; }
	if (client_entry.last_name.value  == "") { alert ("Enter Your Last Name") ;  client_entry.last_name.focus();  return false; }

	var Email = client_entry.email;
	if (Email.value == "" )
	{	alert("Enter Your Email");
		Email.focus();
		return (false);
	}
	else
	{	var AtSym  = Email.value.indexOf('@');
		var Dot    = Email.value.lastIndexOf('.');
		var Space  = Email.value.indexOf(' ');
		var Length = Email.value.length - 2;   // Array is from 0 to length-2

		if ((AtSym < 1) ||                     // '@' cannot be in first position
			(Dot <= AtSym+1) ||                // Must be at least one valid char btwn '@' and '.'
			(Dot == Length ) ||                // Must be at least two valid chars after '.'
			(Space  != -1))                    // No empty spaces permitted
			{		alert("Your e-mail address is not valid. Please re-enter it.");
					Email.focus();
					return (false);
			}
		
		var illegal_string = "/*+,/<>?;':[]{}\\|`~!#$%^&*()=";
		// keep a count of how many illegal characters appear in the fields
		var illegal_count=0;
		// next loop to run as many times as there are illegal characters to check against
		for (var loop=0; loop < illegal_string.length; loop++)
		{	// next bit assigns each consecutive illegal character into variable: "the_char" 
			the_char = illegal_string.charAt(loop);
			// next if statement means if illegal character appears in email number, increment count of illegal characters
			if (Email.value.indexOf(the_char) != -1)	// actually says: if illegal character does not NOT appear
			{	illegal_count++;	
			}
		}
		// next if statement prints error message only once if multiple illegal characters appear
		if (illegal_count > 0 || Email.value.length > 49)
		{		alert("Your email address contains invalid characters or \n has too many characters. Please Re-enter it.");
				Email.focus();
				return (false);
		}
	}

    if (client_entry.confirm_email.value == "") {
			alert("You haven't confirmed your email ");
		    client_entry.confirm_email.focus();
			return false;
    }
    if (client_entry.confirm_email.value != client_entry.email.value) {
			alert("Your email does not match. Re-enter your email address, please. ");
		    client_entry.confirm_email.focus();
			return false;
    }

	if (client_entry.dob_day.value  == "") { alert ("Enter Your Day of Birth") ;  client_entry.dob_day.focus();  return false; }
	if (client_entry.dob_month.value  == "") { alert ("Enter Your Month of Birth") ;  client_entry.dob_month.focus();  return false; }
	if (client_entry.dob_year.value  == "") { alert ("Enter Your Year of Birth") ;  client_entry.dob_year.focus();  return false; }
	if (client_entry.passport.value  == "") { alert ("Enter Your Nationality") ;  client_entry.passport.focus();  return false; }
	if(client_entry.checkAgreement.checked==false) 	{
			alert('You didn\'t confirm and have not yet agreed with our National Visas Online Assessment Terms of Use, please tick on the checkbox');
			client_entry.checkAgreement.focus();
			return false;
	}
	var visa_info = new Querystring(client_entry.ret_page.value)
	client_entry.assessment_type.value = visa_info.get("assessment_type");
	client_entry.assessment_version.value = visa_info.get("assessment_version");
	client_entry.submit();
}

Now = new Date();
NowDay = Now.getDate();
NowMonth = Now.getMonth();
NowYear = Now.getYear();
if (NowYear < 2000) NowYear += 1900;

function DaysInMonth(WhichMonth, WhichYear) {
	var DaysInMonth = 31;
	if (WhichMonth == "4" || WhichMonth == "6" || WhichMonth == "9" || WhichMonth == "11") DaysInMonth = 30;
	if (WhichMonth == "2" && (WhichYear/4) != Math.floor(WhichYear/4))	DaysInMonth = 28;
	if (WhichMonth == "2" && (WhichYear/4) == Math.floor(WhichYear/4))	DaysInMonth = 29;
	return DaysInMonth;
}
function ChangeOptionDays(form_name, Which) {
	DaysObject = eval( "document." + form_name + "." + Which + "day");
	MonthObject = eval("document." + form_name + "." + Which + "month");
	YearObject = eval("document." + form_name + "." + Which + "year");
	Month = MonthObject[MonthObject.selectedIndex].value;
	Year = YearObject[YearObject.selectedIndex].text;
	DaysForThisSelection = DaysInMonth(Month, Year);
	CurrentDaysInSelection = DaysObject.length;
	if (CurrentDaysInSelection > DaysForThisSelection)  {
    	for (i=1; i<(CurrentDaysInSelection-DaysForThisSelection); i++) {
			DaysObject.options[DaysObject.options.length-1] = null
    	}
	}
	else {
		for (i=1; i<(DaysForThisSelection-CurrentDaysInSelection)+2; i++) {
			NewOption = new Option(DaysObject.options.length,  DaysObject.options.length);
			DaysObject.add(NewOption);
    	}
  	}
 	if (DaysObject.selectedIndex < 0) DaysObject.selectedIndex == 0;
}

function SetToToday(Which) {
	DaysObject = eval("document." + form_name + "." + "day");
	MonthObject = eval("document." + form_name + "." + "month");
	YearObject = eval("document." + form_name + "." + "year");
	YearObject[0].selected = true;
	MonthObject[NowMonth].selected = true;
	ChangeOptionDays(Which);
	DaysObject[NowDay-1].selected = true;
}

function WriteYearOptions(YearsAhead) {
  line = "<option value=''>yyyy</option>";
  for (i=0; i<YearsAhead; i++) {
    line += "<OPTION value='";
	tempyear = NowYear - i;
    line += tempyear;
    line += "'>";
    line += NowYear - i;
    line += "</OPTION>";
  }
  return line;
}

function displayStatusImg(onlineImg, offlineImg,skin_123livehelp,add_on){  
    var htmlcode='';
	var openURL=escape(window.document.location.href);
	var url=PROT_NAME+"://"+DOMAIN_NAME+"/livehelp.php?url="+openURL;
	var newurl='javascript:win1("'+ url +'",'+ width_123livehelp +','+ height_123livehelp +')';
     if(s == 1){
		htmlcode = "<a href='"+PROT_NAME+"://"+DOMAIN_NAME+"/public/'><img src='" + onlineImg + "' border='0'></a>";
     }else {
        htmlcode = "<a href='"+PROT_NAME+"://"+DOMAIN_NAME+"/livehelp/livehelp.php'><img src='" + offlineImg + "' border='0'></a> ";
     }
     document.write(htmlcode);
}
