//
// Displays media blocks - SW mode.
//
function display_media_blocks_sw_mode(blocks)
{      
    var html = "", class_block, class_title;
    var block, block_id, type, title, code, html_block, onclick, form_id;
       
    //              
    // Go over blocks.
    //
    for (var i=0; i<blocks.length; i++)
    {
        //
        // Parse block data.
        //
        block = blocks[i];

        block_id = block['id'];
        type = parseInt(block['type']);
        title = block['title'];
        code = block['code'];
        
        code_obj = eval_json(code);
        
        //
        // Start item div.
        //
        class_block = (title == '') ? 'blank_title' : '';
        
        html += "<div class='handle mblock "+class_block+"' id='mblock_"+block_id+"'>";
        
            //
            // Switch by block type, to set its 
            // onclick and html code.
            //
            switch (type)
            {
                case BLOCK_TYPE_HTML:
                html_block = embedded_url_to_embed_code(code_obj.html, null, code_obj.height);
                onclick = "display_edit_embed_form("+block_id+", "+code_obj.height+")";
                form_id = 'form_embed';
                class_title = 'video';
                break;  

                case BLOCK_TYPE_GALLERY:
                html_block = gen_html_gallery(block_id, code_obj);
                onclick = "display_edit_gallery_form("+block_id+", "+code_obj.type+");";
                form_id = 'form_gallery';
                class_title = 'photo';
                break;  
                
                case BLOCK_TYPE_LLIST:
                html_block = gen_html_llist(block_id, code_obj);
                onclick = "display_edit_llist_form("+block_id+")";
                form_id = 'form_llist';
                class_title = 'links';
                break;  
                
                case BLOCK_TYPE_CONTACT:
                html_block = gen_html_contact(block_id, code_obj);
                onclick = "display_edit_contact_form("+block_id+")";
                form_id = 'form_contact';
                class_title = 'form';
                break;  
                
                case BLOCK_TYPE_MAILING_LIST:
                html_block = gen_html_ml_form(block_id, code_obj);
                onclick = "switch_to_ml("+block_id+", "+code_obj.ml_id+")";
                form_id = '';
                class_title = 'mailinglist';
                break;  
            }
            
            if (form_id != '')
            {
                html += "<h3 rel='#"+form_id+"' class='modal_input edit mblock_title "+class_title+"' id='mblock_title_"+block_id+"' onclick='"+onclick+"' alt='"+translate('click to edit')+"' title='"+translate('click to edit')+"'>" + title + "</h3>";
            }
            
            else
            {
                html += "<h3 class='edit mblock_title "+class_title+"' id='mblock_title_"+block_id+"' onclick='"+onclick+"' alt='"+translate('click to edit')+"' title='"+translate('click to edit')+"'>" + title + "</h3>";
            }
            
            html += "<div id='mblock_code_"+block_id+"' class='block_html' alt='"+translate('drag to move')+"' title='"+translate('drag to move')+"'>"+html_block+"</div>";
            
        html += "</div>";
    }
    
    //
    // Display media blocks.
    //
    $('#page_media_blocks').html(html);
    
    //
    // jQuery for making media blocks sortable.
    // See: http://docs.jquery.com/UI/Sortable
    //
    $("#page_media_blocks").sortable(
    { 
        items: '.handle',
        opacity: 0.6,
        revert: true,
        axis: 'y',
        containment: $("#page_media_blocks"),
        
        update : function () 
        {
            close_modals(); // in case the blocked was dragged from its title, which caused fancybox popup.
         
            var page_id = get_form_field('form_embed', FLD_PAGE_ID);
            var ids = $('#page_media_blocks').sortable('toArray');
            
            var data = 'action=ajax_update_blocks_order&'+FLD_PAGE_ID+'='+page_id+'&block_ids='+ids;
            var code = "";
            
            ajax(data, code, 'screen-message');
        } 
    }); 
    
    //
    // Set slideshow and gallery mechanisms.
    //
    make_slideshow_and_gallery();
    
    //
    // Make block forms modal. 
    //
    make_modals('#page_media_blocks');    
}

//
// Displays media blocks - HTML mode.
//
function display_media_blocks_html_mode(blocks)
{         
    var html = "", class_block, class_title;
    var block, block_id, type, title, code, html_block;          
    
    //
    // Go over blocks.
    //
    for (var i=0; i<blocks.length; i++)
    {
        //
        // Parse block data.
        //
        block = blocks[i];
        
        block_id = block['id'];
        type = parseInt(block['type']);
        title = block['title'];
        code = block['code'];

        code_obj = eval_json(code);
        
        //
        // Switch by block type, to set its 
        // html code.
        //
        switch (type)
        {
            case BLOCK_TYPE_HTML:
            html_block = embedded_url_to_embed_code(code_obj.html, null, code_obj.height);
            class_title = 'video';
            break;  

            case BLOCK_TYPE_GALLERY:
            html_block = gen_html_gallery(block_id, code_obj);
            class_title = 'photo';
            break;  
            
            case BLOCK_TYPE_LLIST:
            html_block = gen_html_llist(block_id, code_obj);
            class_title = 'links';
            break;  

            case BLOCK_TYPE_CONTACT:
            html_block = gen_html_contact(block_id, code_obj);
            class_title = 'form';
            break;  

            case BLOCK_TYPE_MAILING_LIST:
            html_block = gen_html_ml_form(block_id, code_obj);
            class_title = 'mailinglist';
            break;  
        }
        
        class_block = (title == '') ? 'blank_title' : '';
        
        html += "<div class='mblock "+class_block+"'>";
            html += "<h3 class='mblock_title "+class_title+"'>"+title+"</h3>";
            html += html_block;
        html += "</div>";
        
    }
    
    //
    // Display media blocks.
    //
    $('#page_media_blocks').html(html);
}

//
// Hide block. 
// Used at block deletion.
//
function hide_block(block_id)
{
    $('#mblock_'+block_id).hide();
}

//
// Updates block title and code.
//
function update_block_title(block_id, title)
{
    $('#mblock_title_'+block_id).html(title);
}

function update_block_code(block_id, title)
{
    $('#mblock_code_'+block_id).html(title);
}

//
// Send form contained in block.
//
function send_bform(block_id)
{
    var type, name, val, alt;
    var is_input_valid = true; 
    
    //
    // Test input.
    //
    var f = document.forms['form_'+block_id];
    var all_inputs = $('#form_'+block_id+' :input');

    all_inputs.each(function(index)
    {
        type = $(this).attr('type');
        name = $(this).attr('name');
        val = $(this).val();
        alt = $(this).attr('alt');
        
        val = trim(val);
        
        if ((alt == 'must') && (val == ''))
        {
            my_alert('all field are must', 'msg_'+block_id);
            is_input_valid = false;
            return false;
        }

        if (name.match(/email/) && (! is_valid_email_syntax(val)))
        {
            my_alert('invalid email syntax', 'msg_'+block_id);
            is_input_valid = false;
            return false;
        }
    });
    
    if ( ! is_input_valid)
    {
        return false;
    } 
    
    //
    // Send the request.
    //
    $('#button_'+block_id).hide();
    
    my_alert('wait for message to be sent', 'msg_'+block_id);
    
    setTimeout("document.forms['form_"+block_id+"'].submit();" , 1000);

    /*var data = $('#form_'+block_id).serialize();
    var url = INDEX_URL + '?' + data;
    location.href = INDEX_URL+'?'+data;*/

    return false;
}
