<script language="JavaScript">
//<![CDATA[
function recreateSortables() {
    Sortable.destroy('list-top');
    Sortable.destroy('list-left');
    Sortable.destroy('list-right');

  Sortable.create("list-top", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('<%= url_for(:controller => 'my', :action => 'order_blocks', :group => 'top') %>', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize("list-top")})}, only:'mypage-box', tag:'div'})
  Sortable.create("list-left", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('<%= url_for(:controller => 'my', :action => 'order_blocks', :group => 'left') %>', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize("list-left")})}, only:'mypage-box', tag:'div'})
  Sortable.create("list-right", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('<%= url_for(:controller => 'my', :action => 'order_blocks', :group => 'right') %>', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize("list-right")})}, only:'mypage-box', tag:'div'})
}

function updateSelect() {
    s = $('block-select')
    for (var i = 0; i < s.options.length; i++) {
        if ($('block_' + s.options[i].value)) {
            s.options[i].disabled = true;
        } else {
            s.options[i].disabled = false;
        }
    }
    s.options[0].selected = true;
}

function afterAddBlock() {
    recreateSortables();
    updateSelect();
}

function removeBlock(block) {
    Effect.DropOut(block);
    updateSelect();
}
//]]>
</script>

<div class="contextual">
<% form_tag({:action => "add_block"}, :id => "block-form") do %>
<%= label_tag('block-select', l(:label_my_page_block)) %>:
<%= select_tag 'block', "<option></option>" + options_for_select(@block_options), :id => "block-select" %>
<%= link_to_remote l(:button_add),
           {:url => { :action => "add_block" },
            :with => "Form.serialize('block-form')",
            :update => "list-top",
            :position => :top,
            :complete => "afterAddBlock();"
           }, :class => 'icon icon-add'
             %>
<% end %>
<%= link_to l(:button_back), {:action => 'page'}, :class => 'icon icon-cancel' %>
</div>

<h2><%=l(:label_my_page)%></h2>

<div id="list-top" class="block-receiver">
  <% @blocks['top'].each do |b|
     next unless MyController::BLOCKS.keys.include? b %>
  <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
  <% end if @blocks['top'] %>
</div>

<div id="list-left" class="splitcontentleft block-receiver">
  <% @blocks['left'].each do |b|
     next unless MyController::BLOCKS.keys.include? b %>
  <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
  <% end if @blocks['left'] %>
</div>

<div id="list-right" class="splitcontentright block-receiver">
  <% @blocks['right'].each do |b|
     next unless MyController::BLOCKS.keys.include? b %>
  <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
  <% end if @blocks['right'] %>
</div>

<%= sortable_element 'list-top',
      :tag => 'div',
      :only => 'mypage-box',
      :handle => "handle",
      :dropOnEmpty => true,
      :containment => ['list-top', 'list-left', 'list-right'],
      :constraint => false,
      :url => { :action => "order_blocks", :group => "top" }
       %>

<%= sortable_element 'list-left',
      :tag => 'div',
      :only => 'mypage-box',
      :handle => "handle",
      :dropOnEmpty => true,
      :containment => ['list-top', 'list-left', 'list-right'],
      :constraint => false,
      :url => { :action => "order_blocks", :group => "left" }
       %>

<%= sortable_element 'list-right',
      :tag => 'div',
      :only => 'mypage-box',
      :handle => "handle",
      :dropOnEmpty => true,
      :containment => ['list-top', 'list-left', 'list-right'],
      :constraint => false,
      :url => { :action => "order_blocks", :group => "right" }
       %>

<%= javascript_tag "updateSelect()" %>
<% html_title(l(:label_my_page)) -%>
