﻿convertBase="0123456789abcdefghijklmnopqrstuvwxyz";
function convert(input,origin,dest) 
{
    input=input.toString().toLowerCase(); origin=origin.toString(); dest=dest.toString()
    var b=0; var Result="";
    if (Number(origin)>convertBase.length || Number(dest)>convertBase.length || Number(origin)<2 || Number(dest)<2) 
    {
        return "Invalid numbering system";
    }
    for (var c=1;c<=input.length;c++) 
    { 
        b+=convertBase.indexOf(input.substring(c-1,c))*(Math.pow(origin,input.length-c)); 
        if(convertBase.indexOf(input.substring(c-1,c)) > Number(origin)) 
        {
            return 'Character "'+input.substring(c-1,c)+'" not present in origin system'; 
        }
    }
    var a=Math.floor(Math.log(b)/Math.log(dest))
    while (a>-1) 
    {
        var e=Math.pow(dest,a)
        a--;
        var d=(b-b%e)/e+1;
        b%=e;
        Ciffer=convertBase.substring(d-1,d);
        Result+=Ciffer;
    }
    return Result
}
function checkBit(value, mask)
{
    return (value.substring(value.length-mask, value.length-mask-1) == "1");
}
function checkData(originControl, destinationControl)
{
    destinationControl.length = 0;
    var selectedOrigin = originControl.selectedIndex;
   
    if (selectedOrigin != -1)
    {
        var wordsArr = destinationsMatrix[originsIndex[selectedOrigin]].split("|");
        for(var i = 0; i < wordsArr.length ; i++)
        {
            var currWord = convert(wordsArr[i], 16, 2);
            var mask = 0;
            for(var j = 0; j < currWord.length; j++)
            {
                if(checkBit(currWord, mask))
                {
                    createOption(destinationControl, wordLength*i+j);
                }
                mask++;
            }
        }
    }
}
function createOption(destinationControl, index)
{
    if(destinationsNames.length > index)
    {
        var option = destinationsNames[index].split("|");
        destinationControl[destinationControl.length] = new Option(option[1]+' ['+option[0]+']',option[0]);
    }
}
function createOrigins(originControl)
{
    originControl.length = 0;
    for(var i = 0; i < destinationsNames.length; i++)
    {
        createOption(originControl, originsIndex[i]);
    }
}
function setSelectData(dropDownControl, hiddenControl)
{   
    if(hiddenControl.length == 3)
    {
        var hvalue = hiddenControl;
        for(var i=0; i<dropDownControl.length; i++)
        {
            if(dropDownControl[i].value == hvalue) 
            {
                dropDownControl[i].selected = true;
                return;
            }
        }
    }
}