;(function($) {

	var domain = "http://velvet-web.com/"
		$leftarea = $("#leftarea");		
    if ( location.href != domain ) {
        var goHash = location.href.replace(domain, '');
        if ( !/^\#/.test(goHash) ) {
            location.href = domain + '#' + goHash;
            return false;
        }
    }		

	if ( location.hash ) {
		replaceContents(location.hash);
	}

	$(window).bind("hashchange", function() {
		replaceContents(location.hash);
	});
	
	$.fn.replaceHrefs = function() {
		$(this).each(function() {
			$(this)
				.filter(function() {
					return this.href.indexOf(domain) !== -1;
				})
				.attr("href", "#" + $(this).attr("href").replace(domain, ""));
		});
	}
	
	$("a:not(.nonAjax)").replaceHrefs();
	
	function replaceContents(hash) {
		var url = hash.replace("#", "");
		$.ajax({
			type: "GET",
			dataType: "html",
			url: url,
			error: function(XMLHttpRequest, textStatus, errorThrown) {
				if ( textStatus === "error" ) {
					alert("リクエストされたページは存在しないためトップへ移動します");
					location.href = domain;
				}
			},
			success: function(html) {
				var $div = $("<div>" + html + "</div>"),
					$containerContents = $("#leftarea > div", $div);
				var liveID = $("#rightarea > div").attr("id");
				var livehref = location.href;
				
				$leftarea
					.hide()
					.empty()
					.append($containerContents)
					.fadeIn(500);
				

				  $(function(){
					  mCustomScrollbars();
				  });
				  function mCustomScrollbars(){
					  $("#mcs_container").mCustomScrollbar("vertical",1000,"easeOutCirc",1.05,"auto","yes","no",0); 
				  }

				function rightAjax(){
					var $rightContents = $("#rightarea > div", $div);
					$("#rightarea")
						.hide()
						.empty()
						.append($rightContents)
						.fadeIn(1200);
				}
				
				function html5slide(){
				  var supportCanvas = 'getContext' in document.createElement('canvas');
				  var slides = $('#slideshow li'),
					  current = 0,
					  slideshow = {width:0,height:0};
				  setTimeout(function(){		
					  window.console && window.console.time && console.time('Generated In');		
					  if(supportCanvas){
						  $('#slideshow img').each(function(){
							  if(!slideshow.width){
								  slideshow.width = this.width;
								  slideshow.height = this.height;
							  }			
							  createCanvasOverlay(this);
						  });
					  }	
					  $('.arrow').click(function(){
						  var li			= slides.eq(current),
							  canvas		= li.find('canvas'),
							  nextIndex	= 0;			
						  if($(this).hasClass('next')){
							  nextIndex = current >= slides.length-1 ? 0 : current+1;
						  }
						  else {
							  nextIndex = current <= 0 ? slides.length-1 : current-1;
						  }
						  var next = slides.eq(nextIndex);			
						  if(supportCanvas){
							  canvas.fadeIn(function(){					
								  next.show();
								  current = nextIndex;					
								  li.fadeOut(function(){
									  li.removeClass('slideActive');
									  canvas.hide();
									  next.addClass('slideActive');
								  });
							  });
						  }
						  else {			
							  current=nextIndex;
							  next.addClass('slideActive').show();
							  li.removeClass('slideActive').hide();
						  }
					  });		
				  },100);	
				  function createCanvasOverlay(image){
					  var canvas			= document.createElement('canvas'),
						  canvasContext	= canvas.getContext("2d");		
					  canvas.width = slideshow.width;
					  canvas.height = slideshow.height;		
					  canvasContext.drawImage(image,0,0);
					  var imageData	= canvasContext.getImageData(0,0,canvas.width,canvas.height),
						  data		= imageData.data;			
					  for(var i = 0,z=data.length;i<z;i++){					
						  data[i] = ((data[i] < 128) ? (2*data[i]*data[i] / 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) / 255));
						  data[++i] = ((data[i] < 128) ? (2*data[i]*data[i] / 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) / 255));
						  data[++i] = ((data[i] < 128) ? (2*data[i]*data[i] / 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) / 255));			
						  ++i;
					  }		
					  canvasContext.putImageData(imageData,0,0);		
					  image.parentNode.insertBefore(canvas,image);
				  }					
				}
													
				if(liveID == "accessmap"){
					if(hash != "#reserve/"){
						rightAjax();
						html5slide();						
					};
				};			
				if(liveID == "form"){
					if(hash != "#access/"){
						rightAjax();
						html5slide();
					};
				};	

				if(hash == "#reserve/thanks/"){
						rightAjax();
				};				
				
				if(hash == "#access/"){
					rightAjax();
				};

				if(hash == "#recruit/"){
				  $('.mailto_link').click(function(){
					  var str = String.fromCharCode(109,97,105,108,116,111,58,114,101,99,114,117,105,116,64,118,101,108,118,101,116,45,119,101,98,46,99,111,109);
					  $('.mailto_link').attr("href",str);
				  })
				};
				$div.remove();
			}
		});
	}
	
}(jQuery));

