window.addEvent('domready', function(){
	// Date Picker Class
	new DatePicker('.appDate', {
		allowEmpty: true,
		toggleElements: '.date_toggler'
	});
	
	// Default Form Variables
	var appForm = $('fullApplication');
	var appContainer = $('appContainer');
	var dLicense = 'Do you have a drivers license?';
	var licInput = $('DriversLicense2');
	var townInput = $('AusTown');
	var setTown = 'I am now in (town)';
	var workLength = 'How long do you want to work for?';
	var lengthInput = $('workLength');
	var horseText = 'Novice / Good / Advanced';
	var horseInput = $('HorseSkills');
	var cookText = 'A bit / Well / Good';
	var cookInput = $('Cook');
	var childText = 'Have you child care experience?';
	var childInput = $('ChildCare');
	var langText = 'Known Languages...';
	var langInput = $('Languages');
	var submitBtn = $('fullSubmit');
	var enquiry = $('formValue');
	var baseURL = '/';
	
	// Toggle the Fieldsets
	var accordion = new Accordion($$('.toggler'),$$('.fieldsetAcc'));
	
	// Set the Full Application text for the Inputs
	if($defined($(appForm))){
		setInputs(townInput,setTown);
		setInputs(lengthInput,workLength);
		setInputs(horseInput,horseText);
		setInputs(cookInput,cookText);
		setInputs(childInput,childText);
		setInputs(langInput,langText);
	}
	
	// Show Payment Information
	if($defined($('bankYes'))){
		$('bankYes').addEvent('click', function(e){
			$('showAcct').addClass('showInfo');		
			$('showCC').removeClass('showInfo');		
			$('showCC').addClass('hideInfo');										
		});
	}
	
	if($defined($('ccYes'))){
		$('ccYes').addEvent('click', function(e){
			$('showCC').addClass('showInfo');
			$('showAcct').removeClass('showInfo');	
			$('showAcct').addClass('hideInfo');											
		});
	}
	
	// Show Text for CC Exp Field
	var ccExp = $('CCExpDate');
	var expDefault = '[ Ex: 0112 ]';
	
	if($defined($(ccExp))){
		setInputs(ccExp,expDefault);	
	}
	
	// Set standard arrival date format
	var ArrivalDate = $('ArrivalDate');
	var arrivalText = '[ Ex: DD/MM/YYYY ]';
	
	if($defined($(ArrivalDate))){
		setInputs(ArrivalDate,arrivalText);	
	}
	
	// Check for errors
	var errorDiv = $('emailError');
	var errorClass = 'errorBox';
	var emailComplete = $('emailComplete');
	
	var errorScroll = new Fx.Scroll(window, {
		wait: false,
		duration: 500,
		transition: Fx.Transitions.Quad.easeInOut
	});
	
	// Set the Internships Countries Array
	var interns = new Array('ZA','NA','BR','AR','UA','ES','PT','AT','PL','CZ','MD','SZ');
	
	// Total the costs and discounts
	var courseTotal = new Array('980','1990','2600');
	var courseCost = $('courseCost');
	var courseDiscount = $('courseDiscount');
	var coursePayment = $('coursePayment');
	var courseRemaining = $('courseRemaining');
	if($defined($('Currentcc'))){
		var getCountry = $('Currentcc').get('value');
	}
	if($defined($(courseRemaining))){
		var newTotal = $(courseRemaining).get('text');
	}
	
	// Set the proper Course cost
	if(getCountry == 'AU') var setAmount = 0;
	if(inArray(getCountry, interns)) var setAmount = 2;
	else var setAmount = 1;
	
	// Set default values
	if($defined($(courseRemaining))){
		$(courseCost).set('text', courseTotal[setAmount]);
		$(courseRemaining).set('text', courseTotal[setAmount]);
	}
	
	function calcCost(){
		var newDiscount = $(courseDiscount).get('text');
		var newPayment = $(coursePayment).get('text');
		var newTotal = $(courseRemaining).get('text');
		var courseAmount = eval(courseTotal[setAmount]) - eval(newPayment) - eval(newDiscount);
		$(courseRemaining).set('text', courseAmount);
	}
	
	var sumArray = new Array('sum-280', 'sum-700', 'sum-800', 'sum-900');
	var setAmounts = new Array(courseDiscount, coursePayment);
	
	// Set the initial amounts for the calculatorssum-800
	if($defined($(courseRemaining))){
		setAmounts.each(function(el, i){
			el.set('text', '0');					   
		});
	}
	
	// Activate the action to the Sum's being submitted
	if($defined($(courseRemaining))){
		sumArray.each(function(el, i){
			$(el).addEvent('click', function(e){
				var disCount = $(el).get('value');
				$(coursePayment).set('text', disCount);
				calcCost();
			});
		});
	}
	
	$(document.body).getElements('input[name=bookings]').addEvent('click', function(e){
		if(this.value == 10 || this.value == 15){
			var percent = eval($(this).get('value')/100)*courseTotal[setAmount];
			if($(sumArray[3]).checked == true){
				$(sumArray[2]).set('checked', 'checked');	
				$(coursePayment).set('text', $(sumArray[2]).value);
			}
			sumArray.each(function(el, i){
				$(el).set('disabled', '');
			});
			if(setAmount == 0){
				$(sumArray[3]).set('disabled', 'disabled');
			}
			$(coursePayment).set('text', '0');
		} else {
			var percent = this.value;
			sumArray.each(function(el, i){
				$(el).set('disabled', 'disabled');					   
			});
			$(coursePayment).set('text', '900');
		}
		$(courseDiscount).set('text', percent);	
		calcCost();
	});
	
	if($defined($(enquiry))){
		if(enquiry.value == 1) $formURL = 'lib/engines/enquiryProcess.php';
		if(enquiry.value == 2) $formURL = 'lib/engines/applicationProcess.php';
		if(enquiry.value == 3) $formURL = 'lib/engines/employerProcess.php';
	}
	
	// Submit the form
	if($defined($(enquiry))){
		appForm.addEvent('submit', function(e){
			new Event(e).stop();
			var pars = this.toQueryString();
			$(submitBtn).set('disabled', 'disabled');
			$(submitBtn).set('value', 'Processing...');	
			
			new Request({
				method: 'post', 
				data: pars,
				url: baseURL+$formURL,
				onSuccess: function(responseText, responseXML){
					function setText(){
						errorDiv.set('html', responseText);	
						return;
					}
					
					function morphResults(){
						errorDiv.empty();
						errorDiv.morph('.closed');
						errorDiv.fade('out');
						return;
					}
					
					var Error = responseText.contains("Error");
					var state = (state == 'closed' ? 'open' : 'closed');
					
					if(Error == false){
						appForm.empty();
						emailComplete.set('html', responseText);
						emailComplete.set('display', 'block');
					} else {
						errorScroll.toElement('emailError');
						errorDiv.addClass(errorClass);
						errorDiv.fade('in');
						errorDiv.morph('.' + state);
						setText.delay(750, errorDiv);
						morphResults.delay(5000);
						$(submitBtn).set('disabled', '');
						$(submitBtn).set('value', 'Submit App');	
					}
				}
			}).send();
		});
	}
});


