function showControl(ctrl, visibility_only)
{
	if (arguments.length == 1)
	{
		visibility_only = false;
	}
	if (typeof(ctrl) == "string")
	{
		ctrl = document.getElementById(ctrl);
	}

	ctrl.style.visibility = "";
	if (!visibility_only)
	{
		ctrl.style.display = "";
	}
}
function hideControl(ctrl, visibility_only)
{
	if (arguments.length == 1)
	{
		visibility_only = false;
	}
	if (typeof(ctrl) == "string")
	{
		ctrl = document.getElementById(ctrl);
	}

	ctrl.style.visibility = "hidden";
	if (!visibility_only)
	{
		ctrl.style.display = "none";
	}
}

function SetValueAndDisableControl(ctrl, value)
{
	if (typeof(ctrl) == "string")
	{
		ctrl = document.getElementById(ctrl);
	}

	if (ctrl.type != 'select-one')
	{
		ctrl.setAttribute('readonly', 'true');
	}

	ctrl.disabled = true;
	ctrl.value = value;		
}

function enableControl(ctrl)
{
	if (typeof(ctrl) == "string")
	{
		ctrl = document.getElementById(ctrl);
	}

	ctrl.readonly = false;
	ctrl.removeAttribute('readonly');
	ctrl.disabled = false;
}

jQuery(document).ready(function()
{
	$('.sites tr.topsites-title2 td:first').addClass('first_cell');
	$('.sites tr.topsites-title2 td:last').addClass('last_cell');
	$('.sites tr:even').addClass('bg');
	$('.sites.site_list_table tr:step(4,4)').addClass('bg');
	
	$('.banners_open_link').click(function() {
		$(this).toggleClass('opened');
		$(this).next().toggleClass('opened');
	});
	
	$('.date_input').click(function() {
		$('.calendar').css('display', 'block');
	});
	
	$('.close_calendar').click(function() {
		$(this).parent().parent().css('display', 'none');
	});
	
	$('.notice').hover( function() {
		$(this).children('.notice_text').css('display', 'block');
	}, function() {
		$(this).children('.notice_text').css('display', 'none');
	});
	
	$('.close_this').click(function(e) {
		e.stopImmediatePropagation();
		$(this).parent().parent().css('display', 'none');
	});
	
	$('.price_change').click(function(e) {
		e.stopImmediatePropagation();
		$(this).children('.price_change_box').css('display', 'block');
	});
	
	$('.sites tr').each(function(index) {
		$(this).find('.price_change').css('z-index', 1000-index);
	});
});

$(function() {
	$('.scroll_pane').jScrollPane();
});

jQuery.expr[':'].step = function(node,index,meta)
{
	var $index = index;
	var $meta = meta[3].toString().split(',');
	var $step = parseInt($meta[0]);	
	var $start = ($meta.length > 1) ? $meta[1] : 0;

	if ($start!= 0) $start--;

	return ( ( ($index-$start) / $step ) == Math.floor( ( ($index-$start) / $step ) ) && ( ($index-$start) >= 0 )  );	
	
};

function onCalendarChange(is_initialize)
{
	var date_from = document.getElementById('date_from');
	var date_to = document.getElementById('date_to');

	var yf = document.getElementById('year_from_select');
	var mf = document.getElementById('month_from_select');
	var df = document.getElementById('day_from_select');

	var yt = document.getElementById('year_to_select');
	var mt = document.getElementById('month_to_select');
	var dt = document.getElementById('day_to_select');

	if (!date_from || !date_to || !yf || !mf || !df || !yt || !mt || !dt)
	{
		return;
	}

	if (arguments.length == 1 && is_initialize)
	{
		yf.value = date_from.value.substr(0, 4);
		mf.value = date_from.value.substr(4, 2);
		df.value = date_from.value.substr(6, 2);

		yt.value = date_to.value.substr(0, 4);
		mt.value = date_to.value.substr(4, 2);
		dt.value = date_to.value.substr(6, 2);
	}
	else
	{
		date_from.value = yf.value + mf.value + df.value;  
		date_to.value   = yt.value + mt.value + dt.value;  
	}
}

function setCalendarDefault(mode)
{
	var dt = new Date(),
        dt_from,
        dt_to = new Date(),
        DAYS_TO_MS = 1000 * 60 * 60 * 24;
        
	switch (mode)
	{
		case 1: // this week
            dt_from = new Date(dt.getTime() - DAYS_TO_MS * (dt.getDay() - 1));
			break
		
		case 2: // last 7 days
            dt_from = new Date(dt.getTime() - DAYS_TO_MS * 7);
			break
		
		case 3: // this month
            dt_from = new Date(dt.getTime() - DAYS_TO_MS * (dt.getDate() - 1));
			break
		
		case 4: // last 30 days
            dt_from = new Date(dt.getTime() - DAYS_TO_MS * 30);
			break 
            
		case 5: // previous month
            dt_to = new Date(dt.getTime() - DAYS_TO_MS * dt.getDate());
            dt_from = new Date(dt_to.getTime() - DAYS_TO_MS * (dt_to.getDate() - 1));
			break
            
		case 6: // previous week
            dt_from = new Date(dt.getTime() - DAYS_TO_MS * (dt.getDay() - 1 + 7));
            dt_to = new Date(dt.getTime() - DAYS_TO_MS * dt.getDay());
			break
		
		default: 
            dt_from = dt_to = new Date();
			break;
	}

	var date_to = document.getElementById('date_to');
	date_to.value = dt_to.getFullYear().toString() + (dt_to.getMonth() < 9 ? '0' : '') + (dt_to.getMonth() + 1).toString() + (dt_to.getDate() < 10 ? '0' : '') + dt_to.getDate() 
	
	var date_from = document.getElementById('date_from');
	date_from.value = dt_from.getFullYear().toString() + (dt_from.getMonth() < 9 ? '0' : '') + (dt_from.getMonth() + 1).toString() + (dt_from.getDate() < 10 ? '0' : '') + dt_from.getDate() 

	onCalendarChange(true);
}

function selectDiv(id)
{ 
	if (document.selection)
	{ 
		var range = document.body.createTextRange(); 
		range.moveToElementText(document.getElementById(id)); 
		range.select(); 
	} 
	else
	if (window.getSelection)
	{ 
		var range = document.createRange(); 
		range.selectNode(document.getElementById(id)); 
		window.getSelection().addRange(range); 
	} 
}

function onCompanyCheckChange(changeStatus)
{
	if (arguments.length == 0)
	{
		changeStatus = false;
	}

	var ids = getCheckedIds(/company-check-([0-9]+)/, changeStatus);

	changeIdsInUrl('company-enable-all', "cid", ids);
	changeIdsInUrl('company-disable-all', "cid", ids);
	changeIdsInUrl('company-delete', "cid", ids);
}

function onTizerCheckChange(changeStatus)
{
	if (arguments.length == 0)
	{
		changeStatus = false;
	}

	var ids = getCheckedIds(/tizer-check-([0-9]+)/, changeStatus);

	changeIdsInUrl('tizer-enable-all', "tid", ids);
	changeIdsInUrl('tizer-disable-all', "tid", ids);
	changeIdsInUrl('tizer-delete', "tid", ids);
}

function changeIdsInUrl(elname, idname, ids)
{
	var el = document.getElementById(elname);
	if (!el)
	{
		return;
	}

	el.href = el.href.substr(0, el.href.indexOf('&' + idname + '=') + idname.length + 2) + ids;
}

function getCheckedIds(nameRegExp, changeStatus)
{
	var ids = '';
	var elems = document.getElementsByTagName('input');
	for (var i = 0; i < elems.length; ++i)
	{
		var el = elems[i];
		if (nameRegExp.test(el.id))
		{
			if (changeStatus)
			{
				el.checked = !el.checked;
			}

			if (el.checked)
			{
				var id = nameRegExp.exec(el.id)[1];
				if (ids != '')
				{
					ids += ',';
				}
				ids += id;
			}
		}
	}
	return ids;
}

function textCounter(field, countfield, maxlimit)
{
	if (field.value.length > maxlimit) // if too long...trim it!
	{
		field.value = field.value.substring(0, maxlimit);
	}
	else // otherwise, update 'characters left' counter
	{
		countfield.value = 'Осталось ' + (maxlimit - field.value.length);
	}
}

function addJS(src)
{
	var s = document.createElement('script');
	s.setAttribute('type', 'text/javascript');
	s.setAttribute('src', src + "&rnd=" + Math.random());
	document.documentElement.firstChild.appendChild(s);
}

function onNapChange()
{
	var nap1 = document.getElementById('nap1');
	var nap2 = document.getElementById('nap2');
	var nap3 = document.getElementById('nap3');
	var div_numrows = document.getElementById('div_numrows');

	if (nap1.checked || nap2.checked)	// по горизонтали или вертикали
	{
		nap1.checked ? showControl(div_numrows) : hideControl(div_numrows);

		enableControl('numnews');
		enableControl('tablewidth');
		enableControl('tablewidthtype');
		enableControl('bgcolor');
		enableControl('imgbordersize');
		enableControl('imgbordertype');
		enableControl('imgbordercolor');
		enableControl('tizwidth');
		enableControl('imgtextindent');
		enableControl('font');
		enableControl('fontweight');
		enableControl('textdecorat');
		enableControl('fontsize');
		enableControl('titlecolor');
		enableControl('opisfont');
		enableControl('opisfontweight');
		enableControl('opistextdecorat');
		enableControl('opisfontsize');
		enableControl('opiscolor');
		enableControl('titleposition');
		enableControl('cellspacing');
		enableControl('tdspacing');
		enableControl('tdbordersize');
		enableControl('tdbordercolor');
		enableControl('tdcolor');
		enableControl('bordertype');
	}
	else
	if (nap3.checked)	// выезжающим блоком
	{
		hideControl(div_numrows);

		SetValueAndDisableControl('tablewidth', 100);
		SetValueAndDisableControl('tablewidthtype', 1);

		SetValueAndDisableControl('bgcolor', 'FFFFFF');
		SetValueAndDisableControl('imgbordersize', '0');
		SetValueAndDisableControl('imgbordertype', 'solid');
		SetValueAndDisableControl('imgbordercolor', '2D2D2D');
		SetValueAndDisableControl('tizwidth', '200');
		SetValueAndDisableControl('imgtextindent', 3);
		SetValueAndDisableControl('font', 'Tahoma');
		SetValueAndDisableControl('fontweight', 'bold');
		SetValueAndDisableControl('textdecorat', 0);
		SetValueAndDisableControl('fontsize', 12);
		SetValueAndDisableControl('titlecolor', '000000');
		SetValueAndDisableControl('opisfont', 'Tahoma');
		SetValueAndDisableControl('opisfontweight', 'bold');
		SetValueAndDisableControl('opistextdecorat', 0);
		SetValueAndDisableControl('opisfontsize', 12);
		SetValueAndDisableControl('opiscolor', '000000');
		SetValueAndDisableControl('titleposition', 1); 
		SetValueAndDisableControl('cellspacing', '');
		SetValueAndDisableControl('tdspacing', 3);
		SetValueAndDisableControl('tdbordersize', 1);
		SetValueAndDisableControl('tdbordercolor', '');
		SetValueAndDisableControl('tdcolor', 'FFFFFF');
		SetValueAndDisableControl('bordertype', 'solid');
	}	
}

function onCountryCheckChange(obj)
{
    var check = document.getElementsByName("country[]"),
    check_all = document.getElementById("ALL"),
    num_checked = 0;
    if (obj == check_all && check_all.checked)
    {
        for (var i=0; i<check.length; i++) 
          {
            if (check[i] != check_all)
            check[i].checked = false;
          }
    }
    else
    if (obj != check_all && obj.checked)
        check_all.checked = false;
    
    for (var i=0; i<check.length; i++) 
        if (check[i].checked) num_checked++;
        
    if (!num_checked) check_all.checked = true;
}
