
//
// =========================================
//  file name : twtv_showBox.js
// =========================================
//


/////////////////////////////////////////////////////////////////////////////////////////

function addEvent(node,evt,func){
	if(node.addEventListener){
		node.addEventListener(evt,func,false); 
	} else if(node.attachEvent){
		node.attachEvent("on"+evt,func);
	}
}

function removeEvent(node,evt,func){
	if(node.removeEventListener){
		node.removeEventListener(evt,func,false);
	} else if(node.detachEvent){
		node.detachEvent("on"+evt,func);
	}
}

// showOverlay
function showOverlay(){
	var objBody = document.getElementsByTagName("body").item(0);
	var documentHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
	
	if(!document.getElementById("overlay")){	
		var overlay = document.createElement("div");
		overlay.setAttribute('id','overlay');
		overlay.onclick = function(){ 
			stopFlag = 0;
			hideBox(); 
		}
		objBody.appendChild(overlay);
		
		with(overlay.style){
			display = 'none';
			position = 'absolute';
			top = '0';
			left = '0';
			width = '100%';
			height = documentHeight + 'px';
			margin = '0';
			padding = '0';
			backgroundColor = '#FFFFFF';
			filter = 'alpha(opacity=60)';
			MozOpacity = '0.6';
			opacity = '0.6';
			zIndex = '1000';
		}	
	}
	
	var overlay = document.getElementById("overlay");
	with(overlay.style){
		display = 'none';
		width = '100%';
		height = documentHeight + 'px';
	}
		
	$('div#overlay').fadeIn('400');
}

// showBox
function showBox(boxName){
	if(boxName == 'boxPost'){
		var maxLen = 115;
		var str = $("#tweetPost textarea").val();
		if(maxLen < str.length){
			return;
		}
	}

	$('#'+boxName+' .boxInner').eq(0).css("display","block");
	$('#'+boxName+' .boxInner').eq(1).css("display","none");

	$('#'+boxName+' .boxInner .ttl').eq(0).css("display","block");
	$('#'+boxName+' .boxInner dl').eq(0).css("display","block");


	var callbackFunc;
	stopFlag = 1;

	// is login
	if($.cookie("TWTV_SCREEN_NAME") && $.cookie("TWTV_PROFILE_IMAGE_URL")){
		if(boxName == 'boxLogin'){
			if((!((navigator.userAgent.indexOf("MSIE") != -1)||(navigator.userAgent.indexOf("Safari") != -1)))||(navigator.userAgent.indexOf("Chrome") != -1)){
				showOverlay();
				setBox(boxName);
			}else{
				stopFlag = 0;
			}
		}else if(boxName == 'boxPost'){
			if($("#tweetPost textarea").val() != ''){
				verifyCredentialsTwitter(boxName,callbackPost);
			}else{
				stopFlag = 0;
			}
		}else{
			$('#'+boxName+' .boxInner .ttl').eq(0).css("display","none");
			$('#'+boxName+' .boxInner dl').eq(0).css("display","none");
			showOverlay();
			setBox(boxName);
		}

		return false;
	}


	// not login
	if((! ((navigator.userAgent.indexOf("MSIE") != -1)||(navigator.userAgent.indexOf("Safari") != -1)))||(navigator.userAgent.indexOf("Chrome") != -1)){
		showOverlay();
		setBox(boxName);
	}else{
		// ie,safari

		if(boxName == 'boxPost'){
			if($("#tweetPost textarea").val() != ''){
				verifyCredentialsTwitter(boxName,callbackPost);
			}else{
				stopFlag = 0;
			}
		}else{
			$('#'+boxName+' .boxInner .ttl').eq(0).css("display","none");
			$('#'+boxName+' .boxInner dl').eq(0).css("display","none");

			showOverlay();
			setBox(boxName);
		}
	}

    return false;
}

// resetBox
function resetBox(boxName,boxWidth,boxHeight){
	
	var box = document.getElementById(boxName);

	with(box.style){
		position = 'absolute';
		top = '0';
		left = '0';
		width = boxWidth + 'px';
		height = boxHeight + 'px';
		margin = '0';
		padding = '0';
		zIndex = '9000';
	}
	
	// ウィンドウサイズを取得
	if (window.innerWidth){
		var emptyDiv = document.createElement('div');
		with(emptyDiv.style){
			position = 'absolute';
			top = '0';
			left = '0';
			width = '100%';
			height = '100%';
			margin = '0';
			padding = '0';
			border = 'none';
			visibility = 'hidden';
		}
		document.body.appendChild(emptyDiv);
		var windowWidth = emptyDiv.offsetWidth;
		var windowHeight = emptyDiv.offsetHeight;
		document.body.removeChild(emptyDiv);
	} else {
		var windowWidth = document.documentElement.clientWidth || document.body.clientWidth;
		var windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
	}
		
	// 現在の表示位置のx座標を取得
	var scrollLeft = document.body.parentNode.scrollLeft || window.pageXOffset || document.body.scrollLeft;					
	
	// 現在の表示位置のy座標を取得
	var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;

	with(box.style){
		top = (windowHeight-boxHeight)/2 + scrollTop + 'px';
		left = (windowWidth-boxWidth)/2 + scrollLeft + 'px';
	}
}

function setBox(boxName){
	$('html').css({
		'background-image':'url(null)',
		'background-attachment':'fixed'
	});
	
	var box = document.getElementById(boxName);
	var boxWidth = box.offsetWidth;
	var boxHeight = box.offsetHeight;

	// 非表示の場合は表示する
	if($('div#'+boxName)){
		
		$('div#'+boxName).css('visibility','visible');
		$('div#'+boxName).css('display','none');
		$('div#'+boxName).fadeIn('600');		
		resetBox(boxName,boxWidth,boxHeight);
		
		//IE6 以外のブラウザ
		if (!($.browser.msie && ($.browser.version < 7.0 || !$.boxModel))) {
			addEvent(window,"resize",function(){ resetBox(boxName,boxWidth,boxHeight); });
			addEvent(window,"scroll",function(){ resetBox(boxName,boxWidth,boxHeight); });
		}
	}
}

// hideOverlay
function hideOverlay(){
	var overlay = document.getElementById("overlay");
	
	if(overlay){
		with(overlay.style){
			display = 'none';
		}
	}
}

// hideBox
function hideBox(){
	stopFlag = 0;

	$('div.box').css('visibility','hidden');
	$('div.box').css('display','block');
	
	$('div#overlay').fadeOut(800,hideOverlay);

	removeEvent(window,"scroll",resetBox);
	removeEvent(window,"resize",resetBox);
    return false;
}



