var fuelTax = 21;

var Zone = 0;
var Russia = new Array( 
    new Array(359, 430,	520, 599, 720, 930,	1200),
    new Array(370, 520,	599, 719, 930, 1200,	1500),
    new Array(40,  51,	93,	 126,  156,  174,	300),
    new Array(52,  93,	93,	 120,  156,  174,	210))
    
function open_window(wnd_id, itemOn, zone)
{
    Zone = zone;
	var wnd = document.getElementById(wnd_id);
	if ( wnd && wnd.style )
	{
	    //dumpObjectProperties(itemOn, "item");
//	    alert(ite)
	    //wnd.moveTo(300, 300);
	  	wnd.style.display="block";
	  	//wnd.position
	  	setState(0);
	  	wnd.focus();
 		document.forms[0].fullPrice.value = "";


	}
	else
		alert("Ошибка скрипта: Не найдено описание диалога.");	
}

function disableItem(item_id, state)
{
    var wnd = document.getElementById(item_id);
	if ( wnd && wnd.style )
	{
	    wnd.disabled = state;
	}
	else
		alert("Ошибка скрипта: Не найдено описание элемента.");	
}

function setState()
{
    var packageType = document.forms[0].weight;
    disableItem('weight_selector', !packageType[1].checked);
    disableItem('custom_weight', !packageType[2].checked);
}

function Calculate(country, zoneStr, weightStr)
{
    var zone = parseInt(zoneStr, 10);
    if ( !isFinite(parseInt(zone)) )
        throw "Строка, определяющая зону отправки не является числом.";
    zone--;
    if (zone < 0 || zone > 6)
        throw "Неправильно указана зона.";

    if(arguments.length == 2)
        return Russia[0][zone];
        
    var weight = parseFloat(weightStr);
    if ( !isFinite(weight) )
        throw "Пожалуйста, введите число. В качестве разделителя десятчной части используйте точку '.'.";
    var nStep1 = weight > 10 ? 20 : Math.ceil(weight/0.5);
    var nStep2 = weight > 10 ? Math.ceil(weight - 10) : 0;
    
    return Russia[1][zone] + Russia[2][zone] * (nStep1 - 1) + Russia[3][zone] * nStep2;
}

function DoCalc()
{
    try 
    {
        var cost = 0;
        if (document.forms[0].weight[0].checked)
            cost = Calculate("Russia", Zone);
        else
        {
            var weight = 0;
            var form = document.forms[0];
            if (document.forms[0].weight[1].checked)
            {
                var indexWeight = form.weight_selector;
                weight = indexWeight.options[indexWeight.selectedIndex].value;
            }
            else
                weight = document.forms[0].custom_weight.value;

            cost = Calculate("Russia", Zone, weight);
        }
        var fullCost = Math.ceil(cost + cost * fuelTax / 100.0 );
        // 21% - топливный сбор
	    // 20% - прии оплате получателем   
        document.forms[0].fullPrice.value = "Итого к оплате: " + cost +  " " + ending(fullCost);;

        
    }
    catch(e)
    {
       alert(e);
    }
}

function processKey(event)
{
    if ( event.keyCode == 13)
        DoCalc();
    else if (event.keyCode == 27)
       close_window(document.getElementById('dlg_calc'));
       
}

function showMessage(msg)
{
    document.forms[0].messageBox.value = msg;
}



function ending(cost)
{
    switch (cost % 10)
    {
        case 1: return "рубль";
        case 2:
        case 3:
        case 4: return "рубля";
        default:return "рублей";
    }
}

function close_window(wnd)
{
	//showProps(wnd);
	if ( wnd.style != null)
		wnd.style.display="none";
}

var __lastX = 0;
var __lastY = 0;
var __selectedWindow = null;

function selectTrackWnd(wnd)
{
	__selectedWindow = wnd; 
	if (__selectedWindow == null)
		alert("error");
		
	__dX = event.x - __selectedWindow.style.left;
	__dY = event.y - __selectedWindow.style.top;
	//showProps(__selectedWindow.style);
}
	

function dropTrackWnd(wnd){
};//__selectedWindow = null;}

var t = false;

function mouse_move()
{
	if (__selectedWindow == null)
		return;
	
	//__selectedWindow.moveTo(event.x, event.y);
	__selectedWindow.style.left = event.x - __dX;
	__selectedWindow.style.top  = event.y - __dY;
	
	//__selectedWindow.style(event.x - __lastX, event.y - __lastY);	
	return false;
}

// utils

function getDialog(system_btn)
{
	var dlgDiv = system_btn;
	var depth  = 0;
	for (var i = 0; i < 6; i++)
		dlgDiv = dlgDiv.parentElement;
	
	return dlgDiv;
}