/**
 *exec
 */
function exec(){

	var paramStr=location.hash;
	paramStr=paramStr.substring(1);
	var temp=paramStr.split('/');
	var params={};
	for(var i=0; i<temp.length; i++) {
		var temp2=temp[i].split('=');
		var key=temp2[0];
		var val=temp2[1]
		params[key]=val;
	}

	if(params['mode']!=null){
		mode=String(params['mode']);
	}

//	console.log(params);

	if(mode!=null){
		switch (mode) {
			case 'browse':
				if(params['entry_id']!=null && params['category_id']!=null){
					onOpenBrowse(params['entry_id'],params['category_id']);
				}
				break;

			case 'search':
			default:
				if(visitNum==0){
					worldMoveLeft();
					timerLeft = setInterval('worldMoveLeft()', 50);
				}
				break;
		}
	}

}

/**
 *onBlur
 *searchボタンがクリックされた時のイベント
 */
function searchBlur(){

	$(searchAll.id+'Keyword').blur();


}



/**
 *onSearch
 *searchボタンがクリックされた時のイベント
 */
function onSearch(){


	for(var i=0; i<categoryNavi.length; i++) {


		/* ナビを表示 */
		categoryNavi[i].reqEntryNum();
		categoryNavi[i].limitStart=0;
		categoryNavi[i].limitLength=Number(searchAll.displayNum);
		categoryNavi[i].display();


		/* エントリーを消去 */
		categoryNavi[i].entryAll.removeChildNode();


		/* エントリーIDをリクエスト */
		categoryNavi[i].reqEntryID();


		/* エントリー生成 */
		categoryNavi[i].makeEntry();


	}


}



/**
 *onNavi
 *カテゴリーのNEXTやPREVがクリックされた時のイベント
 */
function onNavi(no,limitStart){
	/* ナビを表示 */
	categoryNavi[no].limitStart=limitStart;
	categoryNavi[no].display();


	/* エントリーを消去 */
	categoryNavi[no].entryAll.removeChildNode();


	/* エントリーIDをリクエスト */
	categoryNavi[no].reqEntryID();


	/* エントリー生成 */
	categoryNavi[no].makeEntry();
}



/**
 *brwCheck
 *ブラウザのチェック
 */
function brwCheck(){
	/* brwType */
	if(navigator.userAgent.indexOf("Opera") > -1){
		brwType=OP;
	}else if(navigator.userAgent.indexOf("MSIE") > -1){
		brwType=IE;
	}else if(navigator.userAgent.indexOf("Chrome") > -1){
		brwType=CR;
	}else if(navigator.userAgent.indexOf("Safari") > -1){
		brwType=SF;
	}else if(navigator.userAgent.indexOf("Firefox") > -1){
		brwType=FF;
	}else if(navigator.userAgent.indexOf("Netscape") > -1){
		brwType=NS;
	}else{
		brwType=null;
	}


	/* osType */
	if(navigator.userAgent.indexOf("Windows") > -1){
		osType=WIN;
	}else if(navigator.userAgent.indexOf("Mac") > -1){
		osType=MAC;
	}else if(navigator.userAgent.indexOf("X11") > -1){
		osType=UNIX;
	}else{
		osType=null;
	}


	//console.log("brwType="+brwType);
	//console.log("osType="+osType);
	//alert("brwType="+brwType);
	//alert("osType="+osType);


}


/**
 * onInit
 */
 function onInit() {


 	/* window */
	windowWidth=document.viewport.getWidth();
	windowHeight=document.viewport.getHeight();


	/* searchWindow */
	var margin=0;
	searchWindow.left=margin;
	searchWindow.top=margin;
	searchWindow.width=windowWidth-margin*2;
	searchWindow.height=windowHeight-margin*2;
	searchWindow.onInit();


	/* browseWindow */
	if(browseWindow!=null){
		browseWindow.width=(220*3+20*2)+30*2+10*2;
		browseWindow.height=windowHeight-10*2;
		browseWindow.left=(windowWidth-((220*3+20*2)+30*2+10*2))/2;
		browseWindow.top=10;
		browseWindow.onInit();
		mask.onInit();
	}


 }






/**
 *onOpenBrowse
 */
function onOpenBrowse (entry_id,category_id) {

	/* browseWindow */
	if(browseWindow==null){

		/* mask */
		mask=new Mask('mask',body);

		/* browseWindow */
		browseWindow=new SubWindow('browseWindow',body,{
								   isScroll:true,
								   isTitle:true,
								   isResize:false,
								   isActive:true,
								   isDrag:false,
								   width:(220*3+20*2)+30*2+10*2,
							 	   height:windowHeight-10*2,
								   left:(windowWidth-((220*3+20*2)+30*2+10*2))/2,
								   top:10,
								   frameMargin:10
		});
		Element.setStyle($(browseWindow.id),{
			borderColor			:'#cccccc',
			borderLeftWidth		:'1px',
			borderRightWidth	:'1px',
			borderTopWidth		:'1px',
			borderBottomWidth	:'1px',
			borderStyle			:'solid'
		});

	}


	/* entryBrowse */
	if(entryBrowse!=null){
		entryBrowse.removeChildNode();
		Element.remove($(entryBrowse.id));
		entryBrowse=null;
	}
	entryBrowse=new EntryBrowse(browseWindow.world.id+'EntryBrowse',
						  		browseWindow.world,
						  		categoryAll.getCategoryNo(category_id),
						  		entry_id);



	searchWindow.isActive=false;
	browseWindow.isActive=true;

	onInit();
}



/**
 *onCloseBrowse
 */
function onCloseBrowse (obj) {


	var url=location.href
	url=url.split('#')[0];
	location.href='#mode=search';


	if(obj==browseWindow){
		if($(browseWindow.id)!=null){


			/* isActive */
			searchWindow.isActive=true;
			browseWindow.isActive=false;


			/* close mask */
			Element.remove($(mask.id));
			mask=null;


			/* close entryBrowse */
			entryBrowse.removeChildNode();
			Element.remove($(entryBrowse.id));
			entryBrowse=null;


			/* close browseWindow */
			browseWindow.removeChildNode();
			Element.remove($(browseWindow.id));
			browseWindow=null;


		}
	}



}





/**
 *setCookie
 */
function setCookie(hash){


	var time = new Date();    //日付オブジェクトの作成
	var timeLimit = time.setTime(time.getTime() + ((30) * 1000 * 60 * 60 * 24));
	timeLimit = time.toGMTString();    // 期限の日時をGMTに変換
//	console.log(timeLimit);


	for(key in hash){
//		console.log('key='+key);
//		console.log('val='+hash[key]);
		document.cookie=key+"="+hash[key]+";expires="+timeLimit;
	}


}


/**
 *getCookie
 */
function getCookie(key,  tmp1, tmp2, xx1, xx2, xx3) {
    tmp1 = " " + document.cookie + ";";
    xx1 = xx2 = 0;
    len = tmp1.length;
    while (xx1 < len) {
        xx2 = tmp1.indexOf(";", xx1);
        tmp2 = tmp1.substring(xx1 + 1, xx2);
        xx3 = tmp2.indexOf("=");
        if (tmp2.substring(0, xx3) == key) {
            return unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1));
        }
        xx1 = xx2 + 1;
    }
    return false;
}


/**
 *worldMoveLeft
 */
function worldMoveLeft() {

	var frameLeft=0;
	var frameWidth=searchWindow.frame.getWidth();

	var worldLeft=searchWindow.world.getLeft();
	var worldWidth=searchWindow.world.getWidth();

	var targetLeft=frameWidth-worldWidth;
//	console.log(targetLeft);

	if(targetLeft>0){
		return;
	}

	if(Math.abs(targetLeft-worldLeft)<1){
		searchWindow.world.setLeft(targetLeft);
		clearInterval(timerLeft) ;
		timerRight = setInterval('worldMoveRight()', 50);
		return;
	}

	var d=(targetLeft-worldLeft)/8.0;
	if(d>-1){
		d=-1
	}

	searchWindow.world.setLeft(worldLeft+d);
	onInit();

//	console.log(targetLeft+":"+worldLeft+":"+Math.abs(targetLeft-worldLeft)+':'+d);
}

/**
 *worldMoveRight
 */
function worldMoveRight() {

	var frameLeft=0;
	var frameWidth=searchWindow.frame.getWidth();

	var worldLeft=searchWindow.world.getLeft();
	var worldWidth=searchWindow.world.getWidth();

	var targetLeft=0;


	if(Math.abs(targetLeft-worldLeft)<1){
		searchWindow.world.setLeft(targetLeft);
		clearInterval(timerRight) ;
		return;
	}

	var d=(targetLeft-worldLeft)/8.0;
	if(d<1){
		d=1
	}
	searchWindow.world.setLeft(worldLeft+d);
	onInit();
//	console.log(targetLeft+":"+worldLeft+":"+Math.abs(targetLeft-worldLeft)+':'+d);

}



