function oncountrychange(country){
	if(!country)
		country = document.forms[0].elements['country'];

	if(!country.value)
		country.value = 'United States';

	var showDropdown = country.value == 'United States' || country.value == 'Canada';
	var stateInput = country.form.elements['state'];
	var stateDropdown = country.form.elements['stateUS'];
	stateInput.style.display = showDropdown ? 'none' : '';
	stateDropdown.style.display = showDropdown ? '' : 'none';
}

function checkmandatory(form, name, minlength){
	if(!form.elements[name])
		return true;
	if(form.elements[name].value){
		if(minlength && form.elements[name].value.length < minlength){
			alert("Please type at least " + minlength + " characters for " + name + "!");
			form.elements[name].focus();
			return false;
		}
	
		return true;
	}
	alert("Please enter value for " + name);
	form.elements[name].focus();
	return false;
}

function isValidPassword(pwdCtrl){
	var password = pwdCtrl.value;
	var regExp = new RegExp("[A-Za-z]+[0-9]+|[0-9]+[A-Za-z]+");
	var nonAlphanum = new RegExp("[^A-Za-z0-9]");
	if (password.match(regExp) == null || password.match(nonAlphanum) != null){
		alert("Password must contain both digital(0-9) and letter(a-z)");
		pwdCtrl.focus();
		return false;
	}
	return true;
}

function changeDateRange(selector){
	var today = new Date();
	var month1, day1, year1, month2, day2, year2;
	if(selector.value == null)
		return;
		
	switch(selector.value){
	case '1' :
		today = new Date(today.getTime() - 24 * 60 * 60 * 1000);
	case '0' :
		month2 = month1 = today.getMonth() + 1;
		day1 = day2 = today.getDate();
		year1 = year2 = today.getFullYear();
		break;
	case '3' :
		today = new Date(today.getTime() - 24 * 60 * 60 * 1000 * 7);
	case '2' :
		var sunday = new Date(today.getTime() - today.getDay() * 24 * 60 * 60 * 1000);
		var saturday = new Date(sunday.getTime() + 6 * 24 * 60 * 60 * 1000);
		month1 = sunday.getMonth() + 1;
		day1 = sunday.getDate();
		year1 = sunday.getFullYear();
		month2 = saturday.getMonth() + 1;
		day2 = saturday.getDate();
		year2 = saturday.getFullYear();
		break;
	case '5' :
		month1 = today.getMonth();
		today = new Date(today.getFullYear() - (month1 ? 0 : 1), month1 - (month1 ? 1 : 0), 1);
	case '4' :
		month1 = today.getMonth() + 1;
		day1 = 1;
		year1 = today.getFullYear();
		today = new Date(year1 + (month1 == 12 ? 1 : 0), month1 == 12 ? 0 : month1, 1);
		today = new Date(today.getTime() - 24 * 60 * 60 * 1000);
		month2 = today.getMonth() + 1;
		day2 = today.getDate();
		year2 = today.getFullYear();
		break;
	case '7' :
		month1 = Math.floor(today.getMonth() / 3) * 3 - 3;
		today = new Date(today.getFullYear() - (month1 < 0 ? 1 : 0), month1 + (month1 < 0 ? 12 : 0), 1);
	case '6' :
		month1 = Math.floor(today.getMonth() / 3) * 3 + 1;
		year1 = today.getFullYear();
		day1 = 1;
		month2 = month1 + 3;
		if(month2 > 12){
			month2 -= 12;
			year2 = year1 + 1;
		}
		else
			year2 = year1;
			
		today = new Date(year2, month2, 1);
		today = new Date(today.getTime() - 24 * 60 * 60 * 1000);
		month2 = today.getMonth() + 1;
		day2 = today.getDate();
		year2 = today.getFullYear();
		break;	
	case '8' :
	case '9' :
		year1 = today.getFullYear() - (selector.value == '8' ? 0 : 1);
		month1 = 1;
		day1 = 1;
		year2 = year1;
		month2 = 12;
		day2 = 31;
		break;
	default :
		alert(selector.value);
		return;
	}
	selector.form.elements['month1'].value = month1;
	selector.form.elements['day1'].value = day1;
	selector.form.elements['year1'].value = year1;
	selector.form.elements['month2'].value = month2;
	selector.form.elements['day2'].value = day2;
	selector.form.elements['year2'].value = year2;		
}


function validateAccountform(form){
	if(!checkmandatory(form, 'email', 6) ||
	!checkmandatory(form, 'password', 6) ||
	!checkmandatory(form, 'password2', 6))
		return false;
		
	var regexp = new RegExp(".+@.+\\.[a-zA-Z]+", "g");
	if(!regexp.test(form.elements['email'].value)){
		form.elements['email'].focus();
		alert("Invalid email address!");
	}

	var pwdCtrl = form.elements['password'];
		
	if(pwdCtrl){
		if(pwdCtrl.value != form.elements['password2'].value){
			alert("Password is not match");
			pwdCtrl.focus();
			return false;
		}
	
		if(!isValidPassword(pwdCtrl))
			return false;
	}

	return true;
}