function trim( value )
{
    if ( typeof( value ) === "string" )
    {
        value = value.replace(/^\s*|\s*$/g,"");
    }

    return value;
}

function isEmpty( value )
{
    if ( value === undefined
        || value === null
        || value === false
        || value === 0
        || trim( value ) === '' )
    {
        return true;
    }

    return false;
}

function doSubmit( action, question )
{
    if ( window.event )
    {
        window.event.cancelBubble = true;
    }

    if ( !isEmpty( question ) )
    {
        if ( !confirm( question ) )
        {
            return;
        }
    }

    var elements = window.document.getElementsByTagName( 'a' );
    var len = elements.length;

    for ( var i = 0; i < len; i++ )
    {
        var elem = elements[ i ];

        elem.onclick = function() { return false; };
        elem.style.cursor = 'wait';
    }

    elements = window.document.getElementsByTagName( 'span' );
    len = elements.length;

    for ( var i = 0; i < len; i++ )
    {
        var elem = elements[ i ];

        if ( elem.className.indexOf( 'button' ) >= 0 )
        {
            elem.onclick = '';
            elem.className = elem.className + ' disabled';
        }
    }

    elements = window.document.getElementsByTagName( 'div' );
    len = elements.length;

    for ( var i = 0; i < len; i++ )
    {
        var elem = elements[ i ];

        if ( elem.className.indexOf( 'button' ) >= 0 )
        {
            elem.onclick = '';
            elem.className = elem.className + ' disabled';
        }
    }

    var form = document.getElementById( 'dealersiteform' );
    var inputs = form.getElementsByTagName( 'input' );
    len = inputs.length;

    for ( var i = 0; i < len; i++ )
    {
        var elem = inputs[ i ];

        if ( elem.type === 'file' )
        {
            elem.disabled = true;
        }
    }

    form.action.value = action;
    form.submit();
}

function doFileSubmit( action )
{
    var elements = window.document.getElementsByTagName( 'a' );
    var len = elements.length;

    for ( var i = 0; i < len; i++ )
    {
        var elem = elements[ i ];

        elem.onclick = function() { return false; };
        elem.style.cursor = 'wait';
    }

    elements = window.document.getElementsByTagName( 'span' );
    len = elements.length;

    for ( var i = 0; i < len; i++ )
    {
        var elem = elements[ i ];

        if ( elem.className.indexOf( 'button' ) >= 0 )
        {
            elem.onclick = '';
            elem.className = elem.className + ' disabled';
        }
    }

    elements = window.document.getElementsByTagName( 'div' );
    len = elements.length;

    for ( var i = 0; i < len; i++ )
    {
        var elem = elements[ i ];

        if ( elem.className.indexOf( 'button' ) >= 0 )
        {
            elem.onclick = '';
            elem.className = elem.className + ' disabled';
        }
    }

    var form = document.getElementById( 'dealersiteform' );
    form.action.value = action;

    try
    {
        form.submit();
    }
    catch ( err )
    {
        alert( 'Upload failed: ' + err.message );
        location.reload();
    }
}

function debug_text( theObj, name, indent )
{
    var str = '';
    var type = typeof( theObj );
    var value = theObj;

    str = indent + name + " [" + type + "]: " + value;

    if ( type === "object" )
    {
        for ( var p in theObj )
        {
            str = str + "<br>\n\r" + debug_name( theObj[ p ], p, indent + "&nbsp;&nbsp;" );
        }
    }

    return str;
}

function debug( theObj, name )
{
    var str = '';

    str = debug_text( theObj, name, "" );
    document.write( str );
    return;
}

function toggle( targetId )
{
    var target = window.document.getElementById( targetId );
    var display = eval( 'window.document.forms.dealersiteform.display' + targetId );
    var toggleindicator = window.document.getElementById( 'toggle' + targetId );

    if ( target.style.display === 'none' )
    {
        target.style.display = '';
        display.value = '1';
        toggleindicator.innerText = '-';
    }
    else
    {
        target.style.display = 'none';
        display.value = '';
        toggleindicator.innerText = '+';
    }
}

function toggleContainer( h3obj, divId )
{
    var o = document.getElementById( divId );
    if ( !o )
    {
        alert( 'Unable to access element' );
        return;
    }

    if ( o.className === 'hidecontrol' )
    {
        h3obj.className = 'h3-opened';
        o.className = 'showcontrol';
    }
    else
    {
        h3obj.className = 'h3-closed';
        o.className = 'hidecontrol';
    }

    return;
}

function newWindow ( url, windowname, w, h, windowsettings )
{
    var winl = 0;
    var wint = 0;

    if ( screen.width )
    {
        var winl = ( ( screen.width - w ) / 2 );
        var wint = ( ( screen.height - h ) / 2 );
    }

    if ( winl < 0 )
    {
        winl = 0;
    }

    if ( wint < 0 )
    {
        wint = 0;
    }

    var settings = 'height=' + h + ', ';
    settings += 'width=' + w + ', ';
    settings += 'top=' + wint + ', ';
    settings += 'left=' + winl;

    if ( windowsettings )
    {
        settings += ', ' + windowsettings;
    }

    win = window.open( url, windowname, settings );

/*
    try
    {
        win.window.focus();
    }
    catch ( e )
    {
	// Do nothing.
    }
*/
}

function popup( Fn, X, Y, Scroll )
{
    l = ( screen.width ) ? ( ( screen.width - 550 ) / 2 ) : 0;
    t = ( screen.height ) ? ( ( screen.height - 400 ) / 2 ) : 0;

    NewWindow = window.open( Fn, 'newwindow', 'width=' + X + ', height=' + Y + ', top=' + t + ', left=' + l + ', scrollbars=' + Scroll + ', toolbar=no, location=no, directories=no, status=no, resizable=no, menubar=no' );
}

function setMouseOverFunctions()
{
    var images = document.getElementsByTagName( 'img' );

    for ( var i = 0, len = images.length; i < len; i++ )
    {
        if ( images[i].className.match( new RegExp( '(^|\\s)over(\\s|$)' ) ) )
        {
            images[i].onmouseover = showOver;
            images[i].onmouseout = showOut;
        }
    }

    var divs = document.getElementsByTagName( 'div' );

    for ( var i = 0, len = divs.length; i < len; i++ )
    {
        if ( divs[i].className.match( new RegExp( '(^|\\s)sprite(\\s|$)' ) ) )
        {
            divs[i].onmouseover = showSpriteOver;
            divs[i].onmouseout = showSpriteOut;
        }
    }
}

function showOver()
{
    var pos = this.src.lastIndexOf( '.' );
    this.src = this.src.substring( 0, pos ) + '_over' + this.src.substring( pos );
}

function showOut()
{
    this.src = this.src.replace( new RegExp( '\\_over.' ), '.' );
}

function showSpriteOver()
{
   this.className = this.className.replace( new RegExp( 'sprite' ), 'spriteover' );
}

function showSpriteOut()
{
   this.className = this.className.replace( new RegExp( 'spriteover' ), 'sprite' );
}

function toggleItemDescription(elem)
{
    var row = document.getElementById(elem);

    if(row.style.display === 'none' || row.style.display === '') {
        row.style.display = 'block';
    }
    else {
        row.style.display = 'none';
    }
}

