if (typeof(browserDetect) == 'undefined') {
	var browserDetect = detectBrowser('', '');
}
function Processing() {
	var code = generateCodeNumber + '' + generateCode();
	generateCodeNumber ++;
	var interval = '';
	var intervalResizeDelay = 100;
	var interval_ = '';
	this.show = show;
	this.hide = hide;
	this.swapDepth = swapDepth;
	
	if (browserDetect[0] == 'msie') {
		var myElement = document.createElement('<div id = "' + code + '" style = "position:absolute; left:0; top:0; visibility:hidden; z-index:auto; width:1; height:1;"></div>');
	}
	else {
		var myElement = document.createElement('div');
		myElement.id = code;
		myElement.style.position = 'absolute';
		myElement.style.left = '0px';
		myElement.style.top = '0px';
		myElement.width = '1px';
		myElement.height = '1px';
		myElement.style.visibility = 'hidden';
	}
	window.document.body.appendChild(myElement);
	var object = document.getElementById(code);
	object.innerHTML = '<iframe id="If' + code + '" name="If' + code + '" frameborder="0" src="" marginheight="0" marginwidth="0" scrolling="no" width="1" height="1" ALLOWTRANSPARENCY="true"></iframe>';
	var iframeObject = document.getElementById("If" + code);
	
	function addEventListener_() {
		if (window.attachEvent) {
			if (browserDetect[0] == 'msie') {
				window.attachEvent('onresize', resizeDelay);
				window.attachEvent('onscroll', scrollDelay);
			}
			else {
				window.attachEvent('onresize', resize_);
				window.attachEvent('onscroll', scroll_);
			}
		}
		else {
			if (browserDetect[0] == 'safari') {
				window.addEventListener('resize', resizeDelay, false);
				window.addEventListener('scroll', scrollDelay, false);
			}
			else {
				window.addEventListener('resize', resize_, false);
				window.addEventListener('scroll', scroll_, false);
			}
		}
	}
	
	function removeEventListener_() {
		if (window.detachEvent) {
			if (browserDetect[0] == 'msie') {
				window.detachEvent('onresize', resizeDelay);
				window.detachEvent('onscroll', scrollDelay);
			}
			else {
				window.detachEvent('onresize', resize_);
				window.detachEvent('onscroll', scroll_);
			}
		}
		else {
			if (browserDetect[0] == 'safari') {
				window.removeEventListener('resize', resizeDelay, false);
				window.removeEventListener('scroll', scrollDelay, false);
			}
			else {
				window.removeEventListener('resize', resize_, false);
				window.removeEventListener('scroll', scroll_, false);
			}
		}
	}
	
	function resizeDelay() {
		if (object.style.visibility == 'visible') {
			object.style.top = (parseInt(object.style.width) *  -1) + 'px';
			object.style.left = (parseInt(object.style.height) *  -1) + 'px';
			if (interval != '') {
				clearInterval(interval);
				interval = '';
			}
			interval = setInterval(resize_, intervalResizeDelay);
		}
	}
	
	function scrollDelay() {
		if (object.style.visibility == 'visible') {
			if (interval_ != '') {
				clearInterval(interval_);
				interval_ = '';
			}
			interval_ = setInterval(scroll_, 100);
		}
	}
	
	function resize_() {
		if (interval != '') {
			clearInterval(interval);
			interval = '';
		}
		
		if (object.style.visibility == 'visible') {
			object.style.top = (parseInt(object.style.width) *  -1) + 'px';
			object.style.left = (parseInt(object.style.height) *  -1) + 'px';
			align();
		}
	}
	
	function scroll_() {
		if (interval_ != '') {
			clearInterval(interval_);
			interval_ = '';
		}
		
		if (object.style.visibility == 'visible') {
			align();
		}
	}
	
	function align() {
		var documentAreaShowSize = getDocumentAreaShowSize();
		var width1 = documentAreaShowSize[0];
		var height1 =  documentAreaShowSize[1];
		var width_ = parseInt(object.style.width);
		var height_ = parseInt(object.style.height);
		var scrollXY = getScrollXY();
		var left_ = scrollXY[0];
		var top_ = scrollXY[1];
		var top = (Math.round((height1 - height_) / 2)) + top_;
		var left = (Math.round((width1 - width_) / 2)) + left_;
		if ((top + height_) > (height1 + top_)) {
			top = (height1 - height_) +  top_;
		}
		if ((left + width_) > (width1 + left_)) {
			left = (width1 - width_ ) + left_;
		}
		object.style.top = top + 'px';
		object.style.left = left + 'px';	
	}
	
	function show(zindex_, url, width_, height_, intervalResizeDelay_) {
		if (intervalResizeDelay_ !== '') {
			intervalResizeDelay = intervalResizeDelay_;
		}
		iframeObject.src = url;
		if (zindex_ != '') {
			object.style.zIndex = zindex_;
		}
		object.style.width = width_ + 'px';
		object.style.height = height_ + 'px';
		iframeObject.width = width_;
		iframeObject.height = height_;
		align();	
		object.style.visibility = 'visible';
		addEventListener_();
	}
	
	function hide() {
		removeEventListener_();
		if (interval != '') {
			clearInterval(interval);
			interval = '';
		}
		if (interval_ != '') {
			clearInterval(interval_);
			interval_ = '';
		}
		iframeObject.src = '';
		iframeObject.height = 1;
		iframeObject.width = 1;
		object.style.height = '1px';
		object.style.width = '1px';
		object.style.top = '0px';
		object.style.left = '0px';
		object.style.visibility = "hidden";
	}
	
	function swapDepth(zindex_) {
		if (typeof(zindex_) == 'number') {
			object.style.zIndex = zindex_;
		}
	}
}