function blog() {
	
}

function funStuff() {
	
		
}

function news() {
	var message = MessageBox.getEmptyMessage('600px', '550px');
	new MessageBox({title: 'News', message: message, buttons: MessageBox.CLOSE});
	message.load({url: 'index.php?module=admin&action=news&request=listNews', onloaded: startMCE});
}


function startMCE() {
	tinyMCE.init({
		// General options
		mode : "textareas",
		theme : "advanced",
		plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups",

		// Theme options
		theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,bullet",
		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,|,preview",
		theme_advanced_buttons3 : "spellchecker,hr,image,removeformat,|,charmap,iespell,advhr",
		theme_advanced_buttons4 : "spellchecker,|,del,ins,",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_statusbar_location : "bottom",
		theme_advanced_resizing : false,
		theme_advanced_disable : "strikethrough, cleanup, outdent, indent,remove",
		//spellchecker_languages : "+English=en",

		onchange_callback: 'mceChange',
		// Example word content CSS (should be your site CSS) this one removes paragraph margins
		//content_css : 'http://hughes-castell.com/editable/httpdocs/css/mce.css',
		document_base_url: document.getElementsByTagName('head')[0].getElementsByTagName('base')[0].href,

		// Drop lists for link/image/media/template dialogs
		template_external_list_url : "lists/template_list.js",
		external_link_list_url : "lists/link_list.js",
		external_image_list_url : "lists/image_list.js",
		media_external_list_url : "lists/media_list.js"

	});
}


function saveNews() {
	//populate textarea from mce:
	$('#newsform textarea').value = tinyMCE.activeEditor.save();
	new Ajax({
			url: 'index.php?module=admin&action=news&request=save', 
			params: $('#newsform'), 
			method: 'POST',
			callback: function() {
				alert('Saved');
			//	window.location.reload();
			}
		});
}


function getNews(id) {

	new Ajax({
		url: 'index.php?module=admin&action=news&request=getNews/' + id,
		resultMode: Ajax.RESULT_OBJECT,
		callback: function(result) {
			
			window.____DEBUG = result;
			//alert(result.id);
			for (var key in result) {
				if ($('#newsform')['news[' + key + ']']) $('#newsform')['news[' + key + ']'].value = result[key];
			}
			
			//tiny mce is special case
			tinyMCE.activeEditor.execCommand('mceSetContent',false,result.content);
			
		}
	});
	
}


function galleryCategories() {	
	var message = MessageBox.getEmptyMessage('400px', '400px');	
	message.id = 'gallerycategories';
	
	new MessageBox({title: 'Image Galleries', message: message, buttons: MessageBox.CLOSE})
	
	message.load({url: 'index.php?module=admin&action=images&request=getCategories'});
}


function saveGalleryCategory() {
	new Ajax({url: 'index.php?module=admin&action=images&request=saveCategory', 
			  params: $('#galleryform'),
			  callback: function() { alert('Save');
			  	$('#gallerycategories').load({url: 'index.php?module=admin&action=images&request=getCategories'});
			  }
	});
}

function deleteCategory(id) {
	if (confirm('Warning: Removing this category will make any images assigned to it inaccessible. Proceed?')) {
		new Ajax({url: 'index.php?module=admin&action=images&request=removeCategory/' + id, callback: function() { $('#gallerycategories').load({url: 'index.php?module=admin&action=images&request=getCategories'});}});
	}
}

function deleteNews(id) {
	if (confirm('Remove this news item?')) {
		new Ajax({url: 'index.php?module=admin&action=news&request=remove/' + id, callback: function() { $('.boxmessage').load({url: 'index.php?module=admin&action=news&request=listNews', onloaded: startMCE});}});
	}	
}

function uploadImages() {
	var message = MessageBox.getEmptyMessage('400px', '400px');	
	message.id = 'galleryimages';
	new MessageBox({title: 'Upload Images', message: message, buttons: MessageBox.CLOSE});	
	message.load({url: 'index.php?module=admin&action=images&request=uploadImageForm/'});
}


function uploadComplete() {
}


function uploadImage() {
	new Ajax({
		//url: 'admin/images/saveImage/',
		url: 'index.php?module=admin&action=images&request=saveImage',
		params: $('#imageuploadform'),
		callback: function() {
			alert('Image uploaded!');
			$('#galleryimages').load({url: 'index.php?module=admin&action=images&request=uploadImageForm/'});
		}
	});
}

function getDocHeight() {
    var D = document;
    return Math.max(
        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
    );
}

function showImg(img) {

	
	
	var newImg = img.cloneNode(true);
	
	
	if ($('.selected')) $('.selected').removeClass('selected');
	$(img).addClass('selected');
	
	var container = new $e('div');
	container.id = 'fader';

	var pageHeight = getDocHeight();
	
	container.style.height = pageHeight + 'px';
	container.style.left = 0;
	container.style.top = 0;
	container.style.backgroundColor = '#dddddd';
	$(container).setOpacity(0.5);
	container.style.position = 'absolute';
	container.style.width = '100%';
	document.body.appendChild(container);
	
	var timer = 0;
	var pos = $(img).position();

	if ($('#currentgalleryimage')) $('#currentgalleryimage').remove();
	
	newImg.style.position = 'absolute';
	newImg.style.top = pos.top + 'px';
	newImg.style.left = pos.left + 'px';
	newImg.style.width = pos.width + 'px';
	newImg.style.cursor = 'pointer';
	newImg.id = 'currentgalleryimage';
	
	var loadImg = new Image();
	loadImg.src = img.src.replace('thumbs/', '');
	loadImg.style.display = 'none';
	document.body.appendChild(loadImg);
	
	loadImg.onload = function() {
		newImg.src=loadImg.src;
	}
		
	$(newImg).onclick = function() {
		clearTimeout(timer);
		$('#fader').remove();
		$('#imgnext').remove();
		$('#imgprev').remove();
		this.parentNode.removeChild(this);
	}

	
	document.body.appendChild(newImg);
	
	var x = $('#content').position().left + 20;
	
	
	var y = $('#content').position().top + 20 + document.documentElement.scrollTop;
	
	//if (y > )
	
	var anchor = function() {
		var pos = $(newImg).position()
		var angle = Math.atan2(y-pos.top, x-pos.left);
		var vecx = Math.floor(Math.cos(angle)*4);
		var vecy = Math.floor(Math.sin(angle)*10);

		//should be able to use pos.x and pos.y here but borders, margins and paddings make it slightly off so better to add to the actual px value.

		var scaleDone = false;
		var plusX = 0;
		var plusY = 0;
		if (pos.width < 800) {
			newImg.style.width = pos.width + 12 + 'px';
			plusX = 1;
			plusY = 1;
		}
		else scaleDone = true;
				
		var newLeft = parseInt(newImg.style.left.split('px')[0]) + (vecx * 2.1);
		var newTop = parseInt(newImg.style.top.split('px')[0]) + (vecy * 0.2 );
		
		//If it's reached the anchor point...
		if (newLeft > x-7 && newLeft < x+7) {
			var moveDone = true;		
		}
		else {
			var moveDone = false;
			newImg.style.left = newLeft + 'px';
			newImg.style.top = newTop + 'px';
		}
		
		if (moveDone && scaleDone) {
			clearTimeout(timer);
			
			//And show the next/prev buttons
			
			var next = new $e('img');
			next.id = 'imgnext';
			
			var prev = new $e('img');
			prev.id = 'imgprev';
			next.src = 'img/forward.png';
			next.style.position = 'absolute';
			next.style.cursor = 'pointer';
			
			$(next).addEvent('mouseover', function() {
				this.setOpacity(0.5);
			});
			
			$(next).addEvent('mouseout', function() {
				this.setOpacity(1);
			});
			
			
			$(next).addEvent('click', function() {
				//alert($('.selected').nextSibling);
				var el = $('.selected').nextSibling;
				
				while (el && (!el.tagName || el.tagName.toLowerCase() != 'img')) {
					el = el.nextSibling;
				}
				
				if (!el) {
					this.style.display = 'none';
					return;
				}
				
				if ($('.selected')) $('.selected').removeClass('selected');
				$(el).addClass('selected');
				
				newImg.src = el.src.replace('thumbs/', '');
				
				prev.style.display = 'block';				
			});
			
			next.style.top = ($(newImg).position().top + 250) + 'px';
			next.style.left = $(newImg).position().right + 10 + 'px';
			document.body.appendChild(next);
		
			
			
			prev.style.position = 'absolute';
			prev.src = 'img/back.png';
			prev.style.cursor = 'pointer';
			prev.style.top = ($(newImg).position().top + 250) + 'px';
			prev.style.left = $(newImg).position().left - 80 + 'px';
		
			
			$(prev).addEvent('mouseover', function() {
				this.setOpacity(0.5);
			});
			
			$(prev).addEvent('mouseout', function() {
				this.setOpacity(1);
			});
			
			$(prev).addEvent('click', function() {
				//alert($('.selected').nextSibling);
				var el = $('.selected').previousSibling;
				
				while (el && (!el.tagName || el.tagName.toLowerCase() != 'img')) {
					el = el.previousSibling;
				}
				
				if (!el) {
					this.style.display = 'none';
					return;
				}
				
				if ($('.selected')) $('.selected').removeClass('selected');
				$(el).addClass('selected');
				
				newImg.src = el.src.replace('thumbs/', '');
				
				next.style.display = 'block';				
			});
			
			
			document.body.appendChild(prev);			
		}
	}
	
	
	timer = setInterval(function() {
		anchor();
	}, 5);
	

}



function races() {
	var message = MessageBox.getEmptyMessage('400px', '200px');	
	message.id = 'manageraces';
	
	new MessageBox({title: 'Manage Races', message: message, buttons: MessageBox.CLOSE})
	
	
	message.load({url: 'index.php?module=admin&action=races&request=getRaces/'});	
}

function saveRace(form) {
	if (validateDate($(form).$('input').item(1).value)) {
		
		new Ajax({
			url: 'index.php?module=admin&action=races&request=save',
			params: form,
			callback: function() {
				alert('Saved');
			}
		});
		
	}
	else alert('Invalid date');
	
}


function validateDate(date) {
	var parts = date.split('/');	
	if (parts.length != 3) return false;	
	var date = new Date(parts[2], parts[1]-1, parts[0]);	
	if (parts[2] == date.getFullYear() && parts[1] == (date.getMonth() + 1) && parts[0] == date.getDate()) return true;
	else return false;		
}


function selectRace(id, form) {
	if (id == '') {
		$(form).$('input[type="text"]').apply(function() { this.value = '';});
	}
	else {
		new Ajax({url: 'index.php?module=admin&action=races&request=getRace/' + id,
				  callback: function(result) {
						for (var r in result) {
							if (r == 'date') {
								var parts = result[r].split(' ')[0].split('-');								
								$(form).$('input[name="race[' + r + ']"]').value = parts[2] + '/' + parts[1] + '/' + parts[0];
							}
							else $(form).$('input[name="race[' + r + ']"]').value = result[r];
						}
					}
		});
	}
		
}

function removeRace(form) {

	if (confirm('Remove this race?')) {
		new Ajax({url: 'index.php?module=admin&action=races&request=remove/' + $(form).$('select').value,
				callback: function() { alert('Race removed'); $('#manageraces').load({url: 'index.php?module=admin&action=races&request=getRaces/'}); }
		});
	}
}

