/**
NEED : null
SOFTWARE: IE, FIREFOX, MOZILLA

L'objet Ksize stock une dimensions d'un objet sur 2 dimensions largeur hauteur et un objethtml lié à cette taille
ajout : possiblite d'utiliser des borne min et max
ajout : posibilite de bloquer toute modification;


XxX= Width (largeur) ou Height (hauteur)
*/
function KSize(htmlLinkedObj) {

var unblock;
/**
_htmlLinkedObj : objethtml lié à cette objet KColor
*/
var _htmlLinkedObj;


/**
this._Sizeval[0] : largeur
this._Sizeval[1] : hauteur
this._Sizeval[2] : largeurmin
this._Sizeval[3] : hauteurmin
this._Sizeval[4] : largeurmax
this._Sizeval[5] : hauteurmax
*/
var _Sizeval;



this.unlock=function(){this.unblock=true;}
this.lock=function(){this.unblock=false;}
	
	

this.set=function(index,val){
	if(this.unblock){
	this._Sizeval[index]=val;
		
	}
}

this.get=function(index){
	val=this._Sizeval[index];
		if(val<0)	val = 0;
	return val;
}



/*
this.setXxX affecté la valeur du XxX sur l'interval [0, 255];
need: function -this.set();
*/
this.setW=function(val){
		if(val==null){
	this.setPhysW();
	}else{
	
	this.set(0,val);
	this.setPhysW();

	if(this._Sizeval[2])
		if(this._Sizeval[2]>val)
			return val-this._Sizeval[2];
	if(this._Sizeval[4])
		if(this._Sizeval[4]<val)
			return val-this._Sizeval[4];
			return 0;
	}
}
this.setH=function(val){
	if(val==null){
		this.setPhysH();
		}else{
	this.set(1,val);
	
	this.setPhysH();

	if(this._Sizeval[3])
		if(this._Sizeval[3]>val)
			return val-this._Sizeval[3];
	if(this._Sizeval[5])
		if(this._Sizeval[5]<val)
			return val-this._Sizeval[5];
			return 0;
	}
}


this.setWmin=function(val){this.set(2,val);this.setPhysW();}
this.setHmin=function(val){this.set(3,val);this.setPhysH();}
this.setWmax=function(val){this.set(4,val);this.setPhysW();}
this.setHmax=function(val){this.set(5,val);this.setPhysH();}

/*
this.incXxX incremente la valeur XxX;
this.decXxX decremente la valeur XxX;
need: function -this.set(index,val);
*/
this.incW=function(val){this.setW(this._Sizeval[0]+val);this.setPhysW();}
this.decW=function(val){this.setW(this._Sizeval[0]-val);this.setPhysW();}
this.incH=function(val){this.setH(this._Sizeval[1]+val);this.setPhysH();}
this.decH=function(val){this.setH(this._Sizeval[1]-val);this.setPhysH();}


/*
this.getXxX renvois la valeur XxX;
need: function -this.get(index);
*/

this.getW=function(){
	val=this.get(0)
	
	if(this._Sizeval[2])
		if(this._Sizeval[2]>val)
			val=this._Sizeval[2];
	if(this._Sizeval[4])
		if(this._Sizeval[4]<val)
			val=this._Sizeval[4];
			
	return val;
	
	}
this.getH=function(){
	val=this.get(1)
	
	if(this._Sizeval[3])
		if(this._Sizeval[3]>val)
			val=this._Sizeval[3];
	if(this._Sizeval[5])
		if(this._Sizeval[5]<val)
			val=this._Sizeval[5];
	
	
	return val;
	
	}



	
/*
this.setPhyXxX applique la couleur à l'objet;
need: function -this.getXxX;
*/
this.setPhysW=function(){this._htmlLinkedObj.style.width=this.getW()+"px";}
this.setPhysH=function(){this._htmlLinkedObj.style.height=this.getH()+"px";}

/*
this.createLink crée le lien entre l'objet et l'objet Html;
*/
this.createLink=function(htmlLinkedObj){
	this._htmlLinkedObj=htmlLinkedObj;
}


/*
this.constructor initialise l'objet
*/

this.construtor=function(htmlLinkedObj){
	this.createLink(htmlLinkedObj);
	this.unlock();
	this._Sizeval = new Array(0,0);
	
//	this.setWidth(100);
	//this.setHeight(100);

	}

this.construtor(htmlLinkedObj);
	
}
