function validatePassword () {
	return validateFormField(trim(document.registrationForm.registrationPassword.value), 6, document.getElementById('passwordError'));
}
  
function validateOrganization () {
    return validateFormField(trim(document.registrationForm.organization.value), 1, document.getElementById('organizationError'));
}

function validateConfirmPassword () {
	var valid = (trim(document.registrationForm.registrationPassword.value) == trim(document.registrationForm.confirmPassword.value));
	if(valid) {
		document.getElementById("confirmPasswordError").style.display="none";
	} else {
		document.getElementById("confirmPasswordError").style.display="block";
	}
	return valid;
}

function validateAll() {
	var valid = true;
	if (!validateTitle()) valid = false;
	if (!validatePassword()) valid = false;
	if (!validateConfirmPassword()) valid = false;
	if (!validateLastname(document.registrationForm.lastName.value, document.getElementById('lastnameError'))) valid = false;
	if (!validateFirstname()) valid=false;
	if (!validateEmailAddress(document.registrationForm.emailAddress.value, document.getElementById('emailError'))) valid = false;
	if (!validateCountry()) valid = false;
    if (!validateOrganization ()) valid = false;
	if (!validateProfession()) valid = false;

    if (!validateStreetAddress1(document.registrationForm.streetAddress1.value, document.getElementById('streetAddress1Error'))) valid = false;
    if (!validateCity(document.registrationForm.city.value, document.getElementById('cityError'))) valid = false;
    if (!validateZipCode(document.registrationForm.zipCode.value, document.getElementById('zipCodeError'))) valid = false;
    if (!validateTerritoryStateProvince(document.registrationForm.territoryStateProvince.value, document.getElementById('territoryStateProvince_error'))) valid = false;
	
	if(document.getElementById("pageErrors")) {
		if (!valid) {
			document.getElementById("pageErrors").style.display = "block";
		} else {
			document.getElementById("pageErrors").style.display = "none";
		}
	}	
	return valid;
}

function validateTerritoryStateProvince() {
    return validateSelectField('territoryStateProvince', 'territoryStateProvince_error', 'Please select your state or territory.');
}

function updateUserName ( newUserName ) {
	document.registrationForm.userName.value = newUserName;
	
}

function updateUserNameMsg (message) {
	document.getElementById("suggestions").innerHTML = "<p>" + message + "</p>"
}

function getEmailErrorDiv() {
	return document.getElementById("emailError");
}



function validateTerritoryState() {
    var territoryStateValue = document.getElementById('territoryStateProvince').value;
    if(territoryStateValue == '' || territoryStateValue == null){
       document.getElementById('territoryStateProvince_error').innerHTML = "Please enter a state";
       return false;
       }
    return true;
}




function toggleTerritoryStateProvinceFormLabelAndInput() {
    var hiddenToggleUserDetailsFormTerritoryStateProvinceSelectDiv = document.getElementById('hiddenToggleUserDetailsFormTerritoryStateProvinceSelect');
    var hiddenToggleUserDetailsFormTerritoryStateProvinceLabelDiv = document.getElementById('hiddenToggleUserDetailsFormTerritoryStateProvinceLabel');
    var territoryStateProvinceDiv = document.getElementById('territoryStateProvinceDiv');
    var territoryStateProvinceErrorDiv = document.getElementById('territoryStateProvince_error');
    var territoryStateProvinceDivLabelsSpan = territoryStateProvinceDiv.getElementsByTagName('span') [0];
    var territoryStateProvinceDivInputsSpan = territoryStateProvinceDiv.getElementsByTagName('span') [[territoryStateProvinceDiv.getElementsByTagName('span').length - 1]];
    
    var countryIdSelect = document.getElementById('countryId');
    var selectedCountryId = countryIdSelect.options [countryIdSelect.selectedIndex].text;
    var isSelectedCountryIdTheUsa = selectedCountryId == 'United States';
    var hiddenToggleUserDetailsFormSelectDivContainsTerritoryStateProvinceSelect = hiddenToggleUserDetailsFormTerritoryStateProvinceSelectDiv.getElementsByTagName('select').length == 1;
    var selectedCountryIsUsaAndSelectIsCurrentlyHidden = isSelectedCountryIdTheUsa && hiddenToggleUserDetailsFormSelectDivContainsTerritoryStateProvinceSelect;
    var selectedCountryIsNotTheUsaAndSelectIsCurrentlyShown = !isSelectedCountryIdTheUsa && !hiddenToggleUserDetailsFormSelectDivContainsTerritoryStateProvinceSelect;

    if (selectedCountryIsUsaAndSelectIsCurrentlyHidden || selectedCountryIsNotTheUsaAndSelectIsCurrentlyShown) {
        var tempInputInnerHtml = hiddenToggleUserDetailsFormTerritoryStateProvinceSelectDiv.innerHTML;
        var tempLabelInnerHtml = hiddenToggleUserDetailsFormTerritoryStateProvinceLabelDiv.innerHTML;
        hiddenToggleUserDetailsFormTerritoryStateProvinceSelectDiv.innerHTML = territoryStateProvinceDivInputsSpan.innerHTML;
        hiddenToggleUserDetailsFormTerritoryStateProvinceLabelDiv.innerHTML = territoryStateProvinceDivLabelsSpan.innerHTML;
        territoryStateProvinceDivInputsSpan.innerHTML = tempInputInnerHtml;
        territoryStateProvinceDivLabelsSpan.innerHTML = tempLabelInnerHtml;
    }
    var index;
    var stateSelect = document.getElementsByName('territoryStateProvince')[0];
    var stateInput = document.getElementsByName('territoryStateProvince')[1];
    
    if(stateSelect.nodeName == 'SELECT') {
        for(index=0;index < stateSelect.options.length; index++){
            if(stateInput.value == stateSelect.options[index].value){
                stateInput.setAttribute('value','');
                stateSelect.selectedIndex = index;
                break;
            }
        }
    }
    
    if(!isSelectedCountryIdTheUsa) {
        territoryStateProvinceErrorDiv.innerHTML = "";
    }
}


function validateSelectField(fieldId, errorDivId, errorMessage) {
    if(document.getElementById(fieldId).selectedIndex==0) {
        document.getElementById(errorDivId).innerHTML = errorMessage;
        return false;
    } else {
        document.getElementById(errorDivId).innerHTML = "";
        return true;
    }
}