﻿function Step3ContactInformationController(oNewModel, oNewView) {
	/****************************************************/
	/*                                                  */
	/*                                                  */
	/*                 Private Variables                */
	/*                                                  */
	/*                                                  */
	/****************************************************/
	
	var oModel;
	var oView;
	var oViewHelper;
	
	/****************************************************/
	/*                                                  */
	/*                                                  */
	/*            Class Level Private Methods           */
	/*                                                  */
	/*                                                  */
	/****************************************************/
	
	function initializeView() {
	    oViewHelper.loadValues({sEmailAddress: oModel.getEmailAddress(), sFirstName: oModel.getFirstName(), sLastName: oModel.getLastName(), sCompany: oModel.getCompany(), sCountry: oModel.getCountry(), sState: oModel.getState(), sPostalCode: oModel.getPostalCode(), sProvince: oModel.getProvince(), sPhoneNumber: oModel.getPhoneNumber()});
	}
	
	/****************************************************/
	/*                                                  */
	/*                                                  */
	/*          Class Level Priveleged Methods          */
	/*                                                  */
	/*                                                  */
	/****************************************************/
	
	this.setModel = function(oNewModel) {
		if (oNewModel) {
			oModel = oNewModel;
			oModel.addObserver(this);
		}
	}
	
	this.setView = function(oNewView) {
		if (oNewView)
			oView = oNewView;
	}
	
	/****************************************************/
	/*                                                  */
	/*                                                  */
	/*                Observer Interface                */
	/*                                                  */
	/*                                                  */
	/****************************************************/
	
	this.update = function(oArguments) {
	    if (oArguments.event == "Value Changed") {
			switch (oArguments.property) {
				case "First Name":
				case "Last Name":
				    oViewHelper.setName(oModel.getFirstName(), oModel.getLastName());
					break;
				case "Company":
				    oViewHelper.setCompany(oModel.getCompany());
					break;
				case "Country":
				case "State":
				case "Postal Code":
				case "Province":
				    oViewHelper.setLocation(oModel.getCountry(), oModel.getProvince(), oModel.getState(), oModel.getPostalCode());
					break;
				case "Email Address":
				    oViewHelper.setEmailAddress(oModel.getEmailAddress());
					break;
				case "Phone Number":
				    oViewHelper.setPhoneNumber(oModel.getPhoneNumber());
					break;
			}
		}
	}

	/****************************************************/
	/*                                                  */
	/*                                                  */
	/*                 Initialize Class                 */
	/*                                                  */
	/*                                                  */
	/****************************************************/
	this.setModel(oNewModel);
	this.setView(oNewView);
	if (oModel && oView) {
	    oViewHelper = new Step3ContactInformationViewHelper(oView);
	    initializeView();
	}
}