/**
 * MindCMS 3
 *
 * @class   msSelectButton
 * @extends msButton
 * JS msSelectButton object definition
 *
 * @package CMS3
 * @author Raluca NECHITA <raluca.nechita@mindbench.nl>
 * @copyright Mindbench Active Media B.V.
 * @version $Id: msSelectButton.js 8511 2009-03-04 13:26:32Z rma $
 */

/*
var myCustomViewSelectaaaa = {  
  addElementCache: new Array(),
  container:null,
  input: null,
  getEl: function (container, input) {     
 
   this.container = container;
   this.input = input;
    p_text = 'Language Fallback';
    var div_element = new Element('DIV');

    if (typeof ribbon_languages != "undefined") {
      
      if (ribbon_languages.length == 0) return;
      for (var i in ribbon_languages) {
        if(typeof ribbon_languages == 'function') continue;
        
        var option_el = new Element('div', { 'id': 'lang_' + i, 'class': 'div-content-msr'});
        var flagImage = new Element('img', { 'id': 'flag_img_' + i, 'src': '/shared/img/famfamflags/' + i.toLowerCase() + '.gif'} );
        option_el.appendChild(flagImage);
        option_el.insert(i);      
        
        this.addElementCache[i + 'click'] = function(e) { this.clickListner(e);};                           
        Event.observe(option_el, 'click', this.addElementCache[i + 'click'].bindAsEventListener(this)); 
        Event.observe(flagImage, 'click', this.addElementCache[i + 'click'].bindAsEventListener(this));      
  
        div_element.appendChild(option_el);
      }  
    }
    // p_text => what text will be sent for box title
    // div_element => the entire generated div with your content
    // input => input id that will generate the click event
    // container => container box id 
    return [p_text, div_element, this.input, this.container];
  },
  
  clickListner: function(e) {
    var data = $A(arguments);    
    data.shift(); 

    var element = Event.element(e);
    
    if(element.id.length == 11)
      key = (element.id).substr(9,11);
    else
      key = (element.id).substr(5,7);
    
    $(this.input).value = key;
    $('fallback_language_input').value = ribbon_languages[key];
        
    $(this.container).hide();
  },
  
  populateSelectFallbackLanguage: function(default_language) {
    if($('defaultculture_input')) $('defaultculture_input').value = default_language.substr(3,5);
    if($('fallback_language_input'))$('fallback_language_input').value = default_language;
  }
}

*/

var msSelectButton = Class.create(msButton, {
  xtype: 'select-button',
   
  //a reference to the custom content will be drawn
  viewer: false,

  // redefine the constructor
  initialize: function ($super,config) {
    $super(config);
    
    if(!this.viewer) {
      Object.extend(this, { viewer: eval(this.config.viewer) });
    }
  },
  
  // redefine the build method
  build: function ($super) {  
    var THIS = this;
   
    this.el = new Element('div', {'class': 'msr-' + this.xtype });
        
    if (
      this.config.verify_localized &&
      (window[this.config.verify_localized] == undefined || window[this.config.verify_localized].length == 0)
    ) { 
      return;
    }      
          
    var id = this.config.name.replace(/\x20/g,'');
    var input_name = id + '_input';
    var container_name = id + 'container';    
    
    var new_input = new Element ('input', { 'id': id + '_input'});    
    // new_input.setStyle( { cursor: 'pointer' } );
    new_input.readOnly = true;
    this.el.appendChild(new_input);
    
    this.box = new msBoxContainer(id);
    this.box.boxContainer.setStyle({'width': '150px'});
    //adds the dropdown icon
    var anchor = new Element('img', {'class': 'trigger' });
    anchor.src = '/shared/img/sort-down.gif';
    this.el.appendChild(anchor);
    
    Event.observe(this.el, 'click', this.clickListner.bindAsEventListener(
      this,
      { 'container_name': container_name, 'input_name': input_name }
    ));
  },
  
  clickListner: function(event, ci) {
    var data = $A(arguments).shift();
    this.box.populateBox(this.viewer.getEl(ci.container_name, ci.input_name));
  }
});
