var hasError = false;

function checkValues() {
	var form = document.donateForm;
	clearErrors();
	if(form.name.value == ''){
		setError('name', true);
	}
	if(form.email.value == '' || !validateEmail(form.email.value)){
		setError('email', true);
	}
	if(form.phone.value == ''){
		setError('phone', true);
	}
	if(form.address1.value == ''){
		setError('address1', true);
	}
	if(form.city.value == ''){
		setError('city', true);
	}
	if(form.province.value == ''){
		setError('province', true);
	}
	if(form.country.value == ''){
		setError('country', true);
	}
	if(form.postalCode.value == ''){
		setError('postalCode', true);
	}
	if(form.amount.value == '' || !validateAmount(form.amount.value)){
		setError('amount', true);
	}
	var charityValue = '';
	for(var i=0; i<form.charity.length; i++) {
		if(form.charity[i].checked) {
			charityValue = form.charity[i].value;
			break;
		}
	}
	if(charityValue == '') {
		setError('charity', true);
	}

	document.getElementById('hasErrors').style.display = (!hasError?'none':'block');
	return !hasError;
}

function checkValue(input) {
	if(input.value == '') {
		setError(input.name, true);
	}
	else if(input.name == 'email' && !validateEmail(input.value)){
		setError(input.name, true);
	}
	else if(input.name == 'amount' && !validateAmount(input.value)){
		setError(input.name, true);
	}
	else{
		setError(input.name, false);
	}
}

/*function formatPhoneNumber(input) {
	input.value = '('+input.value.substring(0,3)+') '+input.value.substring(3,6)+'-'+input.value.substring(6,input.value.length);
}

function unformatPhoneNumber(input) {
	input.value = input.value.replace('(','');	
	input.value = input.value.replace(')','');	
	input.value = input.value.replace(' ','');	
	input.value = input.value.replace('-','');	
}

function validateInteger(e, input) {
	var key, cur;
	if(window.event)
		key = window.event.keyCode;
  else
		key = e.which;
	cur = getCursorPosition(input);

	if(cur < 10) {
		if(key >= 48 && key <= 57)
			return true;
	}
	if(key <= 31)
		return true;
	if(key == 8 || key == 127)
		return true;
	return false;
}

function validatePhoneNumber(e, input) {
	var key, lBrack, rBrack, space, dash, cur, curEnd;
	if(window.event)
		key = window.event.keyCode;
  else
		key = e.which;
	lBrack = input.value.indexOf('(');
	rBrack = input.value.indexOf(')');
	space = input.value.indexOf(' ');
	dash = input.value.indexOf('-');
	cur = getCursorPosition(input);
	curEnd = getCursorPositionEnd(input);

	if(key >= 48 && key <= 57){
		if(cur <= lBrack) return false;
		if(cur > lBrack && cur <= rBrack && rBrack-lBrack > 3) return false;
		if(cur > rBrack && cur <= space) return false;
		if(cur > space && cur <= dash && dash-space > 3) return false;
		if(cur > dash && input.value.length > dash+4) return false;
		return true;
	}	
	if(key == 8){
		if(curEnd > cur){
			var selStr = input.value.substr(cur, curEnd-cur);
			var repStr = '';
			if(selStr.indexOf('(') != -1) repStr += '(';
			if(selStr.indexOf(')') != -1) repStr += ')';
			if(selStr.indexOf(' ') != -1) repStr += ' ';
			if(selStr.indexOf('-') != -1) repStr += '-';
			input.value = input.value.substr(0, cur) + repStr + input.value.substr(curEnd, input.value.length);
			return false;
		}
		if(lBrack == cur-1) return false;
		if(rBrack == cur-1) return false;
		if(space == cur-1) return false;
		if(dash == cur-1) return false;
		return true;
	}
	if(key == 127){
		if(curEnd > cur){
			var selStr = input.value.substr(cur, curEnd-cur);
			var repStr = '';
			if(selStr.indexOf('(') != -1) repStr += '(';
			if(selStr.indexOf(')') != -1) repStr += ')';
			if(selStr.indexOf(' ') != -1) repStr += ' ';
			if(selStr.indexOf('-') != -1) repStr += '-';
			input.value = input.value.substr(0, cur) + repStr + input.value.substr(curEnd, input.value.length);
			return false;
		}
		if(lBrack == cur) return false;
		if(rBrack == cur) return false;
		if(space == cur) return false;
		if(dash == cur) return false;
		return true;
	}
	if(key <= 31 && key != 8)
		return true;
	return false;
}*/

function validateCurrency(e, input) {
	var key, dot, cur;
	if(window.event)
		key = window.event.keyCode;
  else
		key = e.which;
	dot = input.value.indexOf('.');
	cur = getCursorPosition(input);

	if((key >= 48 && key <= 57) && (dot == -1 || cur <= dot || input.value.length < dot+3))
		return true;
	if(key <= 31)
		return true;
	if(key == 8 || key == 127 || (key == 46 && dot == -1))
		return true;
	return false;
}

function validateEmail(email){
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test(email);
}

/*function validatePhoneNumberE(phone){
	return phone.search(/\(\d{3}\)\ \d{3}\-\d{4}/) != -1;
}*/

function validateAmount(amount){
	var nAmt = amount * 1;
	return (nAmt >= 1 && nAmt <= 5000);
}

function getCursorPosition(o) {
	if (o.createTextRange) 
	{
		var r = document.selection.createRange().duplicate();
		r.moveEnd('character', o.value.length);
		if (r.text == '') 
			return o.value.length;
		return o.value.lastIndexOf(r.text);
	} 
	else 
		return o.selectionStart;
}

function getCursorPositionEnd(o) {
	if (o.createTextRange) 
	{
		var r = document.selection.createRange().duplicate();
		r.moveEnd('character', -o.value.length);
		if (r.text == '') 
			return o.value.length;
		return o.value.lastIndexOf(r.text);
	} 
	else 
		return o.selectionEnd;
}

function setError(question, on) {
	if(on){
		document.getElementById(question+'Error').style.display='block';
		hasError = true;
	}
	else{
		document.getElementById(question+'Error').style.display='none';
		hasError = false;
	}
}

function clearErrors() {
	setError('name', false);
	setError('email', false);
	setError('phone', false);
	setError('address1', false);
	setError('city', false);
	setError('province', false);
	setError('country', false);
	setError('postalCode', false);
	setError('amount', false);
}

