﻿String.prototype.trim = function() {
    return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}


function getStyleObject(objectId) {
    // checkW3C DOM, then MSIE 4, then NN 4.
    if(document.getElementById && document.getElementById(objectId))
        return document.getElementById(objectId).style;
    else if (document.all && document.all(objectId))
        return document.all(objectId).style;
    else if (document.layers && document.layers[objectId])
        return document.layers[objectId];
    else
        return false;
}
function changeVisibility(objectId, newVisibility) {
    var styleObject = getStyleObject(objectId);
    if (styleObject)
        styleObject.visibility = newVisibility;
}
function changeDisplay(objectId, newDisplay)
{
    var styleObject = getStyleObject(objectId);
    if (styleObject)
        styleObject.display = newDisplay;
}


// mm/dd/yyyy or mm-dd-yyyy or mm.dd.yyyy
function validateDate(txt)
{
    var filter = /^(\d{1,2}(\/|\-|\.)\d{1,2}(\/|\-|\.)\d{4})$/;
    return filter.test(txt);
}
function validateEmail(txt)
{
    var filter = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    return filter.test(txt);
}
// 555-555-5555 or 555.555.5555 or 5555555555
function validatePhone(txt)
{
    var filter = /^([0-9]{3}(\-|\.)?){1,2}[0-9]{4}$/;
    return filter.test(txt);
}



function initializePanelRotator(panelID, slideClass)
{
    var $elem = $('#' + panelID);
    $elem.data('currentSlide', 0);
    $elem.data('slideClass', slideClass);
    showSlide(panelID, 0);
    $elem.data('timer', setInterval('showSlide(\'' + panelID + '\', 1)', 7000));
    $elem.find('.' + slideClass).each(function(i, el) {
        $(el).mouseover(function() { clearInterval($('#' + panelID).data('timer')); });
        $(el).mouseout(function() { $('#' + panelID).data('timer', setInterval('showSlide(\'' + panelID + '\', 1)', 7000)); });
    });
}

function showSlide(parentID, interval) {
    var $elem = $('#' + parentID);
    var i = $elem.data('currentSlide');
    var itemClass = $elem.data('slideClass');
    var items = $elem.find('.' + itemClass);
    if (items.length > 1){
        $(items[i]).hide();
        i += interval;
        if (i >= items.length)
            i = 0;
        else if (i < 0)
            i = items.length - 1;
        $elem.data('currentSlide', i);
    }
    $(items[i]).fadeIn();
}

function initializeBlockRotator(panelID, windowClass, itemClass, windowSize)
{
    var $elem = $('#' + panelID);
    $elem.data('currentPage', 1);
    $elem.data('windowClass', windowClass);
    $elem.data('itemClass', itemClass);
    $elem.data('windowSize', windowSize);
    /*
    $elem.data('timer', setInterval('slideBlock(\'' + panelID + '\', 1)', 7000));
    $elem.each(function(i, el) {
        $(el).mouseover(function() { clearInterval($('#' + panelID).data('timer')); });
        $(el).mouseout(function() { $('#' + panelID).data('timer', setInterval('slideBlock(\'' + panelID + '\', 1)', 7000)); });
    });
    */
}
function slideBlock(parentID, interval) {
    var $elem = $('#' + parentID);
    var i = $elem.data('currentPage');
    var itemClass = $elem.data('itemClass');
    var items = $elem.find('.' + itemClass);
    var lastPage = Math.ceil(items.length / $elem.data('windowSize'));
    
    if (items.length > $elem.data('windowSize')){
        var windowWidth = 964;
        i += interval;
        if (i > lastPage)
            i = 1;
        else if (i < 1)
            i = lastPage;
        $elem.data('currentPage', i);
        var position = -1 * (i - 1) * windowWidth;
        $elem.find('.' + $elem.data('windowClass')).animate({left: position}, 1000);
    }
}
