/* REQUIRE:
	/_js/dom/abbr.js
	/_js/dom/radio.js
	/_js/signup/domain-search-handler.js
		- with obj instantialized as 'objDSH'.  see
			see /_com/Wizard/PageGroup/DESignUp/DomainSearch/inc_write_new-domain-area.cfm
	/_js/signup/signup-form.js
		- with obj instantialized as 'objSignUpForm'
			see /SignUp4/index.cfm
*/

function DomainSearch() {
	
	var me = this;
	var FORM = document.wizardform;

	this.getSelectedSignupType = function() {
		var pointerRadio = FORM.signupType;
		if (!pointerRadio) return;
		// function getCheckedValue is from /_js/radio.js
		return getCheckedValue(pointerRadio);
	}

	this.switchSignupType = function(type) {
		// for now treat 'gift-domain' as 'new-domain'
		if (type=='gift-domain') {
			this.switchSignupType('new-domain');
			return;
		}

		he('new-domain-area');
		he('new-domain-area-aux');
		he('transfer-hosting-area');
		he('transfer-hosting-area-aux');
	//	he('gift-domain-area');
		se(type+'-area');
		se(type+'-area-aux');
		// when switching on 'new-domain', show or hide submit button depending on whether domain name checkboxes are checked
		if (type=='new-domain') {
			// check if there are domain names selectable
			if (objDSH && objDSH.hasSelectableDomainNames()) {
				objSignUpForm.showFormButtons();
			} else {
				objSignUpForm.hideFormButtons();
			}
		} else {
			objSignUpForm.showFormButtons();
		}

	}
	
	// set wizardSubmitOnClick for wizard submit button.
	// to check if any domain name selected
	this.wizardSubmitOnClick = function() {
		
		// get selected type
		var strSignupType = me.getSelectedSignupType();
		switch (strSignupType) {
			// for new-domain & gift-domain
			case 'new-domain': case 'gift-domain':
				// check if any domain name selected
				var arrDomainNames = objDSH.getSelectedDomainNames();
				// if yes, allow form submission
				if (arrDomainNames.length > 0) {
					FORM.submit();
				} else {
				// if no, alert and stop
					alert('Please select a domain name to proceed.');
					return false;
				}
			break;

			default:
				FORM.submit();
			break;
		}
	}

}