var ag_ac, ac_opts;
var svrname = document.domain;
function build_auto_comp() {

	// create autocompleter
	ac_opts = {
		paramName: 'name',
		minChars: 3, // min chars to be entered before search can be launched
		is_triggered: true, // the control is triggered by an external element (image, button, etc)
		parameters: 'w=325&h=150&getby=lastname', // parameters to be added to Ajax handler URL
		triggerID: 'srchBtn', // trigger ID
		loadingImgID: 'loading_img', // Loading... img ID
		timeout: 20000, // server timeout (ms)
		//hideElemId: ['testList'], // array of element IDs to be hide if the list div overlaps a windowed element (select, input, etc.)
		updateElement : function(selectedOpt) { //replaces default updateElement method 
			// IMPORTANT: must call default method in the last line
			// custom operation : fill hidden field value with hidden span content
			var optSpans = selectedOpt.getElementsByTagName('SPAN');
			var savedSelectedOptInnerHTML = selectedOpt.innerHTML;
			if(optSpans) {
				var agentData = optSpans[1].innerHTML.split(':'); // <=> (agent name : agent ID)
				$('agent_name').value = agentData[0];
				el("agent_assigned_id").value = agentData[1];
				el("selected_agent").value = optSpans[1].innerHTML;
				// update selectedOpt to contain only agent's name
				selectedOpt.innerHTML = agentData[0];	
			}
			// WARNING: in the end call the default updateElement of autocompleter
			ag_ac.updateElement(selectedOpt);
			//restore inner HTML of selected option (to conserve highlight)
			selectedOpt.innerHTML = savedSelectedOptInnerHTML;
		}
		/*
		beforeCallServer : function() { // called just before server is called !
			// returns string with dynamic added parameters, or empty string if nothing to be sent
			// reset agent ID
			document.getElementById("new_reg_form").elements["agent_assigned_id"].value = '';
			return '';
		}*/
	};
	// create auto completer ::
	var ac_url = 'http://'+svrname+'/agent/site_agents.php';
	ag_ac = new Ajax.Autocompleter('agent_name','agent_list',ac_url,ac_opts);
}

function validateAgent2(frm) {
	
	if(trimString($('agent_name').value)!='') {
		if(frm.elements['agent_assigned_id'].value=='') {
			alert('Please select your agent from the list only after performing a lastname search,\nor leave the field blank.');
			frm.elements['agent_name'].focus();
			return false;	
		}
		if($('selected_agent').value!='') {
			var selected_agent = $('selected_agent').value.split(':');
			if(($('agent_name').value!=selected_agent[0]) || (frm.elements['agent_assigned_id'].value!=selected_agent[1])) {
				alert('Please select your agent from the list only after performing a lastname search,\nor leave the field blank.');
				frm.elements['agent_name'].focus();
				return false;
			}
		}
	} else {
		// reset hidden fields
		frm.elements['agent_assigned_id'].value = '';	
	}
	//frm.elements['selected_agent'].value = '';
	return true;
}

function validateAgent(frmObj) {
	if(trimString($('agent_name').value)=='') {
		return false;
	}
	
	var frm = frmObj.form;
	if(frm.elements['agent_assigned_id'].value=='') {
		return false;	
	}
	if($('selected_agent').value!='') {
		var selected_agent = $('selected_agent').value.split(':');
		if(($('agent_name').value!=selected_agent[0]) || (frm.elements['agent_assigned_id'].value!=selected_agent[1])) {
			return false;
		}
	}
	//frm.elements['selected_agent'].value = '';
	return true;
}

function resetSelectedAgent(frm) {
	frm.elements['selected_agent'].value = '';
	return true;
}
