


function DataModel( viewModel)
{
	this.dataArr = new Array();
	this.viewModel = viewModel;
	
	this.loadCb = null;
	this.sortCb = null;
	
	//functions
	this.pushData = pushDataImp;
	this.init = initDmImp;
	this.setCallbacks = setDmCallbacksImp;
	this.updateData = updateDataImp;
	this.sort = sortImp;
	this.cSort = cSortImp;
}

function setDmCallbacksImp( loadCb, sortCb)
{
	this.loadCb = loadCb;
	this.sortCb = sortCb;
}

function cSortImp()
{ 
	this.dataArr.sort( this.sortCb);
	this.updateData();
}

function sortImp()
{ 
	this.dataArr.sort();
	this.updateData();
}


function initDmImp()
{
	this.loadCb( this);
	this.updateData();
}

function updateDataImp()
{
	this.viewModel.init();
	
	for ( var i = 0; i < this.dataArr.length; i++)
	{
		viewModel.setItem( this.dataArr[i]);
	}
	
	this.viewModel.finalize();
}

function pushDataImp( id, data)
{
	var object = new Object();
	object.id = id;
	object.data = data;
	object.viewRef = null;
	object.index = this.dataArr.length;
	
	this.dataArr.push( object);
}

function sort()
{
	
}
