// -------- kolekce dialogu ---------
function photoDialogCollection() {
	this.collection = new Array();
	this.indexes = new Array();

	this.dialogs = new Array();
	this.dialogIndexes = new Array();

	this.updateCheckStat = null;
	this.updateCheckStat_sec = null;
	this.toggleOnFunc = null;
	this.toggleOffFunc = null;
	this.toggleAfterFunc = null;

	this.exist = function(photoObj) {
        if (this.indexes[ photoObj.photo_ID ] != null) {
    		var brk = false;
    		var pos	= 0;

    		while (pos < this.collection.length && !brk)
    			if (this.collection[pos] == photoObj) brk = true;
    			else pos++;

    		return pos;
    	}
    	return -1;
	}

	this.remove = function(atIndex) {
		if (this.collection.length > 0) {
            this.indexes[ this.collection[atIndex].photo_ID ] = null;

			for (var f = atIndex; f < this.collection.length - 1; f++)
				this.collection[f] = this.collection[f + 1];
			this.collection.pop();
		}
	}
	
	this.photoToggle = function(photoObj) {
		var index = this.exist(photoObj);
		var toRet;

		if (index == -1) {
			this.collection[this.collection.length] = photoObj;
			this.indexes[photoObj.photo_ID] = photoObj;

			if (this.toggleOnFunc) this.toggleOnFunc(photoObj);
			toRet = true;
		} else {
			this.remove(index);
			
			if (this.toggleOffFunc) this.toggleOffFunc(photoObj);
			toRet = false;
		}

		this.updateSelections(photoObj);

		if (this.updateCheckStat != null)
		    this.updateCheckStat.innerHTML = this.collection.length;

		if (this.updateCheckStat_sec != null)
		    this.updateCheckStat_sec.innerHTML = this.collection.length;

		return toRet;
	}

	this.addDialog = function(dialogObj) {
		this.dialogs[this.dialogs.length] = dialogObj;
		this.dialogIndexes[dialogObj.identify] = dialogObj;
		dialogObj.inicialize();
	}
	
	this.getDialog = function(identify) {
		return this.dialogIndexes[identify];
	}
	
	this.finishDialogs = function(success) {
		for (var f = 0; f < this.dialogs.length; f++)
			this.dialogs[f].finish(success);
	}

	this.updateSelections = function(photoObj) {
		for (var f = 0; f < this.dialogs.length; f++) {
			this.dialogs[f].updateSelection(photoObj);
		}
    }

	this.quietFinishDialogs = function(success) {
		for (var f = 0; f < this.dialogs.length; f++)
			this.dialogs[f].finishQuiet(success);
	}
		
	this.updateDialogMod = function(targetMod) {
		for (var f = 0; f < this.dialogs.length; f++)
			this.dialogs[f].dialogMod = targetMod;
	}
	
	this.updateDialogHideFunction = function(targetFunc) {
		for (var f = 0; f < this.dialogs.length; f++)
			this.dialogs[f].hideFunction = targetFunc;
	}
}

