// ----------------------------------------------------------------------------------------------
// -------------------------------- SIGN UP AJAX FUNCTIONS --------------------------------------
// ----------------------------------------------------------------------------------------------

// get user info to pre-populate fomr if logged in
function GetUserInfoForSignUp() {Pulte08.AjaxWebServices.UserService.GetProfileInfo(ShowUserInfoInSignUp)}

// update signup form
function ShowUserInfoInSignUp(result) {

	if (result != null)
	{
		// toggle logged in phone fields
		YUD.replaceClass(document.getElementById('loggedOutPhone'),'show','hide');
		YUD.replaceClass(document.getElementById('loggedInPhone'),'hide','show');

		// shared fields
		document.getElementById('firstName').value    = result.FirstName;
		document.getElementById('lastName').value     = result.LastName;
		document.getElementById('email').value        = result.Email;
		document.getElementById('confirmEmail').value = result.Email;
		document.getElementById('address1').value     = (result.Address1 && result.Address1 != 'null') ? result.Address1 : '';
		document.getElementById('address2').value     = (result.Address2 && result.Address2 != 'null') ? result.Address2 : '';
		document.getElementById('city').value         = (result.City && result.City != 'null') ? result.City : '';

		// if international address
		if (result.CountryCode && result.CountryCode != 'null' && result.CountryCode != '' && result.CountryCode != 'US') {
			var intl = document.getElementById('international');
			populateCountryOptions(intl);
			YUD.addClass(intl,'loaded');
			toggleAddress(document.signup,'international');

			/* province    */ document.getElementById('province').value = (result.StateAbbreviation && result.StateAbbreviation != 'null')?result.StateAbbreviation:'';
			/* postal code */ document.getElementById('postal').value = (result.PostalCode && result.PostalCode != 'null')?result.PostalCode:'';
			/* country     */ setSelectBoxValue(document.getElementById('country'),result.CountryCode);
			/* phone 1     */ document.getElementById('internationalPhone1').value = (result.Phone1 && result.Phone1 != 'null')?result.Phone1:'';
			/* phone 2     */ document.getElementById('internationalPhone2').value = (result.Phone2 && result.Phone2 != 'null')?result.Phone2:'';
		}

		// else domestic address
		else {
			/* state   */ setSelectBoxValue(document.getElementById('state'),result.StateAbbreviation);
			/* zip     */ document.getElementById('zip').value = (result.PostalCode && result.PostalCode != 'null')?result.PostalCode:'';
			/* phone 1 */ document.getElementById('primaryPhoneLoggedIn1').value = (result.Phone1 && result.Phone1 != 'null')?result.Phone1:'';
			/* phone 2 */ document.getElementById('secondPhoneLoggedIn2').value = (result.Phone2 && result.Phone2 != 'null')?result.Phone2:'';
		}
	}
}

// call web service method to pass data to EAI to update a contact information and send email 
function ProcessSignUp() {
  var brandID = document.getElementById('brandID');
	var firstName = document.getElementById('firstName');
	var lastName = document.getElementById('lastName');
	var email = document.getElementById('email');
	var address1 = document.getElementById('address1');
	var address2 = document.getElementById('address2');
	var city = document.getElementById('city');
	var state = document.getElementById('state');
	var zip = document.getElementById('zip');
	var areaCode1 = document.getElementById('primaryPhone1');
	var prefix1 = document.getElementById('primaryPhone2');
	var suffix1 = document.getElementById('primaryPhone3');
	var areaCode2 = document.getElementById('secondPhone1');
	var prefix2 = document.getElementById('secondPhone2');
	var suffix2 = document.getElementById('secondPhone3');
	var country = document.getElementById('country');
	var countryName = '';

	if (country.selectedIndex>0) countryName = country.options[country.selectedIndex].text;

	var provinceRegionValue = '';
	var postalCodeValue = '';
	var isInternational = false;
	var international = document.getElementById('international');

	if (!YUD.hasClass(international,'international hide')) {
		isInternational = true;
		provinceRegionValue = document.getElementById('province').value;
		postalCodeValue = document.getElementById('postal').value;
	}

	var phone1 = document.getElementById('internationalPhone1');
	var phone2 = document.getElementById('internationalPhone2');
	var updateProfile = false;  // we are not updating profile from Sign Up form

	var campaignTitle = document.getElementById('campaignTitle').value;
	var campaignEmailAddress = document.getElementById('campaignEmailAddress').value;
	var questionText = "";
	var numberOfAnswers = 0;
	var answer = "";

	// question and aswers are optional on the form
	if (document.getElementById('questionText')!=null) {
		questionText = document.getElementById('questionText').value;
		numberOfAnswers = document.getElementById('numberOfAnswers').value; 
		answer = questionText + ':<br /><br />';

		// build the answer as a concatination of 
		for (var i=0;i<numberOfAnswers;i++) {
			var selection = eval('document.getElementById("answer_"+i+"_selection");');
			if (selection.checked) answer += selection.value + '<br />';
		}
	}

	// show the spinner
	ajaxLoading('signUpSubmit','submit','start');

	Pulte08.AjaxWebServices.SignUpService.ProcessSignUp(brandID.value,
	  firstName.value,lastName.value,email.value,address1.value,address2.value,city.value,state.value,
	  zip.value,areaCode1.value,prefix1.value,suffix1.value,areaCode2.value,prefix2.value,suffix2.value,isInternational,
	  country.value,countryName, provinceRegionValue,postalCodeValue,phone1.value,phone2.value,updateProfile, 
	  campaignTitle, campaignEmailAddress, answer, 
	  OnSignUpProcessed);
}

function OnSignUpProcessed(result) {
	ajaxLoading('signUpSubmit','submit','stop');
	if(result=='') {
		var level1 = YUD.getElementsByClassName('level1','div')[0];
		var level4 = YUD.getElementsByClassName('level4','div')[0];
		YUD.setStyle(level1,'display','none');
		YUD.setStyle(level4,'display','block');
	}
	else {alert(result)}
}

// ----------------------------------------------------------------------------------------------
