/* -----------------------------------------------------------
/* ------------------------- cLone ----------------------------
*/
function Framer(element) {
  for (var i = 0; i < element.length; i++) {
    element.eq(i).wrap('<div class="frame"></div>');
    if (element.eq(i).hasClass('right')) {
      element.eq(i).removeClass('right').parent().addClass('right');
    } else if (element.eq(i).hasClass('left')) {
      element.eq(i).removeClass('left').parent().addClass('left');
    }
  }
}
/* -----------------------------------------------------------
/* ------------------------- cLone ----------------------------
*/
function Navigation_active_state(element) {
  var self = this;
  var current_location = window.location.pathname;
  this.navigation = ( element ? element : this.root );

  this.start_up = function() {
    for (var i = 0; i < self.navigation.length; i++) {
      if (current_location == self.navigation.eq(i).attr('href')) {
        self.navigation.eq(i).addClass('active');
        break;
      }
    }
  }
  
  return this;
}
/* -----------------------------------------------------------
/* ------------------------- cLone ----------------------------
*/
function Table_styled(element) {
  var self = this;
  this.table = ( element ? element : this.root );
  this.table_rows = this.table.find('tbody tr');
  for (var i = 0; i < this.table_rows.length; i++) {
    if (i % 2 == 0) {
      this.table_rows.eq(i).addClass('even');
    }
  }
  return this;
}
/* -----------------------------------------------------------
/* ------------------------- cLone ----------------------------
*/
function Column_identifier(element, number_of_columns) {
  var self = this;
  number_of_columns;
  this.root = element.children('div, form, fieldset');
  for (var i = 0; i < this.root.length; i++) {
    if (i % number_of_columns == 0) {
      this.root.eq(i).addClass('first');
    }
    if (i % number_of_columns == number_of_columns - 1) {
      this.root.eq(i).addClass('last');
    }
  }
}
/* -----------------------------------------------------------
/* ------------------------- cLone ----------------------------
*/
function Grid_fixer(element, number_in_row)  {
	var self = this;
	this.root = element;
	this.items = this.root.children();
	this.num_columns = number_in_row;
	this.current_row = new Array();
	this.row_height = 0;
	this.fix_heights = function()  {
	  for (var i = 0; i < self.items.length; i++) {
      if (i % self.num_columns == 0) {
        self.current_row = new Array();
        self.row_height = self.items.eq(i).height();
      }
      self.current_row.push(self.items.eq(i));
	    if (self.items.eq(i).height() > self.row_height) {
	      self.row_height = self.items.eq(i).height();
      } else {
        for (var j = 0; j < self.current_row.length; j++) {
  	      self.current_row[j].height(self.row_height);
  	    }
      }
    }
  }
	this.fix_heights();
}

function Popin_view() {
  var self = this;
  this.view = {
    popin : '',
    popin_title : '',
    popin_content : '',
    popin_actions : ''
  }
  
  this.view.make_popin = function() {
    self.view.popin = '';
    self.view.popin += '<div class="popin">';
      self.view.popin += '<div class="title">';
        self.view.popin += self.view.popin_title;
        self.view.popin += '<div class="actions">';
          self.view.popin += self.view.popin_actions;
        self.view.popin += '</div>';
      self.view.popin += '</div>';
      self.view.popin += '<div class="content">';
        self.view.popin += self.view.popin_content;
      self.view.popin += '</div>';
    self.view.popin += '</div>';
    return self.view.popin;
  }
  
  return this;
}

function Plain_Popin_view() {
  var self = this;
  
  Popin_view.call(this);
  
  self.view.popin_title += '';
    self.view.popin_actions += '<span> close </span>';
  self.view.popin_content += '';
  
  return this;
}

