/**
 * NOTE: This is a example of usage of the arrange.byObjectsAttribute() function
 **/

// A very, very simple object - holds a name and date attribute
var Obj = function(n,t){
    this.name = n;
    this.date = new Date();
    var exDate = this.date.getTime();
    exDate += 1000*3600*24*t;
    this.date.setTime(exDate);
};

// Instantiat a bunch of objects with different attribute values
var obj1 = new Obj('Obj1',2);
var obj2 = new Obj('Obj2',25);
var obj3 = new Obj('Obj3',4);
var obj4 = new Obj('Obj4',9);
var obj5 = new Obj('Obj5',10);
var obj6 = new Obj('Obj6',11);
var obj7 = new Obj('Obj7',9);
var obj8 = new Obj('Obj8',45);
var obj9 = new Obj('Obj9',18);

// Put the objects into a array in a unsorted order
var a = [obj5,obj1,obj8,obj3,obj2,obj9,obj4,obj6,obj7];

// Function which prints the array to the document (a tag with id 'debug')
function printArray(){
    var el = document.getElementById('debug');
    el.innerHTML = '';
    var i = a.length;
    while(i--){
        el.innerHTML = el.innerHTML + '<b>name: </b>' + a[i].name + ' <b>date: </b> ' + a[i].date + ' <br/> ';
    }
}

// Simple sort function which can be called from a eventhandler
function sort(attr){
    a.sort(arrange.byObjectsAttribute(attr));
    printArray();
}