// charset=utf-8
// $Id: mpiReferenceSelectForm.js 2228 2009-10-14 07:46:31Z dierker $
// $HeadURL: svn://svnserver/mcmplugins/ReferenceDb/branches/mcm-5.5/Matthaei/scripts/mpiReferenceSelectForm.js $
// +----------------------------------------------------------------------+
// | mcm-Plugin: ReferenceDb                                              |
// | version 1.0                                                          |
// | for mcm v5.5                                                         |
// | (c) 2002-2009 monsun media (http://www.monsun-media.com)             |
// +----------------------------------------------------------------------+


/**
* mpiReferenceSelectForm
*
* @author	hebing <hebing@monsun-media.com>
*/
var mpiReferenceSelectForm = {

	/**
	* get & display the activity fields
	*
	* @param	Event	evt
	* @return	void
	*/
	getActivityFields : function(evt){
		var category_id = mpiReferenceSelectForm.getSelectedValue(document.getElementById('if1'));
		var optionSelect = document.getElementById('if2');
		var xmlReq = mcm.createXmlHttpRequest();
		xmlReq.onreadystatechange = function(){
			if( xmlReq.readyState==4 && xmlReq.status==200 ){
				mpiReferenceSelectForm.deleteAllOptions(optionSelect);
				var optionsAry = eval('(' + xmlReq.responseText + ')');
				var i, newOpt;
				for( i=0; i<optionsAry.length; i++ ){
					selected = optionsAry[i].selected==1 ? true : false;
					newOpt = new Option(optionsAry[i].text,optionsAry[i].value,false,selected);
					optionSelect.options[optionSelect.options.length] = newOpt;
				}
				mpiReferenceSelectForm.getLocations(evt);
			}
		}
		var servletUrl = 'plugins/ReferenceDb/servlet.php?action=getActivityFields&category_id='+category_id;
		xmlReq.open('GET',servletUrl,true);
		xmlReq.send(null);
	}
	,
	/**
	* get & display locations
	*
	* @param	Event	evt
	* @return	void
	*/
	getLocations : function(evt){
		var activityfield_id = mpiReferenceSelectForm.getSelectedValue(document.getElementById('if2'));
		var category_id = mpiReferenceSelectForm.getSelectedValue(document.getElementById('if1'));
		var optionSelect = document.getElementById('if3');
		var xmlReq = mcm.createXmlHttpRequest();
		xmlReq.onreadystatechange = function(){
			if( xmlReq.readyState==4 && xmlReq.status==200){
				mpiReferenceSelectForm.deleteAllOptions(optionSelect);
				var optionsAry = eval('(' + xmlReq.responseText + ')');
				var i, newOpt;
				for( i=0; i<optionsAry.length; i++ ){
					selected = optionsAry[i].selected==1 ? true : false;
					newOpt = new Option(optionsAry[i].text,optionsAry[i].value,false,selected);
					optionSelect.options[optionSelect.options.length] = newOpt;
				}
			}
		}
		var servletUrl = 'plugins/ReferenceDb/servlet.php?action=getLocations&activityfield_id='+activityfield_id+'&category_id='+category_id;
		xmlReq.open('GET',servletUrl,true);
		xmlReq.send(null);
	}
	,
	/**
	* get & display the locations of the references
	*
	* @param	Event	evt
	* @return	void
	*/
	getReferenceLocations : function(evt){
		var location_id = mpiReferenceSelectForm.getSelectedValue(document.getElementById('if3'));
		var activityfield_id = mpiReferenceSelectForm.getSelectedValue(document.getElementById('if2'));
		var optionSelect = document.getElementById('if4');
		var xmlReq = mcm.createXmlHttpRequest();
		xmlReq.onreadystatechange = function(){
			if( xmlReq.readyState==4 && xmlReq.status==200 ){
				mpiReferenceSelectForm.deleteAllOptions(optionSelect);
				var optionsAry = eval('(' + xmlReq.responseText + ')');
				var i,newOpt;
				for( i=0; i<optionsAry.length; i++ ){
					selected = optionsAry[i].selected==1 ? true : false;
					newOpt = new Option(optionsAry[i].text,optionsAry[i].value,false,selected);
					optionSelect.options[optionSelect.options.length] = newOpt;
				}
			}
		}
		var servletUrl = 'plugins/ReferenceDb/servlet.php?action=getReferenceLocations&location_id='+location_id+'&activityfield_id='+activityfield_id;
		xmlReq.open('GET',servletUrl,true);
		xmlReq.send(null);
	}
	,
	/**
	* get the selected value
	*
	* @param	DomNode	obj
	* @return	int
	*/
	getSelectedValue : function(obj){
		if( obj.selectedIndex<0 ){
			return 0;
		}
		return obj.options[obj.selectedIndex].value;
	}
	,
	/**
	* delete all options of a select field
	*
	* @param	DomNode	obj
	* @return	void
	*/
	deleteAllOptions : function(obj){
		obj.length = 0;
	}
}

