	/*
	*	cmbedit.js - event handlers and helper function of CMBEDIT html control.
	*/
	
	var last_list = null
	var objcmbeditForm = null
	var cmbedit_debug = 0
		
	function cmbedit_onexpand(combo_name, el, offsetWidth, offsetTop, offsetLeft)
	{
		try
		{
			window.event.cancelBubble = true		
		
			var cmblist = window.document.body.all(combo_name + "list")
			var cmbedit = window.document.body.all(combo_name + "edit")
			var img = window.document.body.all(combo_name + "reli")
			if (img.style.visibility == 'hidden') return;		
		
			close_old (cmblist);
			set_position (el, cmbedit, cmblist, offsetWidth, offsetTop, offsetLeft);
		
			if ( cmblist.style.visibility == 'visible' )
				expandcmbList (cmblist, false)	
			else	
				expandcmbList (cmblist, true)
			
		}catch(e){ if ( cmbedit_debug == 1 ) alert("Exception occured: cmbedit_onexpand(); " + e.description)}	
	}
	
	function cmbedit_onselect(name)
	{
		try
		{
			var chbox = window.document.all(name)	
			if ( chbox.checked == true )
				chbox.checked = false
			else
				chbox.checked = true	
	
			cmbedit_onckeck (chbox)
		}catch(e){ if ( cmbedit_debug == 1 ) alert("Exception occured: cmbedit_onselect(); " + e.description)}	
	}
	
	function cmbedit_onckeck(el)
	{
		window.event.cancelBubble = true
		
		if ( el.name != '' ) return;
		
		var name = getspanName(el.parentElement)	
		var edit = window.document.all(name + 'edit')		
		var caption = window.document.all(el.value + name + 'c')
		if ( el.checked == true)
			addEdit (name,edit,el.value,caption.innerText)
		else	
			removeEdit (name,edit,el.value,caption.innerText)
	}
	
	function cmbedit_selectedit (el)
	{
		//expand_combolist (last_list, false)
		
		if ( el.parentElement.name == 'iselected' )
		{
			var r=document.body.createTextRange();
			r.collapse();
			r.moveToElementText(el.parentElement);		
			r.expand("word");
			r.select();		
		}	
	}

	function addEdit(name,parent,id, caption)
	{
		var el = document.createElement("<SPAN name='iselected' id='" + id + name + "span' title='" + caption + "'></SPAN>")
		if ( caption.length > 14 )
			el.innerHTML = "<span language='javascript' onclick='select_edit_item(this)' STYLE='TEXT-DECORATION: underline'>" + caption.substring(0,34) + "...</span>; ";
		else	
			el.innerHTML = "<span language='javascript' onclick='select_edit_item(this)' STYLE='TEXT-DECORATION: underline'>" + caption + "</span>; ";

		parent.appendChild (el)
		
		formAddElement ( name, id)
	}

	function removeEdit(name,parent,id)
	{
		try
		{			
			var el = window.document.all(id + name + "span")		
			parent.removeChild(el)		
			
			formRemoveElement (name, id)			
			
		}catch(e){ if ( cmbedit_debug == 1 ) alert("Exception occured: removeEdit(); )" + e.description)}		
	}
	
	function formAddElement(name, val)
	{	
		try
		{							
			var el = document.createElement("<INPUT xmltype='text' name='" + name + "' id='" + val + name + "input' type='hidden'></INPUT>")
			el.value = val;
			
			objcmbeditForm.appendChild (el)
		}catch(e){ if ( cmbedit_debug == 1 ) alert("Exception occured: formAddElement)" + e.description)}	
	}

	function formRemoveElement(name,id)
	{
	try
		{			
			
			var el = objcmbeditForm.all(id + name + "input");
				
			var parent = el.parentElement;
			parent.removeChild(el)
		}catch(e)
		{
			if ( cmbedit_debug == 1 ) alert ("Exeption occured: formRemoveElement(); " + e.description)
		}	
	}

	function set_position(el, cmbedit, cmblist, offsetWidth, offsetTop, offsetLeft)
	{
		var tds = el.parentElement.getElementsByTagName("TD")
		var offset = 0
	
		for ( i = 0; i < tds.length; i++)
		{
			offset = offset + tds(i).offsetWidth		
			if ( tds(i).id == el.id )
				break;
		}	
			
		var top = getOffsetTop (cmbedit)
		var left = ItemMainForm.offsetLeft	
	
		cmblist.style.posLeft = left + offsetLeft
		cmblist.style.posTop = top + cmbedit.offsetHeight + offsetTop
		cmblist.style.posWidth = offsetWidth
	}
	
	function getOffsetTop (el)
	{
		if ( el.tagName == 'BODY')
			return 0;
		
		var offset = 0;
		if ( el.name == 'offsetMarker' )
			offset = el.offsetTop;
			
		var top = getOffsetTop(el.parentElement);
		return top + offset;
	}

	function getspanName (el)
	{
		if ( el.tagName == 'SPAN' )
			return el.name;
			
		var name = getspanName (el.parentElement);	
		return name;
	}
	function expandcmbList (el, is_expand)
	{
		var vis = 'visible'
			
		if ( el == null ) return;
		
		if ( is_expand == false )
		{
			var vis = 'hidden'			
		}
		
		el.style.visibility = vis		
	}
	
	function close_old(clist)
	{
		if ( last_list != null )
		{
			 if (last_list.id != clist.id)
				expandcmbList (last_list, false);
		}
				
		last_list = clist;
	}