String.prototype.trim = function() {
    return trim(this);
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}


function OpenPopUp(url, width, height)
{
    var newwindow;
    
	newwindow=window.open(url,'name','height=' + height + ',width=' + width);
	if (window.focus) {newwindow.focus()}
}

// Gets path and query part of location WITHOUT the # markers
function GetPathAndQuery()
{		
    var url = window.location.href;
	
    if (url.indexOf('#') > -1)
    {
        url = url.split('#')[0];
    }
    
    return url;
}

function iFrameHeight(iframeId, overflown) {
    overflown = overflown || false;     // Defaults to false
    
    try
    {    
        var pdoc = parent.window.document;
        
        var h = 0;
        if ( !document.all ) 
        {
            h = pdoc.getElementById(iframeId).contentDocument.height;
            pdoc.getElementById(iframeId).style.height = h + 20 + 'px';
        } 
        else if( document.all ) 
        {            
            h = pdoc.frames(iframeId).document.body.scrollHeight;

            if (overflown) {   // Is the scrollbar visible?
                var scrollBarWidth;
            
                if (parseInt($.browser.version) == 6) {
                    scrollBarWidth = 18;
                }
                else {
                    scrollBarWidth = 16;
                }

                $('div.WizardContainerScroller').width($('div.WizardContainer').width() - scrollBarWidth);
            }
            
            pdoc.getElementById(iframeId).style.height = h + 0 + 'px';            
        }
    }
    catch (e)
    {
        
    }
}

// This will attempt to center the first UL it can find with class="Menu"
// by shrinking it's width to the size of the child LI's
// Timeout is needed to give images a chance to load
function CenterMenu(ul)
{
    setTimeout(function(ul) { DoCenterMenu(ul); }, 1000);
}

function DoCenterMenu(ul)
{
    try
    {
        var ulWidth = 0;
        var uls = document.getElementsByTagName('ul');
        var ul;
        
        for (var ulCounter = 0; ulCounter < uls.length; ulCounter++)
        {
            ul = uls[ulCounter];        
            if (ul.className == 'Menu') break;
        }

        for (var childCounter = 0; childCounter < ul.childNodes.length; childCounter++)
        {
            var li = ul.childNodes[childCounter];

            if (li.clientWidth)
                ulWidth += li.clientWidth + 2;
        }

        ul.style.width = (ulWidth) + 'px';
    }
    catch (e)
    {
    
    }
}

function AC_Generateobj(objAttrs, params, embedAttrs)
{

var str = '<object ';
for (var i in objAttrs)
str += i + '="' + objAttrs[i] + '" ';
str += '>';
for (var i in params)
str += '<param name="' + i + '" value="' + params[i] + '" /> ';
 str += '<embed ';
 for (var i in embedAttrs)
 str += i + '="' + embedAttrs[i] + '" ';
 str += ' ></embed></object>';
//alert(str);
 document.write(str);
}

 function AC_FL_RunContent(){
 var ret =
 AC_GetArgs
 ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
 , "application/x-shockwave-flash"
 );
 AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
 var ret =
 AC_GetArgs
 ( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
 , null
 );
 AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
 var ret = new Object();
 ret.embedAttrs = new Object();
 ret.params = new Object();
 ret.objAttrs = new Object();
 for (var i=0; i < args.length; i=i+2){
 var currArg = args[i].toLowerCase();

 switch (currArg){
 case "classid":
 break;
 case "pluginspage":
 ret.embedAttrs[args[i]] = args[i+1];
 break;
 case "src":
 case "movie":
 args[i+1] = AC_AddExtension(args[i+1], ext);
 ret.embedAttrs["src"] = args[i+1];
 ret.params[srcParamName] = args[i+1];
 break;
 case "onafterupdate":
 case "onbeforeupdate":
 case "onblur":
 case "oncellchange":
 case "onclick":
 case "ondblClick":
 case "ondrag":
 case "ondragend":
 case "ondragenter":
 case "ondragleave":
 case "ondragover":
 case "ondrop":
 case "onfinish":
 case "onfocus":
 case "onhelp":
 case "onmousedown":
  case "onmouseup":
 case "onmouseover":
 case "onmousemove":
case "onmouseout":
case "onkeypress": 
case "onkeydown": 
case "onkeyup": 
case "onload":
 case "onlosecapture": 
case "onpropertychange":
 case "onreadystatechange":
 case "onrowsdelete":
 case "onrowenter":
 case "onrowexit":
 case "onrowsinserted":
 case "onstart":
 case "onscroll":
 case "onbeforeeditfocus":
 case "onactivate":
 case "onbeforedeactivate":
 case "ondeactivate":
 case "type":
 case "codebase":
 ret.objAttrs[args[i]] = args[i+1];
 break;
 case "width":
 case "height":
 case "align":
 case "vspace":
 case "hspace":
 case "class":
 case "title":
 case "accesskey":
 case "name":
 case "id":
 case "tabindex":
 ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
 break;
 default:
 ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
 }
 }
 ret.objAttrs["classid"] = classid;
 if (mimeType) ret.embedAttrs["type"] = mimeType;
 return ret;
}

function mergeUrlParameters(newParams)
{
    var url = window.location.toString();

    if (url.indexOf('?') != -1) {
        var baseUrl = url.split('?')[0];
        var queryString = url.split('?')[1];
    }
    else {
        var baseUrl = url;
        var queryString = '';
    }

    var params = {};

    if (queryString.length > 0) {
        pairs = queryString.split('&');

        for (var pairCounter = 0; pairCounter < pairs.length; pairCounter++) {
            var pair = pairs[pairCounter];

            var key = pair.split('=')[0].toLowerCase();
            var value = pair.split('=')[1];

            params[key] = value;
        }
    }

    var lowerNewParams = {};

    for (var key in newParams) {
        var value = newParams[key];
        lowerNewParams[key.toString().toLowerCase()] = value;
    }

    jQuery.extend(params, lowerNewParams);

    var newUrl = baseUrl + '?';

    for (var key in params) {
        var value = params[key];

        newUrl += key + '=' + value + '&';
    }

    if (newUrl[newUrl.length - 1] == '&') newUrl = newUrl.substring(0, newUrl.length - 1);

    return newUrl;
}

function validateInputLength(input, e, maxlength) {
    if (window.event)
        key = window.event.keyCode;
    else if (e)
        key = e.which;
    else
        return true;

    return input.value.length < maxlength || key == 8;
}