function VideaSelect(_params) {
  var me = this;
  var params = _params;
  me.basetext;
  me.options;
  me.selected;
  me.cbOnclick;
  me.cbOnclickParams;
  var baseSelectDiv;
  var selectDiv;
  var selectBase;
  var optionsDiv;
  var blurTimeout = 200;
  
  var init=function(){ 
    me.basetext = params.basetext;
    me.options = params.options;
    me.selected = -1;
    me.cbOnclick = params.cb;
    me.cbOnclickParams = params.cbparams;
    
    if(me.basetext==null || me.basetext==""){
      me.basetext=me.options[0].text;
      me.selected=0;
    }
    
    baseSelectDiv = document.createElement("div");
    selectDiv = append("div",baseSelectDiv,{"className":"select_content"});
    selectBase=append("a",selectDiv,{'className':'select_active', 'innerHTML':me.basetext, 'href':'javascript:;', "tabIndex":"0"});
    optionsDiv=append("div",selectDiv,{'className':'select_options'});
    for(var i=0; i<me.options.length; i++){
      if(me.options[i].link != null){
        var option=append("a",optionsDiv,{'className':'select_options_item', 'innerHTML':me.options[i].text, 'href':me.options[i].link});
      }  
      else{
        var option=append("a",optionsDiv,{'className':'select_options_item', 'innerHTML':me.options[i].text, 'href':'javascript:;'});
        option.no=i;
        option.onclick=function(){
          me.selectOptionById(this.no);
          if(me.cbOnclick!=null)
            me.cbOnclick(me.cbOnclickParams);
        }
      }
      if(me.options[i].selected==1 || me.options[i].selected==true){
        me.selectOptionById(i);
      }
    }
    
    selectBase.onclick=function(){
      optionsDiv.style.display=optionsDiv.style.display=="block"?"none":"block";
      if(optionsDiv.style.display=="block"){
        optionsDiv.style.zIndex = "20";
        baseSelectDiv.style.zIndex = "20";
      } else {
        optionsDiv.style.zIndex = "auto";
        baseSelectDiv.style.zIndex = "auto";
      }
    }
    selectBase.onblur=function(){
      setTimeout(function(){optionsDiv.style.display="none"; baseSelectDiv.style.zIndex="auto";},blurTimeout);
    } 
  }

  me.appendSelectHtml=function(container, classnames){
    if(typeof(container)=="string")
      container=document.getElementById(container);
    while(container.firstChild) container.removeChild(container.firstChild);
    baseSelectDiv.className=classnames;
    container.appendChild(baseSelectDiv);
  }
  
  me.getSelectedOption = function() {
    if(me.selected<0 || me.selected>=me.options.length)
      return {"text":null,"value":null};  
    return me.options[me.selected];
  }
  
  me.getSelectedOptionValue = function() {  
    return me.getSelectedOption().value;
  }
  
  me.getSelectedOptionText = function() {  
    return me.getSelectedOption().text;
  }
  
  me.selectOptionById = function(id) {  
    me.selected = id;
    selectBase.innerHTML=me.getSelectedOptionText();
  }
  
  me.selectOptionByValue = function(value) { 
    for(var i=0; i<me.options.length; i++){
      if(typeof(value)=='object'){
        var allEquals = true;
        for(var j in me.options[i].value){      
          if(me.options[i].value[j]!=value[j]){
            allEquals = false;          
          }
        }
        if(allEquals){
          me.selectOptionById(i);
        }
      }
      else{
        if(me.options[i].value == value){
          me.selectOptionById(i);
        }
      }
    }
  }
  
  me.selectOptionByText = function(text) {  
    for(var i=0; i<me.options.length; i++){
      if(me.options[i].text==text){
        me.selectOptionById(i);
      }
    }
  }

  me.setCbOnclickParams = function(params){
    me.cbOnclickParams=params;
  }
  
  init();
}

