// ----------------------------------------------------------------------------------------------
// ----------------------------------- CONTACT US FORM ------------------------------------------
// ----------------------------------------------------------------------------------------------

// LOAD INITIAL FORM
var brandNeighborhoodLabel = "Neighborhood";
var brandNeighborhoodLabels = "Neighborhoods";
var currSelectedTopic; // needed to send atlas SEO conversion info on AjaxContactUs.js
var isServiceRequestLoaded = false;
var isCommunityInterestLoaded = false;

YUE.onDOMReady(function() {
    if (getCurrSite() != "Pulte" && getCurrSite() != "Centex") {
        brandNeighborhoodLabel = "Community";
        brandNeighborhoodLabels = "Communities";
    }
    // vars
    var level1 = YUD.getElementsByClassName('level1', 'div')[0];
    var level2 = YUD.getElementsByClassName('level2', 'div')[0];
    var level3 = YUD.getElementsByClassName('level3', 'div')[0];
    var level4 = YUD.getElementsByClassName('level4', 'div')[0];
    var topics = document.getElementById('selectTopic').getElementsByTagName('LI');

    // insert correct contact phone number based on brand
    populateContactPhone();

    // check if user is logged in
    if (document.getElementById('isLoggedIn')) { if (document.getElementById('isLoggedIn').value == 0) YUD.replaceClass(document.getElementById('updateReg'), 'show', 'hide'); }

    // check hidden field to see if we need a 'back' button
    if (YUD.getElementsByClassName('pt-search', 'a')[0] && document.getElementById('referringURL') && document.getElementById('referringURL').value != '' && document.getElementById('referringName')) {
        var backToLink = YUD.getElementsByClassName('pt-search', 'a')[0];
        backToLink.href = document.getElementById('referringURL').value;
        if (HandleQueryString.getQSByName('backtitle')) {
            backToLink.innerHTML = 'Back to ' + HandleQueryString.getQSByName('backtitle');
        }
        else (document.getElementById('referringName').value == '') ? backToLink.innerHTML = 'Back to Referring Page' : backToLink.innerHTML = 'Back to ' + document.getElementById('referringName').value;
        backToLink.style.display = 'block';
        backToLink.style.padding = '0.1em 0 0.4em 18px';
    }

    // select topic (if specified in URL string)
    if (HandleQueryString.getQSByName('topic') != null && document.getElementById('communityID').value == 0) {
        var preSelectedTopic = HandleQueryString.getQSByName('topic');
        switch (preSelectedTopic) {
            case 'mortgagesFinancing':
                document.getElementById('selectMortgages').click();
                document.getElementById('selectMortgages').parentNode.className = 'selected';
                currSelectedTopic = 'mortgages';
                handleContactUsTopics(document.getElementById('selectMortgages'));
                break;
            case 'techSupport':
                document.getElementById('selectSupport').click();
                document.getElementById('selectSupport').parentNode.className = 'selected';
                currSelectedTopic = 'support';
                handleContactUsTopics(document.getElementById('selectSupport'));
                break;
            case 'homeownerQuestions':
                document.getElementById('selectHomeowner').click();
                document.getElementById('selectHomeowner').parentNode.className = 'selected';
                toggleServiceRequest();
                currSelectedTopic = 'homeowner';
                handleContactUsTopics(document.getElementById('selectHomeowner'));
                // check if ssr is set to "y"
                if (HandleQueryString.getQSByName('ssr') != null && HandleQueryString.getQSByName('ssr') == "true") {
                    var fld = YUD.getElementsByClassName('serviceRequestInput', 'input')[0];
                    var homeOwnerService = YUD.getElementsByClassName('homeOwnerService', 'div')[0];
                    if (fld && homeOwnerService) {
                        fld.checked = true;
                        var controlImg = YUD.getPreviousSibling(fld);
                        if (controlImg) controlImg.src = returnCheckboxImgTrue();
                        YUD.replaceClass(homeOwnerService, 'hide', 'show');
                    }
                }
                break;
            case 'corporateCommunications':
                document.getElementById('selectCorpComm').click();
                document.getElementById('selectCorpComm').parentNode.className = 'selected';
                currSelectedTopic = 'communications';
                handleContactUsTopics(document.getElementById('selectCorpComm'));
                break;
            case 'investorRelations':
                document.getElementById('selectInvRelations').click();
                document.getElementById('selectInvRelations').parentNode.className = 'selected';
                currSelectedTopic = 'investor';
                handleContactUsTopics(document.getElementById('selectInvRelations'));
                break;
            case 'careers':
                document.getElementById('selectCareers').click();
                document.getElementById('selectCareers').parentNode.className = 'selected';
                currSelectedTopic = 'careers';
                handleContactUsTopics(document.getElementById('selectCareers'));
                break;
            case 'generalQuestions':
                document.getElementById('selectGeneral').click();
                document.getElementById('selectGeneral').parentNode.className = 'selected';
                currSelectedTopic = 'general';
                handleContactUsTopics(document.getElementById('selectGeneral'));
                break;
        }
    }
    else {
        document.getElementById('selectInfo').click();
        YUD.setStyle([level2, level3], 'display', 'block');
        document.getElementById('selectInfo').parentNode.className = 'selected';
        document.contact.firstName.focus();
        YUD.replaceClass([document.getElementById('interestStep1'), document.getElementById('interest')], 'hide', 'show');
        toggleCommunityInterest();
        currSelectedTopic = 'info';
    }

    // select topic (onclick)
    YUE.addListener(topics, 'click', function() {
        var inputs = this.getElementsByTagName('INPUT')[0];
        window.setTimeout(function() {
            handleContactUsTopics(inputs);
        }, 200);
    });
   
    charInit();
    clearForm();
    fieldsInit();
    contactUsFAQ();
    // show radio button checked and form populated - after refresh in FF
    if (document.getElementById('selectInfo').checked) {
        document.getElementById('selectInfo').click();
        document.getElementById('selectInfo').parentNode.className = 'selected';
    }
    if (document.getElementById('selectMortgages').checked) {
        document.getElementById('selectMortgages').click();
        document.getElementById('selectMortgages').parentNode.className = 'selected';
    }
    if (document.getElementById('selectSupport').checked) {
        document.getElementById('selectSupport').click();
        document.getElementById('selectSupport').parentNode.className = 'selected';
    }
    if (document.getElementById('selectHomeowner').checked) {
        document.getElementById('selectHomeowner').click();
        document.getElementById('selectHomeowner').parentNode.className = 'selected';
    }
    if (document.getElementById('selectCorpComm').checked) {
        document.getElementById('selectCorpComm').click();
        document.getElementById('selectCorpComm').parentNode.className = 'selected';
    }
    if (document.getElementById('selectInvRelations').checked) {
        document.getElementById('selectInvRelations').click();
        document.getElementById('selectInvRelations').parentNode.className = 'selected';
    }
    if (document.getElementById('selectCareers').checked) {
        document.getElementById('selectCareers').click();
        document.getElementById('selectCareers').parentNode.className = 'selected';
    }
    if (document.getElementById('selectGeneral').checked) {
        document.getElementById('selectGeneral').click();
        document.getElementById('selectGeneral').parentNode.className = 'selected';
    }



    // set timeout after 20 minutes
    YAHOO.sessionTimeOut.init();
    sessionTimer = window.setTimeout(restartSessionTimeOut, sessionTimeOutLimit);
    YUE.addListener(document.body, 'click', function() {
        if (sessionTimer) window.clearTimeout(sessionTimer);
        sessionTimer = window.setTimeout(restartSessionTimeOut, sessionTimeOutLimit);
    });

    // submit form - go to thank you
    var submitForm = function() {
        var errorConsole = YUD.getElementsByClassName('alertBar', '', document.contact)[0];
        if (validate_contactus(errorConsole)) {

            // remove error console
            YUD.replaceClass(errorConsole, 'show', 'hide');

            // grab email address and populate thank you page email
            document.thankyou.confirmEmail.value = document.contact.email.value;

            // located in AjaxContactUs.js
            SaveContactUs();
        }
        else { window.location = '#content' }
    }

    // figure out which of the two forms (register or signin) for document.thankyou to submit on ie keypress...
    var thankYouSubmit = function() {
        if (YUD.hasClass(document.getElementById('thankYouActivateNotebook'), 'show')) contactUsRegister();
        else contactUsSignIn();
    }

    // 'enter' keypress submit event (ie)
    if (window.attachEvent) {
        /*   this causing more problems than it helps - defect #2359 (AG)
        var contactKeyPress = new YAHOO.util.KeyListener(document.contact,{keys:13},submitForm);
        contactKeyPress.enable(); // main contact form
        */
        var visitKeyPress = new YAHOO.util.KeyListener(document.visit, { keys: 13 }, fastPassDirections);
        visitKeyPress.enable(); // visit/fastpass form

        var thankyouKeyPress = new YAHOO.util.KeyListener(document.thankyou, { keys: 13 }, thankYouSubmit);
        thankyouKeyPress.enable(); // thank you form (register or signin?)
    }
    // click submit event (and 'enter' keypress firefox)
    YUE.addListener(document.contact, 'submit', submitForm);

    // For DiVosta hide the state and default to Florida for community interest - if no community pre-selected
    if (getCurrSite() == "DiVosta" && isCommunityInterestLoaded) {
        var interestState = document.getElementById('interestState');
        YUD.replaceClass(document.getElementById('interestStep1'), 'show', 'hide');
        if (document.getElementById('communityID').value == 0) {
            interestState.value = '10';
            InterestStateSelected('10');
        }
        YUD.replaceClass(document.getElementById('interestStep2'), 'hide', 'show');
    }
});

YUE.addListener(window, 'load', function(){

});
// ----------------------------------------------------------------------------------------------

var handleContactUsTopics = function(inputs){

    if (!inputs.checked) {return}
    var level2 = YUD.getElementsByClassName('level2','div')[0];
	var level3 = YUD.getElementsByClassName('level3','div')[0];
	var topics = document.getElementById('selectTopic').getElementsByTagName('LI');

    var linkText 	= document.getElementById('linkText');
    var otherLinks 	= document.getElementById('otherLinks');
    var corpComm 	= document.getElementById('corpComm');
    var invRel 		= document.getElementById('invRel');
    var mortFin 	= document.getElementById('mortFin');
    var interest 	= document.getElementById('interest');
    var careers 	= document.getElementById('careersPulte');
    var showOwner   = document.getElementById('homeOwnerService');
    var visit 		= document.visit;

    switch (inputs.getAttribute('id')) {
        case 'selectInfo':
            YUD.replaceClass(interest,'hide','show');
            YUD.replaceClass([otherLinks,showOwner],'show','hide');
            resetErrorHandling();
            toggleCommunityInterest();
            currSelectedTopic = 'info';
            break;
        case 'selectMortgages':
            linkText.innerHTML = 'Mortgages &amp; Financing';
            YUD.replaceClass([otherLinks,mortFin.parentNode],'hide','show');
            YUD.replaceClass([careers.parentNode,invRel.parentNode,corpComm.parentNode,showOwner,interest,visit],'show','hide');
            resetErrorHandling();
            currSelectedTopic = 'mortgages';
            break;
        case 'selectSupport':
            YUD.replaceClass([interest,otherLinks,showOwner,visit],'show','hide');
            resetErrorHandling();
            currSelectedTopic = 'support';
            break;
        case 'selectHomeowner':
            YUD.replaceClass([showOwner],'hide','show');
            YUD.replaceClass([otherLinks,visit,interest],'show','hide');
            toggleServiceRequest();
            resetErrorHandling();
            currSelectedTopic = 'homeowner';
            break;
        case 'selectCorpComm':
            linkText.innerHTML = 'Corporate Communications';
            YUD.replaceClass([otherLinks,corpComm.parentNode],'hide','show');
            YUD.replaceClass([careers.parentNode,invRel.parentNode,mortFin.parentNode,showOwner,interest,visit],'show','hide');
            resetErrorHandling();
            currSelectedTopic = 'communications';
            break;
        case 'selectInvRelations':
            linkText.innerHTML = 'Investor Relations';
            YUD.replaceClass([otherLinks,invRel.parentNode],'hide','show');
            YUD.replaceClass([careers.parentNode,corpComm.parentNode,mortFin.parentNode,showOwner,interest,visit],'show','hide');
            resetErrorHandling();
            currSelectedTopic = 'investor';
            break;
        case 'selectCareers':
            linkText.innerHTML = 'Careers at Pulte';
            YUD.replaceClass([otherLinks,careers.parentNode],'hide','show');
            YUD.replaceClass([showOwner,interest,corpComm.parentNode,mortFin.parentNode,invRel.parentNode,visit],'show','hide');
            resetErrorHandling();
            currSelectedTopic = 'careers';
            break;
        case 'selectGeneral':
            YUD.replaceClass([otherLinks,showOwner,interest,visit],'show','hide');
            resetErrorHandling();
            currSelectedTopic = 'general';
    }

    YUD.setStyle([level2,level3],'display','block')
    YUD.removeClass(topics,'selected');
    YUD.addClass(inputs.parentNode,'selected');
    document.contact.firstName.focus();
    contactUsFAQ();
    
}

// VALIDATION ERROR HANDLING

var validate_contactus = function(errorConsole) {

	var validity = true;
	var error_string = '';

	if (!check_notEmpty(document.contact.firstName.value)) {
		validity = false;
		YUD.addClass(YUD.getAncestorByTagName(document.contact.firstName,'td'),'error');
		error_string += '<li>Please enter a valid FIRST NAME</li>';
	}
	else {YUD.removeClass(YUD.getAncestorByTagName(document.contact.firstName,'td'),'error')}

	if (!check_minChar(document.contact.lastName.value)) { // must be at least two characters
		validity = false;
		YUD.addClass(YUD.getAncestorByTagName(document.contact.lastName,'td'),'error');
		error_string += '<li>Please enter a valid LAST NAME</li>';
	}
	else {YUD.removeClass(YUD.getAncestorByTagName(document.contact.lastName,'td'),'error')}

	if (!check_email(document.contact.email.value)) {
		validity = false;
		YUD.addClass(YUD.getAncestorByTagName(document.contact.email,'td'),'error');
		error_string += '<li>Please enter a valid EMAIL</li>';
	}
	else {YUD.removeClass(YUD.getAncestorByTagName(document.contact.email,'td'),'error')}

	if (!check_email(document.contact.confirmEmail.value)) {
		validity = false;
		YUD.addClass(YUD.getAncestorByTagName(document.contact.confirmEmail,'td'),'error');
		error_string += '<li>Please CONFIRM your EMAIL</li>';
	}
	else {YUD.removeClass(YUD.getAncestorByTagName(document.contact.confirmEmail,'td'),'error')}

	if (document.contact.email.value != document.contact.confirmEmail.value) {
		validity = false;
		YUD.addClass(YUD.getAncestorByTagName(document.contact.confirmEmail,'td'),'error');
		error_string += '<li>EMAIL and CONFIRM EMAIL do not match</li>';
	}

	// US specific fields
	if (!YUD.hasClass(document.getElementById('domestic'),'hide')) {

		// check address/city/zip for values
		if (document.contact.address1.value != '' || document.contact.city.value != '' || document.contact.zip.value != '') {

			if (document.contact.address1.value == '') {
				validity = false;
				YUD.addClass([document.contact.address1,YUD.getPreviousSibling(document.contact.address1)],'error');
				error_string += '<li>Please enter a valid ADDRESS 1</li>';
			}
			else {YUD.removeClass([document.contact.address1,YUD.getPreviousSibling(document.contact.address1)],'error')}

			if (document.contact.city.value == '') {
				validity = false;
				YUD.addClass([document.contact.city,YUD.getPreviousSibling(document.contact.city)],'error');
				error_string += '<li>Please enter a valid CITY</li>';
			}
			else {YUD.removeClass([document.contact.city,YUD.getPreviousSibling(document.contact.city)],'error')}

			if (!validateZipStructure(document.contact.zip.value)) {
				validity = false;
				YUD.addClass([document.contact.zip,YUD.getPreviousSibling(document.contact.zip)],'error');
				error_string += '<li>Please enter a valid ZIP CODE</li>';
			}
			else {YUD.removeClass([document.contact.zip,YUD.getPreviousSibling(document.contact.zip)],'error')}
		}

		// remove all error styling if no address/city/zip
		if (document.contact.address1.value == '' && document.contact.city.value == '' && document.contact.zip.value == '') YUD.removeClass([document.contact.address1,document.contact.city,document.contact.zip],'error')

		// check state for selection
		if (!check_empty(document.contact.state.value)) {
			validity = false;
			YUD.addClass(YUD.getAncestorByTagName(document.contact.state,'td'),'error');
			error_string += '<li>Please select a STATE</li>';
		}
		else {YUD.removeClass(YUD.getAncestorByTagName(document.contact.state,'td'),'error')}

		// check primary/secondary phone for valid structure (logged in)
		if (YUD.hasClass(document.getElementById('loggedInPhone'),'show')) {

			if (document.contact.contactProfilePhone1.value!='') {
				if (!validateUSphoneStructure(document.contact.contactProfilePhone1.value)) {
					validity = false;
					YUD.addClass([document.contact.contactProfilePhone1,YUD.getPreviousSibling(document.contact.contactProfilePhone1)],'error');
					error_string += '<li>Please enter a valid PRIMARY PHONE</li>';
				}
				else {YUD.removeClass([document.contact.contactProfilePhone1,YUD.getPreviousSibling(document.contact.contactProfilePhone1)],'error')}
			}
			else {YUD.removeClass([document.contact.contactProfilePhone1,YUD.getPreviousSibling(document.contact.contactProfilePhone1)],'error')}

			if (document.contact.contactProfilePhone2.value!='') {
				if (!validateUSphoneStructure(document.contact.contactProfilePhone2.value)) {
					validity = false;
					YUD.addClass([document.contact.contactProfilePhone2,YUD.getPreviousSibling(document.contact.contactProfilePhone2)],'error');
					error_string += '<li>Please enter a valid SECONDARY PHONE</li>';
				}
				else {YUD.removeClass([document.contact.contactProfilePhone2,YUD.getPreviousSibling(document.contact.contactProfilePhone2)],'error')}
			}
			else {YUD.removeClass([document.contact.contactProfilePhone2,YUD.getPreviousSibling(document.contact.contactProfilePhone2)],'error')}
		}
		// check primary/secondary phone for valid structure (logged out)
		else {
			if (document.contact.primaryPhone1.value!='' || document.contact.primaryPhone2.value!='' || document.contact.primaryPhone3.value!='') {
				if (!check_usPhoneThree(document.contact.primaryPhone1.value) || !check_usPhoneThree(document.contact.primaryPhone2.value) || !check_usPhoneFour(document.contact.primaryPhone3.value)) {
					validity = false;
					YUD.addClass(YUD.getAncestorByTagName(document.contact.primaryPhone1,'td'),'error');
					error_string += '<li>Please enter a valid PRIMARY PHONE</li>';
				}
				else {YUD.removeClass(YUD.getAncestorByTagName(document.contact.primaryPhone1,'td'),'error')}
			}
			else {YUD.removeClass(YUD.getAncestorByTagName(document.contact.primaryPhone1,'td'),'error')}

			if (document.contact.secondPhone1.value!='' || document.contact.secondPhone2.value!='' || document.contact.secondPhone3.value!='') {
				if (!check_usPhoneThree(document.contact.secondPhone1.value) || !check_usPhoneThree(document.contact.secondPhone2.value) || !check_usPhoneFour(document.contact.secondPhone3.value)) {
					validity = false;
					YUD.addClass(YUD.getAncestorByTagName(document.contact.secondPhone1,'td'),'error');
					error_string += '<li>Please enter a valid SECONDARY PHONE</li>';
				}
				else {YUD.removeClass(YUD.getAncestorByTagName(document.contact.secondPhone1,'td'),'error')}
			}
			else {YUD.removeClass(YUD.getAncestorByTagName(document.contact.secondPhone1,'td'),'error')}
		}
	}

	// International Specific fields
	if (!YUD.hasClass(document.getElementById('international'),'hide')) {

		// check address/city/zip for values
	    if (document.contact.address1.value != '' || document.contact.city.value != '' || document.contact.postal.value != '' || document.contact.province.value != '') {

			if (document.contact.address1.value == '') {
				validity = false;
				YUD.addClass([document.contact.address1,YUD.getPreviousSibling(document.contact.address1)],'error');
				error_string += '<li>Please enter a valid ADDRESS 1</li>';
			}
			else {YUD.removeClass([document.contact.address1,YUD.getPreviousSibling(document.contact.address1)],'error')}

			if (document.contact.city.value == '') {
				validity = false;
				YUD.addClass([document.contact.city,YUD.getPreviousSibling(document.contact.city)],'error');
				error_string += '<li>Please enter a valid CITY</li>';
			}
			else {YUD.removeClass([document.contact.city,YUD.getPreviousSibling(document.contact.city)],'error')}

			if (document.contact.province.value == '') {
			    validity = false;
			    YUD.addClass([document.contact.province, YUD.getPreviousSibling(document.contact.province)], 'error');
			    error_string += '<li>Please enter a valid PROVINCE/REGION</li>';
			}
			else { YUD.removeClass([document.contact.province, YUD.getPreviousSibling(document.contact.province)], 'error') }
			
			if (document.contact.postal.value == '') {
				validity = false;
				YUD.addClass([document.contact.postal,YUD.getPreviousSibling(document.contact.postal)],'error');
				error_string += '<li>Please enter a valid POSTAL CODE</li>';
			}
			else {YUD.removeClass([document.contact.postal,YUD.getPreviousSibling(document.contact.postal)],'error')}
		}

		// remove all error styling if no address/city/zip
		if (document.contact.address1.value == '' && document.contact.city.value == '' && document.contact.postal.value == '') YUD.removeClass([document.contact.address1,document.contact.city,document.contact.postal],'error')

		// check country for selection
		if (!check_empty(document.contact.country.value)) {
			validity = false;
			YUD.addClass(YUD.getAncestorByTagName(document.contact.country,'td'),'error');
			error_string += '<li>Please select a COUNTRY</li>';
		}
		else {YUD.removeClass(YUD.getAncestorByTagName(document.contact.country,'td'),'error')}

    /*
		// check phone 1 for numeric values
		if (document.contact.international1.value!='') {

			if (!validateNumericStructure(document.contact.international1.value) || !check_minChar(document.contact.international1.value)) {
				validity = false;
				YUD.addClass([document.contact.international1,YUD.getPreviousSibling(document.contact.international1)],'error');
				error_string += '<li>Please enter a valid PRIMARY PHONE</li>';
			}
			else {YUD.removeClass([document.contact.international1,YUD.getPreviousSibling(document.contact.international1)],'error')}
		}

		// check phone 2 for numeric values
		if (document.contact.international2.value!='') {
			if (!validateNumericStructure(document.contact.international2.value) || !check_minChar(document.contact.international2.value)) {
				validity = false;
				YUD.addClass([document.contact.international2,YUD.getPreviousSibling(document.contact.international2)],'error');
				error_string += '<li>Please enter a valid SECONDARY PHONE</li>';
			}
			else {YUD.removeClass([document.contact.international2,YUD.getPreviousSibling(document.contact.international2)],'error')}
		}
		*/
	}

	// if community interest, make sure state is selected
	if ((document.select.selectInfo.checked) && (YUD.hasClass(document.getElementById('interest'),'show'))) {
  
		if (document.contact.interestState.value == '') {
			validity = false;
			YUD.addClass([document.contact.interestState,document.getElementById('interestStep1').getElementsByTagName('label')[0]],'error');
			error_string += '<li>Please select a ' + brandNeighborhoodLabel + ' Interest STATE</li>';
		}
		else {YUD.removeClass([document.contact.interestState,document.getElementById('interestStep1').getElementsByTagName('label')[0]],'error')}
	}

	// if community interest, make sure metro area is selected
	if ((document.select.selectInfo.checked) && (YUD.hasClass(document.getElementById('interestStep2'),'show'))) {

		if (document.contact.interestMetroArea.value == '') {
			validity = false;
			YUD.addClass([document.contact.interestMetroArea,document.getElementById('interestStep2').getElementsByTagName('label')[0]],'error');
			error_string += '<li>Please select a ' + brandNeighborhoodLabel + ' Interest METRO AREA</li>';
		}
		else {YUD.removeClass([document.contact.interestMetroArea,document.getElementById('interestStep2').getElementsByTagName('label')[0]],'error')}
	}

	// if community interest, make sure at least one community/neighborhood is selected
	if ((document.select.selectInfo.checked) && (YUD.hasClass(document.getElementById('interestStep3'),'show'))) {

		if ((document.select.selectInfo.checked) && (YUD.hasClass(document.getElementById('selectedInterests'),'hide'))) {
			validity = false;
			YUD.addClass(document.getElementById('interestStep3').getElementsByTagName('label')[0],'error');
			document.getElementById('interestSelectContainer-click-interestSelect').style.borderColor='#B35817';
			error_string += '<li>Please select at least one ' + brandNeighborhoodLabel.toUpperCase() + ' INTEREST</li>';
		}
		else {
			YUD.removeClass(document.getElementById('interestStep3').getElementsByTagName('label')[0],'error');
			document.getElementById('interestSelectContainer-click-interestSelect').style.borderColor='#D6BB85';
		}
	}

	// if homeowner questions, make sure state is selected
	if (YUD.hasClass(document.getElementById('homeOwnerService'),'show')) {
		if (document.contact.serviceState.value == '') {
			validity = false;
			YUD.addClass([document.contact.serviceState,document.getElementById('homeOwnerStep1').getElementsByTagName('label')[0]],'error');
			error_string += '<li>Please select a Homeowner Questions STATE</li>';
		}
		else {YUD.removeClass([document.contact.serviceState,document.getElementById('homeOwnerStep1').getElementsByTagName('label')[0]],'error')}
	}

	// if homeowner questions, make sure metro area is selected
	if (YUD.hasClass(document.getElementById('homeOwnerStep2'),'show')) {

		if (document.contact.serviceArea.value == '') {
			validity = false;
			YUD.addClass([document.contact.serviceArea,document.getElementById('homeOwnerStep2').getElementsByTagName('label')[0]],'error');
			error_string += '<li>Please select a Homeowner Questions METRO AREA</li>';
		}
		else {YUD.removeClass([document.contact.serviceArea,document.getElementById('homeOwnerStep2').getElementsByTagName('label')[0]],'error')}
	}

	// if homeowner questions, make sure community name is filled out
	if (YUD.hasClass(document.getElementById('homeOwnerStep3'),'show')) {

		if (!check_notEmpty(document.contact.serviceCommunityName.value)) {
			validity = false;
			YUD.addClass([document.contact.serviceCommunityName,document.getElementById('homeOwnerStep3').getElementsByTagName('label')[0]],'error');
			error_string += '<li>Please select a Homeowner Questions ' + brandNeighborhoodLabel.toUpperCase() + ' NAME</li>';
		}
		else {YUD.removeClass([document.contact.serviceCommunityName,document.getElementById('homeOwnerStep3').getElementsByTagName('label')[0]],'error')}
	}

  // message must be <= 1000 characters (greater text can be pasted so we need to check here (AG))
  if (document.contact.message.value.length > 1000) {
    validity = false;
    YUD.addClass(YUD.getAncestorByTagName(document.contact.message,'td'),'error');
		error_string += '<li>Please limit your message to 1000 characters.</li>';
	}
	else {YUD.removeClass(YUD.getAncestorByTagName(document.contact.message,'td'),'error')}

	// show error console
	if (validity == false) {
		YUD.replaceClass(errorConsole,'hide','show');
		displayError('contactError',error_string);
	}
	return validity;
}

// validate activate notebook
var validate_thankyou = function(errorConsole) {

	var validity = true;
	var error_string = '';

	if (!check_email(document.thankyou.confirmEmail.value)) {
		validity = false;
		YUD.addClass(YUD.getAncestorByTagName(document.thankyou.confirmEmail,'td'),'error');
		error_string += '<li>Please enter a valid EMAIL ADDRESS</li>';
	}
	else {YUD.removeClass(YUD.getAncestorByTagName(document.thankyou.confirmEmail,'td'),'error')}

	if (!check_notEmpty(document.thankyou.activateUsername.value)) {
		validity = false;
		YUD.addClass(YUD.getAncestorByTagName(document.thankyou.activateUsername,'td'),'error');
		error_string += '<li>Please enter a valid USERNAME</li>';
	}
	else {YUD.removeClass(YUD.getAncestorByTagName(document.thankyou.activateUsername,'td'),'error')}

	if (!check_minPass(document.thankyou.activatePassword1.value) || !check_minPass(document.thankyou.activatePassword2.value) || (document.thankyou.activatePassword1.value != document.thankyou.activatePassword2.value)) {
		validity = false;
		YUD.addClass([YUD.getAncestorByTagName(document.thankyou.activatePassword1,'td'),YUD.getAncestorByTagName(document.thankyou.activatePassword2,'td')],'error');
		if (document.thankyou.activatePassword1.value != document.thankyou.activatePassword2.value) {error_string += '<li>The PASSWORDs do not match!</li>'}
		else {error_string += '<li>Please enter a valid PASSWORD (at least 5 characters)</li>'}
	}
	else {YUD.removeClass([YUD.getAncestorByTagName(document.thankyou.activatePassword1,'td'),YUD.getAncestorByTagName(document.thankyou.activatePassword2,'td')],'error')}

	if (validity == false) {
		YUD.replaceClass(errorConsole,'hide','show');
		displayError('activateError',error_string);
	}
	return validity;
}

// ----------------------------------------------------------------------------------------------

// TOGGLE NEIGHBORHOOD/COMMUNITY INTEREST

var toggleCommunityInterest = function() {
    if(!isCommunityInterestLoaded){
        YUE.addListener(document.getElementById('interestState'),'change',function() {
            InterestStateSelected(document.getElementById('interestState').value);
            YUD.replaceClass(document.getElementById('interestStep2'),'hide','show');
        });
        YUE.addListener(document.getElementById('interestMetroArea'),'change',function() {
            InterestMetroAreaSelected(document.getElementById('interestMetroArea').value);
            YUD.replaceClass(document.getElementById('interestStep3'),'hide','show');
        });
        isCommunityInterestLoaded = true;
    }
	// hide service request toggle to avoid error validation
	YUD.replaceClass([document.getElementById('homeOwnerService'),document.getElementById('homeOwnerStep2'),document.getElementById('homeOwnerStep3')],'show','hide');
}

// ----------------------------------------------------------------------------------------------

// TOGGLE SERVICE REQUEST

var toggleServiceRequest = function() {
    var serviceRequest = YUD.getElementsByClassName('serviceRequestTrigger')[0];
    if(!isServiceRequestLoaded){
        YUD.batch(serviceRequest,function(){
            var fld = YUD.getElementsByClassName('serviceRequestInput','input')[0];
            var homeOwnerService = YUD.getElementsByClassName('homeOwnerService','div')[0];
            if(fld && homeOwnerService){
                YUE.on(fld,'click',function(){
                    this.checked ? YUD.replaceClass(homeOwnerService,'hide','show') : YUD.replaceClass(homeOwnerService,'show','hide')
                });
            }
    });
    YUE.addListener(document.getElementById('serviceState'),'change',function() {
      YUD.replaceClass(document.getElementById('homeOwnerStep2'),'hide','show')
        ShowServiceAreas(document.getElementById('serviceState'),document.getElementById('serviceArea')); // located in serviceAreas.js
    });
    YUE.addListener(document.getElementById('serviceArea'),'change',function() {YUD.replaceClass(document.getElementById('homeOwnerStep3'),'hide','show')});
    isServiceRequestLoaded = true;
    document.getElementById('serviceState').options[0].selected = true;
}

	// hide neighborhood/community interest toggle to avoid error validation
	YUD.replaceClass([document.getElementById('interest'),document.getElementById('interestStep2'),document.getElementById('interestStep3')],'show','hide');
}

// ----------------------------------------------------------------------------------------------

// POPULATE CORRECT CONTACT PHONE # BASED ON BRAND

var populateContactPhone = function() {
	if (document.getElementById('contactTelephone')) {
		var target = document.getElementById('contactTelephone').getElementsByTagName('dl')[0];
		if (getCurrSite()=='Pulte')   target.innerHTML = '<dt>Pulte Homes</dt><dd><span>1-866-PULTE-25</span><em>(1-866-785-8325)</em></dd>';
		if (getCurrSite()=='DelWebb') target.innerHTML = '<dt>Del Webb</dt><dd><span>1-888-717-9777</span></dd>';
		if (getCurrSite()=='DiVosta') target.innerHTML = '<dt>DiVosta</dt><dd><span>1-800-686-5704</span></dd>';
		if (getCurrSite()=='Centex') target.innerHTML = '<dt>Centex</dt><dd><span>1-877-785-8318</span></dd>';
	}
}

// ----------------------------------------------------------------------------------------------

// POPULATE CONTACT US FORM WHEN USER LOGS IN

var populateContactForm = function(toggle) {

	if (toggle=='in')
	{
		document.getElementById('isLoggedIn').value=1;

		// show "update registration" input and logged in phone
		YUD.replaceClass(document.getElementById('loggedOutPhone'),'show','hide');
		YUD.replaceClass([document.getElementById('updateReg'),document.getElementById('loggedInPhone')],'hide','show');

		// hide "already registered?" link
		YUD.getElementsByClassName('signInTrigger','a')[1].style.display='none';

		// populate form fields
		if (document.getElementById('profileFirstName')) document.contact.firstName.value = document.getElementById('profileFirstName').value;
		if (document.getElementById('profileLastName'))  document.contact.lastName.value = document.getElementById('profileLastName').value;
		if (document.getElementById('profileUserEmail')) document.contact.email.value = document.getElementById('profileUserEmail').value;
		if (document.getElementById('profileUserEmail')) document.contact.confirmEmail.value = document.getElementById('profileUserEmail').value;
		if (document.getElementById('profileAddress1'))  document.contact.address1.value = document.getElementById('profileAddress1').value;
		if (document.getElementById('profileAddress2'))  document.contact.address2.value = document.getElementById('profileAddress2').value;
		if (document.getElementById('profileCity'))      document.contact.city.value = document.getElementById('profileCity').value;

		// if international address
		if (document.getElementById('profileCountry') && document.getElementById('profileCountry').value!='') {
			var intl = document.getElementById('international');
			populateCountryOptions(intl);
			YUD.addClass(intl,'loaded');
			toggleAddress(document.contact,'international');
			setSelectBoxValue(document.contact.country,document.getElementById('profileCountry').value);
			if (document.getElementById('profileProvince')) document.contact.province.value = document.getElementById('profileProvince').value;
			if (document.getElementById('profilePostal'))   document.contact.postal.value = document.getElementById('profilePostal').value;
			if (document.getElementById('profilePhone1'))   document.contact.international1.value = document.getElementById('profilePhone1').value;
			if (document.getElementById('profilePhone2'))   document.contact.international2.value = document.getElementById('profilePhone2').value;
        }

		// else domestic address
		else {
			toggleAddress(document.contact,'domestic');
			if (document.getElementById('profileState'))  setSelectBoxValue(document.contact.state,document.getElementById('profileState').value);
			if (document.getElementById('profileZip'))    document.contact.zip.value = document.getElementById('profileZip').value;
			if (document.getElementById('profilePhone1')) document.contact.contactProfilePhone1.value = document.getElementById('profilePhone1').value;
			if (document.getElementById('profilePhone2')) document.contact.contactProfilePhone2.value = document.getElementById('profilePhone2').value;
		}

        // update realtor info
        var controlImg = YUD.getPreviousSibling('realtor');
        if(document.getElementById('profileRealtor').checked){
            document.getElementById('realtor').checked = true;
            if(controlImg!=null) controlImg.src = returnCheckboxImgTrue();
            var realtorDiv = YUD.getElementsByClassName('brokerFields','div','contactUsRealtor')[0];
            if(realtorDiv) show(realtorDiv);

        }
		else {
            document.getElementById('realtor').checked = false;
            if(controlImg!=null) controlImg.src = returnCheckboxImgFalse();
        }
        document.getElementById('brokerOffice').value = document.getElementById('profileBrokerOffice').value;
        document.getElementById('brokerID').value = document.getElementById('profileBrokerID').value;
    }
	else {
		document.getElementById('isLoggedIn').value=0;

		// hide "update registration" input and logged in phone
		YUD.replaceClass([document.getElementById('updateReg'),document.getElementById('loggedInPhone')],'show','hide');
		YUD.replaceClass(document.getElementById('loggedOutPhone'),'hide','show');

		// show "already registered?" link
		YUD.getElementsByClassName('signInTrigger','a')[1].style.display='inline';
        // reset the form
        document.contact.reset();
        resetCharCount();

        // reset checkbox on realor info
        var fldRealtor = document.getElementById('realtor');
        fldRealtor.checked = false;
        var controlImg = YUD.getPreviousSibling(fldRealtor);
        if (controlImg) controlImg.src = returnCheckboxImgFalse();
        var realtorDiv = YUD.getElementsByClassName('brokerFields','div','contactUsRealtor')[0];
        if(realtorDiv) hide(realtorDiv);

        // update info
        var fldUpdateInfo = document.getElementById('updateInfo');
        fldUpdateInfo.checked = false;
        controlImg = YUD.getPreviousSibling(fldUpdateInfo);
        if (controlImg) controlImg.src = returnCheckboxImgFalse();
    }
}

// ----------------------------------------------------------------------------------------------

// RESET ERROR HANDLING

var resetErrorHandling = function() {
	var target = YUD.getElementsByClassName('alertBar');
	for (var i=0; i < target.length; i++) YUD.replaceClass(target[i],'show','hide');
	var targets  = YUD.getElementsByClassName('error');
	YUD.removeClass(targets,'error');
}

// ----------------------------------------------------------------------------------------------


// getQuertyStringByParam
var HandleQueryString = {
    qsObj: null,
    getQSByName: function(param){
        if(!this.qsObj){
            this.qsObj = new Querystring();
        }
        return this.qsObj.get(param);
    }
}

// ----------------------------------------------------------------------------------------------

// ACTIVATE 'UPDATE REGISTRATION' OPTION ON KEYUP

var fieldsInit = function() {
	var targets = new Array(document.contact.firstName, document.contact.lastName, document.contact.email, document.contact.city, document.contact.address1, document.contact.address2, document.contact.state, document.contact.zip, document.contact.contactProfilePhone1, document.contact.contactProfilePhone2, document.contact.international1, document.contact.international2, document.contact.province, document.contact.postal, document.contact.country);
	for (i=0; i < targets.length; i++) updateFields(targets[i]);
}

// ----------------------------------------------------------------------------------------------

// CONTACT US FAQ

// load faq's based on topic selected
var loadFAQs = function() {

	var faqItems = document.getElementById('faqContent').getElementsByTagName('LI');
    if(faqItems && faqItems.length){
      for (i=0; i < faqItems.length; i++) {
            YUE.addListener(faqItems[i],'click',function() {
                var target = YUD.getLastChild(this);
                if (YUD.hasClass(target,'hide')) {
                    this.style.background = 'transparent url(/images/' + getCurrSite() + '/icon-bullet-secondary-on.gif) no-repeat scroll 2px 5px';
                    target.style.padding = '10px 10px 0 0';
                    YUD.replaceClass(target,'hide','show');
                }
                else {
                    this.style.background = 'transparent url(/images/' + getCurrSite() + '/icon-bullet-secondary-on.gif) no-repeat scroll 2px 5px';
                    YUD.replaceClass(target,'show','hide');
                }
            });
        }
    }
}

var contactUsFAQ = function() {
    var topicContainer = document.getElementById('selectTopic');
    var faqContainer = document.getElementById('faqContent');
    var topicTarget = YUD.getElementsByClassName('selected', 'LI', topicContainer)[0];
    /*
    YUE.addListener(topicContainer,'click',function() {
    var topicTarget = YUD.getElementsByClassName('selected','LI',topicContainer)[0];
    if (topicTarget) {
    var topicName = YUD.getLastChild(topicTarget).id;
    switchFAQs(topicName);
    }
    });
    */
    if (topicTarget) { var topicName = YUD.getLastChild(topicTarget).id; switchFAQs(topicName); }
}

var switchFAQs = function(topicName) {

	var faqContainer = document.getElementById('faqContent');
	var level1 = YUD.getElementsByClassName('level1','div')[0];
	var level2 = YUD.getElementsByClassName('level2','div')[0];
	var level3 = YUD.getElementsByClassName('level3','div')[0];
  var levelWrapper = YUD.getElementsByClassName('levelWrapper','div')[0];
  
	var li, aLink, span, anchor, anchorName;
    var isTopicFound = false;

    for (var i=0; i < FAQContent.length; i++) {

		// check if faqcontent topic is equal to topicname
		if (FAQContent[i].topic == topicName) {

            isTopicFound = true;
			// turn on elements of page if not already
			YUD.setStyle([level2, level3],'display','block');

			// set focus if page pre-loads with faqs
			document.contact.firstName.focus();

			// remove current faq list - all li elements
			while (faqContainer.firstChild) {faqContainer.removeChild(faqContainer.firstChild)}

			// loop through all questions and answers
			for (var j=0; j < FAQContent[i].faqs.length; j++) {

				// build new faq list of all li elements
				li 	  = document.createElement('li');
				aLink = document.createElement('a');		// question container
				span  = document.createElement('span');		// answer container

				anchor 		= getCurrSite();
				anchorName 	= anchor.charAt(0).toLowerCase();

				// place question faq into anchor
				aLink.appendChild(document.createTextNode(FAQContent[i].faqs[j].q));
				aLink.href 	= '#' + anchorName + anchor.substring(1);
				aLink.href 	= 'javascript:void(0)';
				li.appendChild(aLink);

				// place answer faq into span
				span.appendChild(document.createTextNode(FAQContent[i].faqs[j].a));
				span.className = 'toggleTarget hide';
				li.appendChild(span);
				faqContainer.appendChild(li);
			}
		}
	}
    if(isTopicFound) {
      loadFAQs();
      // need to do the following so IE6 displays all divs properly
      YUD.setStyle(level1,'display','block');
      YUD.setStyle(level2,'display','block');
      YUD.setStyle(level3,'display','block');
      YUD.setStyle(levelWrapper,'display','block');
    }
    else {
        document.contact.firstName.focus();
        YUD.setStyle(level2,'display','block');
        YUD.setStyle(level3,'display','none');
    }
}

// ----------------------------------------------------------------------------------------------

// FASTPASS DIRECTIONS (VISIT US IN PERSON)

var fastPassDirections = function() {

	var fromAddress = document.visit.visitAddress.value + ',' + document.visit.visitCity.value + ',' + document.visit.visitState.value + ',' + document.visit.visitZip.value;
	var errorConsole = YUD.getElementsByClassName('alertBar','',document.visit)[0];

	// load fastpass template
	var loadFastPass = function(toAddress) {
		var directionURL = toAddress + '?f=' + escape(fromAddress) + '&t=' + escape(toAddress);
		popWindow('regular',directionURL,'Direction',700,700,'');
	}

	// validate visit us in person
	var validate_visitus = function(errorConsole) {

		var validity = true;
		var error_string = '';

		if (!check_notEmpty(document.visit.visitAddress.value)) {
			validity = false;
			YUD.addClass(YUD.getAncestorByTagName(document.visit.visitAddress,'td'),'error');
			error_string += '<li>Please enter a valid STARTING ADDRESS</li>';
		}
		else {YUD.removeClass(YUD.getAncestorByTagName(document.visit.visitAddress,'td'),'error')}

		if (!check_notEmpty(document.visit.visitCity.value)) {
			validity = false;
			YUD.addClass(YUD.getAncestorByTagName(document.visit.visitCity,'td'),'error');
			error_string += '<li>Please enter a valid CITY</li>';
		}
		else {YUD.removeClass(YUD.getAncestorByTagName(document.visit.visitCity,'td'),'error')}

		if (!validateZipStructure(document.visit.visitZip.value)) {
			validity = false;
			YUD.addClass(YUD.getAncestorByTagName(document.visit.visitZip,'td'),'error');
			error_string += '<li>Please enter a valid ZIP CODE</li>';
		}
		else {YUD.removeClass(YUD.getAncestorByTagName(document.visit.visitZip,'td'),'error')}

		if (document.visit.visitState.value == '') {
			validity = false;
			YUD.addClass(YUD.getAncestorByTagName(document.visit.visitState,'td'),'error');
			error_string += '<li>Please select a STATE</li>';
		}
		else {YUD.removeClass(YUD.getAncestorByTagName(document.visit.visitState,'td'),'error')}

		if (validity == false) {
			YUD.replaceClass(errorConsole,'hide','show');
			displayError('visitError',error_string);
		}
		return validity;
	}

	// grab selected radio, initiate pop-up
	var theList = document.getElementById('visitOptions').getElementsByTagName('input');
	for (var i = 0; i < theList.length; i++) {
		if (theList[i].checked && validate_visitus(errorConsole)) {
			YUD.replaceClass(errorConsole,'show','hide');
			loadFastPass(theList[i].value);
		}
	}
}

// ----------------------------------------------------------------------------------------------

// MANAGE MULTI-SELECT INTERESTS

var manageSelectedInterest = function(state,community,value) {
	if (document.getElementById('selectedInterests') && community) {

		var target = document.getElementById('selectedInterests');
		var list = target.getElementsByTagName('UL')[0];
		var listItems = list.getElementsByTagName('li');
		YUD.replaceClass(target,'hide','show');

		if (state=='add' && listItems.length<4) {
			for (var j=0; j < listItems.length; j++) if (listItems[j].firstChild.nodeValue==community) return; //do not add if already on list
			var addNewItem = document.createElement('li');
			addNewItem.className = value;
			addNewItem.innerHTML = community + '<span>(<a href="javascript:void(0)">remove</a>)</span>';
			list.appendChild(addNewItem);

			// onclick 'remove' link
			YUE.addListener(addNewItem.getElementsByTagName('a'),'click',function() {
				list.removeChild(YUD.getAncestorByTagName(this,'li'));

				// remove checked from multiSelect
				var multiListContainer = document.getElementById('interestStep3');
				var multiListItems = multiListContainer.getElementsByTagName('input');
				for (var k=0; k < multiListItems.length; k++) {
					if (multiListItems[k].title == this.parentNode.parentNode.firstChild.nodeValue) {
						window.attachEvent ? multiListItems[k].setAttribute('checked','') : multiListItems[k].click();
					}
				}

				// remove 'inactive' list once there are less then 4 items
				if (listItems.length<4) {
					YUD.replaceClass(document.getElementById('interestSelectContainer-interestSelect-title'),'titleDisabled','title')
					YUD.removeClass(document.getElementById('interestStep3'),'inactive');
				}

				// remove selected 'communities' list once there are no more items
				if (list.childNodes.length==0) YUD.replaceClass(target,'show','hide');

				// activate checkboxes if < 4 selected
				deactivateCheck();
			});
		}
		else {
			for (var i=0; i < listItems.length; i++) {
				if (listItems.length<4) YUD.removeClass(document.getElementById('interestStep3'),'inactive');
				if (listItems[i].firstChild.nodeValue==community) list.removeChild(listItems[i]);
				if (list.childNodes.length==0) YUD.replaceClass(target,'show','hide');
			}
            deactivateCheck();
        }

		// set 'inactive' list once there are 4 items
		if (listItems.length==4) {
			YUD.addClass(document.getElementById('interestStep3'),'inactive');
			YUD.replaceClass(document.getElementById('interestSelectContainer-interestSelect-title'),'title','titleDisabled');
		}
	}
}

// return array of values for checked INPUT on multi-select
var getMultiSelectValues = function() {
	var select = document.getElementById('selectedInterests');
	var targets = select.getElementsByTagName('li');
	var optionValues = new Array();
	for (var j=0; j < targets.length; j++) optionValues.push(targets[j].className);
	return optionValues;
}

// reset by deleting multiSelect.js stuff and reinitializing the SELECT element
var resetMultiSelect = function() {
	var container = document.getElementById('interestStep3');
	if (YUD.getElementsByClassName('interestSelectContainer','div')[0]) {
		//remove existing multi-select
		container.removeChild(YUD.getElementsByClassName('interestSelectContainer','div')[0]);
		container.removeChild(YUD.getElementsByClassName('expcol-body','div')[0]);
		// create new multi-select
		var newSelect = document.createElement('select');
		newSelect.id='interestSelect';
		newSelect.name='interestSelect';
		newSelect.className='multiSelect';
		newSelect.setAttribute('multiple','multiple');
		newSelect.setAttribute('size','4');
        var txtLabel = 'Select ' + brandNeighborhoodLabels + ' of Interest';
        newSelect.setAttribute('title',txtLabel);
		container.appendChild(newSelect);
	}
}

// de-activate checkbox when there are 4 selected items
var deactivateCheck = function() {
	var target = document.getElementById('selectedInterests');
	var list = target.getElementsByTagName('UL')[0];
	var listItems = list.getElementsByTagName('li');
	var inputItems = document.getElementById('interestStep3').getElementsByTagName('input');

    if (listItems.length==4) {
		for (i=0;i<inputItems.length;i++) {
			if (inputItems[i].checked==false) inputItems[i].disabled=true;
		}
	}
	else {for (j=0;j<inputItems.length;j++) inputItems[j].disabled=false}
}

// ----------------------------------------------------------------------------------------------

// REGISTER (FROM CONTACT US)

var contactUsRegister = function(){

	var errorConsole = YUD.getElementsByClassName('alertBar','',document.thankyou)[0];

	if (validate_thankyou(errorConsole)) {

		YUD.replaceClass(errorConsole,'show','hide');

		var user = new Pulte08.BusinessServices.User.UserEntity;
		var password = document.thankyou.activatePassword1.value;

		user.FirstName = document.contact.firstName.value;
		user.LastName = document.contact.lastName.value;
		user.Email = document.contact.email.value;
		user.Username = document.thankyou.activateUsername.value;
		user.Address1 = document.contact.address1.value;
		user.Address2 = document.contact.address2.value;
		user.City = document.contact.city.value;
		user.HearAboutWebsite = document.contact.hearAboutUs.value;

		// get domestic fields
		if (!YUD.hasClass(document.getElementById('domestic'),'hide')) {
			user.StateAbbreviation = document.contact.state.value;
			user.PostalCode = document.contact.zip.value;
			user.Phone1 = document.contact.primaryPhone1.value + document.contact.primaryPhone2.value + document.contact.primaryPhone3.value;
			user.Phone2 = document.contact.secondPhone1.value + document.contact.secondPhone2.value + document.contact.secondPhone3.value;
    }

		// get international fields
		if (!YUD.hasClass(document.getElementById('international'),'hide')) {
			user.CountryCode = document.contact.country.value;
			user.ProvinceRegion = document.contact.province.value;
			user.PostalCode = document.contact.postal.value;
			user.Phone1 = document.contact.international1.value;
			user.Phone2 = document.contact.international2.value;
		}

		if (!YUD.hasClass(YUD.getElementsByClassName('brokerFields')[0],'hide')) {
			user.IsRealtor = true;
			user.BrokerOffice = document.contact.brokerOffice.value;
			user.BrokerTaxID  = document.contact.brokerID.value;
		}

		ajaxLoading('contactUsRegister','submit','start');
		Pulte08.AjaxWebServices.UserService.Register(user,password,contactUsRegisterCallBack);
	}
}

// call back
var contactUsRegisterCallBack = function (result) {

	var errorConsole = YUD.getElementsByClassName('alertBar','',document.thankyou)[0];

	if (result.Retcode == Pulte08.BusinessServices.User.enumRegisterCode.REG_SUCCESS) {
		YUD.replaceClass(errorConsole,'show','hide');
		YUD.replaceClass(document.getElementById('thankYouActivateNotebook'),'show','hide');
		YUD.getElementsByClassName('thankyou','p')[0].innerHTML = '<strong>You are logged in!</strong><br />Thank you for contacting Pulte Homes. Your request has been sent. If you had a specific question, we will contact you soon.';
		document.getElementById('isLoggedIn').value=1;
		NotebookUtils.SetSignInStatus(true);
	}
	else {

		var validity = true;
		var error_string = '';

		if (result.Retcode == Pulte08.BusinessServices.User.enumRegisterCode.REG_USER_REGISTERED){
			validity = false;
			error_string += '<li>The NAME and EMAIL you entered indicate you are already a registered user, please <a href="javascript:myNotebookSignIn.openPanel();">Sign In</a></li>';
		}
		else if (result.Retcode == Pulte08.BusinessServices.User.enumRegisterCode.REG_USERNAME_EXISTS){
			validity = false;
			error_string += '<li>The USERNAME that you entered is already taken. Please choose a different USERNAME</li>';
		}
		else if (result.Retcode == Pulte08.BusinessServices.User.enumRegisterCode.REG_FAILURE_VALIDATION || result == Pulte08.BusinessServices.User.enumRegisterCode.REG_FAILURE_UNKNOWN) {
			validity = false;
			error_string += '<li>' + result.Message + '</li>';
		}

		if (validity == false) {
			YUD.replaceClass(errorConsole,'hide','show');
			displayError('activateError',error_string);
		}
	}
	ajaxLoading('contactUsRegister','submit','end');
}

// ----------------------------------------------------------------------------------------------

// SIGN IN (FROM CONTACT US)

var contactUsSignIn = function(){

	var validity = true;
	var error_string = '';
	var un = document.thankyou.thankYouUsername.value;
	var pw = document.thankyou.thankYouPassword.value;
	var errorConsole = YUD.getElementsByClassName('alertBar','',document.getElementById('thankYouSignIn'))[0];

	var contactUsSignInSuccess = function(result) {
		if (result.Retcode == Pulte08.BusinessServices.User.enumAuthCode.AUTH_SUCCESS) {
			YUD.replaceClass(document.getElementById('thankYouSignIn'),'show','hide');
			YUD.getElementsByClassName('thankyou','p')[0].innerHTML = '<strong>You are logged in!</strong>';
			document.getElementById('isLoggedIn').value=1;
		}
		else {
			YUD.replaceClass(errorConsole,'hide','show');
			displayError('signInError','<li>Your credentials do not exist in our database!</li>');
		}
		ajaxLoading('contactUsSignIn','submit','end');
	}

	var contactUsSignInFail = function(){
		YUD.replaceClass(errorConsole,'hide','show');
		displayError('signInError','<li>The server did not respond. Please try again later...</li>');
		ajaxLoading('contactUsSignIn','submit','end');
	}

	if (!check_notEmpty(un)){
		validity = false;
		error_string += '<li>Please enter a USERNAME</li>';
	}
	if (!check_notEmpty(pw)){
		validity = false;
		error_string += '<li>Please enter a PASSWORD</li>';
	}

	if (validity == false) {
		YUD.replaceClass(errorConsole,'hide','show');
		displayError('signInError',error_string);
	}
	else {
		YUD.replaceClass(errorConsole,'show','hide');
		ajaxLoading('contactUsSignIn','submit','start');
		Pulte08.AjaxWebServices.UserService.SignInAndReturnName(un,pw,contactUsSignInSuccess,contactUsSignInFail);
	}
}

// ----------------------------------------------------------------------------------------------
