function MultiSelector( list_target, max ){
  this.list_target = list_target;
  this.count = 0;
  this.id = 0;
  if( max ){this.max = max;}
  else {this.max = -1;};
  this.addElement = function( element ){
    if( element.tagName == 'INPUT' && element.type == 'file' ){
      element.name = 'file_' + this.id++;
      element.multi_selector = this;
      element.onchange = function(){
        var new_element = document.createElement( 'input' );
        new_element.type = 'file';
        this.parentNode.insertBefore( new_element, this );
        this.multi_selector.addElement( new_element );
        this.multi_selector.addListRow( this );
        this.style.position = 'absolute';
        this.style.left = '-1000px';};
        this.count++;
        if( this.max != -1 && this.count >= this.max ){element.disabled = true;};
        this.current_element = element;
    }
    else{
      if( this.max != -1 && this.count < this.max ){

        var new_element = document.createElement( 'input' );
        new_element.type = 'hidden';
        new_element.value = element.rel;
        new_element.name = 'file_' + this.id++;
//        this.parentNode.insertBefore( new_element, this );
        this.list_target.appendChild( new_element );

          this.count++;
          this.addListRowServer( new_element );
          if( this.max != -1 && this.count >= this.max ){multi_selector.current_element.disabled = true;};
      }else
        alert( 'Ati depasit numarul maxim de poze admis! Stergeti o poza pentru a putea adauga alta!' );
//      document.getElementById( 'my_file_element' )
    }
    
//    alert( 'Error: not a file input element' );};
  };

  this.addListRow = function( element ){
    var new_row = document.createElement( 'div' );
    new_row.className = 'files';
    var new_row_button = document.createElement( 'input' );
    new_row_button.type = 'button';
    new_row_button.className = 'imgdelete';
    new_row_button.value = 'Sterge';
    new_row.element = element;
    new_row_button.onclick= function(){
      this.parentNode.element.parentNode.removeChild( this.parentNode.element );
      this.parentNode.parentNode.removeChild( this.parentNode );
      this.parentNode.element.multi_selector.count--;
      this.parentNode.element.multi_selector.current_element.disabled = false;
      return false;
    };
    var new_row_text = document.createElement( 'p' );
    new_row_text.className = 'adresa';
    new_row_text.innerHTML = element.value;
    new_row.appendChild( new_row_button );
    new_row.appendChild( new_row_text );
    this.list_target.appendChild( new_row );
  };

  this.addListRowServer = function( element ){
    var new_row = document.createElement( 'div' );
    new_row.className = 'files';
    var new_row_button = document.createElement( 'input' );
    new_row_button.type = 'button';
    new_row_button.className = 'imgdelete';
    new_row_button.value = 'Sterge';
    new_row.element = element;
    new_row_button.onclick= function(){
      this.parentNode.element.parentNode.removeChild( this.parentNode.element );
      this.parentNode.parentNode.removeChild( this.parentNode );
      multi_selector.count--;
      multi_selector.current_element.disabled = false;
      return false;
    };
//    var new_row_text = document.createElement( 'p' );
//    new_row_text.className = 'adresa';
//    new_row_text.innerHTML = element.value;
    var new_row_text = document.createElement( 'img' );
    new_row_text.src = element.value;
    new_row.appendChild( new_row_button );
    new_row.appendChild( new_row_text );
    this.list_target.appendChild( new_row );
  };

  this.DeleteRowServer = function( element ){
      element.parentNode.parentNode.removeChild( element.parentNode );
      multi_selector.count--;
      multi_selector.current_element.disabled = false;
      return false;
  };
  
};

