var fichaEleitoral = {
  "CONTAINER_ID" : "cidade-ficha",
  
  "CONTAINER_CLASS_OPENED" : "aberto",
  "CONTAINER_CLASS_CLOSED" : "fechado",
  
  "CONTAINER_HEIGHT_OPENED" : 24.4,
  "CONTAINER_HEIGHT_CLOSED" : 3.5,
  
  "container" : null,
  
  "getContainer" : function()
  {
    if( this.container === null )
    {
      this.container = document.getElementById( this.CONTAINER_ID );
    }
    
    return this.container;
  },
  
  "isOpened" : function()
  {
    return existsClass( this.getContainer(), this.CONTAINER_CLASS_OPENED );
  },
  
  "changeClass" : function()
  {
    var container = this.getContainer();
    var isOpened = this.isOpened();
    
    removeClass( container, isOpened?this.CONTAINER_CLASS_OPENED:this.CONTAINER_CLASS_CLOSED );
    addClass( container, !isOpened?this.CONTAINER_CLASS_OPENED:this.CONTAINER_CLASS_CLOSED );
  },
  
  "slice" : function()
  {
    this.changeClass();    
    setAndAnimate.change({
      objName : 'setBoxImageWidth',
      propriedade : [this.getContainer().style, 'height', 'em' ],
      inicio : this.getContainer().offsetHeight / bFs,
      fim : this.isOpened()?this.CONTAINER_HEIGHT_OPENED:this.CONTAINER_HEIGHT_CLOSED,
      callback : function() 
      {
        reequalize();
      }
    });
  },
  
  "loadSetAndAnimate" : function()
  {
    var script;
    
    if( typeof setAndAnimate === "undefined" )
    {
      script = document.createElement("script");
      script.type = "text/javascript";
      script.src = "http://lib.uol.com.br/setandanimate/setandanimate.js";
      
      document.getElementsByTagName("body")[0].appendChild(script);  
    }
  },
  
  "click" : function( obj, evt )
  {
    var interval;
    var parent = this;
    
    this.loadSetAndAnimate();
    
    interval = window.setInterval( 
      function()
      {
        if( typeof setAndAnimate !== "undefined" )
        {
          parent.slice();
          window.clearInterval( interval );
        }
      },
      50 
    );
    
    this.events.preventDefault( evt );
  },

  events : {

    /**
     * Retorna false para os eventos padroes
     * @param {Object} e Evento
     */
    preventDefault : function(e){
      if(e.preventDefault) e.preventDefault();
      else e.returnValue = false; 
    }, 
    
    /**
     * Adicionar eventos
     * @param {Object} elem Elemento HTML
     * @param {String} event Evento (click, mouseover, mouseout, ...)
     * @param {Function} fun Função adicionada ao evento
     */
    add : function(elem,event,fun){
      if(document.attachEvent)
        elem.attachEvent('on'+event,fun);
      else if(document.addEventListener)
        elem.addEventListener(event,fun,true);
    }
  
  }

};
