﻿
$(document).ready(function() {


    // Set green line on focus INPUT fields
    SetMaxLengthTextAreas();


});


/**** TEXTAREA CHARACTERCOUNT ********************************************************************************************/
function SetMaxLengthTextAreas() {
    var mySibling = null;
    $('textarea.maxLength256').keyup(function() { limitCharsTimeOut($(this).attr("id"), 'maxLength256', 256); }).focus(function() {
        mySibling = $(this).siblings('.counter:first');
        if (mySibling.exists()) {
            mySibling.slideDown('slow').get(0).innerHTML = Toolkit.BusyTyping;
        } else {
            $('<span class=\"counter\">...</span>').insertAfter($(this)).slideDown("slow");
        }
    }).blur(function() {
        mySibling = $(this).siblings('.counter:first');
        if (mySibling.exists()) {
            mySibling.slideUp('slow');
        }
    });

    $('textarea.maxLength1000').each(function() {
        $(this).keyup(function() {
            //$(this).attr("id")
            limitCharsTimeOut($(this).attr("id"), 'maxLength1000', 1000);
        }).focus(function() {
            mySibling = $(this).siblings('.counter:first');
            if (mySibling.exists()) {
                mySibling.slideDown('slow').get(0).innerHTML = Toolkit.BusyTyping;
            } else {
                $('<span class=\"counter\">...</span>').insertAfter($(this)).slideDown("slow");
            }
        }).blur(function(e) {
            mySibling = $(this).siblings('.counter:first');
            if (mySibling.exists()) {
                mySibling.slideUp('slow');
            }
        })
    });
    
    
    $('textarea.maxLength100').keyup(function() { limitCharsTimeOut($(this).attr("id"), 'maxLength100', 100); }).focus(function() {
        mySibling = $(this).siblings('.counter:first');
        if (mySibling.exists()) {
            mySibling.slideDown('slow').get(0).innerHTML = Toolkit.BusyTyping;
        } else {
            $('<span class=\"counter\">...</span>').insertAfter($(this)).slideDown("slow");
        }
    }).blur(function() {
        mySibling = $(this).siblings('.counter:first');
        if (mySibling.exists()) {
            mySibling.slideUp('slow');
        }
    });
}


var currentCharactarTimer = 0;
function limitCharsTimeOut(idOfTextArea, textareaSelector, limit, infospan) {
    clearTimeout(currentCharactarTimer);
    currentCharactarTimer = setTimeout("limitChars('" + idOfTextArea +"','" + textareaSelector + "','" + limit + "');", 500);
}

function limitChars(idOfTextArea, textareaSelector, limit, infospan) {

    //var textbox = $('.' + textareaSelector);
    var textbox = $('#' + idOfTextArea);
    var text = textbox.val();

    var newCharInfospan = textbox.siblings('.counter:first');
    var returnValue = false;
    var textlength = text.length;
    if (textlength > (limit)) {
        newCharInfospan.html(Toolkit.MaximunChar1 + limit + Toolkit.MaximunChar2);
        textbox.val(text.substr(0, limit));

        returnValue = false;
    }
    else {
        newCharInfospan.html(Toolkit.CharLeft1 + (limit - textlength) + Toolkit.CharLeft2);
        
        returnValue = true;
    }
    textbox.scrollTop = textbox.scrollHeight;
    return returnValue;
}
/**** END TEXTAREA CHARACTERCOUNT ****************************************************************************************/


/*** Custom jQuery Extension ********************************************************************************************/
$.fn.exists = function() {
    return $(this).length !== 0;
}
/*** END Custom jQuery Extension ****************************************************************************************/

function parseToNormalDateTime(dateToConvert) {

    var month_names = new Array();
    month_names[month_names.length] = "01";
    month_names[month_names.length] = "02";
    month_names[month_names.length] = "03";
    month_names[month_names.length] = "04";
    month_names[month_names.length] = "05";
    month_names[month_names.length] = "06";
    month_names[month_names.length] = "07";
    month_names[month_names.length] = "08";
    month_names[month_names.length] = "09";
    month_names[month_names.length] = "10";
    month_names[month_names.length] = "11";
    month_names[month_names.length] = "12";

    var day_names = new Array();
    day_names[day_names.length] = "Zondag";
    day_names[day_names.length] = "Maandag";
    day_names[day_names.length] = "Dinsdag";
    day_names[day_names.length] = "Woensdag";
    day_names[day_names.length] = "Donderdag";
    day_names[day_names.length] = "Vrijdag";
    day_names[day_names.length] = "Zaterdag";

    var formatedStartDate = zeroPad(dateToConvert.getDate(),2) + '-' + month_names[dateToConvert.getMonth()] + '-' + dateToConvert.getFullYear();

    //var formatedStartDate = day_names[dateToConvert.getDay()] + ', ' +
      //                      month_names[dateToConvert.getMonth()] + ' ' + dateToConvert.getFullYear()

    return formatedStartDate;

}

function zeroPad(num, count) {
    var numZeropad = num + '';
    while (numZeropad.length < count) {

        numZeropad = "0" + numZeropad;
    }
    return numZeropad;
}

/* Bind to Keydown event. Returns false if it isn't a number. Controls like arrowkeys left and right, home, end, backspace and delete are valid
**************************************************************************************************************************************************/
function numbersonly(e) {
    if (e.shiftKey) return false;
    
    var unicode = e.charCode ? e.charCode : e.keyCode
    if (unicode != 8) { //if the key isn't the backspace key (which we should allow)
        if ((unicode > 48 && unicode < 57) ||
        (unicode > 34 && unicode < 38) ||
        (unicode == 39) || (unicode == 46) || (unicode == 9) ||
        (unicode > 95 && unicode < 106)) //if not a number
            return true //disable key press
        else
            return false;
    }
}

/* On page load, try to find the first textbox and place the cursor in that one
**************************************************************************************************************************************************/
function SetFocusOnIdOrFirstInput(idToSetFocus) {
    if (idToSetFocus == null) {
        $('input[type=text]:first').focus();
    } else {
        $('#' + idToSetFocus).focus();
    }
}


/*
**************************************************************************************************************************************************/
/// Function to add ODD/EVEN class names to grid/table ROWS
function SetOddEvenRowClassStylesToGrid(tableID) {
    $('#' + tableID + ' tbody tr:odd').removeClass('odd').removeClass('even').addClass('odd').hover(
    function() { $(this).addClass('oddHover'); }, function() { $(this).removeClass('oddHover'); });
    $('#' + tableID + ' tbody tr:even').removeClass('odd').removeClass('even').addClass('even').hover(
    function() { $(this).addClass('evenHover'); }, function() { $(this).removeClass('evenHover'); });
}

/* 
**************************************************************************************************************************************************/
/// Diplay loading panel in selected placeholder
function DisplayLoadingPanel(value, placeholder) {
    if (value) {
        placeholder.fadeIn();
    }
    else {
        placeholder.fadeOut();
    }
}


