/* iCommentPlugin container */



iCommentPlugin = new function()
{

var cMinWidth = 300;		/* comment box min-width */
	var cMaxWidth = 800;		/* comment box max-width */
	var cMinHeight = 300;	/* comment box min-height */
	var cMaxHeight = 800;	/* comment box max-height */
	var bindPointOffset = 21; /* 28 - 7 */

	var resizeStarted = false;
	var resizeWidth = false;
	var resizeHeight = false;
	var startWidth = 0;
	var startHeight = 0;

	var container, overlay, divs, innerDivs, prevCoords;

	var mouseCoords = function(ev){
		ev = ev || window.event;
		if(ev.pageX || ev.pageY){
			return {x:ev.pageX, y:ev.pageY};
		}
		return {
			x:ev.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - (document.documentElement.clientLeft || document.body.clientLeft),
			y:ev.clientY + (document.documentElement.scrollTop || document.body.scrollTop)  - (document.documentElement.clientTop || document.body.clientTop)
		};
	}

	var eventTarget = function(ev) {
		ev = ev || window.event;
  		return (ev.target || ev.srcElement);
	}

	var startResize = function(ev) {
		var resizer = eventTarget(ev);
		prevCoords = mouseCoords(ev);
		container = resizer.parentNode;
		// overlay.style.top = prevCoords.y - 0.5 * cMaxHeight + 'px';
		// overlay.style.left = Math.min(prevCoords.x - 0.5 * cMaxWidth, document.body.scrollWidth - cMaxWidth) + 'px';
		overlay.style.display = 'block';
		startWidth = container.offsetWidth;
		startHeight = container.offsetHeight;
		resizeWidth = (resizer == container.left_border || resizer == container.corner_border);
		resizeHeight = (resizer == container.bottom_border || resizer == container.corner_border);
		overlay.style.cursor = (resizeWidth ? (resizeHeight ? 'sw-resize': 'e-resize') : 's-resize');
		resizeStarted = true;
	}

	var doResize = function(ev) {
		ev = ev || window.event;
		if (resizeStarted){
			var newCoords = mouseCoords(ev);
			if (resizeWidth) {
				var width = startWidth - (newCoords.x - prevCoords.x);
				width = (width < cMinWidth? cMinWidth :
						(width > cMaxWidth? cMaxWidth : width));
				container.style.width = width + 'px';
				if (container.iframe) container.iframe.style.width = width + bindPointOffset + 'px';
			}
			if (resizeHeight) {
				var height = startHeight + (newCoords.y - prevCoords.y);
				height = (height < cMinHeight? cMinHeight :
						(height > cMaxHeight? cMaxHeight :height));
				container.style.height = height + 'px';
				if (container.iframe) { container.iframe.style.height = height + 'px'; }
			}
			// overlay.style.top = newCoords.y - 0.5 * cMaxHeight + 'px';
			// overlay.style.left = Math.min(newCoords.x - 0.5 * cMaxWidth, document.body.scrollWidth - cMaxWidth) + 'px';
		}
	}

	var stopResize = function(ev) {
		resizeStarted = resizeWidth = resizeHeight = false;
		overlay.style.cursor = '';
		overlay.style.display = 'none';
	}

	var addResizeListener = function(name) {
		var id = name;
		var innerDivs = id.getElementsByTagName('div');
		id.iframe = ((id.previousSibling.className)&&(id.previousSibling.className.indexOf("iComment_fake_frame") != -1) ? id.iframe = id.previousSibling : null);
		id.left_border = innerDivs[0];
		id.bottom_border = innerDivs[1];
		id.corner_border = innerDivs[2];
		id.left_border.onmousedown = id.bottom_border.onmousedown = id.corner_border.onmousedown = startResize;
		return;
	}

	overlay = document.getElementById('iComment_resize_overlay');
	//overlay.style.width = cMaxWidth + 'px';
	//overlay.style.height = cMaxHeight + 'px';
	overlay.style.display = 'none';
	overlay.onmousemove = doResize;
	overlay.onmouseup = stopResize;//overlay.onmouseout = 

	this.scanComments = function() {
		divs = document.getElementsByTagName('div');
		for(var i=0, len = divs.length; i<len; i++)
		{
			if ((divs[i].className.indexOf("iComment_comments_element") != -1)&&(!divs[i].left_border))
				addResizeListener(divs[i]);

		}
	}
	this.scanComments();
	
	
}