
//Browser Check
var browserType=new checkBrowserType();
var osType=new checkOsType();

function checkBrowserType(){
	this.IE=(navigator.userAgent.indexOf("MSIE")!=-1);
	this.Gecko=(navigator.userAgent.indexOf("Gecko")!=-1);
	this.Firefox=(navigator.userAgent.indexOf("Firefox")!=-1);
	this.IE6=(navigator.userAgent.indexOf("MSIE 6.")!=-1);
	this.IE5=(navigator.userAgent.indexOf("MSIE 5.")!=-1);
	this.Opera=(navigator.userAgent.indexOf("Opera")!=-1);
	this.Safari=(navigator.userAgent.indexOf("Safari")!=-1);
	this.NC71=(navigator.userAgent.indexOf("Netscape/7.1")!=-1);
	this.NC70=(navigator.userAgent.indexOf("Netscape/7.0")!=-1);
	this.NC6=(navigator.userAgent.indexOf("Netscape/6.")!=-1);
	this.NC7=(navigator.userAgent.indexOf("Netscape/7.")!=-1);
	this.NC4=(navigator.userAgent.indexOf("Netscape/4.")!=-1);
}
function checkOsType(){
	this.Win=(navigator.appVersion.indexOf("Win")!=-1);
	this.Mac=(navigator.appVersion.indexOf("Mac")!=-1);
	this.Unix=(navigator.appVersion.indexOf("X11")!=-1);
}

function showBaloon(id){
	showBaloonObj(articlePath+id,'baloon_frame');
}

function showBaloonObj(src,frame_id){
    if(frame_id == null){
      frame_id = 'baloon_frame';
    }
	makeBaloon_new(frame_id);
	makeBaloonBg();
	$(frame_id).src=src;

	//フェード処理用設定
	fadeTimers=new Array();
	oldTime={baloon:0,baloon_bg:0};
	//タイマー解除
	clearTimeout(fadeTimers['baloon']);
	clearTimeout(fadeTimers['baloon_bg']);
	//背景表示
	$('baloon_bg').style.zIndex = "100";
	fade('baloon_bg',{start:0,end:60});
	//バルーン表示
	$('baloon').style.zIndex = "101";
	fade('baloon',{start:0,end:100});
	setBaloonPos();
}

function hideBaloon(){
	//タイマー解除
	clearTimeout(fadeTimers['baloon']);
	clearTimeout(fadeTimers['baloon_bg']);

	//背景消去
	fade('baloon_bg',{start:60,end:0});
	//$('baloon_bg').style.zIndex = "0";
	//バルーン消去
	fade('baloon',{start:100,end:0});
	//$('baloon').style.zIndex = "0";
}

//部品生成(old ver.)
//function makeBaloon(frame_id){
//	var baloon = document.createElement("div");
//	baloon.id="baloon";
//	document.body.appendChild(baloon);

//	var baloonClose = document.createElement("a");
//	baloon.appendChild(baloonClose);
//	baloonClose.innerHTML="×";
//	baloonClose.href="javascript:hideBaloon();";

//	var br=document.createElement("br");
//	baloon.appendChild(br);

//    var baloonClose = document.createElement("p");
//    baloon.appendChild(baloonClose);
//    baloonClose.className = "btnClose";
//    baloonClose.innerHTML = '<a href="javascript:hideBaloon();"><img src="../../images/btn_close.gif" width="16" height="16" alt="Close" /></a>';

//	var baloonFrame=document.createElement("iframe");
//	baloon.appendChild(baloonFrame);
//	baloonFrame.width="580";
//	baloonFrame.height="300";
//	baloonFrame.id=frame_id;
//	baloonFrame.frameborder="0";
//	baloonFrame.marginwidth="0";
//	baloonFrame.marginheight="0";
//	baloonFrame.border="0";
//}

//部品生成(new)
function makeBaloon_new(frame_id){
    var baloonIF = document.createElement("div");
	baloonIF.id="baloon";
    document.body.appendChild(baloonIF);
    
	var baloon = document.createElement("div");
	baloon.id = "popUp";
	baloonIF.appendChild(baloon);

    var baloonbody = document.createElement("div");
    baloonbody.id = "container";
    baloon.appendChild(baloonbody);

    var baloonClose = document.createElement("p");
    baloonbody.appendChild(baloonClose);
    baloonClose.className = "btnClose";
    baloonClose.innerHTML = '<a href="javascript:hideBaloon();"><img src="../../images/btn_close.gif" width="16" height="16" alt="Close" /></a>';

	var baloonFrame=document.createElement("iframe");
	baloonbody.appendChild(baloonFrame);
	baloonFrame.className = "popFrm";
	baloonFrame.width="580";
	baloonFrame.height="300";
	baloonFrame.scrolling="auto";
	baloonFrame.id=frame_id;
	baloonFrame.frameBorder="0";
	baloonFrame.marginWidth="0";
	baloonFrame.marginHeight="0";
	baloonFrame.border="0";
}

function makeBaloonBg(){
	var baloonBg = document.createElement("div");
	baloonBg.id="baloon_bg";
	document.body.appendChild(baloonBg);
	baloonBg.onclick=hideBaloon;
}

//フェード処理

function fade(objName,opacities){
	var step=3;
	var interval=5;
	var date=new Date();
	var newTime=date.getSeconds()*1000+date.getMilliseconds();
	if(oldTime[objName]!=0){
		var pastTime=newTime-oldTime[objName];
	}else{
		var pastTime=interval;
	}
	if(osType.Win){
		if(browserType.IE){
			var val=$(objName).filters.alpha.opacity;
		}else if(browserType.Firefox || browserType.Safari || browserType.Opera){
			var val=Element.getStyle($(objName),'opacity')*100;
		}
	}

	if(val >= 0 && val <= 100){
		val += (opacities['end']-opacities['start'])/step*(pastTime/interval);
		if((opacities['start']-opacities['end'])*(val-opacities['end'])<0){
			val=opacities['end'];
			oldTime[objName]=0;
		}else{
			fadeTimers['objName']=setTimeout('fade("'+objName+'",{start:'+opacities['start']+',end:'+opacities['end']+'});',interval);
			oldTime[objName]=newTime;
		}

		setView(objName,val);
	}else{
		setView(objName,opacities['end']);
		clearTimeout(fadeTimers[objName]);
	}
}

function setView(objName,val){
	setOpacity(objName,val);
	if(val<=0){
		Element.remove(objName);
	}
}

function setOpacity(objName,val){
	if(browserType.IE && osType.Win){
		$(objName).filters.alpha.opacity = val;
	}else if(browserType.Firefox || browserType.Safari || browserType.Opera){
		Element.setStyle(objName,{opacity:val/100});
	}
}

//バルーン位置設定
function setBaloonPos(){
	if($('baloon') && $('baloon_bg')){
		var left=Math.max((getWindowWidth()-$('baloon').offsetWidth)/2,5);
		var top=Math.max((getWindowHeight()-$('baloon').offsetHeight)/2-20,5)+getPageYOffset();
        $('baloon').style.left=String(left)+"px";
        $('baloon').style.top=String(top)+"px";
		setBaloonBgSize();
	}
}

function setBaloonBgSize(){
	if($('baloon_bg')){
		$('baloon_bg').style.height=Math.max(Math.max(document.body.scrollHeight,document.body.clientHeight),$('baloon').offsetHeight+10);
	}
}

function getPageXOffset(){
	var x;
	if (self.pageXOffset){ 
		x = self.pageXOffset; 
	}else if (document.documentElement && document.documentElement.scrollTop){
		x = document.documentElement.scrollLeft;
	}else if (document.body){
		x = document.body.scrollLeft; 
	}
	return x;
}

function getPageYOffset(){
	var y;
	if (self.pageYOffset){ 
		y = self.pageYOffset; 
	}else if (document.documentElement && document.documentElement.scrollTop){
		y = document.documentElement.scrollTop;
	}else if (document.body){
		y = document.body.scrollTop; 
	}
	return y;
}

//共通関数

function getWindowWidth(){
	var w;
	if(window.innerWidth){
		w=window.innerWidth;
	}else if(document.body.clientWidth){
		w=document.body.clientWidth;
	}

	return w;
}

function getWindowHeight(){
	var h;
	if(window.innerHeight){
		h=window.innerHeight;
	}else if(document.body.clientHeight){
		h=document.body.clientHeight;
	}

	return h;
}