Object.extend(Element, {
	getBehaviourProperty: function(element, attribute) {
		if(element.getAttribute('properties'))
			var properties = element.getAttribute('properties').split(", ");
		else
			return false;
		var result = properties.detect(function(item) {return item.indexOf(attribute) == 0;});
		if(result)
				return result = result.split(attribute + ":")[1];
		else
				return false;
	},
	addBehaviourProperty: function(element, attribute, value) {
		var properties = element.getAttribute('properties');
		if(properties)
			element.setAttribute("properties", properties + ", " + attribute + ":" + value);
		else
			element.setAttribute("properties", attribute + ":" + value);
	}
});

var Behaviour = Class.create();
Behaviour.prototype = {
  initialize: function(selector, observers) {
		$$(selector).each(function(el){
				observers.each(function(observer){
				var event = observer[0], handler = observer[1];
					if(event == 'load')
						handler(el);
					else
						Event.observe(el, event, handler, false);	
				});
		});
  }
}

function debug(aMsg) {
   setTimeout(function() { throw new Error("[debug] " + aMsg); }, 0);
}

function init(){
  loadBehaviours.each(function(el){
  	eval(el);
  });
}

var loadBehaviours = [];

function newWindow(e){
	var title = Element.getBehaviourProperty(e,'linkTitle');
	e.target = "new";
	e.title = title ? title : "This link opens in a new window";
}

loadBehaviours[loadBehaviours.length] = "new Behaviour('A.new-window', [['load',newWindow]])";
function cantload() 
{
	img = document.getElementById("clustrMapsImg");
	img.onerror = null;
	img.src = "http://clustrmaps.com/images/clustrmaps-back-soon.jpg";
	document.getElementById("clustrMapsLink").href = "http://clustrmaps.com";
}

function toggleCommentForm()
{
	var formBlock = $('comment-form');
	var formButton = $('comment-button');
	if(formBlock.style.display == "block")
	{
		formBlock.style.display = "none";
		formButton.style.display = "block";
	}
	else
	{
		formBlock.style.display = "block";
		formButton.style.display = "none";
	}
}

function toggleAlert()
{
	var alertText = $('alertText');
	var alertButton = $('alertButton');
	if(alertText.style.display == "block")
	{
		alertText.style.display = "none";
		alertButton.style.display = "block";
	}
	else
	{
		alertText.style.display = "block";
		alertButton.style.display = "none";
	}
}

function toggleReplyForm(commentId)
{
	var replyForm = $('replyForm' + commentId);
	if(replyForm.style.display == "block")
	{
		replyForm.style.display = "none";
	}
	else
	{
		replyForm.style.display = "block";
	}
}

function confirmDelete(url)
{
	if(confirm("Are you sure you want to delete this comment?"))
		window.location.href = url;
}

