////////////////////////////NIK //////////////////////////////////////////

function checkThisRadio(id)
{
    document.getElementById(id).click();
}

function hideThis(id) {
    document.getElementById(id).style.display = "none";
}
function showThis(id) {
    document.getElementById(id).style.display = "block";
}

function emptyDataTable() {
    document.getElementById("divTblData").innerHTML = "";
}


function fillDateTo() {
    var d = new Date();
    var s = d.getDate() + "-" + (d.getMonth()+1) + "-" + d.getFullYear();
    //document.getElementById("txtdtActionPTo").value = s;
    document.getElementById("txtdtInterestEnd").value = s;
    s = "1-1-" + d.getFullYear();
    document.getElementById("txtdtAction").value = s;
    
}

function checkDate(id) {
    var item = document.getElementById(id);
    var dt = Date.insParse(item.value);
    return (dt != null)
}
function checksDate(sDate) {
    var dt = Date.insParse(sDate);
    return (dt != null)
}





var sBalanceString = "0";


function decideBalEntry() {

    if ((document.getElementById("txtdtAction").value != "") && (document.getElementById("txtcAction").value != "")) {

        if (document.getElementById("txtnDoses").value == "")
            document.getElementById("txtnDoses").value = 1;
        var n = Number.insParse(document.getElementById("txtnDoses").value);

        if ((n == null) || (n < 2))
            prepareInsertBalanceRequest();
        else
            prepareInsertPeriodBalanceRequest();
    }
    else {
        if (bCalc) {
            prepareCalculateRequest();
        }
    }
}

function btnCalc_Click() {
    bCalc = true;
    decideBalEntry();
}



function prepareCalculateRequest() {
    bCalc = false;
    document.getElementById("divTblData").innerHTML = "";
    var txtRequest = "";
    if (!checkDate("txtdtInterestEnd")) {
        alert("Παρακαλώ ελέγξτε την ημερομηνία Λήξης Τοκοφορίας");
        return false;
    }
    if (checkDate("txtdtInterestEnd"))
      {
        if (document.getElementById("rdbInterestDelay").checked)
            txtRequest += "&sInterestType=DELAY";
        else
            txtRequest += "&sInterestType=BYLAW";

        if (document.getElementById("chbbOverCreditsPayInterests").checked)
            txtRequest += "&bOverCreditsPayInterests=1";
        else
            txtRequest += "&bOverCreditsPayInterests=0";

        txtRequest += "&dTo=" + DateToIso(document.getElementById("txtdtInterestEnd").value);

        txtRequest += "&sBalanceString=" + sBalanceString;

        txtRequest = "sAction=Calculate" + txtRequest;
        if (pkario.inProduction()) pageTracker._trackPageview('/CALC/btnContractualInterest');
        oJd.send(cbfCalculate, txtRequest);

    }
}

function cbfCalculate(oResult) {
    document.getElementById("divTblData").innerHTML = oResult["tblData"];
    bCalc = false;
    return;
}




function InsertBalance(i) {
    document.getElementById("divTblData").innerHTML = "";
    prepareInsertBalanceRequest(i);
}

function prepareInsertBalanceRequest() {
    document.getElementById("divTblData").innerHTML = "";
    fillSum('txtcAction');
    var txtRequest = "";

    if (checkDate("txtdtAction") && checkSum('txtcAction')) {

        if (document.getElementById("rdbActionDebit").checked)
            txtRequest += "&sActionType=DEBIT";
        else
            txtRequest += "&sActionType=CREDIT";

        txtRequest += "&dAction=" + DateToIso(document.getElementById("txtdtAction").value);
        document.getElementById("txtdtAction").value = "";
        txtRequest += "&cAction=" + document.getElementById("txtcAction").value;
        document.getElementById("txtcAction").value = "";
        txtRequest += "&sBalanceString=" + sBalanceString;
        document.getElementById("txtnDoses").value = "1";

        txtRequest = "sAction=InsertBalance" + txtRequest;
        oJd.send(cbfInsertBalance, txtRequest);

    }
    else {
        if (!checkDate("txtdtAction"))
            alert("Παρακαλώ ελέγξτε την ημερομηνία");
        if (!ccheckSum('txtcAction'))
            alert("Παρακαλώ ελέγξτε τo ποσό");
    }
}



function InsertBalance(i) {
    document.getElementById("divTblData").innerHTML = "";
    prepareInsertBalanceRequest(i);
}

function prepareInsertPeriodBalanceRequest() {
    document.getElementById("divTblData").innerHTML = "";
    fillSum('txtcAction');
    var txtRequest = "";

    if (checkDate("txtdtAction") && checkSum('txtcAction')) {

        if (document.getElementById("rdbActionDebit").checked)
            txtRequest += "&sActionType=DEBIT";
        else
            txtRequest += "&sActionType=CREDIT";

        txtRequest += "&dAction=" + DateToIso(document.getElementById("txtdtAction").value);
        txtRequest += "&nDoses=" + document.getElementById("txtnDoses").value;
        txtRequest += "&cAction=" + document.getElementById("txtcAction").value;

        document.getElementById("txtdtAction").value = "";
        document.getElementById("txtcAction").value = "";
        document.getElementById("txtnDoses").value = "1";
        txtRequest += "&sBalanceString=" + sBalanceString;

        if (document.getElementById("rdbPeriod1").checked)
            txtRequest += "&nPeriod=1";
        if (document.getElementById("rdbPeriod3").checked)
            txtRequest += "&nPeriod=3";
        if (document.getElementById("rdbPeriod6").checked)
            txtRequest += "&nPeriod=6";
        

        txtRequest = "sAction=InsertPeriodBalance" + txtRequest;
        oJd.send(cbfInsertBalance, txtRequest);

    }
    else {
        if (!checkDate("txtdtAction"))
            alert("Παρακαλώ ελέγξτε την ημερομηνία");
        if (!ccheckSum('txtcAction'))
            alert("Παρακαλώ ελέγξτε τo ποσό");
        if (!ccheckSum('txtnDoses'))
            alert("Παρακαλώ ελέγξτε τoν αριθμό Δόσεων");
    }
    document.getElementById("txtnDoses").value = 1;
}

function showCalc() {
/*
if ((sBalanceString != "0") && (sBalanceString!=""))
    showThis("trCalc");
    else
    hideThis("trCalc");*/
    showThis("trCalc");
}
var bCalc = false;

function cbfInsertBalance(oResult) {
    document.getElementById("divTblBalances").innerHTML = oResult["tblBalances"];
    sBalanceString = oResult["sBalString"];
    showCalc();
    if (bCalc == true)
        prepareCalculateRequest();
    return;
}



function deleteBalance(i) {
    document.getElementById("divTblData").innerHTML = "";
    prepareDeleteBalanceRequest(i);
    showCalc();
}



function prepareDeleteBalanceRequest(i) {
    var txtRequest = "";
    txtRequest += "&BalToDelete=" + i;
    txtRequest += "&sBalanceString=" + sBalanceString;
        txtRequest = "sAction=DeleteBalance" + txtRequest;
        oJd.send(cbfDeleteBalance, txtRequest);
    }

    function deleteAllBalances() {
        document.getElementById("divTblData").innerHTML = "";
        document.getElementById("divTblBalances").innerHTML = "";
        sBalanceString = "0";
        showCalc();    
    
    }
    
function cbfDeleteBalance(oResult) {
        document.getElementById("divTblBalances").innerHTML = oResult["tblBalances"];
        sBalanceString = oResult["sBalString"];
        return;
    }




function DateToIso(str) {
var dt = Date.insParse(str);
return dt.pkToString("yyyyMMdd");
}



var oJd = new pkario.jd();



function cbf(oResult) {
    document.getElementById("divTblData").innerHTML = oResult["tblData"];
    document.getElementById("divTblBalances").innerHTML = oResult["tblBalances"];
    sBalanceString = oResult["sBalString"];
    showCalc();
    return;
}

function clearInsertRow() {
    document.getElementById("rdbActionDebit").checked = "checked";
    document.getElementById("rdbActionCredit").checked = "";
    document.getElementById("txtdtAction").value = "";
    document.getElementById("txtcAction").value = "0,00";
    showCalc();
}









function checkSum(id) {
    var item = document.getElementById(id);
    var s = Number.insParse(item.value, "gr", true);
    if (s == 0) {
        alert("Παρακαλώ ελέγξτε το Ποσό");
        return false;
    }
    else
    return true;
}

function fillSum(id) {
    if (document.getElementById(id).value.indexOf(',') < 0)
        document.getElementById(id).value += ',00';
}



String.LTrim = function(sString, aChars) {
    aChars = aChars || "\\s";
    return sString.replace(new RegExp("^[" + aChars + "]+", "g"), "");
};

String.RTrim = function(sString, aChars) {
    aChars = aChars || "\\s";
    return sString.replace(new RegExp("[" + aChars + "]+$", "g"), "");
};

String.Trim = function(sString, aChars) {
    return String.LTrim(String.RTrim(sString, aChars), aChars);
};






Date.insParse = function(sDt) {
    var mo, day, yr;
    var reLong = /\b\d{1,2}[\.\/-]\d{1,2}[\.\/-]\d{4}\b/;
    var reShort = /\b\d{1,2}[\.\/-]\d{1,2}[\.\/-]\d{2}\b/;
    var reCompact = /\b\d{6}\b/;
    var reCompactFull = /\b\d{8}\b/;
    //debugger;
    if (reCompact.test(sDt)) {
        day = parseInt(sDt.substring(0, 2), 10);
        mo = parseInt(sDt.substring(2, 4), 10);
        yr = parseInt(sDt.substring(4, 6), 10);
    } else if (reCompactFull.test(sDt)) {
        day = parseInt(sDt.substring(0, 2), 10);
        mo = parseInt(sDt.substring(2, 4), 10);
        yr = parseInt(sDt.substring(4, 8), 10);
    } else if ((reLong.test(sDt)) || (reShort.test(sDt))) {
        var sDelim;
        if (sDt.indexOf("/") != -1) {
            sDelim = "/";
        } else if (sDt.indexOf("-") != -1) {
            sDelim = "-";
        } else if (sDt.indexOf(".") != -1) {
            sDelim = ".";
        } else {
            return null;
        }
        var delim1 = sDt.indexOf(sDelim);
        var delim2 = sDt.lastIndexOf(sDelim);
        day = parseInt(sDt.substring(0, delim1), 10);
        mo = parseInt(sDt.substring(delim1 + 1, delim2), 10);
        yr = parseInt(sDt.substring(delim2 + 1), 10);
    } else {
        return null;
    }
    if (yr < 100) {     // handle two-digit year
        var today = new Date(); // get current century floor (e.g., 2000)        
        var currCent = parseInt(today.getFullYear() / 100) * 100;
        var threshold = (today.getFullYear() + 15) - currCent; // two digits up to this year + 15 expands to current century
        if (yr > threshold) yr -= 100;
        yr += currCent;
    }
    var dTest = new Date(yr, mo - 1, day);
    if ((dTest.getDate() == day) &&
			(dTest.getMonth() + 1 == mo) &&
			(dTest.getFullYear() == yr)) {
        return dTest;
    } else {
        return null;
    }
};

Number.insParse = function(sVal, sLang, bFixNaN) {
    var reGrp, reDec, sDec, nVal;
    if (typeof bFixNaN == "undefined") bFixNaN = false;
    if (sLang == undefined || sLang == "gr") {
        reGrp = /\./g;
        reDec = /,/g;
    } else {
        reGrp = /,/g;
        reDec = /\./g;
    }
    sVal = sVal.replace(reGrp, "");
    sVal = sVal.replace(/,/g, ".");
    if (sVal.indexOf(".") == -1) {
        nVal = parseInt(sVal, 10);
    } else {
        nVal = parseFloat(sVal);
    }
    if (bFixNaN && isNaN(nVal)) nVal = 0;
    return nVal;
};

