﻿function printIFrame(divid) {
    var $currentIFrame = $('#PrintPage');
    $currentIFrame.contents().find("body").html($("[id*='" + divid + "']").html());
    window.frames['PrintPage'].focus();
    window.frames['PrintPage'].print();
}
function stIsDate(dtV, dtF) {
    if (dtF == "dd/mm/yy") {
        var RegExPattern = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
    } else {
        var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
    }
    return RegExPattern.test(dtV);
}
function DateDiff(sDate2, sDate1) {
    if (sDate2 == '' || sDate1 == '') { return -1 }
    var date2 = splitDate(sDate2);
    var date1 = splitDate(sDate1);
    return Math.round(date2 - date1);
}
function DateTimeDiff(sDate2, sDate1) {
    if (sDate2 == '' || sDate1 == '') { return -1 }
    var date2 = splitDateTime(sDate2);
    var date1 = splitDateTime(sDate1);
    return Math.round(date2 - date1);
}
function splitDate(fDate) {
    var arrDateParts = fDate.split('-');
    if (arrDateParts.length != 3) { arrDateParts = fDate.split('/'); }
    if (arrDateParts.length != 3) { arrDateParts = fDate.split('.'); }
    if (arrDateParts.length != 3) { return false }
    var d = Number(arrDateParts[0]); var m = Number(arrDateParts[1]); var y = Number(arrDateParts[2]); if (y < 2000) { y += 2000 }
    var dpm = (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) ? 31 : 30;
    if (m == 2) { dpm = ((y % 4 == 0 && y % 100 != 0) || y % 1000 == 0) ? 29 : 28; }
    var yd = getYearDates(y);
    var md = getMonthDates(m, y);
    return (yd + md + d);
}
function splitDateTime(fDate) {
    var arrDateTimeParts = fDate.split(' ');
    if (arrDateTimeParts.length == 2) {
        var arrDateParts = arrDateTimeParts[0].split('-');
        if (arrDateParts.length != 3) { arrDateParts = arrDateTimeParts[0].split('/'); }
        if (arrDateParts.length != 3) { arrDateParts = arrDateTimeParts[0].split('.'); }
        if (arrDateParts.length != 3) { return false }
        var d = Number(arrDateParts[0]); var m = Number(arrDateParts[1]); var y = Number(arrDateParts[2]); if (y < 2000) { y += 2000 }
        var dpm = (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) ? 31 : 30;
        if (m == 2) { dpm = ((y % 4 == 0 && y % 100 != 0) || y % 1000 == 0) ? 29 : 28; }
        var yd = getYearDates(y);
        var md = getMonthDates(m, y);
        
        var arrTimeParts = arrDateTimeParts[1].split(':');
        var hh = Number(arrTimeParts[0]); var mm = Number(arrTimeParts[1]); 
        var hr = (hh*60) + mm
        
        return ((yd*3600) + (md*3600) + (d*3600) + hr);
    } else { return false }
}
function getYearDates(yr) {
    var gyd = 0;
    for (var y = 2000; y < yr; y++) {
        var dpy = ((y % 4 == 0 && y % 100 != 0) || y % 1000 == 0) ? 366 : 365;
        gyd += dpy
    }
    return gyd;
}
function getMonthDates(mn, yr) {
    var gmd = 0;
    for (var m = 1; m < mn; m++) {
        var dpm = (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) ? 31 : 30;
        if (m == 2) { dpm = ((yr % 4 == 0 && yr % 100 != 0) || yr % 1000 == 0) ? 29 : 28; }
        gmd += dpm
    }
    return gmd;
}
function roundNum(original_number, decimals) {
    var result1 = original_number * Math.pow(10, decimals);
    var result2 = Math.round(result1);
    var result3 = result2 / Math.pow(10, decimals);
    return result3;
}
function restrictKeys(t) {
    var w = "";
    var v = "1234567890,.";
    for (i = 0; i < t.value.length; i++) {
        x = t.value.charAt(i);
        if (v.indexOf(x, 0) != -1)
            w += x;
    }
    if (w == "") { w = "0" };
    t.value = w;
}
// Check whether string s is empty.
function isEmpty(s) {
    return ((s == null) || (s.length == 0))
}
// Returns true if string s is empty or whitespace characters only.
function isWhitespace(s) {
    var i;

    if (isEmpty(s)) return true;

    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}
// Removes all characters which appear in string bag from string s.
function stripCharsInBag(s, bag) {
    var i;
    var returnString = "";

    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}
// Removes all characters which do not appear in string bag from string s.
function stripCharsNotInBag(s, bag) {
    var i;
    var returnString = "";

    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if (bag.indexOf(c) > -1) returnString += c;
    }
    return returnString;
}
// Removes all whitespace characters from s.
function stripWhitespace(s) {
    return stripCharsInBag(s, whitespace)
}

