/* Author:

*/







$(document).ready(function(){
	
///	$("#wolf").delay(100).fadeTo(2000, 1);
//	$(".marquee img").delay(500).fadeTo(1200,1);
	$(".home_works .shadow").expandingFrame();
	$(".work_list .right .work_image").expandingFrame({extra_w:46, extra_h:60});
	$(".work_list .left .work_image").expandingFrame({extra_w:46, extra_h:60, slide_left:false});
	
	
//	$('a.large_zoom').colorbox();
	$('a.large_zoom, .gallery a').fancybox({
				'overlayShow'	: true,
				'overlayColor'  : '#f8f7f5',
				'transitionIn'	: 'elastic',
				'transitionOut'	: 'elastic'
			});
	$(".more_artwork_thumbs").portfolioThumbs();
	
	runFeatures();
});
/*
var spins = Spinners.create('.loading', {
	radii:     [10, 20],
  	color:     '#4fa2a8',
  	dashWidth: 3

	}).play();
	*/
var feature_time = 3000;
var feature_current = -1;
var feature_loaded = 0;
var features = {
	"data":[ 
	{
		"img":"feature-0.jpg",
		"bg":"sketch-0.png",
		"title":"Lupa &mdash; She Wolf",
		"url":"/artworks/lupa-she-wolf/",
		"loaded":null		
	},
	{
		"img":"feature-1.jpg",
		"bg":"sketch-1.png",
		"title":"Twilight &ndash; Great Horned Owl",
		"url":"/artworks/twilight-%e2%80%93-great-horned-owl/",
		"loaded":null		
	},
	{
		"img":"feature-2.jpg",
		"bg":"sketch-2.png",
		"title":"Peonies &amp; Chickadee",
		"url":"/artworks/peonies-chickadee/",
		"loaded":null		
	},
	{
		"img":"feature-3.jpg",
		"bg":"sketch-3.png",
		"title":"Twin Peaks",
		"url":"/artworks/twin-peaks/",
		"loaded":null		
	}
	]	
};


function runFeatures() {
	$("#wolf").fadeOut(1000);
	$(".marquee p").fadeOut(500);
	$(".marquee div img").delay(400).fadeOut(1000, function(){
		loadNextFeature();
	});
}
function loadNextFeature() {
	
	
	feature_current += 1;
	if(feature_current > features.data.length - 1) feature_current = 0;
	
	//console.log("loading this feature: " + feature_current);
	
	var new_data = features.data[feature_current];
	if(new_data.loaded == null) {
$(".loading").addClass("spinner");
		//$(".marquee canvas").fadeIn();
		//spins.play();
		feature_loaded = 0;
		new_data.img_el = new Image();
		new_data.img_el.src = template_dir + "/images/" + new_data.img;
		new_data.bg_el = new Image();
		new_data.bg_el.src = template_dir + "/images/" + new_data.bg;
		$(new_data.img_el).imagesLoaded( function(){
			feature_loaded++;
			checkIfLoaded();
		});
		$(new_data.bg_el).imagesLoaded( function(){
			feature_loaded++;
			checkIfLoaded();
		});	
	} else {
		feature_loaded = 2;
		checkIfLoaded();
	}
}

function checkIfLoaded() {
	//console.log("Check if loaded");
	if(feature_loaded < 2) return;
	$(".loading").removeClass("spinner");
	/*$(".marquee canvas").fadeOut("normal", function(){
		spins.pause();	
		});
		*/
	var new_data = features.data[feature_current];
	new_data.loaded = true;
	$(".marquee a").fadeIn();

	if(!$("html:first").hasClass("oldie")) {
	$("#wolf").hide().css("background-image", "url("+new_data.bg_el.src+")").fadeIn(2000);
}
	$("#feature_image").hide().attr("src", new_data.img_el.src).delay(400).fadeIn(1200);
	$(".marquee p").hide().html(new_data.title).delay(800).fadeIn(800);
	$(".marquee a").attr("href",new_data.url);
	setTimeout("runFeatures()", feature_time);
}





$.fn.portfolioThumbs = function(options)
{
	return this.each(function() {
		var opts = $.extend(
			{
				max_display: 4,
				cell_width: 74
			}, 
			options
		);
		$c = $(".more_artwork");
		$u = $(".more_artwork_thumbs ul:first");
		$lis = $u.find("li");
		$l = $(".more_artwork_left:first");
		$r = $(".more_artwork_right:first");
		$u.find("li").each(function(n) {
			$(this).attr("data-index", n);
		});
		var current_left = parseInt($u.find("li.current").attr("data-index")) - 1;
		var count = $lis.length;
		$u.css("width", 74*count);
		
		$lis.show();
		
		slide(0, false);
		function slide(distance, ani) {
			current_left = Math.min(count - opts.max_display, Math.max(0, current_left + distance));
			if(ani) {
				$u.clearQueue().animate({"left": -(current_left * opts.cell_width)},"fast");
			} else {
				$u.css("left", -(current_left * opts.cell_width));
			}
			for( var i = current_left; i < Math.min(count, current_left + opts.max_display); i++) {
				var img = $lis.eq(i).find("img:first");
				if($(img).hasClass("loaded")) continue;
				$(img).parent().imagesLoaded( function(loaded_img){
					$(loaded_img).addClass("loaded").fadeIn();
				});
				$(img).attr("src", $(img).attr("data-src"));
			}
		}
		
		
		$l.click(function() {
			slide(-3, true);
			return false;
		});
		$r.click(function() {
			slide(3, true);
			return false;
		});
		function showImage(targ) {
			$(targ).fadeIn();
		}
		$c.hover(
			function(){
				$l.show();
				$r.show();
//				$l.fadeIn("fast", "swing");
//				$r.fadeIn("fast", "swing");
			},
			function(){
				
				$l.hide();
				$r.hide();
//				$l.fadeOut("fast", "swing");
//				$r.fadeOut("fast", "swing");
			}
		);
		
		
	});
};


var anim_speed = 100;
var anim_ease = "swing";
var zs = 1;

$.fn.expandingFrame = function(options)
{
	return this.each(function() {
		var opts = $.extend(
			{
				extra_w: 12, 
				extra_h: 12,
				slide_left: true
			}, 
			options
		);
		var $a = $(this);
		var $s = $(this).find("span:first");
		var $i = $(this).find("img:first");

		var base_h = $s.innerHeight();
		var base_w = $s.innerWidth();
		
		var half_h = opts.extra_h/2;
		var half_w = opts.extra_w/2;
		
		var animate_start = $a.position().top;
		var animate_to = animate_start - half_h;
		
		$a.hover(
			function(){
				var start_top = {property: $a.position().top};
				jQuery(start_top).animate(
					{property: animate_to/2},
					{
						step: function(now, fx){
							var clean = -Math.ceil(now);
							var per = clean / (half_h/2);
							$a.css("top", -clean*2);
							$s.css("height", Math.min(base_h + (opts.extra_h), base_h + opts.extra_h * per)+"px");
							$s.css("width", base_w + (opts.extra_w * per));
							$s.css("-webkit-box-shadow", "0px 0px "+(per * 8)+"px 0px rgba(0, 0, 0, .3)");
							$s.css("-moz-box-shadow", "0px 0px "+(per * 8)+"px 0px rgba(0, 0, 0, .3)");
							$s.css("box-shadow", "0px 0px "+(per * 8)+"px 0px rgba(0, 0, 0, .3)");
							if(!opts.slide_left) {
								$a.css("right", (half_w * per));
							} else {
								$a.css("left", -(half_w * per));
							}
						},
						duration: anim_speed,
						easing: anim_ease
					}
				);
				$s.css("z-index",zs++);
			},
			function(){
				var start_top = {property: $a.position().top};
				jQuery(start_top).animate(
					{property:animate_start},
					{
						step: function(now, fx){
							var clean = Math.ceil(now);
							var per =   -clean / (opts.extra_h / 2);
							$a.css("top", clean);
							$s.css("height", Math.max(base_h, (base_h + (opts.extra_h * per)))+"px");
							$s.css("width", base_w + (opts.extra_w * per));
						
							$s.css("-webkit-box-shadow", "0px 0px "+(per * 8)+"px 0px rgba(0, 0, 0, .3)");
							$s.css("-moz-box-shadow", "0px 0px "+(per * 8)+"px 0px rgba(0, 0, 0, .3)");
							$s.css("box-shadow", "0px 0px "+(per * 8)+"px 0px rgba(0, 0, 0, .3)");
						
						
							if(!opts.slide_left) {
								$a.css("right", (half_w * per));
							} else {
								$a.css("left", -(half_w * per));
							}
						},
						duration: 200,
						easing: anim_ease,
						complete: function() {
	//						$s.css("z-index",1);	
						}
					}
				);
			}
		);
		
		
		
		
		
	});
};
