try {
	window.loadFirebugConsole();
} catch(e) {};

function debug(msg) {
	try {
		console.log(msg);
	} catch(e) {};
}

function parseQuery(loc,key) {
	var qq = new Array();
	if (loc == null) loc = document.location.href;
	if (key == null) key = '?';
	if (loc.indexOf(key) > -1) {
		query = loc.substring(loc.indexOf(key)+key.length,loc.length);
		args = query.split('\&');
		for (i=0; i<args.length; i++) {
			chunk = args[i];
			qq[chunk.split('=')[0]] = unescape(chunk.split('=')[1]);
		}
	}
	return qq;
}

function showMP3player(file,div,options) {
	if (! (div && file)) return false;
	var o = {
		usefullscreen: 'false',
		autostart: 'true',
		autoscroll: 'false',
		shuffle: 'false',
		repeat: 'list',
		backcolor: '0xffffff',
		frontcolor: '0x333333',
		lightcolor: '0x444444',
		screencolor: '0x000000',
		displaywidth: '0',
		width: '280',
		height: '20',
		showicons: 'true',
		thumbsinplaylist: 'false',
		callback: 'urchin'
	}
	
	if (options) {
		for (prop in options) {
			o[prop] = options[prop];
		}
	}
	
	var mp3obj = new SWFObject(themedirectory+'/flash/mediaplayer.swf','mpl',o.width,o.height,'7');
	mp3obj.addParam('allowfullscreen','true');

	for (prop in o) {
		mp3obj.addVariable(prop,o[prop])
	}

	mp3obj.addVariable('file',file);
	mp3obj.write(div);
}

function setupMP3players() {
	$('a.mp3player,a.mp3playerlink').each(function(i) {
		var $this = $(this);
		var theID = "mp3player"+i;
		var mp3url = $this.attr('href');
		var vars = $this.attr('rel');

		$this.attr({id:theID,onclick:'return false'});

		var options = {};
		if (vars) {
			var chunks = vars.split(';');
			for (var c=0; c<chunks.length; c++) {
				var chunk = chunks[c].split(':');
				options[chunk[0]] = chunk[1];
			}
		}
		
		if (options['numtracks']) {
			// magic formula to calculate height of player based on number of tracks
			// trackheight is 23 -- controller height is 19
			options['height'] = (options['numtracks'] * 23) + 19;
		}

		if (this.className.match(/mp3playerlink/)) {
			$this.click(function() {
				this.className = "mp3playerembed";
				$(this).unbind('click');
				showMP3player(mp3url,theID,options);
				this.blur();
				return false;
			});
		} else {
			this.className = "mp3playerembed";
			if (! options.autostart) options.autostart = 'false';
			showMP3player(mp3url,theID,options);
		}
	});
}

function setupMP3links() {
	var thetitle = "Alt-click to download the MP3";
	if (navigator.platform.indexOf('Mac') != -1) thetitle = "Option-click to download the MP3";
	$('a.mp3download').attr('title',thetitle);
}

function setupTodoLists() {
	$('ul.todolist li').not('.checked').prepend('<input type="checkbox"> ');
	$('ul.todolist li.checked').prepend('<input type="checkbox" checked="checked"> ');
	//$('ul.todolist li input').click(function() { return false; });
}


function setupFancyZoom() {
	if ($('div.gallery').size() || $('a.zoom').size()) {
		$('div.gallery').each(function() {
			var h = this.innerHTML;
			h = h.replace(/<br ?\/?>/g,'');
			h = h.replace(/<\/?p>/g,'');
			this.innerHTML = h;
			//alert(h);
			$(this).after('<div class="clearleft"></div>');
			
			// set clear:left on each third thumbnail
			var ww = 0;
			$('a',this).each(function(i) {
				//if (i % 3 == 0) { // old way

				ww += this.offsetWidth + 10;
				if (ww > 550) {
					ww = this.offsetWidth + 10;
					//$(this).css('clear','left');
				}
			});
		});

		setupZoom();
	}
}

function setupScrollingCart() {
	if ($('#shoppingcart').size()) {
		 $(window).scroll(scrollCart);
	}
}

function scrollCart(e) {
	var carttop = getViewportScrollY() + 20;	
	$('#shoppingcart').css({top:carttop+'px'});
}

function getViewportScrollY() {
	var scrollY = 0;
	if (document.documentElement && document.documentElement.scrollTop) {
		scrollY = document.documentElement.scrollTop;
	} else if (document.body && document.body.scrollTop) {
		scrollY = document.body.scrollTop;
	} else if (window.pageYOffset) {
		scrollY = window.pageYOffset;
	} else if (window.scrollY) {
		scrollY = window.scrollY;
	}
	return scrollY;
}

function setupImageSet() {
	$('.imgset').each(function() {
		var set = this;
		set.intervaltime = parseInt($(set).attr("rel")) || 5000;
		set.currentimage = 0;
		set.numimages = $(set).children().size();
		//debug(set.numimages);
		
		set.swap = function() {
			$(set).children().hide().each(function(i) {
				if (i == set.currentimage) $(this).show();
			});
			set.currentimage++;
			if (set.currentimage >= set.numimages) set.currentimage = 0;
		}
		set.interval = setInterval(set.swap,set.intervaltime);
		set.swap();
	});
}

function setupHiddenEditLinks() {
	$('div.hiddeneditlink').click(showHiddenEditLink).each(function() {
		this.clickCount = 0;
	});
}

function showHiddenEditLink() {
	this.clickCount++;
	if (this.clickCount == 3) {
		$('a',this).show();
	}
}


function checkForQueryActions() {
	var qq = parseQuery(null,'#');
	if (qq['action']) {
		if (typeof Actions[qq['action']] == "function") {
			Actions[qq['action']]();
		}
	}
	
	// URI based actions
	if (document.location.href.match(/\/store\/mp3downloads\//)) {
		Actions['selectMP3downloads']();
	}
}

var Actions = {
	'selectbalthropmailinglist': function() {
		$('input:hidden').each(function() {
			if (this.value.match(/Balthrop/)) {
				$(this).parents('li.list').children('input:checkbox').attr('checked','checked');
			}
		});
	},
	
	'selectcaithlinmailinglist': function() {
		$('input:hidden').each(function() {
			if (this.value.match(/Caithlin/)) {
				$(this).parents('li.list').children('input:checkbox').attr('checked','checked');
			}
		});
	},
	
	'selectMP3downloads': function() {
		$('select.variation_select').each(function() {
			for (var i=0; i<this.options.length; i++) {
				var opt = this.options[i];
				if (opt.text.match(/MP3/)) this.selectedIndex = i;
			}
		});
	}
}

function docReady() {
	setupMP3players(); // WIP
	setupMP3links();
	setupScrollingCart();
	setupImageSet();
	checkForQueryActions();
	setupTodoLists();
	setupHiddenEditLinks();
}

function docLoaded() {
	setupFancyZoom();
}


$(document).ready(docReady);

window.onload = docLoaded;