
//
// ============================
//  file name : common.js
//  author : staff015
// ============================
//


/////////////////////////////////////////////////////////////////////////////////////////

$(document).ready(function(){
	
	// alphaOver
	if(typeof document.documentElement.style.maxHeight != "undefined")
	{
		$("body#archives div.thumbnail a img").hover(
			function(){			
				$(this).stop().fadeTo(250, .75);
			},
			function(){
				$(this).stop().fadeTo(500, 1);
			}
		);
	}	
});

/////////////////////////////////////////////////////////////////////////////////////////

// setKeyAction
function setKeyAction (evt)
{
	var inputText = document.getElementById('search');
	var kc;	
	if (document.getElementById('btnPrev').getElementsByTagName('a')[0]) var prevLink = document.getElementById('btnPrev').getElementsByTagName('a')[0];
	if (document.getElementById('btnHome').getElementsByTagName('a')[0]) var homeLink = document.getElementById('btnHome').getElementsByTagName('a')[0];
	if (document.getElementById('btnNext').getElementsByTagName('a')[0]) var nextLink = document.getElementById('btnNext').getElementsByTagName('a')[0];	
	
	if (inputText.className == 'focus searchText') {
		kc = null;
	} else {
		if (document.all) //キーコードの取得
		{
			kc = event.keyCode;
		} else {
			kc = evt.keyCode;
		}		
	}
	
	if (prevLink)
	{
		if (kc == '68') location.href = prevLink; //dキーを押した場合
	}
	
	if (homeLink)
	{
		if (kc == '72') location.href = homeLink; //hキーを押した場合
	}
	
	if (nextLink)
	{
		if (kc == '70') location.href = nextLink; //fキーを押した場合
	}
}

/////////////////////////////////////////////////////////////////////////////////////////

// setYouDidIt
function setYouDidIt()
{
	document.write('<a href="mailto:youdidit&#64;whodidit.jp?subject=TELL%20ME%20WHAT%20YOU%20DID%21&body=YOUR%20NAME%20%3a%20%0d%0a%0d%0aYOUR%20MESSAGE%20%3a%20%0d%0a%0d%0a%0d%0a%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%0d%0a%0d%0aTITLE%20%3a%20%0d%0aURL%20%3a%20%0d%0aCATEGORIES%20%3a%20%0d%0a%28WEB%2cGRAPHIC%2cTVCM%2cPV%2fMV%2cPRODUCT%2cOTHER%29%0d%0a%0d%0aCLIENT%20%3a%20%0d%0aAGENCY%20%3a%20%0d%0aPRODUCTION%20%3a%20%0d%0aCREATIVE%20DIRECTOR%20%3a%20%0d%0aART%20DIRECTOR%20%3a%20%0d%0aPLANNER%20%3a%20%0d%0aPRODUCER%20%3a%20%0d%0aCOPY%20WRITER%20%3a%20%0d%0aDIRECTOR%20%3a%20%0d%0aDESIGNER%20%3a%20%0d%0aPROGRAMER%20%3a%20%0d%0aOTHER%20STAFF%20%3a%20%0d%0aAWARD%20%3a%20%0d%0a%0d%0a%5battached%20image%20file%5d%0d%0a%2d%20attach%20or%20omakase%20%2d%0d%0atop%20thumbnail%20%3a%20200px%2a149px%0d%0adetail%20main%20%3a%20817px%2a517px%0d%0adetail%20small%20%28you%20can%20upload%206files%29%20%3a%20398px%2a298px%0d%0a%0d%0a%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d%3d">YOU DID IT!</a>');
}

/////////////////////////////////////////////////////////////////////////////////////////

// setContact
function setContact()
{
	document.write('<a href="mailto:contact&#64;whodidit.jp">contact&#64;whodidit.jp</a>');
}

/////////////////////////////////////////////////////////////////////////////////////////

// setAdIt
function setAdIt()
{
	document.write('<a href="mailto:adit&#64;whodidit.jp">adit&#64;whodidit.jp</a>');
}

/////////////////////////////////////////////////////////////////////////////////////////

// setMaxLength
function setMaxLength(str,maxLength,url) {
	
	function setMaxLength (thisStr)
	{
		var tx = str.slice(0,maxLength);
		if (tx.match(/[0-9a-zA-Z.]/g) == null)
		{
			var tx2 = 0;
			var tx3 = -2;
		} else {
			var tx2 = tx.match(/[0-9a-zA-Z.]/g).length/2;
			var tx3 = Math.ceil(tx2);
		}
		
		if (navigator.userAgent.indexOf('Mac') >= 0) { //for Mac
			maxLength = tx3 - 3 + parseInt(maxLength);
		} else { //for Win
			maxLength = tx3 - 2 + parseInt(maxLength);
		}
		
		return maxLength;
	}
	
	if (url)
	{ //クレジット表示用
		if (navigator.userAgent.indexOf('Mac') >= 0) maxLength = maxLength-2;
		
		if (str.length > maxLength){
			
			maxLength =  setMaxLength(str);
			
			if (str.length < maxLength)
			{
				str = '<p title="'+str+'">'+str+'</p>';
				document.write(str);
			} else {
				str = '<p title="'+str+'">'+str.slice(0,maxLength)+'<a href="'+url+'#entryTitle" '+'title="more">'+'...'+'<a></p>';
				document.write(str);
			}
		} else {		
			str = '<p title="'+str+'">'+str+'</p>';
			document.write(str);
		}
	} else { //タイトル表示用
		if (str.length > maxLength){
			
			maxLength =  setMaxLength(str);
			
			if (str.length < maxLength)
			{
				document.write(str);
			} else {
				str = str.slice(0,maxLength)+'...';
				document.write(str);
			}
		} else {
			document.write(str);
		}
	}
}

/////////////////////////////////////////////////////////////////////////////////////////

// smartScroll 1.8
function smartScroll ()
{	
	var allLinks = new Array();
	var as = document.getElementsByTagName('a');
	var areas = document.getElementsByTagName('area');
	for (var i=0; i<as.length; i++){
		allLinks.push(as[i]);
	}
	for (var i=0; i<areas.length; i++){
		allLinks.push(areas[i]);
	}
	
	for (var i=0;i<allLinks.length;i++)
	{
		var lnk = allLinks[i];
		
		if ((lnk.href && lnk.href.indexOf('#') != -1) && ((lnk.pathname == location.pathname) || ('/'+lnk.pathname == location.pathname)))
		{
			var myHash = lnk.hash.replace(/#/g,"");
			if (!(myHash.length == 0)) //hrefが"#"だった場合は処理を中止
			{
				lnk.onclick = function ()
				{
					//移動先のid名を取得
					var hash = this.hash;
					var targetId = hash.replace(/#/g,"");
				
					if (!document.getElementById(targetId)) return;
					
					//移動先の位置（y座標）
					if (document.all)
					{
						var element = document.getElementById(targetId);
						var targetY = 0;
						do
						{
							targetY += element.offsetTop || 0;
						} while (element = element.offsetParent);
					} else {
						var targetY = document.getElementById(targetId).offsetTop;
					}
					
					var scrollTop = document.body.parentNode.scrollTop || window.pageYOffset || document.body.scrollTop; //現在の表示位置（y座標）
					
					//スクール量の調整			
					var windowHeight = window.innerHeight || document.documentElement.clientHeight; //ウィンドウの高さ	
					var bodyHeight = document.body.offsetHeight; //bodyの高さ
					var footHeight = bodyHeight - targetY;
					var adjust = windowHeight - footHeight;
						
					//移動距離を計算
					if (windowHeight > footHeight)
					{				
						var toY = targetY - scrollTop - adjust;
					} else
					{
						var toY = targetY - scrollTop;
					}
					
					function windowScroll ()
					{
						var moveY = Math.floor(toY*.2);					
						window.scrollBy(0,moveY);
						toY -= moveY; 
						myTimer = setTimeout(windowScroll,30);
						if (moveY == 0) clearTimeout(myTimer);
					}								
					windowScroll();	
					return false;
				};
			}
		}
	}	
}


/////////////////////////////////////////////////////////////////////////////////////////

function init(){
	smartScroll();
	
	var inputText = document.getElementById('search');
	inputText.onfocus = function ()
	{
		inputText.className = 'focus searchText';
	}
	
	inputText.onblur = function ()
	{
		inputText.className = 'searchText';
	}
	window.document.onkeydown = setKeyAction;
}

//addLoadEvent
function addLoadEvent(func) {
	if (typeof window.addEventListener == 'function') {
		window.addEventListener('load', func, false);
		return true;
	} else if (typeof window.attachEvent == 'object') {
		window.attachEvent('onload', func);
		return true;
	}
	
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

addLoadEvent(init);

