mlSelect=function(){
	this.init();
}

mlSelect.prototype.init=function(){
	this.settingProps=['container','className','dropDownIco'];
	this.settings=[];
	this.settings['container']=document.body;
	this.settings['dropDownIco']='/core/tools/lib/img/mlSelectDropdown.gif';
	this.settings['className']='mlSelect';
	this.options=[];
	this.selectedIndex=-1;
	this.value='';
}
mlSelect.prototype.setProps=function(pProps){
	if(!pProps) return;
	var props=this.settingProps;
	var numProps=props.length;
	for(var i=0;i<numProps;i++){
		var p=props[i];
		if(pProps[p]!=undefined) this.settings[p]=pProps[p];
	}
}
mlSelect.prototype.setProperty=function(pName_s,pValue){
	this.settings[pName_s]=pValue;
}
mlSelect.prototype.appendElement=function(pType_s,pId_s,pParentNode_o,pClassName_s,pContent_s){
	var retVal=pParentNode_o.appendChild(document.createElement(pType_s));
	retVal.id=pId_s;
	retVal.className=pClassName_s;
	if(pContent_s!='') retVal.innerHTML=pContent_s;
	return retVal;
}
mlSelect.prototype.getEventTarget=function(e){return e.srcElement?e.srcElement:e.target;}
mlSelect.prototype.create=function(pInstanceName_s, pProps){
	if(pProps) this.setProps(pProps);
	this.instanceName=pInstanceName_s;
	var n=this.instanceName;
	var oBox=this.createBox();
}
mlSelect.prototype.createBox=function(){
	var n=this.instanceName;
	var selOuter=this.appendElement('div',n+'_selOuter',this.settings['container'],this.settings['className'],'');
	var selIco=this.appendElement('img',n+'_selIco',selOuter,'','');
	var selBox=this.appendElement('div',n+'_selBox',selOuter,'','');
	var selList=this.appendElement('ul',n+'_selList',selOuter,'','');
	selIco.src=this.settings['dropDownIco'];
	Spry.Utils.addEventListener(selBox,'click',function(e){if($(mlSelect.instanceName+'_selList').style.display=='block') mlSelect.hideSelList();else mlSelect.showSelList();e.cancelBubble=true;return false;},false);
	Spry.Utils.addEventListener(selIco,'click',function(e){if($(mlSelect.instanceName+'_selList').style.display=='block') mlSelect.hideSelList();else mlSelect.showSelList();e.cancelBubble=true;return false;},false);
	Spry.Utils.addEventListener(selList,'click',function(e){e.cancelBubble=true;return false;},false);
	Spry.Utils.addEventListener(document.body,'click',function(){mlSelect.hideSelList();},false);
	return selOuter;
}
mlSelect.prototype.addOption=function(value,text){
	var n=this.instanceName;
	var pos=this.options.length;
	var ne=this.appendElement('li',n+'_selListItem_'+pos,$(n+'_selList'),'',text);
	ne.setAttribute('value',value);
	ne.setAttribute('selIndex',pos);
	this.options[pos]=[];
	this.options[pos]['object']=ne;
	this.options[pos]['value']=value;
	this.options[pos]['text']=text;
	Spry.Utils.addEventListener(ne,'click',function(e){mlSelect.onOptionClick(mlSelect.getEventTarget(e).getAttribute('selIndex'));},false);
	if(pos==0) this.onOptionClick(0,true);
}
mlSelect.prototype.showSelList=function(){$(mlSelect.instanceName+'_selList').style.display='block';}
mlSelect.prototype.hideSelList=function(){$(mlSelect.instanceName+'_selList').style.display='none';}
mlSelect.prototype.onOptionClick=function(index,silent){
	this.hideSelList();
	if(index==this.selectedIndex) return;
	this.selectedIndex=index;
	this.value=this.options[index].value;
	this.updateSelBoxCont();
	if(!silent) this.onPostOptionClick();
}
mlSelect.prototype.onPostOptionClick=function(){
	if(this.onChange) this.onChange();
}
mlSelect.prototype.updateSelBoxCont=function(){
	$(mlSelect.instanceName+'_selBox').innerHTML=this.options[this.selectedIndex].text;
}


