// Detect browser type and version
var agt   = navigator.userAgent.toLowerCase();
var bIE   = (agt.indexOf('msie') != -1) && (agt.indexOf('opera') == -1);
var bIE55 = 0;
var bOP   = (agt.indexOf('opera') != -1);
var bGK   = (agt.indexOf('gecko') != -1);
var bVER  = 0;

if (bIE)
{
    if (agt.indexOf("msie 6") != -1)
    bVER = 6;
    else
    if (agt.indexOf('msie 5.5') != -1)
    bVER = 5.5;
    else
    if (agt.indexOf('msie 5') != -1)
    bVER = 5;

    bIE55 = bIE && (bVER >= 5.5);
}
else
if (bOP)
bVER = parseFloat(agt.substring(agt.indexOf('opera')+6));
else
bVER = parseFloat(navigator.appVersion);



var curLITimer = null;
var curLIObj   = null;

function showULMenu(liObj)
{
    if (curLIObj)
    {
        if (curLIObj==liObj)
        {
            hideULMenu();
            return;
        }
        else
        hideULMenu();
    }

    if (!liObj.onmouseout)
    {
        liObj.onmouseout  = mouseOutLI;
        liObj.onmouseover = mouseOverLI;
    }
    liObj.className += ' jshover';
    curLIObj = liObj;
}


function mouseOutLI()
{
    if (curLIObj)
    curLITimer = setTimeout('hideULMenu()', 1000);
}


function mouseOverLI()
{
    if (curLITimer)
    {
        clearTimeout(curLITimer);
        curLITimer = null;
    }
}


function hideULMenu()
{
    mouseOverLI();
    if (curLIObj)
    {
        curLIObj.className = curLIObj.className.replace(/ jshover/i, '');
        curLIObj = null;
    }
}


var maxPriceProgressCnt = 12;
var maxTimeProgressCnt  = 12;

var maxPriceVal  = 50000;
var maxTimeVal   = 200;

function clickSubLI()
{
    libObj = this;


    //hideULMenu();
    var A     = libObj.getElementsByTagName('A')[0];
    var pars  = A.id.split('_');

    libObj.parentNode.parentNode.getElementsByTagName('span')[0].innerHTML = A.innerHTML;

    var price = parseInt(pars[0].substr(1, pars[0].length-1));
    setCyphersValue('priceNumber', price);
    var progressFillInd = parseInt((price / maxPriceVal) * maxPriceProgressCnt);
    document.getElementById('divProgessPrice').className = 'progres a' + progressFillInd;

    var time  = parseInt(pars[1]);
    setCyphersValue('timeNumber', time);
    var progressFillInd = parseInt((time / maxTimeVal) * maxTimeProgressCnt);
    document.getElementById('divProgessTime').className = 'progres a' + progressFillInd;
}


function showContent(liObj, objID)
{
    var ulObj = document.getElementById("showContent");
    if (!ulObj.name)
    {
        ulObj.name = document.getElementById("showContent").getAttribute("name");
    }
    if (ulObj.name)
    {
        ulObj.name = ulObj.name.replace(/current_/,'');
        document.getElementById(ulObj.name).style.display = "none";
    }

    ulObj.name = 'current_'+objID;

    /*document.getElementById(objID).style.display = "block";*/
    $("#" + objID).slideDown("slow");
    liObj.parentNode.parentNode.getElementsByTagName('span')[0].innerHTML = liObj.getElementsByTagName('A')[0].innerHTML;
}

function loadContent(blockShow)
{
    var blockID = self.location.href.replace(/.*#_/,'');
    if (blockShow)
    {
        document.getElementById(blockShow).style.display = 'none';
    }
    if ((blockID == self.location.href) && (blockShow!=''))
    {
        var blockID = blockShow;
    }
    if (blockID)
    {
        if (document.getElementById(blockID))
        {
            var ulObj = document.getElementById("showContent");
            if (!ulObj.name)
            {
                ulObj.name = document.getElementById("showContent").getAttribute("name");
            }
            if (ulObj.name)
            {
                ulObj.name = ulObj.name.replace(/current_/,'');
                document.getElementById(ulObj.name).style.display = 'none';
            }
            document.getElementById(blockID).style.display = 'block';
            document.getElementById("showContent").name = 'current_'+blockID;
            document.getElementById("showULMenu").innerHTML = document.getElementById("a_"+blockID).innerHTML;
        }
    }
}

//--------------------------------------------------------------------------------------

var cypherIDs_1 = ['cypher1_1', 'cypher1_2', 'cypher1_3', 'cypher1_4', 'cypher1_5'];
var cypherIDs_2 = ['cypher2_1', 'cypher2_2', 'cypher2_3'];
var cypherObjs  = [];
var classPrefix = 'calc';

function initCalculator()
{
    if (document.getElementById('Calculator'))
    {
        LIs = document.getElementById('Calculator').getElementsByTagName('LI');
        for (var i=0; i < LIs.length; i++)
        if (LIs[i].className == "select")
        {
            subLIs = LIs[i].getElementsByTagName('LI');
            for (var j=0; j < subLIs.length; j++)
            subLIs[j].onmousedown = clickSubLI;
        }
    }

    initCypherObject('priceNumber', cypherIDs_1);
    initCypherObject('timeNumber',  cypherIDs_2);
}


function initCypherObject(objectName, cypherIDs)
{
    cypherObjs[objectName] = [];
    for (var i=0; i<cypherIDs.length; i++) {
        cypherObjs[objectName].push(document.getElementById(cypherIDs[i]));
    }
}


function setCyphersValue(objectName, value)
{
    var strValue = ''+value+'';
    var diff = cypherObjs[objectName].length-strValue.length;
    if (diff)
    {
        for (var i=1; i<=diff; i++)
        strValue = 'N'+strValue;
    }

    for (var i=0; i<strValue.length; i++) {
        animateCypher(objectName, i, strValue.charAt(i));
    }
}


function animateCypher(objectName, cypherInd, newValue)
{
    var cypherObj = cypherObjs[objectName][cypherInd];
    var curVal = cypherObj.className.substring(classPrefix.length);

    var newVal = newValue;
    if (newVal=='N')
    {
        if (curVal==1)
        {
            cypherObj.className = classPrefix+'N';
            return;
        }
        else
        newVal = 0;
    }

    if (curVal!='N')
    curVal = parseInt(curVal);
    else
    curVal = 0;

    newVal = parseInt(newVal);
    if (curVal!=newVal)
    {
        if (curVal<newVal)
        curVal++;
        else
        curVal--;

        cypherObj.className = classPrefix+curVal;

        if (curVal!=newVal)
        setTimeout('animateCypher("'+objectName+'", '+cypherInd+', "'+newValue+'")', 150);
    }
}


window.onload = initCalculator;