/*************************************************************************************
*                                                                                    *
*                                  imageload.js                                     *
*                               (c) 2009 Volker Last                                 *
*                                  vlast@gmx.de                                      *
*                                                                                    *
*************************************************************************************/

	function setLoader() {
			document.getElementById('upload').height = '150px';
			document.getElementById('upload').childNodes[0].style.display = 'inline';
	}

	function checkField() {
			var _max = 200;
			var _text = document.getElementById('commentfield').value;
			var _counter = _text.length;

			if(_counter > _max) {
					_text = _text.substr(0, _max);
					document.getElementById('commentfield').value = _text;
					var _counter = _text.length;
			}

			var _countertext = document.createTextNode(_counter + ' / ' + _max + ' Zeichen');
			document.getElementById('counter').replaceChild(_countertext, document.getElementById('counter').firstChild);

			var j = document.getElementById('positionselection').selectedIndex;
			var _positionselection = document.getElementById('positionselection').options[j].text;

			var i = document.getElementById('fontselection').selectedIndex;
			var _fontselection = document.getElementById('fontselection').options[i].text;

			if(document.getElementById('comment') != null) {
					document.getElementById('comment').value = _text + ' (Schriftart: ' + _fontselection + ' / Position: ' + _positionselection + ')';
			} else {
					var _input = document.createElement('input');
					_input.type = 'hidden';
					_input.id = 'comment';
					_input.name = 'comment';
					_input.value = _text + ' (Schriftart: ' + _fontselection + ' / Position: ' + _positionselection + ')';
					document.putform.appendChild(_input);
			}
	}

	function changeFontExample() {
			var i = document.getElementById('fontselection').selectedIndex;
			var _fontselection = document.getElementById('fontselection').options[i].text;
			document.getElementById('fontexample').face = _fontselection;

			var j = document.getElementById('positionselection').selectedIndex;
			var _positionselection = document.getElementById('positionselection').options[j].text;

			var _text = document.getElementById('commentfield').value;

			if(document.getElementById('comment') != null) {
					document.getElementById('comment').value = _text + ' (Schriftart: ' + _fontselection + ' / Position: ' + _positionselection + ')';
			} else {
					var _input = document.createElement('input');
					_input.type = 'hidden';
					_input.id = 'comment';
					_input.name = 'comment';
					_input.value = _text + ' (Schriftart: ' + _fontselection + ' / Position: ' + _positionselection + ')';
					document.putform.appendChild(_input);
			}
	}

	// class movingObj
	
	function movingObj(container, obj) {
		this.container = container;
		this.obj = obj;
		
		this.click_state = false;
		
		this.objX1 = 0;
		this.objY1 = 0;
		this.objMaxX = 0;
		this.objMaxY = 0;
		
		this.startMove = startMove;
		this.stopMove = stopMove;
		this.moveObj = moveObj;
		this.resizeContainer = resizeContainer;
		this.moveContainer = moveContainer;
	}
	
	function startMove(e) {
		this.click_state = true;
		document.getElementById(this.container).focus();
		e = (!e) ? window.event : e;
			
		if(e.which) {
			var mX = e.pageX;
			var mY = e.pageY;
		} else {
			var mX = e.clientX;
			var mY = e.clientY;
		}
		
		var objX = document.getElementById(this.obj).style.width;
		var objY = document.getElementById(this.obj).style.height;
		objX = parseInt(objX.substr(0, objX.length-2));
		objY = parseInt(objY.substr(0, objY.length-2));
		
		var containerX = document.getElementById(this.container).style.width;
		var containerY = document.getElementById(this.container).style.height;
		containerX = parseInt(containerX.substr(0, containerX.length-2));
		containerY = parseInt(containerY.substr(0, containerY.length-2));
		
		var marginLeft = document.getElementById(this.obj).style.marginLeft;
		marginLeft = parseInt(marginLeft.substr(0, marginLeft.length-2));
		var marginTop = document.getElementById(this.obj).style.marginTop;
		marginTop= parseInt(marginTop.substr(0, marginTop.length-2));
		
		this.objX1 = mX-parseInt(document.getElementById(this.container).offsetLeft)-marginLeft;
		this.objY1 = mY-parseInt(document.getElementById(this.container).offsetTop)-marginTop;
		
		this.objMaxX = containerX-objX;
		this.objMaxY = containerY-objY;
	}
	
	function stopMove(e) {
		this.click_state = false;
		document.getElementById(this.container).focus();
	}
	
	function moveObj(e) {
		if(this.click_state) {
			e = (!e) ? window.event : e;
			
			if(e.which) {
				var mX = e.pageX;
				var mY = e.pageY;
			} else {
				var mX = e.clientX;
				var mY = e.clientY;
			}
			
			var posX = mX-parseInt(document.getElementById(this.container).offsetLeft)-this.objX1;
			var posY = mY-parseInt(document.getElementById(this.container).offsetTop)-this.objY1;
									
			if(posX <= this.objMaxX)
				if(posX >= 0)
					document.getElementById(this.obj).style.marginLeft = posX+'px';
				else
					document.getElementById(this.obj).style.marginLeft = 0+'px';
			else
				document.getElementById(this.obj).style.marginLeft = this.objMaxX+'px';
			
			if(posY <= this.objMaxY)
				if(posY >= 0)
					document.getElementById(this.obj).style.marginTop = posY+'px';
				else
					document.getElementById(this.obj).style.marginTop = 0+'px';
			else
				document.getElementById(this.obj).style.marginTop = this.objMaxY+'px';
		}
	}
	
	// additional methods
	
	function resizeContainer(e, destContainer, destObj, imgScale) {
		this.moveObj(e);
		
		if(this.click_state) {
			if(this.orgX == null && this.orgY == null) {
				this.orgX = document.getElementById(destObj).style.width;
				this.orgY = document.getElementById(destObj).style.height;
				this.orgX = parseInt(this.orgX.substr(0, this.orgX.length-2));
				this.orgY = parseInt(this.orgY.substr(0, this.orgY.length-2));
			}
			
			var sliderBarY = document.getElementById(this.container).style.height;
			var sliderY = document.getElementById(this.obj).style.height;
			var sliderPos = document.getElementById(this.obj).style.marginTop;
			sliderBarY = parseInt(sliderBarY.substr(0, sliderBarY.length-2));
			sliderY = parseInt(sliderY.substr(0, sliderY.length-2));
			sliderPos = parseInt(sliderPos.substr(0, sliderPos.length-2));
			
			var sliderRange = sliderBarY-sliderY;
			
			var step = parseInt((this.orgX-parseInt(this.orgX/20))/sliderRange);
			var newX = this.orgX-(sliderPos*step);
			var newY = parseInt(newX*this.orgY/this.orgX);
			
			document.getElementById(destObj).style.width = newX+'px';
			document.getElementById(destObj).style.height = newY+'px';
			
			var containerX = document.getElementById(destContainer).style.width;
			var containerY = document.getElementById(destContainer).style.height;
			containerX = parseInt(containerX.substr(0, containerX.length-2));
			containerY = parseInt(containerY.substr(0, containerY.length-2));
			
			var posX = document.getElementById(destObj).style.marginLeft;
			var posY = document.getElementById(destObj).style.marginTop;
			posX = parseInt(posX.substr(0, posX.length-2));
			posY = parseInt(posY.substr(0, posY.length-2));
			
			if(posX+newX-containerX > 0)
				document.getElementById(destObj).style.marginLeft = containerX-newX+'px';
			if(posY+newY-containerY > 0)
				document.getElementById(destObj).style.marginTop = containerY-newY+'px';
			
			var src_x = document.getElementById(destObj).style.marginLeft;
			var src_y = document.getElementById(destObj).style.marginTop;
			var dst_w = document.getElementById(destObj).style.width;
			var dst_h = document.getElementById(destObj).style.height;
			src_x = parseInt(src_x.substr(0, src_x.length-2));
			src_y = parseInt(src_y.substr(0, src_y.length-2));
			dst_w = parseInt(dst_w.substr(0, dst_w.length-2));
			dst_h = parseInt(dst_h.substr(0, dst_h.length-2));
			//document.getElementById('src_x').value = parseInt(src_x*imgScale);
			//document.getElementById('src_y').value = parseInt(src_y*imgScale);
			document.getElementById('dst_w').value = parseInt(dst_w*imgScale);
			document.getElementById('dst_h').value = parseInt(dst_h*imgScale);
			
			document.getElementById('mask_img').width = dst_w;
			document.getElementById('mask_img').height = dst_h;
		}
	}
	
	function moveContainer(e, imgScale) {
		this.moveObj(e);
		
		if(this.click_state) {
			var src_x = document.getElementById(this.obj).style.marginLeft;
			var src_y = document.getElementById(this.obj).style.marginTop;
			src_x = parseInt(src_x.substr(0, src_x.length-2));
			src_y = parseInt(src_y.substr(0, src_y.length-2));
			document.getElementById('src_x').value = parseInt(src_x*imgScale);
			document.getElementById('src_y').value = parseInt(src_y*imgScale);
		}
	}
	
	// end class movingObj
