﻿function highLightObject(obj) {
    obj.select();
    obj.focus();
}

function cleanToNumber(strVal) {
    strVal = strVal.toString();
    var newVal = "";

    for (var i = 0; i < strVal.length; ++i) {
        var new_key = strVal.charAt(i);
        if (((new_key < "0") || (new_key > "9")) && !(new_key == ""))
            continue;

        newVal += new_key;
    }
    if (isNaN(newVal) || newVal=="") newVal = "0";
    
    return newVal;
}

function IsNullOrEmpty(val) {
    return val == null || val == '';
}

function TextToFloat(text) {
    if (IsNullOrEmpty(text))
        return 0.0;
    else
        return Number._parse(text, Sys.CultureInfo.CurrentCulture);
}

function FloatToText(f, numberofdecimals) {
    return f.localeFormat('N' + numberofdecimals);
}

function TextToInt(text) {
    if (IsNullOrEmpty(text))
        return 0;
    else
        return parseInt(text);
}

function IntToText(val) {
    return '' + val;
}

function changeValue(displayObjID, qtyObj, totalID, pricePerUnit, rawIndex, minLimit, maxLimit, isManditory, requiredMess, sizeLimitMess) {
    if (qtyObj.value == "")
        return;

    if (isNaN(qtyObj.value)) {
        qtyObj.value = cleanToNumber(qtyObj.value);
    }
    qtyObj.value = parseInt(qtyObj.value);

    var fltPricePerUnit = TextToFloat(pricePerUnit);

    if (qtyObj.value < minLimit || qtyObj.value > maxLimit) {
        if (qtyObj.value > maxLimit) alert(sizeLimitMess);
        qtyObj.value = qtyObj.value < minLimit ? minLimit : maxLimit;

        arr[rawIndex] = qtyObj.value * fltPricePerUnit;
        //alert("Change: " + arr[rawIndex]);

        var rawTotalIn = FloatToText(arr[rawIndex], 2);

        document.getElementById(displayObjID).innerHTML = document.getElementById("hfCurrencySymb").value + "&nbsp;" + rawTotalIn;

        calcTotal(totalID);

        return;
    }

    arr[rawIndex] = qtyObj.value * fltPricePerUnit;

    //alert("Change: " + arr[rawIndex]);

    var rawTotal = FloatToText(arr[rawIndex], 2);
    document.getElementById(displayObjID).innerHTML = document.getElementById("hfCurrencySymb").value + "&nbsp;" + rawTotal;
    calcTotal(totalID);
}

function onblurHandler(displayObjID, qtyObj, totalID, pricePerUnit, rawIndex, minLimit, maxLimit, isManditory, requiredMess, sizeLimitMess) {

    if (isNaN(qtyObj.value)) {
        qtyObj.value = cleanToNumber(qtyObj.value);
    }
    qtyObj.value = parseInt(qtyObj.value);

    if (isManditory && qtyObj.value == "") {
        alert(requiredMess);
        qtyObj.value = minLimit;
        var fltPricePerUnit = TextToFloat(pricePerUnit);

        arr[rawIndex] = qtyObj.value * fltPricePerUnit;
        //alert("Onblur: " + arr[rawIndex]);

        var totalString = FloatToText(arr[rawIndex], 2);
        //alert("Onblur: " + totalString);

        document.getElementById(displayObjID).innerHTML = document.getElementById("hfCurrencySymb").value + "&nbsp;" + totalString;
        highLightObject(qtyObj);
        calcTotal(totalID);

        return;
    }
}

function calcTotal(displTotalObjID) {
    var total = 0.0;
    //var temp = "";
    for (i = 0; i < arr.length; i++) {
        total += arr[i];
        //temp += " " + arr[i];
    }
    var totalString = FloatToText(total, 2);
    //alert("Calc: " + temp);
    //alert("Calc: " + totalString);
    document.getElementById(displTotalObjID).innerHTML = document.getElementById("hfCurrencySymb").value + "&nbsp;" + totalString;
}	

