//------------------------------ Function to validate user login form ----------------
var pcdd = false; // personal country select prepared
var prdd = false; // personal ref select prepared
var bcdd = false; // business country select prepared
var bpcdd = false; // business postal country select prepared
var brdd = false; // business ref select prepared
var personalp1r = 0; // part 1 required
var personalp2r = 0; // part 2 required
var businessp1r = 0; // part 1 required
var businessp2r = 0; // part 2 required

					//$('#personalcountry_msddHolder').attr("style", "");

/*
 *   SELECT PERSONAL ACCOUNT
 */
function selectPersonalAccount() {
	if ($.browser.msie && $.browser.version <= 8) {
		$('#fullname').live('change', function() { validateFullName("#fullname");showErrorCount('#personalerrors', '#signuppersonal .part1'); });
		$('#email').live('change', function() { checkEmail("#email"); })
		$('#username').live('change', function() { checkUsername("#username"); });
		$('#passworda').live('change', function() { validatePassword("#passworda", "#passwordb");showErrorCount('#personalerrors', '#signuppersonal .part2'); });
		$('#passwordb').live('change', function() { validatePassword("#passworda", "#passwordb");showErrorCount('#personalerrors', '#signuppersonal .part2'); });
		$('#security').live('change', function() { validateSecurity("#security");showErrorCount('#personalerrors', '#signuppersonal .part2'); });
	}
	
	$('#fullname').live('blur', function() { validateFullName("#fullname");showErrorCount('#personalerrors', '#signuppersonal .part1'); });
	$('#email').live('blur', function() { checkEmail("#email"); })
	$('#username').live('blur', function() { checkUsername("#username"); });
	$('#passworda').live('blur', function() { validatePassword("#passworda", "#passwordb");showErrorCount('#personalerrors', '#signuppersonal .part2'); });
	$('#passwordb').live('blur', function() { validatePassword("#passworda", "#passwordb");showErrorCount('#personalerrors', '#signuppersonal .part2'); });
	$('#security').live('blur', function() { validateSecurity("#security");showErrorCount('#personalerrors', '#signuppersonal .part2'); });
	
	$('#personalcountry').live('blur', function() { validateCountry("#personalcountry");showErrorCount('#personalerrors', '#signuppersonal .part1'); });
	$('#signuppersonal .part2 .checkboxselect').live('click', function() { validateAgreement("#useragree");showErrorCount('#personalerrors', '#signuppersonal .part2'); });
		
	//$('#preform').hide(0);
	
	if ($('#personalselect.selected').length == 0) {
		// form data
		$('#personalaccount').val("1");
		$('#businessaccount').val("0");
		
		// selected button
		$('#personalselect').removeClass('notselected').addClass('selected');
		$('#businessselect').removeClass('selected').addClass('notselected');
		
		// show first section
		$('#signuppersonal .formsection.part1').show(0);
		$('#signuppersonal .formsection.part2').css("display", "none");
		
		$('#signuppersonal .createaccount').css("display", "none");
		$('#signuppersonal .nextstep').show(0);
		
		if ($.browser.msie) {
			$('#signupbusiness').hide(0);
			$('#accounttypes').addClass('personal');
			$('#selecttype').fadeOut(200,function(){
				$('#accounttypes').removeClass('active');
				$('#accountdetails').addClass('active personal');
				$('#signuppersonal').fadeIn(200, function() {
					$("#full_width_column_bottom").animate({height: 40}, 1, function() {$("#full_width_column_bottom").css('height', '15px')});
					if ($('#signuppersonal.submiterror').length > 0) {
						if ($('#signuppersonal.submiterror.page1').length > 0) {
							$('#signuppersonal').removeClass('submiterror .page1');
						} else {
							if (validatePersonalPart1()) {
								nextStep();
							}
							$('#signuppersonal').removeClass('submiterror .page2');
						}
					}
				});
				
				if(!pcdd) {
					$('#personalcountry').msDropDown({mainCSS:'dd2', visibleRows:9, rowHeight:23});
					pcdd=true;
					$('#personalcountry').live('change', function(event) {
						$('#signuppersonal .nextstep').addClass('enabled');
						validateCountry("#personalcountry");
						showErrorCount('#personalerrors', '#signuppersonal .part1');
					}).live('focus', function(event) {
						$(this).parent().parent().find('.hover').fadeOut(150);
					}).parent().parent().find('.dd2').addClass('required').prepend("<div class='hover'>Required</div>");
				}
				
			});
			
		} else {
			$('#signupbusiness').hide(0);
			$('#accounttypes').addClass('personal');
			$('#selecttype').slideUp(140,function(){
				$('#accounttypes').removeClass('active');
				$('#accountdetails').addClass('active personal');
				$('#signuppersonal').slideDown(300, function() {
					if ($('#signuppersonal.submiterror').length > 0) {
						if ($('#signuppersonal.submiterror.page1').length > 0) {
							$('#signuppersonal').removeClass('submiterror .page1');
						} else {
							if (validatePersonalPart1()) {
								nextStep();
							}
							$('#signuppersonal').removeClass('submiterror .page2');
						}
					}
				});
				
				if(!pcdd) {
					$('#personalcountry').msDropDown({mainCSS:'dd2', visibleRows:9, rowHeight:23});
					pcdd=true;
					$('#personalcountry').live('change', function(event) {
						$('#signuppersonal .nextstep').addClass('enabled');
						validateCountry("#personalcountry");
						showErrorCount('#personalerrors', '#signuppersonal .part1');
					}).live('focus', function(event) {
						$(this).parent().parent().find('.hover').fadeOut(150);
					}).parent().parent().find('.dd2').addClass('required').prepend("<div class='hover'>Required</div>");
				}
				
				$('html').animate({scrollTop: 108}, 300);
				
			});
		}
	}
}



/*
 *   SELECT BUSINESS ACCOUNT
 */
function selectBusinessAccount() {
	if ($.browser.msie && $.browser.version <= 8) {
		$('#fullnameB').live('change', function() { validateFullName("#fullnameB");showErrorCount('#businesserrors', '#signupbusiness .part1'); });
		$('#emailB').live('change', function() { checkEmail("#emailB"); });
		$('#usernameB').live('change', function() { checkUsername("#usernameB"); });
		$('#passwordaB').live('change', function() { validatePassword("#passwordaB", "#passwordbB");showErrorCount('#businesserrors', '#signupbusiness .part2'); });
		$('#passwordbB').live('change', function() { validatePassword("#passwordaB", "#passwordbB");showErrorCount('#businesserrors', '#signupbusiness .part2'); });
		$('#securityB').live('change', function() { validateSecurity("#securityB");showErrorCount('#businesserrors', '#signupbusiness .part2'); });
	}
	
	$('#fullnameB').live('blur', function() { validateFullName("#fullnameB");showErrorCount('#businesserrors', '#signupbusiness .part1'); });
	$('#emailB').live('blur', function() { checkEmail("#emailB"); });
	$('#usernameB').live('blur', function() { checkUsername("#usernameB"); });
	$('#passwordaB').live('blur', function() { validatePassword("#passwordaB", "#passwordbB");showErrorCount('#businesserrors', '#signupbusiness .part2'); });
	$('#passwordbB').live('blur', function() { validatePassword("#passwordaB", "#passwordbB");showErrorCount('#businesserrors', '#signupbusiness .part2'); });
	$('#securityB').live('blur', function() { validateSecurity("#securityB");showErrorCount('#businesserrors', '#signupbusiness .part2'); });
	
	$('#businesscountry').live('blur', function() { validateCountry("#businesscountry");showErrorCount('#businesserrors', '#signupbusiness .part1'); });
	$('#signupbusiness .part2 .checkboxselect').live('click', function() { validateAgreement("#useragreeB");showErrorCount('#businesserrors', '#signupbusiness .part2'); });
	
	//$('#preform').hide(0);
	
	if ($('#businessselect.selected').length == 0) {
		// form data
		$('#personalaccount').val("0");
		$('#businessaccount').val("1");
		
		// selected button
		$('#businessselect').removeClass('notselected').addClass('selected');
		$('#personalselect').removeClass('selected').addClass('notselected');
		
		// show first section
		$('#signupbusiness .formsection.part1').show(0);
		$('#signupbusiness .formsection.part2').css("display", "none");
					
		$('#signupbusiness .createaccount').css("display", "none");
		$('#signupbusiness .nextstep').show(0);
		
		if ($.browser.msie) {
			$('#signuppersonal').hide(0);
			$('#accounttypes').addClass('business');
			$('#selecttype').fadeOut(200,function(){
				$('#accounttypes').removeClass('active');
				$('#accountdetails').addClass('active business');
				$('#signupbusiness').fadeIn(200, function() {
					$("#full_width_column_bottom").animate({height: 40}, 1, function() {$("#full_width_column_bottom").css('height', '15px')});
					if ($('#signupbusiness.submiterror').length > 0) {
						if ($('#signupbusiness.submiterror.page1').length > 0) {
							$('#signupbusiness').removeClass('submiterror .page1');
						} else {
							if (validateBusinessPart1()) {
								nextStep();
							}
							$('#signupbusiness').removeClass('submiterror .page2');
						}
					}
				});
				
				if(!bcdd) {
					$('#businesscountry').msDropDown({mainCSS:'dd2', visibleRows:9, rowHeight:23});
					bcdd=true;
					$('#businesscountry').live('change', function(event) {
						$('#signupbusiness .nextstep').addClass('enabled');
						validateCountry("#businesscountry");
						showErrorCount('#businesserrors', '#signupbusiness .part1');
					}).live('focus', function(event) {
						$(this).parent().parent().find('.hover').fadeOut(150);
					}).parent().parent().find('.dd2').addClass('required').prepend("<div class='hover'>Required</div>");
				}
				
				if ($('#billingsame:not(:checked)').length > 0) {
					$('#billingsection').show(0);
					if(!bpcdd) { $('#signupbusiness #billingcountry').msDropDown({mainCSS:'dd2', visibleRows:9, rowHeight:23}); bpcdd=true; }
				}
			});
			
			
		} else {
			$('#signuppersonal').hide(0);
			$('#accounttypes').addClass('business');
			$('#selecttype').slideUp(140,function(){
				$('#accounttypes').removeClass('active');
				$('#accountdetails').addClass('active business');
				$('#signupbusiness').slideDown(380, function() {
					if ($('#signupbusiness.submiterror').length > 0) {
						if ($('#signupbusiness.submiterror.page1').length > 0) {
							$('#signupbusiness').removeClass('submiterror .page1');
						} else {
							if (validateBusinessPart1()) {
								nextStep();
							}
							$('#signupbusiness').removeClass('submiterror .page2');
						}
					}
				});
				
				if(!bcdd) {
					$('#businesscountry').msDropDown({mainCSS:'dd2', visibleRows:9, rowHeight:23});
					bcdd=true;
					$('#businesscountry').live('change', function(event) {
						$('#signupbusiness .nextstep').addClass('enabled');
						validateCountry("#businesscountry");
						showErrorCount('#businesserrors', '#signupbusiness .part1');
					}).live('focus', function(event) {
						$(this).parent().parent().find('.hover').fadeOut(150);
					}).parent().parent().find('.dd2').addClass('required').prepend("<div class='hover'>Required</div>");
				}
				
				$('html').animate({scrollTop: 108}, 300);
				
				if ($('#billingsame:not(:checked)').length > 0) {
					$('#billingsection').show(0);
					if(!bpcdd) { $('#signupbusiness #billingcountry').msDropDown({mainCSS:'dd2', visibleRows:9, rowHeight:23}); bpcdd=true; }
				}
			});
		}
	}
}



/*
 *   PREVIOUS STEP
 */
function previousStep() {
	if ($('#businessselect.selected').length > 0) { // business account
		if ($('#accountdetails.active').length > 0) { // back to step 1
			if ($.browser.msie) {
				$('#signupbusiness').fadeOut(200, function() {
					$('#accounttypes').addClass('active').removeClass('personal business');
					$('#accountdetails').removeClass('active business');
					$('#selecttype').fadeIn(200,function(){
						$("#full_width_column_bottom").animate({height: 40}, 1, function() {$("#full_width_column_bottom").css('height', '15px')});
					});
				});
			} else {
				$('html').animate({scrollTop: 0}, 280);
				$('#signupbusiness').slideUp(380, function() {
					$('#accounttypes').addClass('active').removeClass('personal business');
					$('#accountdetails').removeClass('active business');
					$('#selecttype').slideDown(140);
				});
			}
			$('#personalselect').removeClass('selected notselected');
			$('#businessselect').removeClass('selected notselected');
			
		} else { // back to step 2
			$('#signupbusiness .formsection.part2').fadeOut(300,function(){
				validateBusinessPart1();
				$('#accounttypes').removeClass('active');
				$('#accountdetails').addClass('active');
				$('#userdetails').removeClass('active');
				$('#signupbusiness .formsection.part1').fadeIn(380, function() {
					if ($.browser.msie) {
						$("#full_width_column_bottom").animate({height: 40}, 1, function() {$("#full_width_column_bottom").css('height', '15px')});
					}
				});
			});
			$('html').animate({scrollTop: 108}, 320);
			
			$('#signupbusiness .createaccount').fadeOut(300,function(){
				$('#signupbusiness .nextstep').fadeIn(380);
			})
		}
		
	} else { // personal account
		if ($('#accountdetails.active').length > 0) { // back to step 1
			if ($.browser.msie) {
				$('#signuppersonal').fadeOut(200, function() {
					$('#accounttypes').addClass('active').removeClass('personal business');
					$('#accountdetails').removeClass('active personal');
					$('#selecttype').fadeIn(200,function(){
						$("#full_width_column_bottom").animate({height: 40}, 1, function() {$("#full_width_column_bottom").css('height', '15px')});
					});
				});
				
			} else {
				$('html').animate({scrollTop: 0}, 280);
				$('#signuppersonal').slideUp(300, function() {
					$('#accounttypes').addClass('active').removeClass('personal business');
					$('#accountdetails').removeClass('active personal');
					$('#selecttype').slideDown(140);
				});
			}
			$('#personalselect').removeClass('selected notselected');
			$('#businessselect').removeClass('selected notselected');
			
			
		} else { // back to step 2
			$('#signuppersonal .formsection.part2').fadeOut(300,function(){
				validatePersonalPart1();
				$('#accounttypes').removeClass('active');
				$('#accountdetails').addClass('active');
				$('#userdetails').removeClass('active');
					
				$('#signuppersonal .formsection.part1').fadeIn(300, function() {
					if ($.browser.msie) {
						$("#full_width_column_bottom").animate({height: 40}, 1, function() {$("#full_width_column_bottom").css('height', '15px')});
					}
				});
			});
			$('html').animate({scrollTop: 108}, 320);
					
			$('#signuppersonal .createaccount').fadeOut(300,function(){
				$('#signuppersonal .nextstep').fadeIn(300);
			})
		}
	}
}



/*
 *   NEXT STEP
 */
function nextStep() {
	if ($('#businessselect.selected').length > 0) {
		// business account
		validateBusinessPart1();
		if ($('#signupbusiness .nextstep.enabled').length > 0) { // validated 
			$('html').animate({scrollTop: 108}, 320);
			$('#signupbusiness .nextstep').removeClass('enabled');
			$('#signupbusiness .formsection.part1').fadeOut(300,function(){ // remove first part
				if ($('#signupbusiness .createaccount.enabled').length > 0) {
					validateBusinessPart2();
				} else {
					$('#businesserrors').find('.line1').removeClass('error').html('Please complete all required fields before continuing').end()
						.find('.line2').html('');
				}
				//select correct stage
				$('#accounttypes').removeClass('active');
				$('#accountdetails').removeClass('active');
				$('#userdetails').addClass('active');
				
				$('#signupbusiness .formsection.part2').fadeIn(300, function() {
					if ($.browser.msie) {
						$("#full_width_column_bottom").animate({height: 40}, 1, function() {$("#full_width_column_bottom").css('height', '15px')});
					}
					if ($('#signupbusiness.submiterror').length > 0) {
						showErrorCount('#businesserrors', '#signupbusiness .part2');
					}
				});
								
				if(!brdd) { $('#signupbusiness #businessref').msDropDown({mainCSS:'dd2', visibleRows:9, rowHeight:23}); brdd=true; }
				
			});
			$('#signupbusiness .nextstep').fadeOut(300,function(){
				$('#signupbusiness .createaccount').fadeIn(300);
			})
		} else { // page hasn't been validated yet
			
		}
		
	} else {
		// personal account
		validatePersonalPart1();
		if ($('#signuppersonal .nextstep.enabled').length > 0) { // validated 
			$('html').animate({scrollTop: 108}, 320);
			$('#signuppersonal .nextstep').removeClass('enabled');
			$('#signuppersonal .formsection.part1').fadeOut(300,function(){ // remove first part
				if ($('#signuppersonal .createaccount.enabled').length > 0) {
					validatePersonalPart2();
				} else {
					$('#personalerrors').find('.line1').removeClass('error').html('Please complete all required fields before continuing').end()
						.find('.line2').html('');
				}
				//select correct stage
				$('#accounttypes').removeClass('active');
				$('#accountdetails').removeClass('active');
				$('#userdetails').addClass('active');
				
				$('#signuppersonal .formsection.part2').fadeIn(300, function() { // show second part
					if ($.browser.msie) {
						$("#full_width_column_bottom").animate({height: 40}, 1, function() {$("#full_width_column_bottom").css('height', '15px')});
					}
					
					if ($('#signuppersonal.submiterror').length > 0) {
						showErrorCount('#personalerrors', '#signuppersonal .part2');
					}
				});
																
				if(!prdd) { $('#signuppersonal #personalref').msDropDown({mainCSS:'dd2', visibleRows:9, rowHeight:23}); prdd=true; }
								
			});
										
			$('#signuppersonal .nextstep').fadeOut(300,function(){
				$('#signuppersonal .createaccount').fadeIn(300); //.addClass('enabled')
			})
		} // else page didn't validate
	}
}

function submitPersonal() {
	if(event.preventDefault) {
		event.preventDefault();
	} else {
		event.returnValue = false;
	}
	if (validatePersonalPart2()) {
		$('#signuppersonal').submit();
	} else {
		return false;
	}
}

function submitBusiness() {
	if(event.preventDefault) {
		event.preventDefault();
	} else {
		event.returnValue = false;
	}
	if (validateBusinessPart2()) {
		$('#signupbusiness').submit();
	} else {
		return false;
	}
}

function showErrorCount(form, section, count) {
	if (!count) {
		count = $(section + " .error").length;
	}
	if (count == 1) {
		$(form).find('.line1').addClass('error').html('Please correct all problems before continuing').end()
				.find('.line2').html('1 problem remaining');
	} else if (count > 0) {
		$(form).find('.line1').addClass('error').html('Please correct all problems before continuing').end()
				.find('.line2').html(count + ' problems remaining');
	} else {
		var remaining = 0;
		if (section == '#signuppersonal .part1') {
			remaining = personalp1r - $(section + " .form_row.ok").length; // personal part 1 errors
		} else if (section == '#signuppersonal .part2') {
			remaining = personalp2r - $(section + " .form_row.ok").length; // personal part 2 errors
		} else if (section == '#signupbusiness .part1') {
			remaining = businessp1r - $(section + " .form_row.ok").length; // business part 1 errors
		} else {
			remaining = businessp2r - $(section + " .form_row.ok").length; // business part 2 errors
		}
		if (remaining == 0) {
			$(form).find('.line1').removeClass('error').html('All required fields are filled in').end()
					.find('.line2').html('');
		} else {
			$(form).find('.line1').removeClass('error').html('Please complete all required fields before continuing').end()
					.find('.line2').html('');
		}
	}
}

function validatePersonalPart1() {
	var errorcount = 0;
	
	if (!validateFullName("#fullname")) {
		errorcount++;
	}
	if (!validateEmail("#email")) {
		errorcount++;
	}
	if (!validateCountry("#personalcountry")) {
		errorcount++;
	}
	
	if (errorcount == 0) {
		$('#personalerrors').find('.line1').removeClass('error').html('All required fields are filled in').end()
				.find('.line2').html('');
		$('#signuppersonal .nextstep').addClass('enabled');
		return true;
	} else {
		showErrorCount('#personalerrors', '#signuppersonal .part1', errorcount);
		$('#signuppersonal .nextstep').removeClass('enabled');
		return false;
	}
}

function validatePersonalPart2() {
	var errorcount = 0;
	
	if (!validateUsername("#username")) {
		errorcount++;
	}
	if (!validatePassword("#passworda", "#passwordb")) {
		errorcount++;
	}
	if (!validateSecurity("#security")) {
		errorcount++;
	}
	if (!validateAgreement("#useragree")) {
		errorcount++;
	}
	
	if (errorcount == 0) {
		$('#personalerrors').find('.line1').removeClass('error').html('All required fields are filled in').end()
				.find('.line2').html('');
		$('#signuppersonal #submit').addClass('enabled');
		return true;
	} else {
		showErrorCount('#personalerrors', '#signuppersonal .part2', errorcount);
		$('#signuppersonal #submit').removeClass('enabled');
		return false;
	}
}

function validateBusinessPart1() {
	var errorcount = 0;
	
	if (!validateFullName("#fullnameB")) {
		errorcount++;
	}
	if (!validateEmail("#emailB")) {
		errorcount++;
	}
	if (!validateCountry("#businesscountry")) {
		errorcount++;
	}
	
	if (errorcount == 0) {
		$('#businesserrors').find('.line1').removeClass('error').html('All required fields are filled in').end()
				.find('.line2').html('');
		$('#signupbusiness .nextstep').addClass('enabled');
		return true;
	} else {
		showErrorCount('#businesserrors', '#signupbusiness .part1', errorcount);
		$('#signupbusiness .nextstep').removeClass('enabled');
		return false;
	}
}

function validateBusinessPart2() {
	var errorcount = 0;
	
	if (!validateUsername("#usernameB")) {
		errorcount++;
	}
	if (!validatePassword("#passwordaB", "#passwordbB")) {
		errorcount++;
	}
	if (!validateSecurity("#securityB")) {
		errorcount++;
	}
	if (!validateAgreement("#useragreeB")) {
		errorcount++;
	}
	
	if (errorcount == 0) {
		$('#businesserrors').find('.line1').removeClass('error').html('All required fields are filled in').end()
				.find('.line2').html('');
		$('#signupbusiness #submit').addClass('enabled');
		return true;
	} else {
		showErrorCount('#businesserrors', '#signupbusiness .part2', errorcount);
		$('#signupbusiness #submit').removeClass('enabled');
		return false;
	}
}



function validateFullName(element) {
	var fullname = $(element).val();
	if (fullname.length == 0) {
		$(element).parent().find('.hover').fadeIn(150).end()
			.parent().addClass('error').removeClass('ok').find('.status').html("Please enter your name");
		return false;
	} else if (fullname.length < 2) {
		$(element).parent().parent().addClass('error').removeClass('ok').find('.status').html("Please enter a valid name");
		return false;
	} else {
		$(element).parent().parent().removeClass('error').addClass('ok').find('.status').html('');
		return true;
	}
}

function validateEmail(element) {
	var email = $(element).val();
	if (email.length == 0) {
		$(element).parent().find('.hover').fadeIn(150).end()
			.parent().addClass('error error2').removeClass('ok').find('.status').html("Please enter your email address");
		return false;
	} else if (email.length < 6 || email.indexOf(".") < 1 || email.indexOf("@") < 1) {
		$(element).parent().parent().addClass('error error2').removeClass('ok').find('.status').html("Please enter a valid email address");
		return false;
	} else if ($(element).parent().parent().hasClass('error2')) {
		$(element).parent().parent().addClass('error error2').removeClass('ok').find('.status').html("Please check availability - <a class='checkemail'>Click Here</a>");
		return false;
	} else {
		$(element).parent().parent().removeClass('error').addClass('ok').find('.status').html('');
		return true;
	}
}

function checkEmail(element) {
	var email = $(element).val();
	$(element).parent().parent().removeClass('error2');
	if (validateEmail(element)) {
		var random = Math.floor(Math.random()*100000000);
		if(element == "#email") {
			$.get('zapitadmin/newaccount/check.php?id=' + random, {'EM': email}, function(data) {
				if (data.substring(0,9) == "Available" || data.substring(0,6) == "Unable") {
					$("#email").parent().parent().removeClass('error error2').addClass('ok').find('.status').html(data);
				} else {
					$("#email").parent().parent().addClass('error error2').removeClass('ok').find('.status').html(data);
				}
				showErrorCount('#personalerrors', '#signuppersonal .part1');
			});
		} else {
			$.get('zapitadmin/newaccount/check.php?id=' + random, {'EM': email}, function(data) {
				if (data.substring(0,9) == "Available" || data.substring(0,6) == "Unable") {
					$("#emailB").parent().parent().removeClass('error error2').addClass('ok').find('.status').html(data);
				} else {
					$("#emailB").parent().parent().addClass('error error2').removeClass('ok').find('.status').html(data);
				}
				showErrorCount('#businesserrors', '#signupbusiness .part1');
			});
		}
	} else {
		if(element == "#email") {
			showErrorCount('#personalerrors', '#signuppersonal .part1');
		} else {
			showErrorCount('#businesserrors', '#signupbusiness .part1');
		}
	}
}

function validateCountry(element) {
	var country = $(element).val();
	if (country == 0) {
		$(element).parent().parent().find('.hover').fadeIn(150).end()
			.addClass('error').removeClass('ok').find('.status').html("Please select your country");
		return false;
	} else  {		
		$(element).parent().parent().removeClass('error').addClass('ok').find('.hover').fadeOut(150).end().find('.status').html('');
		return true;
	}
}

function validateUsername(element) {
	var username = $(element).val();
	if (username.length == 0) {
		$(element).parent().find('.hover').fadeIn(150).end()
			.parent().addClass('error').removeClass('ok').find('.status').html("Please enter your username");
		return false;
	} else if (username.length < 5) {
		$(element).parent().parent().addClass('error').removeClass('ok').find('.status').html("Please enter a valid username");
		return false;
	} else if ($(element).parent().parent().hasClass('error2')) {
		$(element).parent().parent().addClass('error error2').removeClass('ok').find('.status').html("Please check availability - <a class='checkusername'>Click Here</a>");
		return false;
	} else {
		$(element).parent().parent().removeClass('error').find('.status').html('');
		return true;
	}
}

function checkUsername(element) {
	var username = $(element).val();
	$(element).parent().parent().removeClass('error2');
	if (validateUsername(element)) {
		var random = Math.floor(Math.random()*100000000);
		if(element == "#username") {
			$.get('zapitadmin/newaccount/check.php?id=' + random, {'UN': username}, function(data) {
				if (data == "Available" || data.substring(0,6) == "Unable") {
					$("#username").parent().parent().removeClass('error error2').addClass('ok').find('.status').html(data);
				} else {
					$("#username").parent().parent().addClass('error error2').removeClass('ok').find('.status').html(data);
				}
				showErrorCount('#personalerrors', '#signuppersonal .part2');
			});
		} else {
			$.get('zapitadmin/newaccount/check.php?id=' + random, {'UN': username}, function(data) {
				if (data == "Available" || data.substring(0,6) == "Unable") {
					$("#usernameB").parent().parent().removeClass('error error2').addClass('ok').find('.status').html(data);
				} else {
					$("#usernameB").parent().parent().addClass('error error2').removeClass('ok').find('.status').html(data);
				}
				showErrorCount('#businesserrors', '#signupbusiness .part2');
			});
		}
	} else {
		if(element == "#username") {
			showErrorCount('#personalerrors', '#signuppersonal .part2');
		} else {
			showErrorCount('#businesserrors', '#signupbusiness .part2');
		}
	}
}

function validatePassword(element1, element2) {
	var passworda = $(element1).val();
	var passwordb = $(element2).val();
	if (passworda.length == 0) {
		$(element1).parent().find('.hover').fadeIn(150).end()
			.parent().addClass('error').removeClass('ok').find('.status').html("Please enter your password");
		return false;
	} else if (passworda.length < 5) {
		$(element1).parent().parent().addClass('error').removeClass('ok').find('.status').html("Please enter a longer password");
		return false;
	} else if (passwordb.length == 0) {
		$(element1).parent().parent().addClass('error').removeClass('ok').find('.status').html("Please confirm the password");
		return false;
	} else if (passworda != passwordb) {
		$(element1).parent().parent().addClass('error').removeClass('ok').find('.status').html("Please enter matching passwords");
		return false;
	} else {
		$(element1).parent().parent().removeClass('error').addClass('ok').find('.status').html('');
		return true;
	}
}

function validateSecurity(element) {
	var security = $(element).val();
	if (security.length == 0) {
		$(element).parent().find('.hover').fadeIn(150).end()
			.parent().parent().addClass('error').removeClass('ok').find('.status').html("Please enter the security code");
		return false;
	} else if (security.length < 5) {
		$(element).parent().parent().parent().addClass('error').removeClass('ok').find('.status').html("Please enter the security code");
		return false;
	} else {
		$(element).parent().parent().parent().removeClass('error').addClass('ok').find('.status').html('');
		return true;
	}
}

function validateAgreement(element) {
	var agreed;
	if ($(element + ":checked").length > 0) {
		agreed = true
	} else {
		agreed = false;
	}
	if (!agreed) {
		$(element).parent().find('.hover').fadeIn(150).end()
			.parent().parent().addClass('error').removeClass('ok').find('.status').html("You must agree to the Terms and Conditions");
		return false;
	} else {
		$(element).parent().parent().parent().removeClass('error').addClass('ok').find('.status').html('');
		return true;
	}
}

function setSelect(target, i) {
	oHandler = $(target).data("dd");
	var selectposition = $("#" + $(target).attr('id') + ' option[value=' + i + "]").index();
	oHandler.set("selectedIndex", selectposition);
}

var oHandler;

// Prepares the form
$(document).ready(function() {
	personalp1r = $("#signuppersonal .part1 .required").length; // part 1 required
	personalp2r = $("#signuppersonal .part2 .required").length -1; // part 2 required
	businessp1r = $("#signupbusiness .part1 .required").length; // part 1 required
	businessp2r = $("#signupbusiness .part2 .required").length -1; // part 2 required
	
	
	// Prettier checkboxes
	$('.useragree').hide().wrap("<div />")
			.parent().prepend("<span class='checkboxselect'></span>");
	$('.checkboxselect').live('click', function(event) {
		$(this).toggleClass("check").parent().find('.useragree').click();
		$(this).parent().find('.hover').fadeOut(150);
	});
	
	
	$('.useragree:checked').parent().find('.checkboxselect').toggleClass("check");
	$('.useragree.required').parent().append("<div class='hover checkhover'>Required</div>").find('.checkboxselect').addClass('required');
	
	$('.useragree.required:checked').parent().find('.hover').css("display", "none");
	
	
	// Prettier Select
	$('.dd2 .ddTitle').live('click', function(event) {
		$(this).parent().find('.hover').fadeOut(150);
	});
	/*$('#personalcountry_child').live('click', function(event) {
		validateCountry("#personalcountry");
		showErrorCount('#personalerrors', '#signuppersonal .part1');
	});*/
	
	$('.countryselect.required[value!=0]').parent().parent().find('.hover').css("display", "none");
	
	
	// Prettier input
	$('.textinput').wrap('<div class="niceinput" />').before('<div class="inputleft" />').after('<div class="inputright" />')
	
	$('#signuppersonal .part1 .textinput.required').live('change', function(event) {
		$('#signuppersonal .nextstep').addClass('enabled');
	}).parent().find('.inputleft').addClass('required').html("<div class='hover'>Required</div>");
	
	$('#signuppersonal .part2 .textinput.required').live('change', function(event) {
		$('#signuppersonal .createaccount').addClass('enabled');
	}).parent().find('.inputleft').addClass('required').html("<div class='hover'>Required</div>");
	
	$('#signupbusiness .part1 .textinput.required').live('change', function(event) {
		$('#signupbusiness .nextstep').addClass('enabled');
	}).parent().find('.inputleft').addClass('required').html("<div class='hover'>Required</div>");
	
	$('#signupbusiness .part2 .textinput.required').live('change', function(event) {
		$('#signupbusiness .createaccount').addClass('enabled');
	}).parent().find('.inputleft').addClass('required').html("<div class='hover'>Required</div>");
	
	$('.textinput').live('focus', function(event) {
		$(this).parent().find('.hover').fadeOut(150);
	});
	
	$('.textinput.required:not(.security)[value!=""]').parent().parent().not(".error").find('.hover').css("display", "none");
	//$('.form_row').not(".error").find('.hover').css("display", "none");


	// Bind main click events
	$('#personalselect').live('click', function(event) {
		event.preventDefault();
		selectPersonalAccount();
	});
	$('#businessselect').live('click', function(event) {
		event.preventDefault();
		selectBusinessAccount();
	});
	$('.previousstep').live('click', previousStep);
	$('.nextstep').live('click', nextStep);
	$('#submit1').live('click', submitPersonal);
	$('#submit2').live('click', submitBusiness);
	$('a.checkemail').live('click', function() { checkEmail("#" + $(this).parent().parent().find("input").attr('id')); });
	$('a.checkusername').live('click', function() { checkUsername("#" + $(this).parent().parent().find("input").attr('id')); });
	// End main click event binding
	
	
	// Expand billing address on click
	$('#billingsame').live('click', function(event) {
		$('#billingsection').slideToggle(220, function() {
			if ($.browser.msie) {
				$("#full_width_column_bottom").animate({height: 40}, 1, function() {$("#full_width_column_bottom").css('height', '15px')});
			}
		});
		if(!bpcdd) { $('#signupbusiness #billingcountry').msDropDown({mainCSS:'dd2', visibleRows:9, rowHeight:23}); bpcdd=true; }
	});
	
	
	// Setup for prefilled
	if ($('#personalaccount').val() == 1) {
		$('#personalselect').click();
	} else if ($('#businessaccount').val() == 1) {
		$('#businessselect').click();
	}
	
	/*$('select').live('change', function(event) {
		setSelect($(this), $(this).val());
	})*/
});
