﻿var aTabs = new Array();

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,""); }
String.prototype.ltrim = function() { return this.replace(/^\s+/,""); }
String.prototype.rtrim = function() { return this.replace(/\s+$/,""); }

function openPage(sUrl)
{
    window.location = sUrl;
}

function isEmail(sInput)
{
    var bHasAt=false;
    var bHasPeriod=false;
    if(sInput.length<6) return false;
    
    for(var  i=0;i<sInput.length;i++)
    {
        if(sInput.charAt(i)=='@' && bHasAt) return false;
        if(sInput.charAt(i)=='@' && !bHasAt) bHasAt = true;
        if(sInput.charAt(i)=='.' && bHasAt) bHasPeriod = true;
    }
    
    if(bHasAt && bHasPeriod) return true;
    return false;
}

function isNumeric(sText)
{
    var ValidChars = "0123456789.";
    var IsNumber=true;
    var Char;

    for (i = 0; i < sText.length && IsNumber == true; i++) 
    { 
        Char = sText.charAt(i); 
        if (ValidChars.indexOf(Char) == -1) 
        {
            IsNumber = false;
        }
    }
    return IsNumber;
}

function getXmlValue(oNode,sTagName)
{
    try
    {
        return oNode.getElementsByTagName(sTagName)[0].firstChild.nodeValue;
    }
    catch(e)
    {
        return "";
    }
}

function disableAllInputs(element)
{
    var sReturn="";
    var oItems;
    
    oItems = element.getElementsByTagName('input');
    
    for(var i=0;i<oItems.length;i++)
    {
        oItems[i].disabled = true;
    }
    
    oItems = element.getElementsByTagName('select');
    
    for(var i=0;i<oItems.length;i++)
    {
        oItems[i].disabled = true;
    }

    oItems = element.getElementsByTagName('textarea');
    
    for(var i=0;i<oItems.length;i++)
    {
        oItems[i].disabled = true;
    }
    
    return sReturn;
}

function enableAllInputs(element)
{
    var sReturn="";
    var oItems;
    
    oItems = element.getElementsByTagName('input');
    
    for(var i=0;i<oItems.length;i++)
    {
        oItems[i].disabled = false;
    }
    
    oItems = element.getElementsByTagName('select');
    
    for(var i=0;i<oItems.length;i++)
    {
        oItems[i].disabled = false;
    }

    oItems = element.getElementsByTagName('textarea');
    
    for(var i=0;i<oItems.length;i++)
    {
        oItems[i].disabled = false;
    }
    
    return sReturn;
}

function generateFakeGuid()
{
    var result, i, j;
    result = '';
    for(j=0; j<32; j++)
    {
        if( j == 8 || j == 12|| j == 16|| j == 20)
        result = result + '-';
        i = Math.floor(Math.random()*16).toString(16).toUpperCase();
        result = result + i;
    }
    return result;
}

function ajaxCall(sUrl, sRequest, fCallback, sType)
{
    if(sType != undefined)
    {
        $.ajax({type: "POST", url: sUrl, data:sRequest, success: fCallback, dataType: sType  });
    }
    else
    {
        $.ajax({type: "POST", url: sUrl, data:sRequest, success: fCallback });
    }
}

function show(item) { $(item).show(); }
function hide(item) { $(item).hide(); }
function $$(el) { return document.getElementById(el); }
function pageLoad() { }

function tab(sName)
{
    var i;
    if(aTabs.length==0) return;
    
    for(i=0;i<aTabs.length;i++)
    {
        if(aTabs[i].Name == sName)
        {
            aTabs[i].Tab.className = "current";
            
            if(aTabs[i].Div!=null)
            {
                aTabs[i].Div.className = 'tabBodyOn';
            }
        }
        else
        {
            aTabs[i].Tab.className = "";
            if(aTabs[i].Div!=null)
                aTabs[i].Div.className = 'tabBody';
        }
    }
    
    tab_onchange(sName);
}

function tab_onchange(sName) {};

function move(source,target)
{
    var oCategory = document.getElementById(source);
    var oSelected = document.getElementById(target);
    var oOption;
    var iCount;
    var iCategoryCount;
    var bFound=false;
    
    for(iCount=oCategory.options.length-1;iCount>=0;iCount--)
    {
        if(oCategory.options[iCount].selected)
        {
            bFound=false;
            for(iCategoryCount=0;iCategoryCount<oSelected.options.length;iCategoryCount++)
            {
                if(oSelected.options[iCategoryCount].value==oCategory.options[iCount].value)
                {
                    bFound=true;
                }
            }
            if(!bFound)
            {
                oCategory.options[iCount].selected = false;
                oOption = new Option(oCategory.options[iCount].text,oCategory.options[iCount].value);
                oSelected.options[oSelected.options.length] = oOption;
                oCategory.options[iCount] = null;
            }
        }
    }
}

function removeSelected(target)
{
    var iCategoryCount;
    var oSelected = document.getElementById(target);
    
    for(iCategoryCount=oSelected.options.length-1;iCategoryCount>=0;iCategoryCount--)
    {
        if(oSelected.options[iCategoryCount].selected)
        {
            oSelected.options[iCategoryCount]=null;
        }
    }
}

Date.prototype.setISO8601 = function (string) 
{
    var regexp = "([0-9]{4})(-([0-9]{2})(-([0-9]{2})" +
        "(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?" +
        "(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?";
    var d = string.match(new RegExp(regexp));

    var offset = 0;
    var date = new Date(d[1], 0, 1);

    if (d[3]) { date.setMonth(d[3] - 1); }
    if (d[5]) { date.setDate(d[5]); }
    if (d[7]) { date.setHours(d[7]); }
    if (d[8]) { date.setMinutes(d[8]); }
    if (d[10]) { date.setSeconds(d[10]); }
    if (d[12]) { date.setMilliseconds(Number("0." + d[12]) * 1000); }
    if (d[14]) 
    {
        offset = (Number(d[16]) * 60) + Number(d[17]);
        offset *= ((d[15] == '-') ? 1 : -1);
    }

    offset -= date.getTimezoneOffset();
    time = (Number(date) + (offset * 60 * 1000));
    this.setTime(Number(time));
}

Date.prototype.formatDate = function(format)
{
    var date = this;
    if (!format)
      format="MM/dd/yyyy";               
    var month = date.getMonth() + 1;
    var year = date.getFullYear();    
    format = format.replace("MM",month.toString().padL(2,"0"));        
    if (format.indexOf("yyyy") > -1)
        format = format.replace("yyyy",year.toString());
    else if (format.indexOf("yy") > -1)
        format = format.replace("yy",year.toString().substr(2,2));
    format = format.replace("dd",date.getDate().toString().padL(2,"0"));
    var hours = date.getHours();       
    if (format.indexOf("t") > -1)
    {
       if (hours > 11)
        format = format.replace("t","pm")
       else
        format = format.replace("t","am")
    }
    if (format.indexOf("HH") > -1)
        format = format.replace("HH",hours.toString().padL(2,"0"));
    if (format.indexOf("hh") > -1) {
        if (hours > 12) hours - 12;
        if (hours == 0) hours = 12;
        format = format.replace("hh",hours.toString().padL(2,"0"));        
    }
    if (format.indexOf("mm") > -1)
       format = format.replace("mm",date.getMinutes().toString().padL(2,"0"));
    if (format.indexOf("ss") > -1)
       format = format.replace("ss",date.getSeconds().toString().padL(2,"0"));
    return format;
}
String.repeat = function(chr,count)
{    
    var str = ""; 
    for(var x=0;x<count;x++) {str += chr}; 
    return str;
}
String.prototype.padL = function(width,pad)
{
    if (!width ||width<1)
        return this;   
 
    if (!pad) pad=" ";        
    var length = width - this.length
    if (length < 1) return this.substr(0,width);
 
    return (String.repeat(pad,length) + this).substr(0,width);    
}    
String.prototype.padR = function(width,pad)
{
    if (!width || width<1)
        return this;        
 
    if (!pad) pad=" ";
    var length = width - this.length
    if (length < 1) this.substr(0,width);
 
    return (this + String.repeat(pad,length)).substr(0,width);
}

jQuery(document).ready(function()
{
    var oDivs=document.getElementsByTagName('div');
    var oTabs;
    var i;
    var j;
    
    for(i=0;i<oDivs.length;i++)
    {
        if(oDivs[i].className == "tabStrip" || oDivs[i].className=='tabs')
        {
            oTabs = oDivs[i].getElementsByTagName('li');
            for(j=0;j<oTabs.length;j++)
            {
                aTabs[aTabs.length] = new Object();
                aTabs[aTabs.length-1].Tab = oTabs[j];
                aTabs[aTabs.length-1].Name = oTabs[j].getAttribute("tab");
                
                oTabs[j].getElementsByTagName("a")[0].href = '#' + aTabs[aTabs.length-1].Name;
            }
        }
        if(oDivs[i].className == "tabBody")
        {
            for(j=0;j<aTabs.length;j++)
            {
                if(aTabs[j].Name == oDivs[i].getAttribute('tab'))
                {
                    aTabs[j].Div = oDivs[i];
                }
            }
        }
    }
    
    if(aTabs.length>0)
    {
        if(window.location.hash.length > 0)
        {
            tab(window.location.hash.substring(1));
        }
        else
        {
            tab(aTabs[0].Name);
        }
    }
    pageLoad();
});