// <--
// Combo Check Control 
// (c) 2005 Vladimir Insideout (vcaine@gmail.com)
// <--
		
//_keys - массив ключей (values) для checkbox-ов. Имена checkbox-ов - unique_name[keys[1]], unique_name[keys[2]] и т.д.
//_values - массив значений (подписей) для checkbox-ов. Соотв. массиву keys;
//_unique_name - уникальное имя для элемента;
//_text_info - список падежей подписей, например: new Array("элемент", "элемента", "элеиентов"); (Нарпимер, "выбрано 5 элементов")
//_unique_name - массив выбранных значений (keys);
//_formname - имя формы
//_any - подпись для элемента. озн. выбрать все. Если элемент не нужен - пустая строка "";
		
function CreateCheckboxCombo(_keys, _values, _unique_name, _text_info, _selected, _formname, _any, _width, _height)
{
	if (_formname=="") _formname=document.forms[0].name;
	Combos[_unique_name]=new Array(_keys, _text_info, _formname, _any, 0);
	
	if (_width=="") _width=190; if (_height=="") _height=200;
	
	document.write("<table width="+_width+" cellpadding=0 cellspacing=0 style=\"border:1px solid; border-color: #808080 white white #808080;\">");
	document.write("<tr><td id=\""+_unique_name+"_top\" style=\"border:1px solid; border-color: black #D4D0C8 #D4D0C8 black; 	background: url('/images/dropdown.gif'); background-repeat:no-repeat;background-position: right top; background-color:white; padding:1px 3px; color:black;\">");
	document.write("Выбрано: <span id='"+_unique_name+"_num'>0</span> <span id='"+_unique_name+"_txt'>"+_text_info[2]+"</span>");
	document.write("</td></tr></table>");
			
	document.write("<div id=\""+_unique_name+"_dropdown\" style=\"position:absolute; display:none; height:"+_height+"; width:"+_width+"; overflow-y:auto; border:1px solid black; background-color:white;\">");
	if (_any!="") document.write("<input onclick=\"DDCCheckAll('"+_unique_name+"')\" name='"+_unique_name+"[all]' value='all' type='checkbox' value=0>"+_any+"<br>");
	for (ind_ch in _keys)
		document.write("<input onclick=\"DDCUncheckFirst('"+_unique_name+"')\" type='checkbox' name='"+_unique_name+"["+_keys[ind_ch]+"]' value='"+_keys[ind_ch]+"'>"+_values[ind_ch]+"<br>");
	document.write("</div>");
	DDCInitialize(_unique_name, _selected);
}

function CheckboxComboSelectedCount(name)
	{
		return Combos[name][4];
	}


function DDCCheckAll(name)
{
	var _keys=Combos[name][0];
		
	if (window.event.srcElement.form.elements[name+"[all]"].checked==false) 
		{
		if (Combos[name][4]==_keys.length) 
			{
			for (ind_ch in _keys) window.event.srcElement.form.elements[name+"["+_keys[ind_ch]+"]"].checked=false;
			eval(name+"_num").innerText=Combos[name][4]=0;
			}
		else eval(name+"_num").innerText=Combos[name][4];
		}
	else 
		{
		for (ind_ch in _keys) window.event.srcElement.form.elements[name+"["+_keys[ind_ch]+"]"].checked=true;
		eval(name+"_num").innerText="";
		Combos[name][4]=_keys.length;
		}
		
	DDCTextUpdate(name);
}
			
function DDCUncheckFirst(name)
{
	if (Combos[name][3]!="")
		window.event.srcElement.form.elements[name+"[all]"].checked=false;
			
	if (window.event.srcElement.form.elements[window.event.srcElement.name].checked==false) Combos[name][4]--;
	else Combos[name][4]++;
	
	eval(name+"_num").innerText=Combos[name][4];
	DDCTextUpdate(name);
}
			
function DDCTextUpdate(name)
{
	var _text_info=Combos[name][1];
				
	var numb=eval(name+"_num").innerText;
	if (numb=="") {eval(name+"_txt").innerText=Combos[name][3]; return; }
	else numb=Combos[name][4];
	var ostatok=numb-Math.floor(numb/10)*10;
	var index=2;
	if ((ostatok==1) && (numb!=11)) index=0;
	if (((ostatok==2) || (ostatok==3) || (ostatok==4)) && ((numb!=12) && (numb!=13) && (numb!=14))) index=1;
	eval(name+"_txt").innerText=_text_info[index];
}
			
function DDCInitialize(name, _selected)
{
	document.onclick=DDCMultiComboHandler;
	var _formname=Combos[name][2];
			
	for (ind_sel in _selected)
	{
		if (_selected[ind_sel]=="all")
		{
			eval("document."+_formname).elements[name+"[all]"].click();
			return;
		}
		
		eval("document."+_formname).elements[name+"["+_selected[ind_sel]+"]"].checked=true;
	}
	eval(name+"_num").innerText=Combos[name][4]=_selected.length;
	DDCTextUpdate(name);			
}
			
function DDCMultiComboHandler()
{
	for (combo in Combos)
	{
		if ((window.event.srcElement.id==combo+"_top") && (eval(combo+"_dropdown").style.display=="none"))
		{
			eval(combo+"_dropdown").style.display="";				
			continue;
		}
			
		if ((window.event.srcElement.id==combo+"_dropdown") || (window.event.srcElement.parentElement.id==combo+"_dropdown")) continue;
		eval(combo+"_dropdown").style.display="none";	
	}
}
		
var Combos=new Array();
