/* General Validation Scripts */

function validateInputInfo() {
    var errors = new Array();
    if ($("firstName").value.trim() == "") {
        errors[errors.length] = "Please enter a First Name.";
    }
    if ($("lastName").value.trim() == "") {
        errors[errors.length] = "Please enter a Last Name.";
    }
    var email = $("email").value.trim();
    if (email == "") {
        errors[errors.length] = "Please enter an Email Address.";
    }
    var email2 = $("email2").value.trim();
    if (email2 == "" || email != email2) {
        errors[errors.length] = "Please enter the exact same email address in Confirm E-mail";
    }
	if ($("phoneReq")){
		if ($("phoneReq").value.trim() == "") {
        	errors[errors.length] = "Please enter a Phone Number.";
		}
	}
	if ($("captcha")){
		if ($("captcha").value.trim() == "") {
	        errors[errors.length] = "Please enter the security key.";
	    }
	}
    return errors;
}

function showInputErrors(errors) {
    var errorHtml = "";
    if (errors) {
        var length = errors.length;
        for (var i = 0; i < length; i++) {
            var error = errors[i];
            if (i >= 0) {
	            errorHtml += "<li>" + error + "</li>";
			}
        }
    }
    $("message").innerHTML = errorHtml;
    $("error-nowidth").show();
}

/* PRI Request */

function submitInputInfo(event, formid) {
	Event.stop(event);
    var errors = validateInputInfo();
	var form = $(formid);
	if ($('termsAgree')){
		if (!form.getInputs('checkbox', 'terms_agree').pluck('checked').any()){
			errors[errors.length] = "Please agree to Terms of Use.";
		}
	}
    if (errors && errors.length == 0) {
        $("error-nowidth").hide();
		if($("error-backend")){
			$("error-backend").hide();
		}
		$(formid).submit();
    } else {
        showInputErrors(errors);
    }
}

/* Download Search Results */

function addDownloadInfoParameters(parameters) {
    parameters.firstName = $("firstName").value.trim();
    parameters.lastName = $("lastName").value.trim();
    parameters.email = $("email").value.trim();
    parameters.phone = $("phone").value.trim();
    parameters.numberOfResults = $("numberOfResults").value.trim();
    parameters.ms= new Date().getTime();
    return parameters;
}

function submitDownloadResults(event) {
	Event.stop(event);
    var errors = validateInputInfo();
    if (errors && errors.length == 0) {
        $("error-nowidth").hide();
		$("formDiv").hide();
		$("processing").show();
        var parameters = createSearchParameters();
        addDownloadInfoParameters(parameters);

        dwr.engine.beginBatch();

        DownloadSearchResult.downloadResults(parameters,{
            callback:function(result) {
                var errors = result.errors;
                if(errors.length > 0) {
					Lightview.show({
						href: 'download-results.jsp',
						rel: 'ajax',
						title: 'Download a List of Your Search Results',
						options: {
							width: 600,
							height: 500,
							ajax: {
								onComplete: function(){ showInputErrors(errors); }
							}
				        }
					});
                } else {
					var selectedOption = $('numberOfResults').options[$('numberOfResults').selectedIndex].value;
					Lightview.show({
						href: 'download-results-complete.jsp',
						rel: 'ajax',
						title: 'Your Search Results Have Been Sent',
						options: {
							width: 550,
							height: 330
				        }
					});
					pageTracker._trackEvent('Search', 'button', 'Download Search Results Lightbox - number of results - ' + selectedOption + ' - Form Submitted');
					pageTracker._trackPageview('tracking=search-results-form-completed');
                }
            },
            errorHandler:function(errorString, exception) {
                showInputErrors(new Array("Error!"));
            }
        });
        dwr.engine.endBatch();
    } else {
        showInputErrors(errors);
    }
}
