var activeObjects = new Array();

// Class Object - "layoutClass "
///////////////////////////////////
// define
var layoutClass = Class.create();

// define member functions
layoutClass.prototype = {
  // init, call upon creation
  initialize: function(initInfo){
    // init element array
    this.elements = new Array();
  },

  ///////////////////////////////////////////////////////////////
  // --- addElement
  // %%adds an element to the dom
  //
  // input: tag --> type of element to append to the dom
  // input: id  --> id of the element to be appended
  // input: className --> name of the elements class
  // input: parent --> the parent to append the child element to
  // input: innerHTML --> Html to insert into tag
  // input: JS --> some javascript to run if need be
  ///////////////////////////////////////////////////////////////
  addElement: function(tag,id,className,parent,innerHTML,JS,type){
    if($(id)){
    alert("Element "+id+" already exists.  Termination of javascript initiated due to non unique id attributation.  hint: check if youve labeled the id twice over in the HTML");
    }else{
      // clear
      var addElmt = false;
      newElement = document.createElement(tag);
      newElement.id = id;
      newElement.className = className;
      if(tag!='input'&&tag!='img'&&tag!='image'){
        newElement.innerHTML = innerHTML;
        // set
        addElmt = true;
      }else if(tag=='input'){
        newElement.type = type;
        // set
        addElmt = true;
      }else if(tag=="img"||tag=="image"){
/*
        addElmt = true;
        // check
        if(parent){
          var str = "<img id='" + id + "'><img>";
          // set
          parent.innerHTML = "<img id='" + id + "'><img>";
        }

        // clear since the image object is already created
        addElmt = false;
*/
        // set
        addElmt = true;
        newElement = document.createElement("img");
        newElement.id = id;
        newElement.className = className;
      }

      if($(parent)){
			  if(addElmt)
          $(parent).appendChild(newElement);
      }else{
			  if(addElmt)
          document.body.appendChild(newElement);
      }
      if(JS.length > 0){
        eval(JS);
      }
    }
  },
  /////////////////////////////////
  // --- removeElement
  removeElement: function(id,parent){
    // check if parent is specified
    if(parent.length > 0){
      // set
      var parentObj = $(parent);
    }
    else{
      // set
      var parentObj = document.body;
    }

    // check if element exists
    if($(id)){
      // remove
      parentObj.removeChild($(id));
    }
  },

  /////////////////////////////////
  getChildElements: function (parent){
    // check
    if( $(parent) ){
      return( $(parent).childNodes );
    }
  },
  ////////////////////////////////////////////////////
  // --- addEvent
  // %%applies an event to an element
  //
  //input: obj --> object to apply event to
  //input: type --> type of functionality (load,click,mouseover...)
  //input: fn --> function to run
  // %%made by Scott Andrew Lapera
  ////////////////////////////////////////////////////
  addEvent: function(obj,type,fn){
    if(obj.attachEvent){
      obj['e'+type+fn] = fn;
      obj[type+fn] = function(){
        obj['e'+type+fn]( window.event );
      }
      obj.attachEvent('on'+type,obj[type+fn]);
    }else{
      obj.addEventListener(type,fn,false);
    }
  },
  ////////////////////////////////////////////////////
  // --- removeEvent
  // %%removes an event to an element
  //
  //input: obj --> object to remove event from
  //input: type --> type of functionality (load,click,mouseover...)
  //input: fn --> function to remove
  // %%made by Scott Andrew Lapera
  ////////////////////////////////////////////////////
  removeEvent: function(obj,type,fn){
    if(obj.detachEvent){
      obj.detachEvent('on'+type,obj[type+fn]);
      obj[type+fn] = null;
    }else{
      obj.removeEventListener(type,fn,false);
    }
  }
}


