
function SpecialManager(){
	
	var swfTopY;
	var swfBtmY;
	
	var target_array;
	var target2_array;
	
	this.constructor = function(){
	}
	
	this.initialize = function(){
		if(this.target_array != undefined){
			var array = this.target_array;
			for(var i = 0;i < array.length; i++){
				var tmpImage_jqo = array[i];
				tmpImage_jqo.removeClass(nbp_relativeClassName);
				tmpImage_jqo.css('top',0);
				tmpImage_jqo.css('left',0);
			}
		}
		if(this.target2_array != undefined){
			var array = this.target2_array;
			for(var i = 0;i < array.length; i++){
				var tmp2_jqo = array[i];
				tmp2_jqo.css('overflow','hidden');
			}
		}
	}

	this.run = function(){
		this.pageWidth = this.getPageSize().W;
		this.pageHeight = this.getPageSize().H;
		
		this.swfTopY = nbp_scrollY;
		this.swfBtmY = this.swfTopY + this.pageHeight;
		
		this.findTarget();
		this.setStyle();
		nbp_overSwf.run();
	}
	
	this.findTarget = function(){	
		
		this.target_array = new Array();
		this.target2_array = new Array();
		var owner = this;
		
		//header
		var tmpHEAD_jqo = j$("#head");
		tmpHEAD_jqo.each(function(){
			var tmpHEAD_jqo = j$(this);
			var tmpHeight = tmpHEAD_jqo.height();
			var offset = tmpHEAD_jqo.offset();
			if(offset.top + tmpHeight > owner.swfTopY && offset.top < owner.swfBtmY){
				tmpHEAD_jqo.offsetX = offset.left;
				tmpHEAD_jqo.offsetY = offset.top;
				owner.target_array.push(tmpHEAD_jqo);
			}
		});
		
		//div
		var tmpDiv_jqo = j$("div").not("#" + nbp_mainDivId).not("#" + nbp_overDivId).not("#head");
		tmpDiv_jqo.each(function(){
			var targetDiv_jqo = j$(this);
			if(targetDiv_jqo.find("div").length == 0){
				//if(targetDiv_jqo.find("h2").length == 0){
					if(targetDiv_jqo.find("dt").length == 0){
						if(targetDiv_jqo.find("ul").length == 0){
							if(targetDiv_jqo.find("img").length == 0){
								var tmpHeight = targetDiv_jqo.height();
								var offset = targetDiv_jqo.offset();
								if(offset.top + tmpHeight > owner.swfTopY && offset.top < owner.swfBtmY){
									targetDiv_jqo.offsetX = offset.left;
									targetDiv_jqo.offsetY = offset.top;
									owner.target_array.push(targetDiv_jqo);
								}
							}
						}
					}
				//}
			}else{
				var overflow = targetDiv_jqo.css('overflow');
				if(overflow == "hidden"){
					owner.target2_array.push(targetDiv_jqo);
					targetDiv_jqo.css('overflow','visible');
				}
			}
		});
		
		//img
		var tmpImg_jqo = j$("img");
		tmpImg_jqo.each(function(){
			var targetImg_jqo = j$(this);
			var tmpHeight = targetImg_jqo.height();
			var offset = targetImg_jqo.offset();
			if(offset.top + tmpHeight > owner.swfTopY && offset.top < owner.swfBtmY){
				targetImg_jqo.offsetX = offset.left;
				targetImg_jqo.offsetY = offset.top;
				owner.target_array.push(targetImg_jqo);
			}
		});
		
		if(this.target_array.length < 40)
		{			
			//h2
			var tmpH2_jqo = j$("h2");
			tmpH2_jqo.each(function(){
				var tmpH2_jqo = j$(this);
				if(tmpH2_jqo.find("div").length == 0){
					if(tmpH2_jqo.find("dt").length == 0){
						if(tmpH2_jqo.find("ul").length == 0){
							if(tmpH2_jqo.find("img").length == 0){
								var offset = tmpH2_jqo.offset();
								if(offset.top > owner.swfTopY && offset.top < owner.swfBtmY){
									tmpH2_jqo.offsetX = offset.left;
									tmpH2_jqo.offsetY = offset.top;
									owner.target_array.push(tmpH2_jqo);
								}
							}
						}
					}
				}		
			});
		}
		
		if(this.target_array.length < 40)
		{			
			//dt
			var tmpDT_jqo = j$("dt");
			tmpDT_jqo.each(function(){
				var tmpDT_jqo = j$(this);
				if(tmpDT_jqo.find("div").length == 0){
					if(tmpDT_jqo.find("h2").length == 0){
						if(tmpDT_jqo.find("ul").length == 0){
							if(tmpDT_jqo.find("img").length == 0){
								var offset = tmpDT_jqo.offset();
								if(offset.top > owner.swfTopY && offset.top < owner.swfBtmY){
									tmpDT_jqo.offsetX = offset.left;
									tmpDT_jqo.offsetY = offset.top;
									owner.target_array.push(tmpDT_jqo);
								}
							}
						}
					}
				}		
			});
		}
		
		if(this.target_array.length < 40)
		{			
			//ul
			var tmpUl_jqo = j$("ul");
			tmpUl_jqo.each(function(){
				var tmpUl_jqo = j$(this);
				if(tmpUl_jqo.find("h2").length == 0){
					if(tmpUl_jqo.find("img").length == 0){
						var offset = tmpUl_jqo.offset();
						if(offset.top > owner.swfTopY && offset.top < owner.swfBtmY){
							tmpUl_jqo.offsetX = offset.left;
							tmpUl_jqo.offsetY = offset.top;
							owner.target_array.push(tmpUl_jqo);
						}
					}
				}
			});
			
		}
	}
	
	this.setStyle = function(){
		var centerX = this.pageWidth/2;
		var centerY = this.swfTopY + this.pageHeight/2;

		var array = this.target_array;
		for(var i = 0;i < array.length; i++){
			var tmp_jqo = array[i];
			var tmpX = tmp_jqo.offsetX - centerX;
			var tmpY = tmp_jqo.offsetY - centerY;
			var dist = Math.sqrt(Math.pow(tmpX,2)+Math.pow(tmpY,2));
			tmp_jqo.targetX = Math.round(tmpX/dist)*200;
			tmp_jqo.targetY = Math.round(tmpY/dist)*200;
			tmp_jqo.addClass(nbp_relativeClassName);
			tmp_jqo.css('left',0);
			tmp_jqo.css('top',0);
		}
	}
	
	this.onHit = function(){
		var array = this.target_array;
		for(var i = 0;i < array.length; i++){
			var tmp_jqo = array[i];
			tmp_jqo.css("left",tmp_jqo.targetX);
			tmp_jqo.css("top",tmp_jqo.targetY);
		}
	}
	
	this.getPageSize=function(){
		var obj = new Object();
		var de = document.documentElement;
		obj.W = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
		obj.H = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight; 
		return obj;
	}
	
	this.toString = function(){
		return "SpecialManager";
	}
	
	
	this.constructor();
	
}
