
/**
* Submitib formi nimega määratud formi ja paneb formis
* action_cmd väärtuseks sisestatud parameetri action
*/
function SubmitForm (formname, action)
{
    var form = eval ("document." + formname);

    form.action_cmd.value = action;
    form.submit();
}

/**
* annab mingi vormi vormimuutujale väärtuseks mingi väärtuse
*/
function SetFormValue (formname, item, value)
{
    var variable = eval("document." + formname + '.' + item);
    variable.value = value;
}

function EmptySelect(selObject)
{
    for (var xc = (selObject.options.length - 1); xc >= 0; xc--)
    {
        selObject.options[xc] = null;
    }
    selObject.selectedIndex = -1;
}

/**
* Funktsiooni kutsutakse välja omaniku identifikaatori muutmisel
*/
function CalcTrafficOwner ()
{
    var f = document.form_calc_traffic_data;

    var obj_owner_id = f.form_calc_traffic_data_owner_id;
    var obj_owner_code = f.form_calc_traffic_data_owner;
    var obj_tenant_code = f.form_calc_traffic_data_tenant;
    var obj_regnumber = f.form_calc_traffic_data_regnumber;

    var owner_id = obj_owner_id.options[obj_owner_id.selectedIndex].value;
    var layer_tenant = document.getElementById('layer_hide_tenant');
    var layer_discount = document.getElementById('layer_hide_discount');

    switch (owner_id)
    {
        case '0':
        {
            if (1 == FieldSwitchStatus)
            {
                FieldSwitchStatus = 0;
                tmp1 = getObject('form_calc_traffic_data_owner_1').innerHTML;
                tmp2 = getObject('form_calc_traffic_data_owner_2').innerHTML;
                getObject('form_calc_traffic_data_owner_1').innerHTML = getObject('form_calc_traffic_data_tenant_1').innerHTML;
                getObject('form_calc_traffic_data_owner_2').innerHTML = getObject('form_calc_traffic_data_tenant_2').innerHTML;
                getObject('form_calc_traffic_data_tenant_1').innerHTML = tmp1;
                getObject('form_calc_traffic_data_tenant_2').innerHTML = tmp2;

                tmp1 = getObject('tenant_place').value;
                getObject('tenant_place').value = getObject('place').innerHTML;
                getObject('place').innerHTML = tmp1;
            }
            obj_tenant_code.value = '';
            ChangeRowVisibility('layer_hide_tenant', "collapse");

            /// omaniku lahter readonly ja halliks
            obj_tenant_code.className = 'inptTxtDisabled';
            obj_tenant_code.readOnly = true;

            break;
        }
        case '-1':
        {
            if (0 == FieldSwitchStatus)
            {
                FieldSwitchStatus = 1;

                // vaheta tekstid
                tmp1 = getObject('form_calc_traffic_data_owner_1').innerHTML;
                tmp2 = getObject('form_calc_traffic_data_owner_2').innerHTML;
                getObject('form_calc_traffic_data_owner_1').innerHTML = getObject('form_calc_traffic_data_tenant_1').innerHTML;
                getObject('form_calc_traffic_data_owner_2').innerHTML = getObject('form_calc_traffic_data_tenant_2').innerHTML;
                getObject('form_calc_traffic_data_tenant_1').innerHTML = tmp1;
                getObject('form_calc_traffic_data_tenant_2').innerHTML = tmp2;

                tmp1 = getObject('tenant_place').value;
                getObject('tenant_place').value = getObject('place').innerHTML;
                getObject('place').innerHTML = tmp1;
            }

            ChangeRowVisibility('layer_hide_tenant', "visible");

            /// omaniku lahter readonly ja halliks
            obj_tenant_code.className = 'inptTxt';
            obj_tenant_code.readOnly = false;

            break;
        }
        default:
        {
            if (0 == FieldSwitchStatus)
            {
                FieldSwitchStatus = 1;

                // vaheta tekstid
                tmp1 = getObject('form_calc_traffic_data_owner_1').innerHTML;
                tmp2 = getObject('form_calc_traffic_data_owner_2').innerHTML;
                getObject('form_calc_traffic_data_owner_1').innerHTML = getObject('form_calc_traffic_data_tenant_1').innerHTML;
                getObject('form_calc_traffic_data_owner_2').innerHTML = getObject('form_calc_traffic_data_tenant_2').innerHTML;
                getObject('form_calc_traffic_data_tenant_1').innerHTML = tmp1;
                getObject('form_calc_traffic_data_tenant_2').innerHTML = tmp2;

                tmp1 = getObject('tenant_place').value;
                getObject('tenant_place').value = getObject('place').innerHTML;
                getObject('place').innerHTML = tmp1;

            }
            obj_tenant_code.value = xcodes[owner_id];
            ChangeRowVisibility('layer_hide_tenant', "visible");

            /// omaniku lahter readonly ja halliks
            obj_tenant_code.className = 'inptTxtDisabled';
            obj_tenant_code.readOnly = true;

            break;
        }
    }

    return true;
}

/**
* Funktsioon teeb järgmist:
* Kui omaniku identifikaator > 0 siis vaatame kas rentniku kood on 11 märki pikk(isik)
* Kui kood on 11 märki pikk, siis lubame soodustuse valiku, muul juhul keelame soodustuse valiku
*
* Kui omaniku identifikaator = 0, siis vaatame kas omaniku kood on 11 märki pikk (isik)
* kui kood on 11 märki pikk, siis lubame soodustuse valiku, muul juhul keelame soodustuse valiku
*/
function CalcTrafficDiscount ()
{
    var f = document.form_calc_traffic_data;

    var obj_owner_id = f.form_calc_traffic_data_owner_id;
    var obj_owner_code = f.form_calc_traffic_data_owner;
    var obj_tenant_code = f.form_calc_traffic_data_tenant;
    var obj_discount_type = f.form_calc_traffic_data_discount;
    var owner_id = obj_owner_id.options[obj_owner_id.selectedIndex].value;

    if (!obj_discount_type)
    {
        return ;
    }

    if (11 == obj_owner_code.value.length) // isik
    {
        obj_discount_type.className = 'inptTxt';
        obj_discount_type.disabled = false;
    }
    else
    {
        obj_discount_type.selectedIndex = 0;
        obj_discount_type.className = 'inptTxtDisabled';
        obj_discount_type.disabled = true;
    }

    if (0 != owner_id)
    {
        obj_discount_type.selectedIndex = 0;
        obj_discount_type.className = 'inptTxtDisabled';
        obj_discount_type.disabled = true;
    }
}

/**
* Funktsioon teeb aktiivseks mingi välja vastavalt omaniku ID valikule
*/
function TenantRegFocus()
{
    var f = document.form_calc_traffic_data;
    var obj_owner_id = f.form_calc_traffic_data_owner_id;
    var obj_tenant_code = f.form_calc_traffic_data_tenant;
    var obj_regnumber = f.form_calc_traffic_data_regnumber;
    var owner_id = obj_owner_id.options[obj_owner_id.selectedIndex].value;

    if (0 == owner_id)
    {
        f.form_calc_traffic_data_owner.focus();
    }
    else
    {
    }
    return true;
}

/**
* Koodijupp kaotab tabeli rea või lubab tabeli rea
*/
function ChangeRowVisibility(itemname, strVisibility)
{
    // AUTHOR: http://www.gtalbot.org/DHTMLSection/TableRowColumnCollapse.html
    /* Mozilla 1.8alpha; see bug 77019 and bug 242368; must be higher than 1.7.x
    Mozilla 1.8a2 supports accordingly dynamic collapsing of rows in both border-collapse models
    but not 1.7.x versions */
    if(navigator.product == "Gecko" && navigator.productSub && navigator.productSub > "20041010" && (navigator.userAgent.indexOf("rv:1.8") != -1 || navigator.userAgent.indexOf("rv:1.9") != -1))
    {
        var item = document.getElementById(itemname);
        item.style.visibility = strVisibility;
    }
    else if(strVisibility == "visible")
    {
        if(document.all && document.compatMode && document.compatMode == "CSS1Compat" && !window.opera)
        {
            var item = document.getElementById(itemname);
            item.style.display = "block";
        }
        else if(document.getElementById && document.getElementById("idtable").rows)
        // Mozilla prior to 1.8a2, Opera 7.x and MSIE 5+
        {
            var item = document.getElementById(itemname);
            item.style.display = "table-row";
        };
    }
    else if(strVisibility == "collapse")
    {
        var item = document.getElementById(itemname);
        item.style.display = "none";
    };
}

/**
*/
function FormatCalcForm ()
{
    var f = document.form_calc_traffic;
    var obj_tenant_code = f.form_calc_traffic_tenant;
    var obj_discount_type = f.form_calc_traffic_discounttype;

    obj_tenant_code.disabled = false;
    obj_discount_type.disabled = false;
}


function UpdateCountyInformation(targetId, locationId)
{
    if ('' != locationId)
    {
        getObject(targetId).innerHTML = county_list[county_match[locationId]];
    }
}

function getObject(name)
{
    var ns4 = (document.layers) ? true : false;
    var w3c = (document.getElementById) ? true : false;
    var ie4 = (document.all) ? true : false;

    if (ns4) return eval('document.' + name);
    if (w3c) return document.getElementById(name);
    if (ie4) return eval('document.all.' + name);
    return false;
}

/**
* Funktsiooni kuvab teksti "esimesel võimalusel valiku kohta"
*/
function CalcTrafficSetPrio ()
{
    var f = document.form_calc_traffic_data;
    var obj_start = f.form_calc_traffic_data_startdate;
    var layer_prio = document.getElementById('layer_hide_prio');

    obj_start_id = obj_start.options[obj_start.selectedIndex].value;
    if (1 == obj_start_id)
    {
        ChangeRowVisibility('layer_hide_prio', "visible");
    }
    else
    {
        ChangeRowVisibility('layer_hide_prio', "collapse");
    }
    return true;
}


/**
* Funktsiooni parandab postiindeksiotsingulingi"
*/
function SearchZip(form_type)
{
    if ('schedule' == form_type)
    {
        var a = document.form_calc_traffic_schedule_billdata.form_calc_traffic_schedule_billdata_client_address.value.match(/^[a-z\s]+/i);
        var l = document.form_calc_traffic_schedule_billdata.form_calc_traffic_schedule_billdata_client_area.options[document.form_calc_traffic_schedule_billdata.form_calc_traffic_schedule_billdata_client_area.selectedIndex].innerHTML;
    }
    else
    {
        var a = document.form_calc_traffic_offer_billdata.form_calc_traffic_offer_billdata_client_address.value.match(/^[a-z\s]+/i);
        var l = document.form_calc_traffic_offer_billdata.form_calc_traffic_offer_billdata_client_area.options[document.form_calc_traffic_offer_billdata.form_calc_traffic_offer_billdata_client_area.selectedIndex].innerHTML;
    }

    if (null == a)
    {
        a = '';
    }
    if ('---' == l)
    {
        l = '';
    }
    zl = getObject('ZipLink');
    zl.href = 'http://www.post.ee/?id=1069&op=sihtnumbriotsing&tanav=' + a + '&linn=' + l;
}
/*
* tegeleb mobiil-id akna avamise ja uuendamisega
*/
var tickerTimeout = false;
var retryTimeout = false;
function UpdateMobiilId(request, number)
{
    var oXMLHttpRequest = new XMLHttpRequest;
    if ('undefined' == number)
    {
        oXMLHttpRequest.open("GET", "custom/Mobiil-ID/index.php?Action=" + request, false);
    }
    else
    {
        oXMLHttpRequest.open("GET", "custom/Mobiil-ID/index.php?Action=" + request + '&Number=' + number, false);
    }
    oXMLHttpRequest.onreadystatechange = function()
    {
        if (this.readyState == XMLHttpRequest.DONE)
        {
            mid = document.getElementById('MobiilId');
            result = oXMLHttpRequest.responseText.split('<split>');
            if (2 == result.length)
            {
                switch (result[0])
                {
                    case 'rResult':
                        window.setTimeout( function () {window.location.reload();}, 5000);
                    case 'rInput':
                    {
                        if (false !== tickerTimeout)
                        {
                            clearTimeout(tickerTimeout);
                            tickerTimeout = false;
                        }
                        if (false !== retryTimeout)
                        {
                            clearInterval(retryTimeout);
                            retryTimeout = false;
                        }

                        // vahetame MID logo input formiks
                        mid.innerHTML = result[1];
                        break;
                    }
                    case 'rCheck':
                    {
                        // vahetame inputi vahetekstiks
                        mid.innerHTML = result[1];
                        // paneme teele päringu, et kontrollida kas mobiil id on olemas 1ms on timeout
                        retryTimeout = window.setTimeout( function () {UpdateMobiilId('Process', number);}, 1);
                        break;
                    }
                    case 'rProgress':
                    {
                        mid.innerHTML = result[1];
                        retryTimeout = window.setTimeout( function () {UpdateMobiilId('Wait');}, 10000);
                        if (false === tickerTimeout)
                        {
                            tickerTimeout = setInterval( function() {UpdateMobiilIdTimer()}, 1000);
                        }
                        break;
                    }
                    case 'rWait':
                    {
                        retryTimeout = window.setTimeout( function () {UpdateMobiilId('Wait');}, 3000);
                        break;
                    }
                    default:
                    {
                        UpdateMobiilId('Input');
                        break;
                    }
                }
            }
            else
            {
                UpdateMobiilId('Input');
            }
        }
    }
    oXMLHttpRequest.send(null);
}
// lihtne script mis kerib sekundeid
function UpdateMobiilIdTimer()
{
    mt = document.getElementById('MobiilIdTimer');
    if (null !== mt)
    {
        if ('' == mt.innerHTML)
        {
            mt.innerHTML = 0;
        }
        else
        {
            cnt = parseInt(mt.innerHTML);
            mt.innerHTML = ++cnt;
        }
    }
    else
    {
        if (false !== tickerTimeout)
        {
            clearTimeout(tickerTimeout);
            tickerTimeout = false;
        }
    }
}
