/*
 * @version: 090426
 */

//run on doc load
$(document).ready(function()
{
	//donation form button
	$("#pd09_btn_donation").click(function()
	{
		//validate form
		return donation_form_validate();
	});
	
	//donation confirmation back button
	$("#pd09-btn-donate-back").click(function()
	{
		//go back
		history.go(-1);
		return false;
	});
	
	//clear staf
	$("#btn-clear-form").click(function()
	{
		$(".pd09-input-text").val("");
		return false;
	});
	
	//init external links (target="_blank" not strict
	$('.pd09-js-external').each(function() { 
		$(this).click(function()
		{
			$(this).attr('target', '_blank');
		});
	});
	
	//dontate gift aid tool tip
	if ($('#pd09-tooltip').length > 0) {
		$('#pd09-tooltip').qtip(
		{
			content: $('#pd09-giftaid-what').html()
		});
		//hide tooltip content
		$('#pd09-giftaid-what').hide();
	}
	
	//bookmarks
	$('#pd09-bookmark').jFav();
	
});







/****************************/
/* donation form validation	*/
/****************************/

function donation_form_validate()
{
	form = $("#pd09_donation_form");
	
	//alert('form: ' + form);
	
	//set check values
	CK_EMPTY 		= 0;
	CK_LEN_GREATER 	= 1;
	CK_LEN_LESS 	= 2;
	CK_EMAIL 		= 3;
	CK_RADIO		= 4;
	
	//check required values
	form_data = new Array();
	
	//firstname
	form_data.push({
					field:$("#pd09-input-firstname"), 
					check:CK_EMPTY, check_value:'',
					msg:'Please enter your first name.'
				});
	form_data.push({
					field:$("#pd09-input-firstname"), 
					check:CK_LEN_GREATER, check_value:20,
					msg:'Sorry but your first name is too long for our system.'
				});
	form_data.push({
					field:$("#pd09-input-firstname"), 
					check:CK_LEN_LESS, check_value:2,
					msg:'Name must be at least 2 characters.'
				});
	//surname
	form_data.push({
					field:$("#pd09-input-surname"), 
					check:CK_EMPTY, check_value:'',
					msg:'Please enter your surname.'
				});
	form_data.push({
					field:$("#pd09-input-surname"), 
					check:CK_LEN_GREATER, check_value:20,
					msg:'Sorry but your surname is too long for our system.'
				});
	form_data.push({
					field:$("#pd09-input-surname"), 
					check:CK_LEN_LESS, check_value:2,
					msg:'Name must be at least 2 characters.'
				});
	//address1
	form_data.push({
					field:$("#pd09-input-address1"), 
					check:CK_EMPTY, check_value:'',
					msg:'Please enter line one of your address.'
				});
	form_data.push({
					field:$("#pd09-input-address1"), 
					check:CK_LEN_GREATER, check_value:64,
					msg:'Line one of you address is too long.'
				});
	form_data.push({
					field:$("#pd09-input-address1"), 
					check:CK_LEN_LESS, check_value:5,
					msg:'The first line of the address must contain at least 5 characters.'
				});
	//address2
	form_data.push({
					field:$("#pd09-input-address2"), 
					check:CK_LEN_GREATER, check_value:30,
					msg:'Sorry your address appears to be too long for our system.'
				});
	
	//town
	form_data.push({
					field:$("#pd09-input-town"), 
					check:CK_EMPTY, check_value:'',
					msg:'Please enter your town.'
				});
	form_data.push({
					field:$("#pd09-input-town"), 
					check:CK_LEN_GREATER, check_value:25,
					msg:'Sorry the name of your town is too long for our system.'
				});
	form_data.push({
					field:$("#pd09-input-town"), 
					check:CK_LEN_LESS, check_value:3,
					msg:'The town must contain at least 3 characters.'
				});
	//postcode
	form_data.push({
					field:$("#pd09-input-postcode"), 
					check:CK_EMPTY, check_value:'',
					msg:'Please enter your post code.'
				});
	form_data.push({
					field:$("#pd09-input-postcode"), 
					check:CK_LEN_GREATER, check_value:20,
					msg:'Sorry your post code is too long for our system.'
				});
	form_data.push({
					field:$("#pd09-input-postcode"), 
					check:CK_LEN_LESS, check_value:4,
					msg:'The postcode must contain at least 4 characters.'
				});
	//country
	form_data.push({
					field:$("#pd09-input-country"), 
					check:CK_EMPTY, check_value:'',
					msg:'Please select your country.'
				});	
	
	//donation amount
	form_data.push({
					field:$("#pd09-input-donation"), 
					check:CK_EMPTY, check_value:'',
					msg:'Please enter a donation amount.'
				});
	//email
	form_data.push({
					field:$("#pd09-input-email"), 
					check:CK_EMPTY, check_value:'',
					msg:'Please enter an email address.'
				});	
	form_data.push({
					field:$("#pd09-input-email"), 
					check:CK_LEN_GREATER, check_value:64,
					msg:'Your email is too long for the HSBC e-payment system.'
				});
	form_data.push({
					field:$("#pd09-input-email"), 
					check:CK_EMAIL, check_value:'',
					msg:'Please enter a valid email address.'
				});
	//gender
	form_data.push({
					field:$("#pd09-input-gender-m:checked"),
					field2:$("#pd09-input-gender-f:checked"),
					check:CK_RADIO, check_value:'',
					msg:'Please select your gender.'
				});
	
	//validate
	for ( x in form_data )
	{
		//input box
		input = form_data[x];
		//focus
		input.field.focus();
		//valdate
		switch (input.check)
		{
			case CK_EMPTY:
				//check empty
				if ( input.field.val() == "" ) {
					alert(input.msg);
					return false;
				}
				break;
			case CK_LEN_GREATER:
				//check greater than
				if ( input.field.val().length > input.check_value ) {
					alert(input.msg);
					return false;
				}
				break;
			case CK_LEN_LESS:
				//check less than
				if ( input.field.val().length < input.check_value ) {
					alert(input.msg);
					return false;
				}
				break;
			case CK_EMAIL:
				//validate email
				if ( input.field.val() != "" && !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(input.field.val())) {
					alert(input.msg);
					return false;
				}
				break;
			case CK_RADIO:
				if ( input.field.val() == undefined && input.field2.val() == undefined ) {
					alert(input.msg);
					return false;
				}
				break;
		}
	}
	
	//all valid
	return true;
}
