var Portal = Class.create();
Portal.prototype = {
  initialize: function (options) {
    this.setOptions(options);
    var sortables = document.getElementsByClassName(
      this.options.column, this.options.portal
    );
    sortables.each(function (sortable) {
      Sortable.create(sortable, { 
        containment: sortables,
        constraint: false,
        tag: 'div',
        only: this.options.block,
        dropOnEmpty: true,
        handle: this.options.handle,
        hoverclass: this.options.hoverclass,
        onUpdate: function (container) {
          if (!this.options.saveurl) {
            return;
          }
          if (container.id == this.options.blocklist) {
            return;
          }
          var url = this.options.saveurl;
          var postBody = container.id + ':';
          var blocks = document.getElementsByClassName(
            this.options.block, container
          );
          postBody += blocks.pluck('id').join(',');
          postBody = 'value=' + escape(postBody);
          
          new Ajax.Request(url, {
              method: 'post',
              postBody: postBody
            }
          );
        }.bind(this)
      });
    }.bind(this));
//Cargo todos los DIV "block" en la variable blocks    
    var blocks = document.getElementsByClassName(
      this.options.block, this.options.portal
    );
    
    

//Recorro todos los blocks y les asigno los eventos y efectos    
    blocks.each(

      function (block) {
        
        var content = Element.childrenWithClassName(
          block, this.options.content, true
        );
        
        var toggle = Element.childrenWithClassName(
          block, this.options.toggle, true
        );
        Event.observe(
          toggle, 'click', 
          function (e) { Effect.toggle(content, 'slide'); },
          false
        );
        var animate = Element.childrenWithClassName(
          block, this.options.animate, true
        );
        Event.observe(
          animate, 'click', 
          function (e) { 
         	Effect.Pulsate(content.parentNode);
                $('columna_lista_cajas').appendChild(content.parentNode);
          	    moveItem2();

            //alert(estamosEnLaHome);
      	 },
		  false
        );
       }.bind(this)
    );
    
    
        
    Event.observe(
      this.options.blocklistlink, 'click', 
      this.displayBlockList.bindAsEventListener(this), 
      false
    );

    new Draggable(this.options.blocklist, {
        handle: this.options.blocklisthandle
      }
    );


    //INICIALIZAMOS LAS CAJAS
    initColumnasCajas();

    
  },

  displayBlockList: function (e) {
    Effect.toggle(this.options.blocklist);
    Event.stop(e);
  },

  setOptions: function (options) {
    this.options = {
      portal: 'portal',
      column: 'portal-column',
      block: 'block',
      content: 'content',
      handle: 'handle',
      hoverclass: 'block-hover',
      toggle: 'minimizar_ventana',
	  animate: 'cerrar_ventana',
      blocklist: 'columna_lista_cajas',
      blocklistlink: 'lista_cajas',
      blocklisthandle: 'block-list-handle',
      saveurl: '',
      closeWindow: 'desplegar',
      pestanaCuerpo: 'pestana_cuerpo'
    }
    Object.extend(this.options, options || {});
  },

  applySettings: function (settings) {
    for (var container in settings) {
      settings[container].each(function (block) {
        $(container).appendChild($(block));
      });
    }
  }
  
}

function initColumnasCajas()
{
	var MiCookie=getCookie('AneoCajas');
	if (MiCookie!=null)
	{
		//alert('cookie OK=' + MiCookie);
		var columnas;
		var cajas;
		var cajaActual;
		var tmp;
		var columnaActual;
		var cadCookie=MiCookie;
		
		    columnas=cadCookie.split('*')
		    for (i=0;i<=columnas.length -1; i++)
		    {
			    tmp=columnas[i].split('@');
			    columnaActual=tmp[0]  ;
			    cajas=tmp[1].split('+');
			    for (j=0;j<=cajas.length-1;j++)
			    {
				    if (cajas[j]!='' && cajas[j]!=null)
				    {
					    cajaActual=document.getElementById(cajas[j]);
					    if(cajaActual!=null)
					    {
						    $(columnaActual).appendChild(cajaActual );
					    }
				    }
			    }
		    }
	    }
	else
	{
		//alert('cookie NO OK');
	}
	
}
function getCookie( name ) { 
	var start = document.cookie.indexOf( name + "=" ); 
	var len = start + name.length + 1; 
	if ( (!start ) && ( name!= document.cookie.substring( 0, name.length ) ) ) { 
		return null; 
	} 
	if ( start == -1 ) return null; 
	var end = document.cookie.indexOf( ';', len ); 
	if ( end == -1 ) end = document.cookie.length; 
	return unescape( document.cookie.substring( len, end ) ); 
}


