var _global = new Array();
var raffleflds = new Array("req","lang","email1","email2");

var activeMode = 'form_tr';
var activeSubMode = '';

/*************** CONTROLLER ***************/
function controller(mode,submode) {
	switch (mode) {
		case 'form_tr' :
			if ( submode == 'reset' )
				resetFRM();
			if ( activeMode.length > 0 ) display.hideElement(activeMode);
			activeMode = mode;
			if ( activeMode.length > 0 ) display.showElement(activeMode);
			break;
		case 'loading_tr' :
			if ( activeMode.length > 0 ) display.hideElement(activeMode);
			activeMode = mode;
			if ( activeMode.length > 0 ) display.showElement(activeMode);
			break;
		case 'success_tr' :
			if ( activeMode.length > 0 ) display.hideElement(activeMode);
			activeMode = mode;
			if ( activeMode.length > 0 ) display.showElement(activeMode);
			break;
		case 'error_tr' :
			if ( activeMode.length > 0 ) display.hideElement(activeMode);
			if ( activeSubMode.length > 0 ) display.hideElement(activeSubMode);
			activeMode = mode;
			activeSubMode = submode;
			if ( activeMode.length > 0 ) display.showElement(activeMode);
			if ( activeSubMode.length > 0 ) display.showElement(activeSubMode);
			break;
	}
}

/***************   AJAX   *****************/
function recommend(obj1,obj2) {
	if ( !testEmail(obj1.value) ) {
		alert(_global['ST_WARNING_EMAIL1']);
		obj1.focus();
	}
	else if ( !emailListCheck(obj2.value,';') ) {
		alert(_global['ST_WARNING_EMAIL2']);
		obj2.focus();
	}
	else {
		xGetElementById("req").value = "PROCESS_RAFFLE";
		var loader = new net.ContentLoader(CI_AJAX_PATH + "portal.cfm",onRecommendResult,onRecommendError,"POST",net.CreatePostString(null,raffleflds));
		controller('loading_tr','');
	}
}
function onRecommendResult() {
	response = net.CleanResponse(this.req.responseText);
	switch ( response ) {
		case 'ERROR:DB' :
			controller('error_tr','unknown');
			break;
		case 'ERROR:IO' :
			controller('error_tr','unknown');
			break;
		case 'ERROR:NOTFOUND' :
			controller('error_tr','notfound');
			break;
		case 'SUCCESS' :
			controller('success_tr');
			break;
		default :
			break;
	}
}
function onRecommendError() {
	response = net.CleanResponse(this.req.responseText);
	xGetElementById("error_tr").innerHTML = response;
	display.showElement("error_tr");
	//controller('error_tr','unknown');
}
function emailListCheck(list,sep) {
	var arr = list.split(sep);
	for (var i = 0; i < arr.length; i++) {
		if ( !testEmail(arr[i]) )
			return false;
	}
	return true;
}
function resetFRM() {
	xGetElementById("email1").value = "";
	xGetElementById("email2").value = "";
}
