var DANCE_COUNT;

function getDanceCheckbox(tr){
    var res = tr && tr.getElementsByTagName('input');
	if(res)
	{
		return res[0];
	}
	return null;
}

function getDanceList(tr)
{
	var obj=tr && tr.getElementsByTagName('select');
	if(obj)
	{
		return obj[0];
	}
	return null;
}

/*
function getObject(idOrObject){
    if(idOrObject.constructor.name && idOrObject.constructor.name.toLowerCase()=='string')
        idOrObject = id(idOrObject);
    return idOrObject;
}
*/

//need for ODESSA 2010 registration
function onPrimaryDanceChecked(checkbox){
	//var DANCE_COUNT = 3;

    var pdanceVal = 0;                       
    var trId = checkbox.parentNode.parentNode.id;
    var secondaryCB;
	
    for(var i=1; i<=DANCE_COUNT; i++)
	{
		secondaryCB=getDanceCheckbox(id('sdance_'+i));
		if(trId == 'pdance_'+i)
		{
			pdanceVal = i;
			if(checkbox.checked)
				SelectDance(pdanceVal, id('sdance_'+i), false);
			SelectDance(i, id('pdance_'+i), checkbox.checked);
			if(secondaryCB)
			{
				secondaryCB.disabled = checkbox.checked;
			}
		}
		else
		{
			SelectDance(i, id('pdance_'+i), false);
			if(secondaryCB)
			{
				secondaryCB.disabled = false;
			}
		}
	}

    arr['primaryDance'] = (checkbox.checked) ? pdanceVal : '';
    id('td_primaryDance').innerHTML = pdanceVal == 0 || !checkbox.checked ? 'Не выбран!' : id('label_'+trId).innerHTML;
	
	// FIX: no swing classes hack
	var cb=id('rbdance_pdance_3');
	if(cb && cb.checked)
	{
		jQuery('.form_hide_on_no_classes').hide();
		jQuery('#sdance_1').hide();
		jQuery('#sdance_2').hide();
		if(id('rappartments_1').checked || id('rappartments_2').checked)
		{
			validated['appartments_td']=false;
		}
		validated["role_td"] = true;
	}
	else
	{
		jQuery('.form_hide_on_no_classes').show();
		jQuery('#sdance_1').show();
		jQuery('#sdance_2').show();
		if(id('rappartments_1').checked || id('rappartments_2').checked)
		{
			validated['appartments_td']=true;
		}
		validated['role_td']=id('rrole_0').checked || id('rrole_1').checked;
	}
	
    setRed('dance_td', checkDances());
}

function onSecondaryChecked(num, tr, checked)
{
	//var DANCE_COUNT = 3;
	var sdanceVal = 0;
	for(var i=1; i<=DANCE_COUNT; i++)
	{
		var cur = id('sdance_'+i);
		if(cur && !cur.disabled)
		{
			sdanceVal = i;
			var selected = i == num  && checked;
			getDanceCheckbox(cur).checked = selected;
			SelectDance(i, cur, selected);
		}
	}
    arr['secondaryDance'] = (checked) ? sdanceVal : '';
    id('td_secondaryDance').innerHTML = sdanceVal == 0 || !checked ? 'Не выбран!' : id('label_sdance_'+num).innerHTML;
}
 
function SelectDance(num, tr, checked){
	var cb=getDanceCheckbox(tr);
	if(cb)
	{
		cb.checked = checked;
	}
		
	if(arr['dance'+num] == 0)
		SelectDanceLevel(num, 3);
		
    var list = getDanceList(tr);
	if(list)
	{
		list.style.display = checked ? 'inline' : 'none';
	}
}


function SelectDanceLevel(num, value){
    setDanceOptionSelected(num, id('pdance_'+num), value);
    setDanceOptionSelected(num, id('sdance_'+num), value);
}
                                                      
function setDanceOptionSelected(num, tr, value){
    var list = getDanceList(tr);
	
	if(list)
	{
		var list = list.getElementsByTagName('option'); 
		for(var i = 0; i<list.length; i++){
			var opt = list[i];
			if(opt.value == value){
				opt.selected = true;       
				arr['dance' + num] = opt.value;
				var td = id('td_dance' + num);
				if(td)
				{
					td.innerHTML = opt.innerHTML;
				}
			}
		}
	}
}

function checkDances(){
    //var arr = new Array(1,2,3);
    for(var i=1; i<DANCE_COUNT; i++){
        var num = i;
        if(!getDanceCheckbox(id('pdance_'+num)).checked && !getDanceCheckbox(id('sdance_'+num)).checked){
            arr['dance' + num] = 0;
            var tr = id('td_dance' + num);
            tr.innerHTML = 'Не выбран';
        }
    }
	var res = false;
	for(var i=1; i<=DANCE_COUNT; i++)
	{
		res = res || getDanceCheckbox(id('pdance_'+i)).checked;
	}
    return res;
}
