// This is the temp function which will check the survey items are completed using 'question' as the class,
// the requried class will be added to the objQuestions selector when it exists.

checkRequiredSurveyItems = function()
{
	var intRequiredItem = 0;
	var objQuestions = $$(".Question.Required");
	objQuestions.each(function(el){
		var blnSelected = false;
		var objLastObject = '';
		var objFirstChild = null;
		var objParent = el.getParent();
		if (!objParent.hasClass('Locked')) {
			var arrUnlockedChildren = el.getChildren('.Answers');
			arrUnlockedChildren.setStyle('background-color','');
			arrUnlockedChildren.each(function(el2) {
				var arrAnswer = el2.getChildren('.Answer');
				arrAnswer.each(function(el3) {
					if (objFirstChild == null) { objFirstChild = el3; } // first child element stored
					el3.removeClass('InvalidElement');
					if (el3.type == 'radio' || el3.type == 'checkbox') {
						if (el3.checked) {
							blnSelected = true;
						}
					}
					else {	// wb (19-nov-10): will this account for hidden fields?
						if (el3.value.trim() != '') {
							blnSelected = true;
						}
					}
					objLastObject = el3;
				});
				if (!blnSelected) {
					if (intRequiredItem == 0 && typeof objFirstChild.focus != 'undefined') {
						objFirstChild.focus();
					}
					objLastObject.addClass('InvalidElement');
					if (objLastObject.type != 'select-one') {
						arrUnlockedChildren.setStyle('background-color','#FF9999'); // This gives radios/checks a highlight 
					}
					intRequiredItem++;
				}
			});
		}
	});
	
	// Bespoke Registration question checks
	if  ($('RegRequireType')) {
	switch ($('RegRequireType').value) {
		case 'Landline': 
			if ($('Registration_Landline') && $$('.RegRequiredInfo').hasClass('HideElement')) {
				$('Registration_Landline').removeClass('InvalidElement');
				if ($('Registration_Landline').value == '') {
					$('Registration_Landline').addClass('InvalidElement');
					intRequiredItem++;
				}
			}
			break;
		case 'Mobile':
			if ($('Registration_Mobile') && $$('.RegRequiredInfo').hasClass('HideElement')) {
				$('Registration_Mobile').removeClass('InvalidElement');
				if ($('Registration_Mobile').value == '') {
					$('Registration_Mobile').addClass('InvalidElement');
					intRequiredItem++;
				}
			}
			break;
		case 'Both':
			if ($('Registration_Landline') && $$('.RegRequiredInfo').hasClass('HideElement')) {
				$('Registration_Landline').removeClass('InvalidElement');
				if ($('Registration_Landline').value == '') {
					$('Registration_Landline').addClass('InvalidElement');
					intRequiredItem++;
				}
			}
			if ($('Registration_Mobile') && $$('.RegRequiredInfo').hasClass('HideElement')) {
				$('Registration_Mobile').removeClass('InvalidElement');
				if ($('Registration_Mobile').value == '') {
					$('Registration_Mobile').addClass('InvalidElement');
					intRequiredItem++;
				}
			}
			break;
		case 'Either':
			if ($('Registration_Landline') || $('Registration_Mobile')) {
				if ($('Registration_Landline')) $('Registration_Landline').removeClass('InvalidElement');
				if ($('Registration_Mobile')) $('Registration_Mobile').removeClass('InvalidElement');
				
				if ($('Registration_Landline') && $('Registration_Mobile')) {
					if ($('Registration_Landline').value == '' && $('Registration_Mobile').value == '') {
						$('Registration_Landline').addClass('InvalidElement');
						$('Registration_Mobile').addClass('InvalidElement');
						intRequiredItem++;
					}
				}
				else if ($('Registration_Landline')) {
					if ($('Registration_Landline').value == '') {
						$('Registration_Landline').addClass('InvalidElement');
						intRequiredItem++;
					}
				}
				else if ($('Registration_Mobile')) {
					if ($('Registration_Mobile').value == '') {
						$('Registration_Mobile').addClass('InvalidElement');
						intRequiredItem++;
					}
				}
			}
			break;
		}
	}
	
	if (intRequiredItem) {
		alert('Please complete the highlighted field(s) to continue.');
	}
	return intRequiredItem;
}

checkRequiredRegistrationItems = function()
{
	var intNumErrs = checkNumericFields();
	var intRequiredItem = 0;
	var objReqFields = $$(".Required");
	objReqFields.each(function(el){ el.removeClass('InvalidElement'); });
	objReqFields.each(function(el){	
		if ($defined(el.get('value')) && el.get('value').trim().length == 0)
			{
				if (intRequiredItem == 0) { el.focus(); }
				el.addClass('InvalidElement');
				el.set("value", "");
				intRequiredItem++;
			}
	});
}

/* wb (13-apr-10): this function was an add-on */
checkNumericFields = function()
{
	var intErrors = 0;
	var objNumFlds = $$("input.numeric");
	objNumFlds.each( function(elem) { elem.removeClass("InvalidElement"); } );
	objNumFlds.each( function(elem) {				
		if ( isNaN(elem.get("value").trim()) )
		{
			elem.addClass("InvalidElement");
			elem.set("value", "");
			intErrors++;
		}
	});
	if ( intErrors )
		{ alert("There are highlighted fields marked as numeric type, please correct."); }
	return intErrors;
}

function doFooterPDFLaunch(strFA) {
	window.open(
		"./?fuseaction=" + strFA,
		"winPDF",
		"top=25,left=25,height=600,width=800"
	);
}
