/**
 * ------------------------------------------------------------------
 * Javascript form validation framework
 * @author Chris Keeley <chris@dnaadvertising.co.uk>
 * @version 0.1
 * @date 28 Feb 2008
 * ------------------------------------------------------------------
 * 
 * This file contains defintions of form parsing configurations.
 * In order to define a form config object and link it to the parsing framework
 * it is necessary to define a new object and assign it into the directory 
 * using: directory.insert( 'identifer string', objectVariable );
 *
 * In order to be compatible the defined config object needs to contain 
 * a member object identified by the 'name' attribute of the element in your form.
 *
 * E.g. <form><input type="text" name="my_text" ... /></form>
 * 
 * The corresponding directory entry needs to look like this:
 * 
 * 	var myFormConfig = { 
 
 *		// directory entry 
 * 		my_text: { 
 *			required: boolean, 
 *			exec: function(value) { 
 *				... 
 *			} 
 *		}
 *
 * The 'configObject.exec' member defines any functionality that you would like to perform on this element value and the 'configObject.required' member specifies whether
 * or not this item will undergo any processing. 
 * ---------------------------------------------------------------------------------------------------
 * - Note: if 'configObject.required' is set to false then no other members are necessary as the element will 
 * - not receive any futher processing.
 * ---------------------------------------------------------------------------------------------------
 * The return value is a boolean true if you want the element to be processed or false if not.
 *
 * XXX @TODO XXX
 * This file will quickly become very large and messy. 
 * Need to move the definitons across to XML or JSON file and need ability to 
 * have a file for each form config to seperate things out somewhat. 
 */
//====================================================================================
// COMMON FUNCTION DEFINITIONS 
//====================================================================================

/**
 * This function tests an email string against a regular expression 
 * designed to identify an rfc compliant email address.
 * This regex test is not 100% accurate but will validate for the majority of cases.
 */
function validateEmail(emailString) {
	var regex = /^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{ 1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$/i
	var result = regex.exec(emailString);
	if(result == null) {
		return false;
	}
	return true;
}
 
//====================================================================================
// BEGIN CONFIG DEFINITIONS 
//====================================================================================

/////////////////////////////////////////////////////////////////////////////////////////////
// TEST DRIVE REQUEST FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var testDriveFormConfig = {
	// Name
	name: {
		required: true,
		type: 'string',
		name: 'Name',
		error: 'This field is required',
		execute: function(value){
			if (value == '') {
				return false;
			}
			return true;
		}
	},
	phone: {
		required: true,
		type: 'string',
		name: 'Phone',
		error: 'This field is required',
		execute: function(value){
			if (value == '') {
				return false;
			}
			return true;
		}
	},
	model: {
		required: true,
		type: 'string',
		name: 'Model',
		error: 'Please make a selection',
		execute: function(value){
			if (value == '') {
				return false;
			}
			return true;
		}
	}
}
// insert the object into the directory 
directory.insert('testdriveform', testDriveFormConfig);
/////////////////////////////////////////////////////////////////////////////////////////////
// ADD NEWS ITEM FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var newsItemConfig = {
	// title 
	title: { 
		required: true, 
		type: 'string',
		name: 'Title',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the short description 
	short_description: { 	
		required: true, 
		type: 'string',
		name: 'Short Description',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the date 
	date: { 
		required: true, 
		type: 'string',
		name: 'Date',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the news article 
	newsArticle: { 
		required: true, 
		type: 'string',
		name: 'News Article',
		error: 'This field is required',
		execute: function(value) { 
			/*
			var inst = FCKeditorAPI.GetInstance("newsArticle");
			var sValue = inst.GetHTML();
			if(sValue == '') {
				return false;
			}
			return true;
			*/
			// need to get at the content in a different way 
			var value = tinyMCE.getContent();
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the image file upload
	image: {	
		required: true, 
		type: 'string',
		name: 'Image',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the alt text for the image
	image_alt: { 
		required: false, 
		type: 'string',
		name: 'Image Alt Text',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
// insert the object into the directory 
directory.insert('newsitemform', newsItemConfig);
/////////////////////////////////////////////////////////////////////////////////////////////
// EDIT NEWS ITEM FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var editNewsItemConfig = {
	// title 
	title: { 
		required: true, 
		type: 'string',
		name: 'Title',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the short description 
	short_description: { 	
		required: true, 
		type: 'string',
		name: 'Short Description',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the date 
	date: { 
		required: true, 
		type: 'string',
		name: 'Date',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the news article 
	newsArticle: { 
		required: true, 
		type: 'string',
		name: 'News Article',
		error: 'This field is required',
		execute: function(value) { 
			/*
			var inst = FCKeditorAPI.GetInstance("newsArticle");
			var sValue = inst.GetHTML();
			if(sValue == '') {
				return false;
			}
			return true;
			*/
			var value = tinyMCE.getContent();
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the image file upload
	image: {	
		required: false, 
		type: 'string',
		name: 'Image',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the alt text for the image
	image_alt: { 
		required: false, 
		type: 'string',
		name: 'Image Alt Text',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
// insert the object into the directory 
directory.insert('editnewsitemform', editNewsItemConfig);
/////////////////////////////////////////////////////////////////////////////////////////////
// NEW USER FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var newUserConfig = {
	// title 
	username: { 
		required: true, 
		type: 'string',
		name: 'Username',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// password
	password: { 
		required: true, 
		type: 'string',
		name: 'Password',
		error: 'A password is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// confirm password
	confirm_password: { 
		required: true, 
		type: 'string',
		name: 'Confirm Password',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			// hack for password comparison check
			var sword = $F('password').toLowerCase();
			var cword = $F('confirm_password').toLowerCase();
			if(sword != cword) {
				this.error = "Passwords do not match!";
			} else {
				return true;
			}
		return false;
		}
	},
	member_groups: { 
		required: true, 
		type: 'string',
		name: 'Member Groups',
		error: 'You must select at least one group',
		execute: function(value) { 
			if($('member_groups').options.length == 0) {
				this.error = "You must assign the user to at least one group!";
				return false;
			} else {
				var groupIdList = new Hash();
				$A($('member_groups').options).each( function( elem, index ) {
					groupIdList.set(elem.text, elem.value);
				});
				$('group_id_list').value = groupIdList.toJSON() ;
			}
			return true;
		}
	}
}
directory.insert('adduserform', newUserConfig);
/////////////////////////////////////////////////////////////////////////////////////////////
// EDIT USER FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var editUserConfig = {
	// title 
	username: { 
		required: true, 
		type: 'string',
		name: 'Username',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// password
	password: { 
		required: false, 
		type: 'string',
		name: 'Password',
		error: 'A password is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// confirm password
	confirm_password: { 
		required: false, 
		type: 'string',
		name: 'Confirm Password',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			// hack for password comparison check
			var sword = $F('password').toLowerCase();
			var cword = $F('confirm_password').toLowerCase();
			if(sword != cword) {
				this.error = "Passwords do not match!";
			} else {
				return true;
			}
			
		return false;
		}
	},
	member_groups: { 
		required: true, 
		type: 'string',
		name: 'Member Groups',
		error: 'You must select at least one group',
		execute: function(value) { 
			if($('member_groups').options.length == 0) {
				this.error = "You must assign the user to at least one group!";
				return false;
			} else {
				var groupIdList = new Hash();
				$A($('member_groups').options).each( function( elem, index ) {
					groupIdList.set(elem.text, elem.value);
				});
				$('group_id_list').value = groupIdList.toJSON() ;
			}
			return true;
		}
	}
}
directory.insert('edituserform', editUserConfig);
/////////////////////////////////////////////////////////////////////////////////////////////
// LOGIN FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var loginForm = {
	// title 
	username: { 
		required: true, 
		type: 'string',
		name: 'Username',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// password
	password: { 
		required: true, 
		type: 'string',
		name: 'Password',
		error: 'A password is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
directory.insert('loginform', loginForm);
/////////////////////////////////////////////////////////////////////////////////////////////
// ADD CONTACT FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var addContactForm = {
	// firstname  
	first_name: { 
		required: true, 
		type: 'string',
		name: 'Firstname',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// lastname 
	last_name: { 
		required: true, 
		type: 'string',
		name: 'Lastname',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Contact Phone 
	contact_phone: { 
		required: true, 
		type: 'string',
		name: 'Contact Phone',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// mobile phone
	mobile_phone: { 
		required: true, 
		type: 'string',
		name: 'Mobile Phone',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Email Address
	// Duplication - refactor into accessible function (@see editContactForm)
	email_address: { 
		required: true, 
		type: 'string',
		name: 'Email Address',
		error: 'This field is required',
		execute: function(value) { 
			if(value == "") {
				return false;
			}
			else if(!validateEmail(value)) {
				this.error = "Email is not in a valid format";
				return false;
			}
			return true;
		}
	},
	// address_one
	address_one: { 
		required: true, 
		type: 'string',
		name: 'Address One',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// address_two
	address_two: { 
		required: false, 
		type: 'string',
		name: 'Address Two',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// address_three
	address_three: { 
		required: false, 
		type: 'string',
		name: 'Address Three',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// address_four
	address_four: { 
		required: false, 
		type: 'string',
		name: 'Address Four',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// town
	town: { 
		required: true, 
		type: 'string',
		name: 'Town',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Region
	region: { 
		required: true, 
		type: 'string',
		name: 'Region',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Postcode
	postcode: { 
		required: true, 
		type: 'string',
		name: 'Postcode',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
directory.insert('addcontactform', addContactForm);
/////////////////////////////////////////////////////////////////////////////////////////////
// EDIT CONTACT FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var editContactForm = {
	// firstname  
	first_name: { 
		required: true, 
		type: 'string',
		name: 'Firstname',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// lastname 
	last_name: { 
		required: true, 
		type: 'string',
		name: 'Lastname',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Contact Phone 
	contact_phone: { 
		required: true, 
		type: 'string',
		name: 'Contact Phone',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// mobile phone
	mobile_phone: { 
		required: true, 
		type: 'string',
		name: 'Mobile Phone',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Email Address
	// Duplication - refactor into accessible function (@see addContactForm)
	email_address: { 
		required: true, 
		type: 'string',
		name: 'Email Address',
		error: 'This field is required',
		execute: function(value) { 
			if(value == "") {
				return false;
			}
			else if(!validateEmail(value)) {
				this.error = "Email is not in a valid format";
				return false;
			}
			return true;
		}
	},
	// address_one
	address_one: { 
		required: true, 
		type: 'string',
		name: 'Address One',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// address_two
	address_two: { 
		required: false, 
		type: 'string',
		name: 'Address Two',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// address_three
	address_three: { 
		required: false, 
		type: 'string',
		name: 'Address Three',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// address_four
	address_four: { 
		required: false, 
		type: 'string',
		name: 'Address Four',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// town
	town: { 
		required: true, 
		type: 'string',
		name: 'Town',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Region
	region: { 
		required: true, 
		type: 'string',
		name: 'Region',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Postcode
	postcode: { 
		required: true, 
		type: 'string',
		name: 'Postcode',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
directory.insert('editcontactform', editContactForm);
/////////////////////////////////////////////////////////////////////////////////////////////
// DOWNLOAD CONTACTS BY DATE CRITERIA FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var csvDateCriteriaForm = {
	// firstname  
	from_date: { 
		required: true, 
		type: 'string',
		name: 'From Date',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// firstname  
	to_date: { 
		required: true, 
		type: 'string',
		name: 'To Date',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
directory.insert('csvdatecriteriaform', csvDateCriteriaForm);
/////////////////////////////////////////////////////////////////////////////////////////////
// UPLOAD NEWSLETTER FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var newsLetterForm = {
	// Title  
	title: { 
		required: true, 
		type: 'string',
		name: 'Title',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Newsletter  
	newsletter: { 
		required: true, 
		type: 'string',
		name: 'Newsletter',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
directory.insert('newsletterform', newsLetterForm);
/////////////////////////////////////////////////////////////////////////////////////////////
// UPLOAD GALLERY IMAGE FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var galleryImageForm = {
	// Title  
	title: { 
		required: true, 
		type: 'string',
		name: 'Title',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Description   
	description: { 
		required: true, 
		type: 'string',
		name: 'Description',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Newsletter  
	image: { 
		required: true, 
		type: 'string',
		name: 'Image',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
directory.insert('galleryimageform', galleryImageForm);
/////////////////////////////////////////////////////////////////////////////////////////////
// UPLOAD EDIT/UPDATE GALLERY IMAGE FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var editGalleryImageForm = {
	// Title  
	title: { 
		required: true, 
		type: 'string',
		name: 'Title',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Description   
	description: { 
		required: true, 
		type: 'string',
		name: 'Description',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Newsletter  
	image: { 
		required: false, 
		type: 'string',
		name: 'Image',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
directory.insert('editgalleryimageform', editGalleryImageForm);
/////////////////////////////////////////////////////////////////////////////////////////////
// STATISTICS
/////////////////////////////////////////////////////////////////////////////////////////////
//updatestatsform
var editStatsForm = {
	// Date
	date: { 
		required: true, 
		type: 'string',
		name: 'Date',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},  
	// Hydro
	hydro: { 
		required: true, 
		type: 'string',
		name: 'Hydro',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Wind
	wind: { 
		required: true, 
		type: 'string',
		name: 'Wind',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Energy from Waste
	energy_waste: { 
		required: true, 
		type: 'string',
		name: 'Energy from Waste',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Biomass Electricity
	biomass_elec: { 
		required: true, 
		type: 'string',
		name: 'Biomass Electricity',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Biomass Heat
	biomass_heat: { 
		required: true, 
		type: 'string',
		name: 'Biomass Heat',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Wave and Tidal
	wave_tidal: { 
		required: true, 
		type: 'string',
		name: 'Wave and Tidal',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
directory.insert('updatestatsform', editStatsForm);
/////////////////////////////////////////////////////////////////////////////////////////////
// ADD LATEST OFFER ITEM FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var latestOfferConfig = {
	// title 
	title: { 
		required: true, 
		type: 'string',
		name: 'Title',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the short description 
	short_description: { 	
		required: true, 
		type: 'string',
		name: 'Short Description',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the full description 
	full_description: { 	
		required: true, 
		type: 'string',
		name: 'Full Description',
		error: 'This field is required',
		execute: function(value) { 
			var value = tinyMCE.getContent();
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
// insert the object into the directory 
directory.insert('latestofferform', latestOfferConfig);
/////////////////////////////////////////////////////////////////////////////////////////////
// ADD LATEST OFFER ITEM FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var editLatestOfferConfig = {
	// title 
	title: { 
		required: true, 
		type: 'string',
		name: 'Title',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the short description 
	short_description: { 	
		required: true, 
		type: 'string',
		name: 'Short Description',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the full description 
	full_description: { 	
		required: true, 
		type: 'string',
		name: 'Full Description',
		error: 'This field is required',
		execute: function(value) { 
			var value = tinyMCE.getContent();
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
// insert the object into the directory 
directory.insert('editlatestofferform', editLatestOfferConfig);
/////////////////////////////////////////////////////////////////////////////////////////////
// ADD ACCESSORY FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var addAccessoryForm = {
	// title 
	title: { 
		required: true, 
		type: 'string',
		name: 'Title',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the full description 
	description: { 	
		required: true, 
		type: 'string',
		name: 'Description',
		error: 'This field is required',
		execute: function(value) { 
			var value = tinyMCE.getContent();
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
// insert the object into the directory 
directory.insert('addaccessoryform', addAccessoryForm);
/////////////////////////////////////////////////////////////////////////////////////////////
// EDIT ACCESSORY FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var updateAccessoryForm = {
	// title 
	title: { 
		required: true, 
		type: 'string',
		name: 'Title',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the full description 
	description: { 	
		required: true, 
		type: 'string',
		name: 'Description',
		error: 'This field is required',
		execute: function(value) { 
			var value = tinyMCE.getContent();
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
// insert the object into the directory 
directory.insert('updateaccessoryform', updateAccessoryForm);
/////////////////////////////////////////////////////////////////////////////////////////////
// ADD NEW MEDIA FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var addMediaForm = {
	// title 
	title: { 
		required: true, 
		type: 'string',
		name: 'Title',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the full description
	description: { 	
		required: true, 
		type: 'string',
		name: 'Description',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the url
	url: { 	
		required: true, 
		type: 'string',
		name: 'Url',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// media type
	media_type: { 	
		required: true, 
		type: 'string',
		name: 'Media Type',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
// insert the object into the directory 
directory.insert('addmediaform', addMediaForm);
/////////////////////////////////////////////////////////////////////////////////////////////
// EDIT MEDIA FORM
/////////////////////////////////////////////////////////////////////////////////////////////
var editMediaForm = {
	// title 
	title: { 
		required: true, 
		type: 'string',
		name: 'Title',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the full description
	description: { 	
		required: true, 
		type: 'string',
		name: 'Description',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// the url
	url: { 	
		required: true, 
		type: 'string',
		name: 'Url',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// media type
	media_type: { 	
		required: true, 
		type: 'string',
		name: 'Media Type',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
// insert the object into the directory 
directory.insert('editmediaitemform', editMediaForm);
/////////////////////////////////////////////////////////////////////////////////////////////
// FRONT END CONTACT FORM CONFIG
/////////////////////////////////////////////////////////////////////////////////////////////
var publicContactForm = {
	// Name
	name: { 
		required: true, 
		type: 'string',
		name: 'Name',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Phone 
	phone: { 
		required: true, 
		type: 'string',
		name: 'Phone',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	},
	// Enquiry 
	enquiry: { 
		required: true, 
		type: 'string',
		name: 'Enquiry',
		error: 'This field is required',
		execute: function(value) { 
			if( value == '' ) {
				return false;
			}
			return true;
		}
	}
}
// insert the object into the directory 
directory.insert('publiccontactform', publicContactForm);
/////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------- END OF FORM DEFINITIONS -------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////


