function preview( url )
{
    window.open( url, '', 'width=360, height=190, resizable=no' );
}

// --------------------------------------------------------------------------------------------------

/* private */
var raDinamit__filter_mobile__XMLHttpRequest  = null;
var raDinamit__filter_mobile__models_buffer   = new Array();
var raDinamit__filter_mobile__models_object   = null;
var raDinamit__filter_mobile__url             = null;
var raDinamit__filter_mobile__animation_timer = null;

/* public */
function raDinamit__filter_mobile__check_submit( brands_object, models_object_name )
{
    value = parseInt( brands_object.form[ models_object_name ].value );

    if( '' + value == 'NaN' || value == 0 )
    {
        alert( 'Дождитесь загрузки списка моделей выбранного бренда, и укажите свою модель.' );
        return false;
    }

    return true;
}

/* public */
function raDinamit__filter_mobile__load_mobiles( brands_object, models_object_name )
{
    raDinamit__filter_mobile__XMLHttpRequest = false;

    if( raDinamit__filter_mobile__animation_timer != null )
    {
        clearTimeout( raDinamit__filter_mobile__animation_timer );
        raDinamit__filter_mobile__animation_timer = null;
    }

    // ----------------------------------------------------------------------------------

    raDinamit__filter_mobile__url           = brands_object.value;
    raDinamit__filter_mobile__models_object = brands_object.form[ models_object_name ];

    while( raDinamit__filter_mobile__models_object.length > 0 )
    {
        raDinamit__filter_mobile__models_object.remove( 0 );
    }

    // ----------------------------------------------------------------------------------

    if( raDinamit__filter_mobile__url == '' )
    {
        return true;
    }

    // ----------------------------------------------------------------------------------

    if( raDinamit__filter_mobile__models_buffer[ raDinamit__filter_mobile__url ] == undefined )
    {
        raDinamit__filter_mobile__animation_timer = setTimeout( "raDinamit__filter_mobile__loading()", 100 );

        raDinamit__filter_mobile__load_data( raDinamit__filter_mobile__url );
    }
    else
    {
        raDinamit__filter_mobile__build_list( raDinamit__filter_mobile__models_object
                                            , raDinamit__filter_mobile__models_buffer[ raDinamit__filter_mobile__url ]
                                            );
    }

    return true;
}

/* private */
function raDinamit__filter_mobile__load_data( url )
{
    raDinamit__filter_mobile__XMLHttpRequest = false;

    if( window.XMLHttpRequest )
    {
        try
        {
            raDinamit__filter_mobile__XMLHttpRequest = new XMLHttpRequest();
        }
        catch( e )
        {
            raDinamit__filter_mobile__XMLHttpRequest = false;
        }
    }
    else if( window.ActiveXObject )
    {
        try
        {
            raDinamit__filter_mobile__XMLHttpRequest = new ActiveXObject( "Msxml2.XMLHTTP" );
        }
        catch(e)
        {
            try
            {
                raDinamit__filter_mobile__XMLHttpRequest = new ActiveXObject( "Microsoft.XMLHTTP" );
            }
            catch(e)
            {
                raDinamit__filter_mobile__XMLHttpRequest = false;
            }
        }
    }

    if( raDinamit__filter_mobile__XMLHttpRequest )
    {
        raDinamit__filter_mobile__XMLHttpRequest.onreadystatechange = raDinamit__filter_mobile__processRequestChange;
        raDinamit__filter_mobile__XMLHttpRequest.open( "GET", url, true );
        raDinamit__filter_mobile__XMLHttpRequest.send( "" );
    }

    return true;
}

/* private */
function raDinamit__filter_mobile__processRequestChange()
{
    if( raDinamit__filter_mobile__XMLHttpRequest.readyState == 4 )
    {
        if( raDinamit__filter_mobile__XMLHttpRequest.status == 200 )
        {
            if( raDinamit__filter_mobile__animation_timer != null )
            {
                clearTimeout( raDinamit__filter_mobile__animation_timer );
                raDinamit__filter_mobile__animation_timer = null;
            }

            raDinamit__parse_data__mobiles( 'models', raDinamit__filter_mobile__XMLHttpRequest.responseXML );
        }
        else
        {
            // false
        }
    }
}

/* private */
function raDinamit__filter_mobile__loading()
{
    var current_caption = '';

    if( raDinamit__filter_mobile__models_object.length == 0 )
    {
        raDinamit__filter_mobile__models_object.options[ 0 ] = new Option( '', 0 );
    }

    current_caption = raDinamit__filter_mobile__models_object.options[ 0 ].text;
    current_caption = current_caption + '' + '·';

    if( current_caption.length > 20 )
    {
        current_caption = '·';
    }

    raDinamit__filter_mobile__models_object.options[ 0 ].text = current_caption;

    raDinamit__filter_mobile__animation_timer = setTimeout( "raDinamit__filter_mobile__loading()", 100 );

    return true;
}

/* private */
function raDinamit__filter_mobile__build_list( obj_models, models_array )
{
    while( obj_models.length > 0 )
    {
        obj_models.remove( 0 );
    }

    for( var lp=0; lp<models_array.length; lp++ )
    {
        obj_models.options[ obj_models.options.length ] = new Option( models_array[ lp ][ 'name' ]
                                                                    , models_array[ lp ][ 'id' ]
                                                                    );
    }

    return true;
}

// --------------------------------------------------------------------------------------------------

/* private */
var raDinamit__content_details__XMLHttpRequest = null;
var raDinamit__content_details__models_buffer  = new Array();
var raDinamit__content_details__url            = null;
var raDinamit__content_details__models_object  = null;
var raDinamit__content_details__models_object__startup_text = null;

/* public */
function raDinamit__get_content_mobiles( result_object_id, xml_link )
{
    raDinamit__content_details__XMLHttpRequest = false;

    raDinamit__content_details__url = xml_link;
    raDinamit__content_details__models_object = document.getElementById( result_object_id );

    if( xml_link == '' )
    {
        raDinamit__content_details__models_object.innerHTML = raDinamit__content_details__models_object__startup_text;
        return true;
    }

    var onLoadingText = raDinamit__content_details__models_object.getAttribute( 'onLoadingText' );

    if( onLoadingText == null )
    {
        onLoadingText = '';
    }

    if( raDinamit__content_details__models_object__startup_text == null )
    {
        raDinamit__content_details__models_object__startup_text = raDinamit__content_details__models_object.innerHTML;
    }

    raDinamit__content_details__models_object.innerHTML = onLoadingText;

    if( raDinamit__content_details__models_buffer[ raDinamit__content_details__url ] == undefined )
    {
        raDinamit__content_details__load_data( raDinamit__content_details__url );
    }
    else
    {
        raDinamit__content_details__build_list( raDinamit__content_details__models_object
                                              , raDinamit__content_details__models_buffer[ raDinamit__content_details__url ]
                                              );
    }
}

/* private */
function raDinamit__content_details__load_data( url )
{
    raDinamit__content_details__XMLHttpRequest = false;

    if( window.XMLHttpRequest )
    {
        try
        {
            raDinamit__content_details__XMLHttpRequest = new XMLHttpRequest();
        }
        catch( e )
        {
            raDinamit__content_details__XMLHttpRequest = false;
        }
    }
    else if( window.ActiveXObject )
    {
        try
        {
            raDinamit__content_details__XMLHttpRequest = new ActiveXObject( "Msxml2.XMLHTTP" );
        }
        catch(e)
        {
            try
            {
                raDinamit__content_details__XMLHttpRequest = new ActiveXObject( "Microsoft.XMLHTTP" );
            }
            catch(e)
            {
                raDinamit__content_details__XMLHttpRequest = false;
            }
        }
    }

    if( raDinamit__content_details__XMLHttpRequest )
    {
        raDinamit__content_details__XMLHttpRequest.onreadystatechange = raDinamit__content_details__processRequestChange;
        raDinamit__content_details__XMLHttpRequest.open( "GET", url, true );
        raDinamit__content_details__XMLHttpRequest.send( "" );
    }

    return true;
}

/* private */
function raDinamit__content_details__processRequestChange()
{
    if( raDinamit__content_details__XMLHttpRequest.readyState == 4 )
    {
        if( raDinamit__content_details__XMLHttpRequest.status == 200 )
        {
            raDinamit__parse_data__mobiles( 'content_details_mobilelist', raDinamit__content_details__XMLHttpRequest.responseXML );
        }
        else
        {
            // false
        }
    }
}

/* private */
function raDinamit__content_details__build_list( result_object, mobile_list )
{
    if( result_object == undefined )
    {
        return false;
    }

    result_object.innerHTML = '';

    var result_string = '';

    for( var index=0; index<mobile_list.length; index++ )
    {
        result_string += ( index == 0 ? '' : ', ' )
                       + mobile_list[ index ][ 'name' ]
                       ;
    }

    result_object.innerHTML = result_string;

    return true;
}

// --------------------------------------------------------------------------------------------------

/* private */
function raDinamit__parse_data__mobiles( type, DOM_mobile )
{
    var models_list = new Array();

    // ----------------------------------------------------------------------------------

    var rootNode = DOM_mobile.getElementsByTagName( "models" );

    if( rootNode.length != 1 )
    {
        return false;
    }

    var modelsNodes = rootNode[0].childNodes;

    for( var lp=0; lp<modelsNodes.length; lp++ )
    {
        if( modelsNodes[ lp ].nodeType == 1 )
        if( modelsNodes[ lp ].nodeName == 'model' )
        {
            var model_name =modelsNodes[ lp ].getAttribute( 'name' );
            var id = modelsNodes[ lp ].getAttribute( 'id' );

            var index = models_list.length;

            models_list[ index ] = new Array();
            models_list[ index ][ 'id' ] = id;
            models_list[ index ][ 'name' ] = model_name;
        }
    }

    // ----------------------------------------------------------------------------------

    switch( type )
    {
        case 'models':
        {
            raDinamit__filter_mobile__models_buffer[ raDinamit__filter_mobile__url ] = models_list;

            raDinamit__filter_mobile__build_list( raDinamit__filter_mobile__models_object
                                                , raDinamit__filter_mobile__models_buffer[ raDinamit__filter_mobile__url ]
                                                );
            break;
        }

        case 'content_details_mobilelist':
        {
            raDinamit__content_details__models_buffer[ raDinamit__content_details__url ] = models_list;

            raDinamit__content_details__build_list( raDinamit__content_details__models_object
                                                  , raDinamit__content_details__models_buffer[ raDinamit__content_details__url ]
                                                  );
            break;
        }
    }


    return true;
}
