// dir.js
//
var gDirList = new List();

//---------------------------------------------------------
function Dir(path, doneFunc)
	{
	this.path = path;
	dirObj = this;
	get_files(path, function(recs)
		{
		dirObj.recs = recs;
		doneFunc(dirObj);
		});
	}
//-----------------------------------------------------
Dir.prototype.path = function()
	{
	return this.path;
	}
//---------------------------------------------------------------------------------------------
Dir.prototype.total = function()
		{
		return this.recs.length;
		}
//---------------------------------------------------------------------------------------------
Dir.prototype.randImg = function(dir)
	{
	if (!dir) dir = this;
	var index = GetRand(0, dir.total()-1);
	return dir.img(index, dir);
	}
//---------------------------------------------------------------------------------------------
Dir.prototype.img = function(index, dir)
	{
	if (!dir) dir = this;
	dir.index = index;
	var rec = dir.recs[index];
	return {file:dir.path+"/"+rec.file,
			h:rec.imgH, w:rec.imgW};
	}
	
//--------------------------------------------------------------------------
Dir.prototype.validateImages = function(height, width, done)
	{
	this.data = {
		command: "validate_image_size",
		height: height,
		width: width,
		dir: this.path
	};
	this.idx = 0;
	this.done = done;
	validateOneImage(this);
	this.msg = wnditm_div_add({klass:"msg"}, $("body"));
	}
//--------------------------------------------------------------------------
function validateOneImage(dir)
	{
	var rec = dir.recs[dir.idx];
	if (rec.isdir)
		{
		if (dir.idx < (dir.recs.length - 1)) {
			++dir.idx;
			validateOneImage(dir);
		}
		else 
			{
			dir.msg.remove();
			dir.done(dir);
			}
		}
	else
		{
		dir.data.file = rec.file;
		dir.data.dirObj = gDirList.add(dir);
		$.post('image_utils.php', {data: $.toJSON(dir.data)}, done_validateOneImage);
		}
	}
//--------------------------------------------------------------------------
function done_validateOneImage(res)
	{
	var obj = $.evalJSON(res);
	var dir = gDirList.getremove(obj.dirObj);
	dir.path = obj.sizDir;
	if (dir.idx < (dir.recs.length - 1)) {
		++dir.idx;
		dir.msg.html(dir.data.file+"...  "+dir.idx + " of " + dir.recs.length);
		validateOneImage(dir);
	}
	else 
		{
		dir.msg.remove();
		dir.done(dir);
		}
	}
	
	
	
	