/*
 * project.js
 * URL
 * 
 * Copyright (c) 2009 IMG SRC Inc.
 *
 */

var Project = function(){}

Project.prototype = {
	init: function(){
		this.loadScript(),
		this.addScroll()
	},

	checkOS: {
		//win: navigator.userAgent.indexOf('Win',0) != -1,
		//mac: navigator.userAgent.indexOf('Mac',0) != -1
	},
	
	checkBrowser: {
		//opera: navigator.userAgent.indexOf('Opera') > 0,
		//chrome: navigator.userAgent.indexOf('Chrome') > 0,
		//firefox: navigator.userAgent.indexOf('Firefox') > 0,
		//safari: navigator.userAgent.indexOf('Safari') > 0,
		ie: navigator.userAgent.indexOf('MSIE') > 0,
		ie6: navigator.userAgent.indexOf('MSIE 6') > 0
	},

	loadScript: function(){
		// js directory
		var path = '/shared/script/';
		// js files
		var scripts = [
			'plugin/jq/easing.js'
		];
		
		if(this.checkBrowser.ie6){
			//scripts.push('plugin/iepngfix.js');
		}

		for(var i = 0; i < scripts.length; i++){
			var element = document.createElement('script');
			element.src = path + scripts[i];
			element.type = 'text/javascript';
			document.body.appendChild(element);
		}
	},

	addRollover: function(){
		// add class 'rollover'
		var images = $('img.rollover, input.rollover');

		if(!images.length) return;

		var offSuffix = "_off.";	// e.g. button_off.gif
		var onSuffix = "_on.";		// e.g. button_on.gif

		for(var i = 0; i < images.length; i++){
			if(images[i].getAttribute("src").match(offSuffix)){
				images[i].onmouseover = function(){
					this.setAttribute("src", this.getAttribute("src").replace(offSuffix, onSuffix));
				}
				images[i].onmouseout = function(){
					this.setAttribute("src", this.getAttribute("src").replace(onSuffix, offSuffix));
				}
			}
		}	
	},

	addTargetBlank: function(){
		$('a[rel="external"][href]').attr('target', '_blank');	
	},

	addScroll: function(){
		if(!$('a[href^="#"]')) return;

		var durationTime = 1000;
		var easingType = 'easeInOutCirc';

		$('a[href^="#"]').click(function(){		
			var target = $(this).attr('href');

			if(target == "#"){
				$(this).blur();		
				$('html,body').animate({ scrollTop: 0 }, durationTime, easingType);
				return false;
			}
					
			var targetOffset = $(target).offset().top;
					
			$(this).blur();
			$('html,body').animate({ scrollTop: targetOffset }, durationTime, easingType);
			
			return false;
		})
	}
}

$(function(){
	update();
	var ProjectName = new Project();
	ProjectName.init();
});

/*=================================================================
//
// .fixheight & banner
//
=================================================================*/
function fixheight() {
	if(!$('body').hasClass('normal-page')) return false;
	
	bannerLoad();
	
	var alpha_height = $('#col-alpha').height();
	var header_height = $("#col-beta-header").outerHeight({padding: true}) + $("#col-beta-path").outerHeight({padding: true});
	var navi_height =  $('#content-navi').height() + header_height;
	var main_height = $('#content-main').height() + header_height;
	if(alpha_height > navi_height){
		var diff_height = alpha_height - header_height;
		$('#content-navi').css("height",diff_height);
	}
	if(alpha_height > main_height){
		var diff_height = alpha_height - header_height;
		$('#content-main').css("height",diff_height);
	}
}

function bannerLoad() {
	bannerInit("/json-online/banner-online.json", "#banner-online");
	bannerInit("/json-wc/banner-wc.json", "#banner-catalog");
}


/*=================================================================
//
// .update
//
=================================================================*/
function update() {
	
	$('#gnavi li').click(function(){
		if(!$(this).find('a').attr('href')) return false;
	  var thislink = $(this).find('a');
	  if(thislink.attr('target') == '_blank') {
		window.open(thislink.attr('href'));
	  }else{
		location.href = thislink.attr('href');
	  }
	  return false;
	  });
	
	
	var timestamp = '?timestamp='+(new Date()).getTime();
	var updateJSON = "/update.json" + timestamp;
	
	$.ajax({
	   url : updateJSON,
	   dataType : "json",
	   success : function(data, status){
		   for(var key in data){			
				if(key == "page-1") {
					if(relativeDate(data[key]))
					updatetext("#navi-news", data[key]);
				}else if(key == "page-2") {
					if(!relativeDate(data[key])){
						$('#navi-h-blog').addClass('noupdate');
					}else {
						updatetext("#navi-h-blog", data[key]);
					}
				}else if(key == "page-3") {
					if(relativeDate(data[key])) updatetext("#navi-s-blog", data[key]);
				}else if(key == "page-4") {
					if(relativeDate(data[key]))	updatetext("#navi-p-blog", data[key]);
				}else if(key == "page-5") {
					if(relativeDate(data[key]))	updatetext("#navi-catalog", data[key]);
				}else if(key == "page-6") {
					if(relativeDate(data[key])) updatetext("#navi-dl", data[key]);
				}
			}//for
			fixheight();
		}
	});	
}//update();

function updatetext(id, date){
	var dateArray = date.split(".");
	$(id).find("span").text(dateArray[1] + "/" + dateArray[2] + " UPDATE");
}//updatetext()

function relativeDate(ts) {
	var now = new Date();
	var tsArray = ts.split('.');
	var ref = new Date(tsArray[0],tsArray[1]-1 ,tsArray[2]);
	var delta = Math.floor((now.getTime() - ref.getTime()) / 1000);
	var days = Math.floor(delta / 86400);
	if(days >= 7) {
		return false;
	}else{
		return true;
	}
}

/*=================================================================
//
// .recentBlogList
//
=================================================================*/
function recentBlogList(remove) {
	var timestamp = '?timestamp='+(new Date()).getTime();
	var blog_list = "/recent_blog_list.html" + timestamp;
	
	$.ajax({
	   url : blog_list,
	   dataType : "html",
	   success: function(data){
		   $("#recent-blog-list").html(data);
		   if(remove) { $(remove).remove();}
		   if(remove != "#s-blog"){ $('#s-blog .body-inner').jScrollPane({scrollbarWidth:6}); storeBlogAnimeInit(); }
		   $('.article').click(function(){
			location.href = $(this).find('a').attr('href');
			});
	   }
	});
}

/*=================================================================
//
// .archiveSet
//
=================================================================*/
function archiveSet(url,target,flag) {
	var timestamp = '?timestamp='+(new Date()).getTime();
	var archiveSet = url + timestamp;
	
	$.ajax({
	   url : archiveSet,
	   dataType : "html",
	   success: function(data){
		   $(target).after(data);
		   if(flag) {
			   var categoryText = $('#thisPageCategoryFlag').text();
			   var targetCate = '#cate-' + categoryText + ' + ul';
			   $(targetCate).show();
			   
		   }
	   }
	});
}


/*=================================================================
//
// .banner
//
=================================================================*/
function bannerInit(url, target) {
	$.ajax({
		   url : url,
		   dataType : "json",
		   success : function(data, status){
			  bannerBuild(target,data["slideItems"]);
			},
			error : function(){			   
			}
	});
}

function bannerBuild(target,data) {
	var targetElm = $(target);
	var num = 0;	
	if(target == "#banner-online"){
	targetElm.find("a").attr("href", data[num].link).end()
	.find(".img-wrp img").attr("src", data[num].img).end()
	.find(".caption-wrp .caption").html(data[num].caption);
	var timer = setInterval(function () {
									  num = num +1;
									  if(num >= data.length-1) num = 0;
									  bannerSlide(targetElm, num,data)
									  }, 4500);
	}else{
		targetElm.find("a").attr("href", data[num].link).end()
		.find(".img img").attr("src", data[num].img).end()
		.find(".caption-wrp .caption").html(data[num].caption);
		
		if(!data[num].link) {
			targetElm.find('.title').unwrap();
		}
		
	}
}

function bannerSlide(targetElm, num, data) {
    targetElm.find("a").attr("href", data[num].link);
	targetElm.find(".img-wrp").append('<img src="' + data[num].img + '" width="198" height="119" />');
	targetElm.find(".img-wrp .current").fadeOut(1000,currentImg);	
	targetElm.find(".caption-wrp").append('<span class="caption">'+data[num].caption +'</span>');
	targetElm.find(".caption-wrp .current").fadeOut(1000,currentText);	
}

function currentImg() { $(this).find(" + img").addClass("current").end().remove();}
function currentText() { $(this).find(" + span").addClass("current").end().remove();}

function storeBlogAnimeInit(){
	storeBlogAnime();
}

function storeBlogAnime() {
	var firstElm = $('#s-blog .article:first')
	var lastElm = $('#s-blog .article:last');
	var cssObj = {
		marginTop: "-67px"
		}

	lastElm.insertBefore(firstElm).css(cssObj).delay(3000).animate({marginTop:'0px'}, 300, reAnime);
}

function reAnime() { storeBlogAnime() };

/*=================================================================
//
// .mainImgInit
//
=================================================================*/
function mainImgInit(){
	var timestamp = '?timestamp='+(new Date()).getTime();
	var mainImagesJSON = "/json-mainimg/mainImages.json" + timestamp;
	$.ajax({
		   url : mainImagesJSON,
		   dataType : "json",
		   success : function(data, status){
			  mainImgBulid("#slide-images",data["slideItems"]);
			},
			error : function(){			   
			}
	});
}

function mainImgBulid(target, data) {
	//console.log(data);
	var li = $("<li />");
	var a = $('<a />');
	var img = $('<img />');
	var randnum = Math.floor( Math.random() * (data.length - 1) );
	//var randnum = 0; 
	for(var i =0; i < data.length -1;++i){
		
		var target = data[i].target;
		var thisImg = "";
		var thisLink = "";
		
		if(target != 0){
			target = "_blank";
		}else {
			target = "";
		}
		
		thisLink = a.clone().attr({
								  href : data[i].link,
								  target : target,
								  rel : data[i].img
											   });
		thisImg = img.clone().attr("src",data[i].thumbnail)
		
		var thisElm = li.clone().append(thisLink).append('<span />');
		thisElm.find('a').append(thisImg);
		thisElm.find('a').click(function() {
			if(btnflag == 0) return false;
			mainImgChange(this);
			return false;
		});
		if(i == randnum ) {
			thisElm.addClass('current');
			var mainImg = $('#mainImg img');		
			if(thisElm.find('a').attr('href')=='') mainImg.addClass('nolink')
			
			mainImg.attr("src", data[i].img).click(function(){
				var thisTargetElm = $("#thumbImg-wrp li.current a");
				if(thisTargetElm.attr("href") == '') return false;
				if(thisTargetElm.attr("target") == "_blank"){
					window.open(thisTargetElm.attr("href"));
				}else{
					location.href = thisTargetElm.attr("href");
				}
			});
		}
		$("#thumbImg-wrp ul").append(thisElm);
	}
	
	/*
	$("#thumbImg-wrp li a").mouseover(function(){ $(this).fadeTo("slow", 0.5);});
	$("#thumbImg-wrp li a").mouseout(function(){ $(this).fadeTo("slow", 1);});
	$('.img-btn').mouseover(function(){ $(this).fadeTo("slow", 0.5);});
	$('.img-btn').mouseout(function(){ $(this).fadeTo("slow", 1);});
	*/
	
	$('#img-prev').click(function(){
		if(btnflag == 0) return false;
		var prevElm = $("#thumbImg-wrp li.current").prev().find('a');
		if(!prevElm.attr('rel')) {
			prevElm = $("#thumbImg-wrp li").last().find('a');
		}
		mainImgChange(prevElm);
	});
	
	$('#img-next').click(function(){
		if(btnflag == 0) return false;
		var prevElm = $("#thumbImg-wrp li.current").next().find('a');
		if(!prevElm.attr('rel')) {
			prevElm = $("#thumbImg-wrp li:first").find('a');
		}
		mainImgChange(prevElm);
	});
}

function mainImgChange(thisElm) {
	btnflag = 0;
	//$("#thumbImg-wrp ul span").show();
	$("#thumbImg-wrp li.current").removeClass('current');
	var nextImg = $(thisElm).attr("rel");
	$('#mainImg').append('<img src="' + nextImg + '" />');
	$('#mainImg .current').fadeOut(1000, currentMainImg);
	$(thisElm).parent().addClass('current');
}

function currentMainImg() {
	var thisAddClass = 'current';
	if($("#thumbImg-wrp li.current a").attr('href') == '') thisAddClass += ' nolink';
	
	$(this).find(" + img").addClass(thisAddClass).click(function(){
		var thisTargetElm = $("#thumbImg-wrp li.current a");
		if(thisTargetElm.attr("href") == '') return false;
		if(thisTargetElm.attr("target") == "_blank"){
			window.open(thisTargetElm.attr("href"));
		}else{
			location.href = thisTargetElm.attr("href");
		}
	}).end().remove();
	//$("#thumbImg-wrp ul span").hide();
	btnflag  =1;
}

/*=================================================================
//
// .areaLink
//
=================================================================*/
function areaLink(target){
	
	var targetAreas = $(target);
	if(!targetAreas.length) return false;
	
	targetAreas.click(function(){
							   
		var thisA = $(this).find('a');
		if(!thisA.attr('href')) return false;
		if(thisA.attr('target') == '_blank'){
			window.open(thisA.attr('href'));
		}else{
			location.href = thisA.attr('href');
		}
		return false;
	});
}

/*=================================================================
//
// .shoplist
//
=================================================================*/
function shoplistInit() {
	var pageID = location.hash;
	var links = $('#content-navi #navi-area li a');
	shoplistBulid(pageID.replace(/^#/,''));
	links.click(function(){
		var thisElm = $(this);
		if(thisElm.hasClass('current')) {return false; }
		shoplistBulid(thisElm.attr('href'));
		links.removeClass('current');
		thisElm.addClass('current');
		return false;
	});
}
function shoplistBulid(id) {
	var shopUrl;
	switch (id) {
		case 'tokyo':
			shopUrl = 'list_3.html';
			location.hash = id;
		break;
		case 'kanto':
			shopUrl = 'list_2.html';
			location.hash = id;
		break;
		case 'hokkaido':
			shopUrl = 'list_1.html';
			location.hash = id;
		break;
		case 'tokai':
			shopUrl = 'list_4.html';
			location.hash = id;
		break;
		case 'kansai':
			shopUrl = 'list_5.html';
			location.hash = id;
		break;
		case 'kyushu':
			shopUrl = 'list_6.html';
			location.hash = id;
		break;
		default:
			shopUrl = 'list_3.html';
		break;
	} 
	
	$.ajax({
		url : shopUrl,
		dataType : "html",
		success: function(data){
		   $("#content-main").html(data);
		   if($('#content-main .inner').height() > 563) {
			$('#content-main').css("height",'auto');
		   }else{
		   	$('#content-main').css("height",$('#content-navi').height());
		   }
		   
		   $("#content-main .shopmap a").click(function(){
				shopWin($(this).attr('href'));
				return false;
			});
		}
	});
}

function shopWin(url){
	var shopWin=window.open(url,"shopmap","width=620,height=600,toolbar=no,scrollbars=yes,resizable=no,menubar=yes");
	shopWin.window.focus();
}


/*=================================================================
//
// .blog sort
//
=================================================================*/
function blogSort() {
	var blogArr = [];
	var blogWrp = $('<div />')
	
	$('#col-beta-content .sblog-section').each(function(i,elm){
	var ts = $(this).find('.published').text();
	var thisDate = new Date(ts);
	blogArr[i] = [];
	blogArr[i][0] = thisDate.getTime();
	blogArr[i][1] = $(this);
	});
	blogArr.sort(dateSort);
	for(var i=0; i < blogArr.length; i++){
	blogWrp.append(blogArr[i][1]);
	}
	$('#col-beta-content').html(blogWrp.html());
	areaLink('.sblog-section');
	addiinebtn();
}

function dateSort(a, b) { return(b[0] - a[0]); }

