function enableResidence()
{/*
		var ischecked = document.consultation.check_residential.checked;
		
		document.getElementById('field_residential').disabled =  !ischecked;
		document.getElementById('res_numberof_floors').disabled = !ischecked;
		document.getElementById('res_numberof_bedrooms').disabled = !ischecked;
		document.getElementById('res_numberof_rooms').disabled = !ischecked;
		document.getElementById('res_numberof_tenants').disabled = !ischecked;
		document.getElementById('res_consultation_needs').disabled = !ischecked;
		document.getElementById('res_propertysize').disabled = !ischecked;
		document.getElementById('res_sqfeet').disabled = !ischecked;
		document.getElementById('res_sqmeters').disabled = !ischecked;*/
		return true;
}

function enableBusiness()
{	/*
		var ischecked = document.consultation.check_business.checked;
		document.getElementById('field_business').disabled =  !ischecked;
		document.getElementById('business_type').disabled = !ischecked;

		document.getElementById('business_numberof_floors').disabled = !ischecked;
		document.getElementById('business_numberof_workers').disabled = !ischecked;
		document.getElementById('business_consultation_needs').disabled = !ischecked;
		document.getElementById('business_propertysize').disabled = !ischecked;
		document.getElementById('business_sqfeet').disabled = !ischecked;
		document.getElementById('business_sqmeters').disabled = !ischecked;
		document.getElementById('business_type').disabled = !ischecked;*/
		return true;

}

/////////////////////////////////
function getLabelCheckedValue(radioObj) {
	if(!radioObj) return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
		{
			//return radioObj.value;
			return radioObj.parentNode.title;
		}
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			var parent = radioObj[i].parentNode.title;
			return parent;
		}
	}
	return "";
}
/////////////////////////////////
function getCheckedValue(radioObj) {
	if(!radioObj) return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}
/////////////////////////////////

function UpdateBookingInfo(payment_type)
{
	var firstname = document.getElementById('firstname').value;
	var lastname = document.getElementById('lastname').value;
	var city = document.getElementById('city').value;
	var email = document.getElementById('email').value;
	var country = document.getElementById('country').value;
	var shortmessage = document.getElementById('shortmessage').value;
	var bookingform = document.getElementById('bookingform');
	var googleform = document.getElementById('googleform');
	var paypalform = document.getElementById('paypalform');
	var chequeform = document.getElementById('chequeform');
	var provincelist = bookingform.elements['state'];
	var total_options = document.forms['bookingform'].elements['workshop_to_take'];
	var state;
	 if (provincelist.type == 'select-one') state = provincelist.options[provincelist.selectedIndex].value;
	 else if ( provincelist.type == 'text' ) state = provincelist.value;
	var description = "/" + city + ", " + state + ", " + country + "/PS:[" + shortmessage + "]";
	var workshop_to_take = getLabelCheckedValue(total_options);
	var workshop_price = getCheckedValue(total_options);
	
	if (payment_type == 'google')
	{
	// Google Checkout
	description = "/" + firstname + " " + lastname + "/" +city + ", " + state + ", " + country + "/PS:[" + shortmessage + "]";
	googleform.elements['item_price_1'].value = workshop_price;
	googleform.elements['item_description_1'].value = '[Event:'+ workshop_to_take + '] ' + description;
	} else
	if (payment_type=='paypal')
	{
	// Paypal
	paypalform.elements['first_name'].value = firstname;
	paypalform.elements['last_name'].value = lastname;
	paypalform.elements['email'].value = email;
	paypalform.elements['amount'].value = workshop_price;
	paypalform.elements['item_name'].value = '['+ workshop_to_take +'] ' + description;
	}
	else 
	if (payment_type=='other')
	{
	chequeform.elements['chq_first_name'].value = firstname;
	chequeform.elements['chq_last_name'].value = lastname;
	chequeform.elements['chq_city'].value = city;
	chequeform.elements['chq_state'].value = state;
	chequeform.elements['chq_country'].value = country;
	chequeform.elements['chq_email'].value = email;
	chequeform.elements['chq_item_price_1'].value = workshop_price;
	chequeform.elements['chq_item_description_1'].value = 'Event: '+ workshop_to_take + ' ';
	chequeform.elements['chq_message'].value = shortmessage;
	}
}
/////////////////////////////////
function BookingValidator(payment_type)
{
		var total_options = document.forms['bookingform'].elements['workshop_to_take'];

		var workshop_price = getCheckedValue(total_options);

	if (isEmpty(document.getElementById('firstname'),"Please enter your firstname...")) return false;
	if (isEmpty(document.getElementById('lastname'),"Please enter your lastname...")) return false;
	if (noSelection(document.getElementById('country'),"Please enter the country of your residence..."))	return false;	
	if (is_province_empty(document.getElementById('bookingform'),'state')) return false;
	if (isEmpty(document.getElementById('city'),"Please enter your city..."))	 return false;
    if (!emailValidator(document.getElementById('email'),"Please enter the correct e-mail address..."))	
		return false;
	else 
	if (!emailValidator(document.getElementById('emailverify'),"Please enter your correct e-mail address to ensure that it is correct..."))
		return false;
	else {
		var email1=document.getElementById('emailverify').value.toUpperCase();
		var email2=document.getElementById('email').value.toUpperCase();
		if (email1 != email2)
		{
			alert ("E-mail address does not match with its verification. Please verify your e-mail address");
			document.getElementById('emailverify').focus();
			return false;	
		}
	}
	if (workshop_price == 0)
	{
		alert ("Please choose a workshop to attend (Step 2)");
		total_options[0].focus();
		return false;	
	}
	// OK: Phone
	UpdateBookingInfo(payment_type);
	return true;
}
/////////////////////////////////
/////////////////////////////////
function formValidator()
{

	if (isEmpty(document.getElementById('firstname'),"Please enter your firstname...")) return false;
	if (isEmpty(document.getElementById('lastname'),"Please enter your lastname...")) return false;
	
	// OK: Type of Property: Residence / Business
	if ( (!document.consultation.check_residential.checked) && (!document.consultation.check_business.checked))
	{
		alert("Please choose whether you'd like to have a consultation for your residence, business, or both...");
		document.consultation.check_residential.focus();
		return false;
	}
	// OK: Types of consultation
	if ( (!document.consultation.check_consult_spaceclearing.checked) && (!document.consultation.check_consult_clutterclearing.checked) && (!document.consultation.check_consult_fengshui.checked))
	{
		alert("Please choose (can be more than one option): Space Clearing, Clutter Clearing, and/or Feng Shui...");
		document.consultation.check_consult_spaceclearing.focus();
		return false;
	}
	if (isEmpty(document.getElementById('address'),"Please enter your address...")) return false;
	// OK: Country
	if (noSelection(document.getElementById('country'),"Please enter the country for this address..."))	return false;	

	if (isEmpty(document.getElementById('city'),"Please enter your city..."))	 return false;
// Prana - July 1st - error diff type -->	if (isEmpty(document.getElementById('state'),"Please enter your state/province..."))		return false;	

//	if (isEmpty(document.getElementById('zip'),"Please enter your zip/postal code..."))		return false;
//	if (isEmpty(document.getElementById('email'),"Please enter your e-mail..."))		return false;
//	if (isEmpty(document.getElementById('emailverify'),"Please re-enter your e-mail for verification..."))		return false;
 // OK: E-mail validation

    if (!emailValidator(document.getElementById('email'),"Please enter the correct e-mail address..."))	
		return false;
	else 
	if (!emailValidator(document.getElementById('emailverify'),"Please enter your correct e-mail address to ensure that it is correct..."))
		return false;
	else {
		var email1=document.getElementById('emailverify').value.toUpperCase();
		var email2=document.getElementById('email').value.toUpperCase();
		if (email1 != email2)
		{
			alert ("E-mail address does not match with its verification. Please verify your e-mail address");
			document.getElementById('emailverify').focus();
			return false;	
		}
	}
	// OK: Phone
	if (isEmpty(document.getElementById('phone'),"Please enter your phone number..."))		return false;	
	
	
	// OK: Residential fields check
	if (document.consultation.check_residential.checked)
	{
		if  (!isNumeric(document.getElementById('res_numberof_floors'),"Please enter the correct number of floors")) return false;
		if  (!isNumeric(document.getElementById('res_numberof_bedrooms'),"Please enter the correct number of bedrooms")) return false;
		if  (!isNumeric(document.getElementById('res_numberof_rooms'),"Please enter the correct number of rooms")) return false;
		if  (!isNumeric(document.getElementById('res_numberof_tenants'),"Please enter the correct number of tenants")) return false;
		if  (!isNumeric(document.getElementById('res_propertysize'),"Please enter the correct property size")) return false;
		if ((!document.consultation.res_property_size_unit[0].checked) &&  (!document.consultation.res_property_size_unit[1].checked))
		{
			alert ("Please select whether the size of your property is in square meters (International) or square feet (US)...");
			document.consultation.res_property_size_unit[0].focus();
			return false;
		}
	}
	// OK: Business Check
	if (document.consultation.check_business.checked)
	{
		if  (!isNumeric(document.getElementById('business_numberof_floors'),"Please enter the correct number of floors")) return false;
	 	if  (!isNumeric(document.getElementById('business_numberof_workers'),"Please enter the correct number of tenants")) return false;
		if  (!isNumeric(document.getElementById('business_propertysize'),"Please enter the correct property size")) return false; 
		if ((!document.consultation.business_property_size_unit[0].checked) &&  (!document.consultation.business_property_size_unit[1].checked))
		{
			alert ("Please select whether the size of your business property is in square meters (International) or square feet (US)...");
			document.consultation.business_property_size_unit[0].focus();
			return false;
		}
	}
	return true;
}
function noSelection(elem, helperMsg){
	if(elem.value == ""){
		alert(helperMsg);
		elem.focus();
		return true;
	}else{
		return false;
	}
}

function isEmpty(elem, helperMsg){
	if(elem.value.length == 0){
		alert(helperMsg);
		elem.focus(); // set the focus to this input
		return true;
	}
	return false;
}

function isNumeric(elem, helperMsg){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphabet(elem, helperMsg){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphanumeric(elem, helperMsg){
	var alphaExp = /^[0-9a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function lengthRestrictionOK(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Please enter between " +min+ " and " +max+ " characters");
		elem.focus();
		return false;
	}
}

function emailValidator(elem, helperMsg){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,6}$/;
	if(elem.value.match(emailExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}
