var currentItem = false;
var currentDrop = false;
var currentData = false;
var currentImage = 0;

var section='the_works';
var view='all';
var page='1';

var citem=0;

var price=500;

var addedToCart = {};
var removedFromCart = {};

function zeroPad(num,count) {
	var numZeropad = num + '';
	while(numZeropad.length < count) {
		numZeropad = "0" + numZeropad;
	}
	return numZeropad;
}

function setSection() {
	$('.simpleCart_items').hide();
	$('div.text').hide();
	if (section=='the_works') {
		$('#art').show();
		$('body').removeClass('text');
	} else {
		$('#art').hide();
		$('body').addClass('text');
		$('#'+section+'_text').show();
	}
}

function setView() {
	$('.simpleCart_items').hide();

	if (view=='all') {
		$('.category1,.category2,.category3').show();
	}
	
	if (view=='notations') {
		$('.category2,.category3').hide();
		$('.category1').show();
	}

	if (view=='archetypes') {
		$('.category1,.category3').hide();
		$('.category2').show();
	}

	if (view=='chance') {
		$('.category1,.category2').hide();
		$('.category3').show();
	}
}

/* set w.l.hash based on location in the site */
function setHash() {
	var h = '/section:'+section+'/view:'+view+'/page:'+page;
	
	if (citem !== 0) {
		h += '/item:' + citem;
	}
	
	window.location.hash = h;
}

/* parse passed params through w.l.hash */
function readHash() {
	var cH = window.location.hash;
	
	if (cH.length<2) {
		setHash();
	} else {
		var fields = cH.replace(/#\//g, '').split('/');
		for(var i=0; i<fields.length; i++) {
			var f = fields[i].split(':');
			if (f[0] == 'section') {
				section = f[1];
				setSection();
			}
			if (f[0] == 'view') {
				view = f[1];
				setView();
			}
			if (f[0] == 'page') {
				page = f[1];
			}
			
			if (f[0] == 'item') {
				citem = f[1];
			}
			
			$('#'+f[0]+'_dd ase').removeClass('active').each(function() {
				if (this.title == f[1]) {
					$('#'+f[0]+'_value').html($(this).html());
					$(this).addClass('active');
				}
			});
		}			
	}
}

function closeAll() {
	$('#overlay').hide().html('');
	$('#veil').fadeOut('slow');

	citem = 0;
	setHash();
}

function showPrevious() {
	var newNum = parseInt(currentItem, 10)-1;
	
	var viewNum = 0;
	var addableClass;
	
	if (view=='notations') {
		viewNum = 1;
	}

	if (view=='archetypes') {
		viewNum = 2;
	}

	if (view=='chance') {
		viewNum = 3;
	}
	
	if (view != 'all') {
		addableClass = '.category'+viewNum;
	} else {
		addableClass = '';
	}
	
	while (newNum>0 && $('#item'+newNum+addableClass).length===0) {
		newNum--;
	}
	
	if (newNum>0) {	
		$('#item'+newNum+addableClass).get(0).onclick();	
	}
}

function showNext() {
	var newNum = parseInt(currentItem, 10)+1;

	var viewNum = 0;
	var addableClass;
	
	if (view=='notations') {
		viewNum = 1;
	}

	if (view=='archetypes') {
		viewNum = 2;
	}

	if (view=='chance') {
		viewNum = 3;
	}

	if (view != 'all') {
		addableClass = '.category'+viewNum;
	} else {
		addableClass = '';
	}
	
	while ($('#item'+newNum+addableClass).length===0 && newNum<576) {
		newNum++;
	}
	
	
	if ($('#item'+newNum+addableClass).length>0) {		
		$('#item'+newNum+addableClass).get(0).onclick();	
	}
}

/* adapter for simplecart */
function addToCart() {
	var q = 1;
	/* single item */
	if (currentData.length==1) {
		simpleCart.add(
			'name=No. '+zeroPad(currentData[currentImage].number,3),
			'price='+price,
			'filename='+currentData[0].filename,
			'quantity='+1);
		$('#item'+currentData[currentImage].number).parent().addClass('cart');
	}
	else {
		simpleCart.add(
			'name=No. '+zeroPad(currentData[0].number,3)+'-'+zeroPad(currentData[(currentData.length-1)].number,3),
			'price='+currentData.length*price,
			'filename='+currentData[0].filename,
			'quantity='+1);
		$('#item'+currentData[0].number).parent().addClass('cart');
	}

	$('#add_li').html('<a href="#" onclick="this.blur(); removeFromCart(); return false">Remove from cart</a>');

	if (removedFromCart[currentData[0].filename]) {
		delete removedFromCart[currentData[0].filename];
	}
	
	addedToCart[currentData[0].filename] = true;
}

/* adapter for simplecart */
function inCartRemoveFromCart(modName, filename) {
	simpleCart.remove(filename);
	$('#item'+parseInt(modName, 10)).parent().removeClass('cart');	
	$('.itemRow'+modName).parent().remove();
	$('#add_li').html('<a href="#" onclick="this.blur(); addToCart(); return false">Add to cart</a>');

	if (addedToCart[filename]) {
		delete addedToCart[filename];
	}

	removedFromCart[filename] = true;
}

/* adapter for simplecart */
function removeFromCart() {
	simpleCart.remove(currentData[0].filename);
	$('#item'+currentData[currentImage].number).parent().removeClass('cart');	
	$('#add_li').html('<a href="#" onclick="this.blur(); addToCart(); return false">Add to cart</a>');

	if (addedToCart[currentData[0].filename]) {
		delete addedToCart[currentData[0].filename];
	}

	removedFromCart[currentData[0].filename] = true;
}

function clickImage(i) {
	$('#image'+currentImage+'_small').show();
	$('#image'+currentImage+'_big').hide();
	currentImage = i;
	$('#image'+currentImage+'_small').hide();
	$('#image'+currentImage+'_big').show();
}

function addCommas(num) {
	num += '';
	var x = num.split('.');
	var x1 = x[0];
	var x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function showSet(index, data) {
	currentData = data;

	currentItem = data[index].number;
	currentImage = index;

	citem = data[index].number;
	setHash();
	
	var totalPrice = addCommas(price*data.length);
	var totalName = zeroPad(data[0].number,3)+'&ndash;'+zeroPad(data[(data.length-1)].number,3);
	
	var h = '';
	h += '<div class="logo"><img src="/assets/images/logo2.png" /></div>';		
	h += '<ul class="subnav">';
	
	if (data[0].sold===true) {
		h += '<li><a href="#" onclick="this.blur(); addToCart(); return false" id="price">No. '+totalName+': SOLD</a></li>';
		h += '<li id="add_li"><a href="#" onclick="this.blur(); return false" style="text-decoration: line-through; color: #666">Add to cart</a></li>';
	} else {
		h += '<li><a href="#" onclick="this.blur(); return false" id="price">No. '+totalName+': $'+totalPrice+'</a></li>';
		if ((data[0].cart===true&&!removedFromCart[data[0].filename])||addedToCart[data[0].filename]) {
			h += '<li id="add_li"><a href="#" onclick="this.blur(); removeFromCart(); return false">Remove from cart</a></li>';
		} else {
			h += '<li id="add_li"><a href="#" onclick="this.blur(); addToCart(); return false">Add to cart</a></li>';
		}
	}

	h += '<li><a href="#" onclick="this.blur(); showNext(); return false">Next</a></li>';
	h += '<li><a href="#" onclick="this.blur(); showPrevious(); return false">Previous</a></li>';
	h += '</ul>';

	h += '<div class="wrapper"><table cellspacing="0" cellpadding="0"><tr valign="top">';			
	for(var l=0; l<data.length; l++) {
		if (l==index) {
			h += '<td>';
			h += '<a href="#" onclick="this.blur(); clickImage('+l+'); return false;">';
			h += '<img src="/assets/images/120/'+data[l].filename.replace(/.jpg/g, ".gif")+'" width="120" height="164" style="display: none; margin-right: 5px"';
			h += ' id="image'+l+'_small" /></a><img src="/assets/images/370/'+data[l].filename+'" width="370" height="506" style="';
			h += 'display: none; margin-right: 5px" onload="$(this).fadeIn(\'slow\');" id="image'+l+'_big" />';
		} else {
			h += '<td>';
			h += '<a href="#" onclick="this.blur(); clickImage('+l+'); return false;">';
			h += '<img src="/assets/images/120/'+data[l].filename.replace(/.jpg/g, ".gif")+'" width="120" height="164" style="margin-right: 5px"';
			h += ' id="image'+l+'_small" /></a></a><img src="/assets/images/370/'+data[l].filename;

			h += '" id="image'+l+'_big" width="370" height="506" style="display: none; margin-right: 5px" style="display: none" />';	
			h += '<br/>';
		}
		h += '<br/>';
		if (data[l].sold==1) {
			h += '<img src="/assets/images/sold.png" width="5" height="5" /> ';		
		}
		h += '</td>';
	}
	
	h += '<td><a href="#" onclick="closeAll(); return false"><img src="/assets/images/close.png" width="15" height="15" /></a></td>';
	h += '</tr></table>';	
	h += '</div>';
	
	$('#veil').fadeIn('fast');
	$('#overlay').html(h).fadeIn('slow');
	return false;

}

function showSingle(data) {	
	currentItem = data.number;
	currentData = [data];
	currentImage = 0;
	
	citem = data.number;
	setHash();
		
	var paddedNumber = zeroPad(data.number,3);
	var h = '';
	h += '<div class="logo"><img src="/assets/images/logo2.png" /></div>';		
		
	if (data.sold===true) {
		h += '<ul class="subnav">';
		h += '<li><a href="#" onclick="this.blur(); return false" id="price">No. '+paddedNumber+': SOLD</a></li>';
		h += '<li id="add_li"><a href="#" onclick="this.blur(); return false" style="text-decoration: line-through; color: #666">Add to cart</a></li>';
		h += '<li><a href="#" onclick="this.blur(); showNext(); return false">Next</a></li>';
		h += '<li><a href="#" onclick="this.blur(); showPrevious(); return false">Previous</a></li>';
		h += '</ul>';			
	} else {
		h += '<ul class="subnav">';
		h += '<li><a href="#" onclick="this.blur(); return false" id="price">No. '+paddedNumber+': $'+price+'</a></li>';
		
		if ((data.cart===true&&!removedFromCart[data.filename])||addedToCart[data.filename]) {
			h += '<li id="add_li"><a href="#" onclick="this.blur(); removeFromCart(); return false">Remove from cart</a></li>';
		} else {
			h += '<li id="add_li"><a href="#" onclick="this.blur(); addToCart(); return false">Add to cart</a></li>';
		}

		h += '<li><a href="#" onclick="this.blur(); showNext(); return false">Next</a></li>';
		h += '<li><a href="#" onclick="this.blur(); showPrevious(); return false">Previous</a></li>';
		h += '</ul>';			
	}
	
	h += '<div class="wrapper">';
	h += '<img src="/assets/images/370/'+data.filename+'" width="370" height="506" style="display: none" onload="$(this).fadeIn(\'slow\');" />';
	h += '<br/>';			
	if (data.sold===true) {
		h += '<img src="/assets/images/sold.png" width="5" height="5" /> ';
	}
	h += '</div>';
	h += '<div class="close">';
	h += '<a href="#" onclick="closeAll(); return false"><img src="/assets/images/close.png" width="15" height="15" /></a>';
	h += '</div>';
	
	$('#veil').fadeIn('fast');
	$('#overlay').html(h).fadeIn('slow');
	return false;

}

function loadContent() {
	$('#art').html('');
	$('#preloader').show();
	$("#art").load("/ajax/get/"+section+'/'+view+'/'+page+'/0', {}, function() {	
		$('#preloader').hide();
		setView();
		
		if (citem !== 0) {		
			$('#veil').show();
			var citemTemp = citem;
			while ($('#item'+citemTemp).length===0) {
				citemTemp--;
			}			
			$('#item'+citemTemp).get(0).onclick();
		}


	});
}

function showCart() {
	$('#art').hide();
	$('div.text').hide();
	$('#cart_text').html('<strong>Cart</strong>').show();
	$('body').addClass('text');
	$('.simpleCart_items').show();
}

function showSectionImage(parent_text, num) {

	var parent_pics = $('#'+parent_text+'_text a');
	
	$('#veil').fadeIn('fast');
	
	var h = '';
	h += '<div class="logo"><img src="/assets/images/logo2.png" /></div>';		
		
	h += '<ul class="subnav">';

	if (num<parent_pics.length) {
		h += '<li><a href="#" onclick="this.blur(); showSectionImage(\''+parent_text+'\', '+(parseInt(num, 10)+1)+'); return false">Next</a></li>';
	} else {		
		h += '<li><a href="#" onclick="this.blur(); return false" style="text-decoration: line-through; color: #666">Next</a></li>';
	}

	if (num>1) {
		h += '<li><a href="#" onclick="this.blur(); showSectionImage(\''+parent_text+'\', '+(num-1)+'); return false">Previous</a></li>';
	} else {		
		h += '<li><a href="#" onclick="this.blur(); return false" style="text-decoration: line-through; color: #666">Previous</a></li>';
	}

	h += '</ul>';			
		
	h += '<div class="wrapper"><table cellspacing="0" cellpadding="0"><tr valign="top">';			
	h += '<td><img src="/assets/images/photos_lrg/'+parent_text+'_'+num+'.jpg" style="display: none; margin-right: 5px" onload="$(this).fadeIn(\'slow\');" /></td>';
	h += '<td><a href="#" onclick="closeAll(); return false"><img src="/assets/images/close.png" width="15" height="15" /></a></td>';
	h += '</div>';

	$('#overlay').html(h).fadeIn('slow');
	
	return false;
}

$(document).ready(function() {
	readHash();	
	loadContent();

	createCart();
		
	$('.value').click(function() {
		this.blur();
		if (currentDrop) {
			$(currentDrop).parent().removeClass('active');	
		}
			
		if (currentDrop == this) {
			currentDrop = false;		
			return false; 
		} else {
			currentDrop = this;
	
			$(this).parent().addClass('active');
			return false; 
		}
	});
	
	$('#buy_value').click(function() {
		showCart();
	});
	
	$('.dd a').click(function() {
		this.blur();
		
		var aText = $(this).html();
		var aValue = this.title;

		var p = $(this).parent().parent().get(0).id.split('_dd')[0];
		$('#'+p+'_value').html(aText).parent().removeClass('active');
		
		if (p=='section') {
			section = aValue;
			setSection();
		}
		
		if (p=='view') {
			section = 'the_works';
			setSection();

			view = aValue;
			setView();
		}
				
		if (p=='page') {
			section = 'the_works';
			setSection();

			page = aValue;
			loadContent();
		}
		
		$(this).parent().parent().find('a').removeClass('active');		
		$(this).addClass('active');
		setHash();
		
		currentDrop = false;
		
		return false;
	});
	
	$('.image_bar ul li a').click(function() {
		var parent_text = $(this).parent().parent().parent().parent().get(0).id.replace(/_text/g, '');
		var num = this.href.replace(/.jpg/g, '').split('/');
		showSectionImage(parent_text, num[num.length-1].substr(parent_text.length+1));		
		return false;
	});
});