/*********************************************************************************

 Utilities
    function getMin(d1, d2)
    function fix(fixNumber)
    function Factorial(number)
    function IsNullOrEmpty(str)
    function isNumber(num)
    function $()
    function StrToFloat(strNumber)
    function TrimNbsp(st)
    
*********************************************************************************/

function getMin(d1, d2)
{
    if (d1 < d2)
        return d1;
    else
        return d2;
}

function fix(fixNumber)
{
    var div = Math.pow(10, 2);
    fixNumber = Math.round(fixNumber * div) / div;
    return fixNumber;
}

function Factorial(number)
{
    var factorial = 1;
    for (var i = 0; i < number; i++ )
        factorial *= i + 1;
    return factorial;
}
 
function IsNullOrEmpty(str)
{
    return ((str == null) || (str.length == 0) || (str == ''));
}

function isNumber(num)
{
    if ((num * 1 == num) && (num >= 0))
        return num;
    else
        return 0;
}

//function $() 
//{
//     var elements = [];
//     for (var i = 0; i < arguments.length; i++) 
//     {
//        var element = arguments[i];
//        if (typeof element == 'string')
//            element = document.getElementById(element);
//        if (arguments.length == 1)
//            return element;
//        elements.push(element);
//    }
//    return elements;
//}

function StrToFloat(strNumber)
{
    var curNumber = 0;
    var intDecimalPointPos= -1;
    intDecimalPointPos = strNumber.indexOf(',');
    if (intDecimalPointPos >= 0)
    {
         strNumber = strNumber.substring(0,intDecimalPointPos) + '.' + strNumber.substring(intDecimalPointPos + 1, strNumber.length);
    }
    if (strNumber.indexOf('.') > 0)
    {
         while(strNumber.substring(strNumber.length-1, strNumber.length) == '0')
         {
                   strNumber = strNumber.substring(0,strNumber.length-1)
         }
     }
    if (strNumber.substring(strNumber.length-1, strNumber.length) == '.')
         strNumber = strNumber.substring(0,strNumber.length-1)
    curNumber = parseFloat(strNumber);
    if (curNumber != strNumber)
         curNumber = "ERROR";
         
    return curNumber;
}

function TrimNbsp(st)
{
    var newSt = "";
    var end = 0; /* schetchik po novoy stroke */
    /* smysl takoy: prohodim po ishodnoy stroke i smotrim vse simvoly */
    for (var i = 0; i < st.length; i++)
    {
        /* esli simvol ne ne razryvnyy probel - kopiruem ego v novuyu stroku */
        if (st.charAt(i) != String.fromCharCode(160))
        {  
            end++;
        }
        else
        {
            /* esli nerazryvnyy probel
             * smotrim sled simvol - esli on toje nerazryvnyy probel - vyhodim iz funkcii
             * esli net - kopiruem v nov stroku probel
             */
            if (st.charAt(i+1) == String.fromCharCode(160))
                break;
            else
                end++;
        }
    } 
    newSt = st.substring(0, end);
    
    return(newSt);
}
/**************************************************************/