/**
 * This class represent a model video in javascript side.
 * Compatible : IE, Firefox, Safari, Opera
 * @package DHL::CONTENT
 * @author Inoveo technologie inc.
 */
if (DHL == undefined) var DHL = {};
if (DHL.CONTENT == undefined) DHL.CONTENT = {};
(DHL.CONTENT.JSMODELIMAGE = function () {

	this.intId = 0;
	this.strOriginalFileName = '';
	this.intModelId = 0;
	this.strExtention = '';
	this.dtTimeDate = '';
	this.blnValid = false;
	this.intParentId = 0;
	this.intImagePositionId = 0;
	this.intModelImageSetId = 0;
	this.objParentImage = null;
	this.intWidth = 0;
	this.intHeight = 0;

	DHL.CONTENT.JSMODELIMAGE.prototype.getId = function getId() {
		return this.intId;
	}

	DHL.CONTENT.JSMODELIMAGE.prototype.getModelId = function getModelId() {
		return this.intModelId;
	}
	
	DHL.CONTENT.JSMODELIMAGE.prototype.getImagePosition = function getImagePosition() {
		return DHL.CONTENT.JSIMAGEPOSITION.getInstance(this.intImagePositionId);
	}

	DHL.CONTENT.JSMODELIMAGE.prototype.getImagePositionId = function getImagePositionId() {
		return this.intImagePositionId;
	}

	DHL.CONTENT.JSMODELIMAGE.prototype.getOriginalFileName = function getOriginalFileName() {
		return this.strOriginalFileName;
	}
	
	DHL.CONTENT.JSMODELIMAGE.prototype.getName = function getName() {
		return this.intId + "." + this.strExtention;
	}
	
	DHL.CONTENT.JSMODELIMAGE.prototype.getRelativePath = function getRelativePath() {
		strImagePath = false;
		if(objImagePosition = this.getImagePosition()) {
			strImagePath = (
				objImagePosition.getRelativePath() + 
				this.intModelId + '/' + this.intId + '.' + this.strExtention
			);  
		}
		return strImagePath;
	}
	
	DHL.CONTENT.JSMODELIMAGE.prototype.getTimeDate = function getTimeDate() {
		return this.dtTimeDate;
	}
	
	DHL.CONTENT.JSMODELIMAGE.prototype.getModelImageSetId = function getModelImageSetId() {
		return this.intModelImageSetId;
	}
	
	DHL.CONTENT.JSMODELIMAGE.prototype.getModelImageSetObjectKey = function getModelImageSetObjectKey() {
		return "DHL.CONTENT.JSMODELIMAGE_SET[" + this.intModelImageSetId + "]";
	}
	
	DHL.CONTENT.JSMODELIMAGE.prototype.dhlGetThumbRelativePath = function dhlGetThumbRelativePath() {
		strImagePath = false;
		//Validate that we have a image with a position that require thumb
		if(
			objImagePosition = this.getImagePosition() &&
			objImagePosition.getField('requireThumb') == 1
		) {
			strImagePath = (
				objImagePosition.getRelativePath() + 
				this.intModelId + '/thumb/' + this.intId + '.' + this.strExtention
			);  
		}
		return strImagePath;
	}
	
	DHL.CONTENT.JSMODELIMAGE.prototype.getWidth = function getWidth() {
		return this.intWidth;
	}
	
	DHL.CONTENT.JSMODELIMAGE.prototype.getHeight = function getHeight() {
		return this.intHeight;
	}
	
	DHL.CONTENT.JSMODELIMAGE.prototype.getParent = function() {
		return this.objParentImage;
	}
	
	DHL.CONTENT.JSMODELIMAGE.prototype.getObjectKey = function getObjectKey(){
		return "DHL.CONTENT.JSMODELIMAGE[" + this.intId + "]";
	}
	
	// Static members definition {{{

	if (DHL.CONTENT.JSMODELIMAGE.className == undefined) { 

		var aInstance = new Object();

		DHL.CONTENT.JSMODELIMAGE.fromSimple = function(aData) {

			var oModelImage = aInstance[aData[0]];

			if (oModelImage == undefined) {
				oModelImage = new DHL.CONTENT.JSMODELIMAGE();
				oModelImage.intId = aData[0];
				oModelImage.intModelId = aData[1];
				oModelImage.strExtention = aData[2];
				oModelImage.dtTimeDate = aData[3];
				oModelImage.blnValid= aData[4];
				oModelImage.intParentId = aData[5];
				oModelImage.intImagePositionId = aData[6];
				oModelImage.intModelImageSetId = aData[7];
				oModelImage.intWidth = aData[8];
				oModelImage.intHeight = aData[9];
				aInstance[aData[0]] = oModelImage;
			}
			return oModelImage;
		}
		
		DHL.CONTENT.JSMODELIMAGE.fromSimpleWithParent = function(aData) {

			var oModelImage = aInstance[aData[0]];

			if (oModelImage == undefined) {
				oModelImage = new DHL.CONTENT.JSMODELIMAGE();
				oModelImage.intId = aData[0];
				oModelImage.intModelId = aData[1];
				oModelImage.strExtention = aData[2];
				oModelImage.dtTimeDate = aData[3];
				oModelImage.blnValid= aData[4];
				oModelImage.intParentId = aData[5];
				oModelImage.intImagePositionId = aData[6];
				oModelImage.intModelImageSetId = aData[7];
				oModelImage.objParentImage = aData[8];
				oModelImage.intWidth = aData[9];
				oModelImage.intHeight = aData[10];
				aInstance[aData[0]] = oModelImage;
			}
			return oModelImage;
		}

		DHL.CONTENT.JSMODELIMAGE.unmap = function(strAlias, aData) {
			oModelImage = new DHL.CONTENT.JSMODELIMAGE();
			oModelImage.intId = aData[strAlias + 'id'];
			oModelImage.intModelId = aData[strAlias + 'modelId'];
			oModelImage.strExtention = aData[strAlias + 'extension'];
			oModelImage.dtTimeDate = aData[strAlias + 'timeDate'];
			oModelImage.blnValid= aData[strAlias + 'isValid'];
			oModelImage.intParentId = aData[strAlias + 'parentId'];
			oModelImage.intImagePositionId = aData[strAlias + 'imagePositionId'];
			oModelImage.intModelImageSetId = aData[strAlias + 'modelImageSetId'];
			oModelImage.intWidth = aData[strAlias + 'width'];
			oModelImage.intHeight = aData[strAlias + 'height'];
			return oModelImage;
		}

		DHL.CONTENT.JSMODELIMAGE.getInstance = function (iId) {
			return aInstance[iId];
		}

		DHL.CONTENT.JSMODELIMAGE.className = 'DHL.CONTENT.JSMODELIMAGE';
		DHL.CONTENT.JSMODELIMAGE.prototype.className = 'DHL.CONTENT.JSMODELIMAGE';
	}

	// }}}
	
	this.jsClass = DHL.CONTENT.JSMODELIMAGE;
	
})(); 