// JavaScript Document

var gobjUtil;

function ListManager(objContainer,objTarget,objUtil){
	this.container=objContainer;
	this.target=objTarget;
	this.targetValue=null;
	
	if(objUtil==null){
		objUtil=this.util=new Utility();
	}
	else{
		gobjUtil=this.util=objUtil;
	}
	
	this.data=null;
	this.onClick=null;
	this.itemListClass=null;
	this.itemListOverClass=null;	
	
	this.currItemIdx=0;
	this.noOfItems=0;
	
	this.haveFocus=0;	
}

ListManager.prototype.dataBind=function (){
	var i;
	var sHTML="";
	var sOnClick=this.onClick?" onClick=\"" + this.onClick +"\" ":" ";
	var sClass=(this.itemListOverClass && this.itemListClass) ? " class=\"" + this.itemListClass + "\" style=\"width:100%;\" " : " style=\"font-family:Arial, Helvetica, sans-serif;font-size:11px;background-color:#FFFFFF;border:0px none;width:100%;padding-left:2px;\" ";
	this.currItemIdx=0;
	if (this.data){
		this.noOfItems=this.data.length;
		sHTML+="<table id=\"tableListContainer\" style=\"width:98%;\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">";
		for (j=0;j<this.data.length;j++){
			i=j+1;
			sHTML+="<tr>";
			sHTML+="<td align=\"left\">";
			sHTML+="<input type=\"hidden\" id=\"hListItem" + i + "\" name=\"hListItem" + i + "\" value=\"" + this.data[j][0] + "\">";
			sHTML+="<input type=\"text\"  readonly=\"readonly\" id=\"txtListItem" + i + "\" name=\"txtListItem" + i + "\" value=\"" + this.data[j][1] + "\" onMouseOver=\"listItem_onMouseOver(" + i +");\""+ sOnClick + sClass +">";
			sHTML+="</td>";
			sHTML+="</tr>";
		}	
		sHTML+="</table>";
		this.util.setObjInnerHTML(this.container,sHTML,false);
		if(BrowserDetect.browser=="Explorer"){
			var compH=this.container.scrollHeight-parseInt(this.container.style['height']);
			if(compH>0){
				var w=parseInt(this.container.style["width"])-16;
				this.util.setObjDim(this.util.findObj('tableListContainer'),w,parseInt(this.container.style['height']),false);				
			}			
		}		
	}	
	else{
		this.noOfItems=0;
		if(BrowserDetect.browser=="Explorer"){
			this.hide(true);
		}
		else{
			this.hide(false);
		}
	}	
}

ListManager.prototype.text=function(){
	if(this.noOfItems>0){
		if(this.currItemIdx>0){
			return this.util.findObj("txtListItem"+this.currItemIdx).value;
		}
		else
		{
			return this.util.findObj("txtListItem1").value;
		}
	}
	return null;
	
}

ListManager.prototype.value=function(){
	if(this.noOfItems>0){
		if(this.currItemIdx>0 ){
			return this.util.findObj("hListItem"+this.currItemIdx).value;
		}
		else{
			return this.util.findObj("hListItem1").value;
		}
	}	
	return null;
}

ListManager.prototype.show=function(offsetT,offsetL,offsetW,offsetH,hideSelects){
	if (this.container.style['display'].indexOf("none")!=-1){
		this.util.addEvent(this.container,"focus",container_onFocus);
		var arrPoint=this.util.getObjPosition(this.target);
		arrPoint[0]+=offsetL;
		arrPoint[1]+=offsetT;
		this.util.setObjPosition(this.container,arrPoint);
		var w=parseInt(this.target.style["width"]);
		this.util.setObjDim(this.container,w+offsetW,105+offsetH,false);		
		this.util.displayObj(this.container,true);
		
		if(hideSelects && BrowserDetect.browser=="Explorer"){
			this.util.displayCtrlsBObject(this.container,false);
			this.util.setObjPosition(this.container,new Array(arrPoint[0]+2,arrPoint[1]));
		}
	}	
}

ListManager.prototype.hide=function(showSelects){
	if (this.container.style['display'].indexOf("none")==-1){
		this.util.removeEvent(this.container,"focus",container_onFocus);
		this.noOfItems=0;
		this.currItemIdx=0;
		this.util.setObjInnerHTML(this.container,"Loading...Please wait",false);
	
		if(showSelects && BrowserDetect.browser=="Explorer"){
			var arrPoint=this.util.getObjPosition(this.container);
			this.util.setObjPosition(this.container,new Array(arrPoint[0]-2,arrPoint[1]));
			this.util.displayCtrlsBObject(this.container,true);
		}		
		this.util.displayObj(this.container,false);
	}
}

ListManager.prototype.navigate=function(dir){	
	if(this.noOfItems>0){
		if(this.currItemIdx>0){
			if (this.itemListOverClass && this.itemListClass){
				this.util.setObjClass("txtListItem"+this.currItemIdx,this.itemListClass);
			}
			else{
				this.util.setObjStyle("txtListItem"+this.currItemIdx,'backgroundColor','#FFFFFF');
				this.util.setObjStyle("txtListItem"+this.currItemIdx,'color','#000000');												
			}
		}
		if(dir==0){
			if(this.currItemIdx<this.noOfItems){
				this.currItemIdx++;
			}
			else{
				this.currItemIdx=1;
			}
		}
		else{
			if(this.currItemIdx>1){
				this.currItemIdx--;
			}
			else{
				this.currItemIdx=this.noOfItems;
			}
		}
		
		if (this.itemListOverClass && this.itemListClass){
			this.util.setObjClass("txtListItem"+this.currItemIdx,this.itemListOverClass);
		}
		else{
			this.util.setObjStyle("txtListItem"+this.currItemIdx,'backgroundColor','#111977');
			this.util.setObjStyle("txtListItem"+this.currItemIdx,'color','#FFFFFF');						
		}		
			
		this.util.findObj("txtListItem"+this.currItemIdx).focus();
		this.target.focus();	
		
	}				
}

function listItem_onMouseOver(itemIdx){
	var self=oListManager;
	var oCurrListItem=self.util.findObj("txtListItem"+self.currItemIdx);	
	if(self.currItemIdx>0){
		if (self.itemListClass && self.itemOverListClass){
			self.util.setObjClass("txtListItem"+self.currItemIdx,self.itemListClass);
		}
		else{
			self.util.setObjStyle("txtListItem"+self.currItemIdx,'backgroundColor','#FFFFFF');
			self.util.setObjStyle("txtListItem"+self.currItemIdx,'color','#000000');												
		}	
	}
	if (self.itemListClass && self.itemOverListClass){
			self.util.setObjClass("txtListItem"+itemIdx,self.itemListOverClass);
		}
		else{
			self.util.setObjStyle("txtListItem"+itemIdx,'backgroundColor','#111977');
			self.util.setObjStyle("txtListItem"+itemIdx,'color','#FFFFFF');
			self.util.setObjStyle("txtListItem"+itemIdx,'cursor','default');						
		}		
	self.currItemIdx=itemIdx;	
}

function container_onFocus(){
	var self=oListManager;
	self.haveFocus=1;
	self.target.focus();	
	self.target.value=self.target.value;
}








