﻿document.oncontextmenu = new Function("return false;");
var $j = jQuery.noConflict();


function maxLengthTextBoxCheckLength(tb, tbd, ml, message) {

    var length = tb.value.length;
    if (length > ml) {
        tb.value = tb.value.substring(0, ml);
        length = ml;
    }
    var currentLength = ml - length;
    var displayText = message.replace('%C%', currentLength).replace('%M%', ml)
    tbd.innerHTML = displayText;

}

// insert global page load calls here
$j(document).ready(function() {

    var $editRankButtons = $j('*[id$=EditRankButton]');
    //alert($editRankButtons.size());

    if ($editRankButtons.size() > 0) // should only be one per page, unless user ranks
    {     
        $editRankButtons.each(function() {
            checkEditRankButton(this, 0); // check immediately
        });
    }
});


function checkEditRankButton(button, interval) {

    var EditMinutes = 60;

    // get the create time, calc expire time
    var $editButton = $j(button);
    var $container = $editButton.parents('table:eq(0)');
    //alert($container.html());
    
    var createdOn = new Date($j('*[id$=CreatedOn]', $container).val());
    var expireOn = createdOn.clone().add(EditMinutes).minutes();
    var $editTimeRemaining = $j('*[id$=EditTimeRemaining]', $container);

    // create an updater for each
    var timer = window.setInterval(function() {

        var ts = TimeSpan.FromDates(Date.now(), expireOn);
        //alert(ts.minutes());

        var secs = parseInt(ts.totalSeconds());
        var min = parseInt(secs / 60);

        if (secs > 0) {

            $editButton.show();
            $editTimeRemaining.show();

            if (min > 0) {
                //alert('over minute');
                $editTimeRemaining.html('(' + min + ' minute' + (min > 1 ? 's' : '') + ')');
            } else {
                //alert('under minute');
                if (secs < 0) secs = 0;
                $editTimeRemaining.html('(' + secs + ' second' + (secs > 1 ? 's' : '') + ')');
            }

            // start normal interval
            if (interval == 0) {
                //alert('starting normal interval');
                window.clearInterval(timer); // stop the upater            
                checkEditRankButton(button, 1000 * 10) // n secs
            }
        }

        if (secs <= 0) {
            //alert('clear');
            window.clearInterval(timer); // stop the upater
            $editButton.hide();
            $editTimeRemaining.hide();
            return;
        }

    }, interval);
}
