/*
    $Id$

    File:        wsf_shared.js
    Description: Hulpfuncties voor WSF bestanden
    Context:     bijvoorbeeld gen_import.wsf
    Note:        We herhalen hier de noodzakelijke functies van appl/shared/shared.inc

*/

function padout(number)
{ return (number < 10) ? "0" + number : number;
}
// Noot: altijd jaar vooraan, goed voor logfiles, niet bedoeld voor presentatie
function toDateString(jsDate)
{
    return padout(jsDate.getFullYear())  + "-" + padout(jsDate.getMonth() + 1) + "-" + padout(jsDate.getDate());
}
function toDateTimeString(jsDate)
{
    return toDateString(jsDate) + " "
         + padout(jsDate.getHours()) + ":" + padout(jsDate.getMinutes())   + ":" + padout(jsDate.getSeconds());
}
function __Log(s)
{
    WScript.Echo(toDateTimeString(new Date) + " " + s);
}
function subfolderKey(pNiveau, pKey)
{
    var keyStr = "0000000" + pKey;
    var subfolder = pNiveau + keyStr.substr(keyStr.length - 7, 4) + "___/" + pNiveau + pKey;
    return subfolder;
}
function Fill(i, c)
{   // Maakt een string met i tekens 'char'.
    return new Array(i + 1).join(c);
}

function Connect2Oracle(modulename)
{
    var udl = "../Oracle.udl";
    var Oracle = new ActiveXObject("ADODB.Connection");
    Oracle.Open('File Name='+udl);
    if (modulename)
    {   // Vind je terug in Toad/Session browser
        var sql = "BEGIN DBMS_APPLICATION_INFO.SET_MODULE (" + safe.quoted_sql(modulename) + ", NULL); END;";
        Oracle.Execute(sql);
    }
    sql = "BEGIN fac.initsession(NULL); END;"
    Oracle.Execute(sql);
    __Log("Session initiated: " + sql);
    return Oracle;
}

String.prototype.format = function()
{
    var formatted = this;
    for (var i = 0; i < arguments.length; i++)
    {
        var regexp = new RegExp('\\{'+i+'\\}', 'gi');
        formatted = formatted.replace(regexp, arguments[i]);
    }
    return formatted;
};

safe = { // extracted from shared.inc
    quoted_sql: function (tekst, maxlen) // maxlen is optioneel
    {
        if (tekst == null)
            return "NULL";
        if (!maxlen)
            maxlen = 4000;
        tekst = tekst.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F]+/g, "?");
        tekst = tekst.substr(0, maxlen);
        return "'" + tekst.replace(/\'/g,"''") + "'"; // " syntax highlight correctie
    },
    filename: function (naam) // geen 'lage' karakters een geen (back)slashes, *,%,<,>, '"', ':', '?' and '|'
    {
        return naam.replace(/[\x00-\x1F|\/|\\|\*|\%\<\>\"\:\;\?\|]+/g, "_"); // " syntax highlight correctie
    }
}

