var blair		= '.blair, #product h4, .alpha-letter, #locations h2';
var blair_h		= '.blair_h, #header > p, #exhibitions .entry h2';
var blair_l		= '.blair_l, #bc h2, #product h3, #artlist.lview h3.cuf, .pagetitle';
var blair_l_h		= '.blair_l_h, #bc p';
var giza		= '.giza';
var gotham		= '.gotham';
var tg_cond		= '.tgc';
var tg_extd		= '.tge';
var tg_bold		= '.tgb, #header li > a, #art h2, #footer div.counter span, #criteria li > a, #artlist.lview h4, #locations h3, #about .quote';

Cufon.replace(blair,		{ fontFamily: 'Blair' });
Cufon.replace(blair_h,		{ fontFamily: 'Blair', hover: true });
Cufon.replace(blair_l,		{ fontFamily: 'Blair_Light' });
Cufon.replace(blair_l_h,	{ fontFamily: 'Blair_Light', hover: true });
Cufon.replace(gotham,		{ fontFamily: 'GothamHTF_Bold', textShadow: '1px 1px rgba(0, 0, 0, 0.8)' });
Cufon.replace(giza,		{ fontFamily: 'Giza', textShadow: '2px 2px rgba(0, 0, 0, 0.8)' });
Cufon.replace(tg_bold,		{ fontFamily: 'TradeGothic_Bold', hover: true });
Cufon.replace(tg_cond,		{ fontFamily: 'TradeGothic_Cond' });
Cufon.replace(tg_extd,		{ fontFamily: 'TradeGothic_Extd' });

$(function(){

//	ACTIVATE JS STYLES

	$('body').addClass('js');

//	GENERATE CONTROLS FOR BANNER ANIMATION

	li = '<li class="active"></li>';
	for (i=1; i<$('#ban div.slide').length; i++){
		li += '<li></li>';
	}
	li = '<ul id="ctrls">' + li + '</ul>';
	$('#ban div.exh').before($(li));

//	MAIN SLIDESHOW ON INDEX PAGE

	$('#ban div.slide').animateBanner({
		fadetime : 800,
		slidetime : 600,
		delaytime : 6000,
		controls : '#ctrls li'
	});

//	SETTINGS FOR MINI SKEWED SLIDESHOWS

	$('span.imgframe').skewedSlideshow({
		animtime : 600,
		delaytime : 2400
	});

//	GENERATE TABS FOR BROWSING RELATED THUMBNAILS

	$rel = $('#related div.screen li');
	if ($rel.length > 4){
		li = '<li><a class="active" href="#" title="1">1</a></li>';
		for (i=1; i<Math.ceil($rel.length/4); i++){
			li += '<li><a href="#" title="' + (i+1) + '">' + (i+1) + '</a></li>';
		}
		li = '<ul id="pages">' + li + '</ul>';
		$('#related div.screen').after($(li));
	}

//	SETTINGS FOR SCROLLING RELATED THUMBNAILS

	$('#related div.screen').scrollDiv({
		mode : 'tabs',
		animtime : 400,
		slide_step : 4,
		controls : '#related #pages a',
		slider : '#related div.screen ul',
		slides : '#related div.screen li'
	});

//	GENERATE BUTTONS TO SCROLL THROUGH PRODUCT THUMBNAILS

	if ($('#product div.thumbs li').length > 4){
		$('#product div.thumbs').before($('<span class="scroll right"><a class="left" href="#" title="Next"></a></span><span class="scroll"><a class="right hid" href="#" title="Previous"></a></span>'));
	}
	else {
		$('#product div.thumbs').css('marginLeft', 0);
	}

//	SETTING FOR SCROLLING PRODUCT THUMNAILS

	$('#product div.thumbs').scrollDiv({
		mode : 'count',
		animtime : 400,
		slide_step : 4,
		slider : '#product div.thumbs ul',
		slides : '#product div.thumbs li',
		controls : '#product span.scroll a'
	});

//	FANCY BOX FOR LARGE PRODUCT IMAGES

	$("p.price a.blair").fancybox({
		'speedIn'		:	600,
		'speedOut'		:	200,
		'overlayShow'		:	true,
		'overlayColor' 		: 	'#000',
		'overlayOpacity'	:	'0.8',
		'showCloseButton'	:	false,
		'type'			:	'iframe',
		'height'		: 	400,
	});
	
	$("a.fancylink").fancybox({
		'speedIn'		:	600,
		'speedOut'		:	200,
		'overlayShow'		:	true,
		'overlayColor' 		: 	'#000',
		'overlayOpacity'	:	'0.8',
		'showCloseButton'	:	false,		
	});

	$("#product div.thumbs a").fancybox({
		'speedIn'		:	600,
		'speedOut'		:	200,
		'overlayShow'		:	true,
		'overlayColor' 		: 	'#000',
		'overlayOpacity'	:	'0.8',
		'showCloseButton'	:	false,
		'centerOnScroll'	:	true
	});

	$("#exhibitions div.thumb a").fancybox({
		'speedIn'		:	600,
		'speedOut'		:	200,
		'overlayShow'		:	true,
		'overlayColor' 		: 	'#000',
		'overlayOpacity'	:	'0.8',
		'showCloseButton'	:	false,
		'centerOnScroll'	:	true
	});

//	PRELOADING MEDIUM PRODUCT IMAGES AND SWITCHING THE
//	MEDIUM IMAGE WHEN THUMBNAILS ARE HOVERED UPON

	$('#product div.thumbs a').switchMed().find('img').preloadImg();

	$h3 = $('#artlist h3');
	for (i=0; i<$h3.length; i++){
		$h = $h3.eq(i).clone().addClass('cuf');
		$h3.eq(i).before($h);
	}

//	TOGGLE CATEGORY VIEW

	$('#viewopt li.tog span').click(function(){
		var $list = $('#artlist');
		var cl = $(this).attr('class');
		if ($list.attr('class') == cl){
			return false;
		}
		$('#viewopt li.tog a').removeClass('active');
		$(this).parent().addClass('active');
		$list.removeAttr('class').addClass(cl);
		Cufon.refresh();
		createCookie('gview_setting', cl, 365);
		return false;
	});

//	RETRIEVE VIEW SETTING

	$('#artlist').setView();

//	AJAX REROUTING

	$('#view #pages a').click(function(){
		if ($(this).hasClass('active')){
			return false;
		}

		$alist = $('#artlist');
		var ht = $alist.height();
		$alist.css('minHeight', ht);

		$('#view #pages a').removeClass('active');
		$(this).addClass('active');
		var href = $(this).attr('href').split('/');
		query = {
			page: href[4],
			letter : href[2]
		};
		var update = function(data){
			$alist.find('div.artpiece').remove().end().prepend($(data)).ready(function(){
				var $h3 = $alist.find('h3');
				for (i=0; i<$h3.length; i++){
					$h = $h3.eq(i).clone().addClass('cuf');
					$h3.eq(i).before($h);
				}
				$alist.show().removeAttr('style');
				Cufon.refresh();
			});
		}
		var post = function(){
			$.post('test.php', query, function(data){ update(data); });
		}
		$alist.find('div.artpiece').fadeOut(800);
		setTimeout(post, 800);
		return false;
	});

});

(function($) {
	$.fn.animateBanner = function(param){
		if ($(this).length == 0){
			return $(this);
		}
		var defset = {
			count : 0,
			busy : false,
			fadetime : 800,
			slidetime : 600,
			delaytime : 6000,
			controls : '#control li'
		};
		$.extend(defset, param);

		var $slides = $(this);
		var $ctrl = $(defset.controls);
		$slides.hide().eq(0).show().find('div.info').animate({ marginRight : 0 }, defset.animtime);

		var hideslide = function(num){
			defset.busy = true;
			$ctrl.eq(num).removeClass('active');
			$slides.eq(num)
				.fadeOut(defset.fadetime)
				.find('div.info')
				.animate({ marginRight : -350 }, defset.slidetime);
		}

		var showslide = function(num){
			$ctrl.eq(num).addClass('active');
			setTimeout(function(){
				$slides.eq(num)
					.fadeIn(defset.fadetime, function(){ defset.busy = false; })
					.find('div.info')
					.animate({ marginRight : 0 }, defset.slidetime);
			}, defset.fadetime);
		}

		var slideshow = function(){
			defset.ssInt = setInterval(function(){
				hideslide(defset.count);
				defset.count++;
				if (defset.count == $slides.length){
					defset.count = 0;
				}
				showslide(defset.count);
			}, defset.delaytime);
		}

		slideshow();

		$ctrl.click(function(){
			if ($(this).hasClass('active') || defset.busy){
				return;
			}
			clearInterval(defset.ssInt);
			for (i=0; i<$ctrl.length; i++){
				if ($ctrl.eq(i).hasClass('active')){
					var os = i;
					break;
				}
			}
			var ns = $ctrl.index(this);
			hideslide(os);
			showslide(ns);
			slideshow();
		});
		return $(this);
	}

	$.fn.skewedSlideshow = function(param){
		if ($(this).length == 0){
			return $(this);
		}
		var defset = {
			animtime : 600,
			delaytime : 2000
		};
		$.extend(defset, param);
		var $groups = $(this);
		for (i=0; i<$groups.length; i++){
			$groups.eq(i).find('img').hide().eq(0).show();
		}
		var gcount = -1;
		advance = function(){
			gcount++;
			if (gcount == $groups.length){
				gcount = 0;
			}
			var $img = $groups.eq(gcount).find('img');
			icount = $img.data('count');
			if (icount == null){
				icount = 0;
			}
			$img.eq(icount).fadeOut(defset.animtime);
			icount++;
			if (icount == $img.length){
				icount = 0;
			}
			$img.eq(icount).fadeIn(defset.animtime);
			$img.data('count', icount);
			setTimeout(advance, defset.animtime + defset.delaytime);
		}
		setTimeout(advance, defset.delaytime);
		return $(this);
	}

	$.fn.preloadImg = function(){
		if ($(this).length == 0){
			return $(this);
		}
		var $img = $(this);
		for (i=0; i<$img.length; i++){
			var src = $img.eq(i).attr('src');
			src = src.replace("thumb", "medium");
			var $newimg = $('<img />').attr('src', src);
		}
		return $(this);
	}

	$.fn.switchMed = function(){
		if ($(this).length == 0){
			return $(this);
		}
		$(this).hover(function(){
			var src = $(this).find('img').attr('src');
			src = src.replace("thumb", "medium");
			$('#product div.pic > img').attr('src', src);
		});
		return $(this);
	}

	$.fn.setView = function(){
		var cl = readCookie('gview_setting');
		if ($(this).length == 0 || cl === null){
			return $(this);
		}
		$obj = $(this).css('visibility', 'hidden').removeAttr('class').addClass(cl);
		var $opt = $('#viewopt li.tog a').removeClass('active');
		for (i=0; i<$opt.length; i++){
			$o = $opt.eq(i);
			if ($o.hasClass(cl)){
				$o.addClass('active');
			}
		}
		Cufon.refresh();
		$(window).ready(function(){
			$obj.css('visibility', 'visible');
		});
		return $(this);
	}

	$.fn.scrollDiv = function(param){
		if ($(this).length == 0){
			return $(this);
		}
		var defpar = {
			animtime : 400,
			slide_step : 4,
			slider : 'div.screen ul',
			slides : 'div.screen li'
		};
		$.extend(defpar, param);
		var $screen = $(this);
		var data = $(this).data('data');
		var $ctrls = $(defpar.controls);
		if (data === null){
			var data = {};

			var $slides = $(defpar.slides);
			data.slide_count = $slides.length;
			data.slide_width = $slides.outerWidth();

			var $slider = $(defpar.slider);
			data.slider_width = data.slide_width * data.slide_count;
			$slider.width(data.slider_width);

			data.scroll_step = data.slide_width * defpar.slide_step;
			data.max_scroll_width = data.slider_width - $screen.outerWidth();
			data.max_stop = Math.ceil(data.max_scroll_width / data.scroll_step);
		}
		if (defpar.mode == 'count'){
			data.busy = false;
			data.click_count = 0;
			$ctrls.click(function(){
				if (data.busy){
					return false;
				}
				data.busy = true;
				$ctrls.css('display', 'block');
				if ($(this).hasClass('left')){
					data.click_count++;
				}
				else {
					data.click_count--;
				}
				if (data.click_count == 0 || data.click_count == data.max_stop){
					$(this).fadeOut(defpar.animtime);
				}
				pos = data.click_count * data.scroll_step;
				if (data.click_count == data.max_stop){
					pos = data.max_scroll_width;
				}
				$screen.animate({
					scrollLeft : pos
				}, defpar.animtime, function(){ data.busy = false; });
				return false;
			});
		}
		else if (defpar.mode == 'tabs'){
			$ctrls.click(function(){
				var num = $ctrls.removeClass('active').index(this);
				$(this).addClass('active');
				pos = num * data.scroll_step;
				if (num == data.max_stop){
					pos = data.max_scroll_width;
				}
				$screen.animate({
					scrollLeft : pos
				}, defpar.animtime);
				return false;
			});
		}
		$(this).data('data', data);
	}
})(jQuery);

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
