
Event.observe(window,"load", function() {
	//click to clear functionality
	$$('input.clearOnClick').each(function(element) {
		new ClearOnClick(element);
	});
});

var ClearOnClick = Class.create();

Object.extend(ClearOnClick.prototype, {
	initialize: function(element) {
		this.element = $(element);
		this.originalValue = $F(element);
		this.element.observe("blur", this.onBlur.bind(this));
		this.element.observe("focus", this.onFocus.bind(this));
	},
	onFocus: function(event) {
		if($F(this.element) == this.originalValue) {
			this.element.value = "";
			this.element.removeClassName("clearOnClick");
		}
	},
	onBlur: function(event) {
		if($F(this.element).match(/^\s*$/)) {
			this.element.value = this.originalValue;
			this.element.addClassName("clearOnClick");
		}
	}
});

// DISCUSS ====================================================

function rateComment(form_id, div_id)
{

	  new Ajax.Request('/rate', {
  		method: 'post',
		parameters: $(form_id).serialize(),
 		onSuccess: function(transport) {
  			$(div_id).innerHTML = transport.responseText;
  		}
	});

	//alert(form_id + " " + div_id);
}


function addNewCommentForm(list_id, comment_id)
{
	alert(list_id + ' ' + comment_id);
}

// EDIT ==================================================
var autocompleteOpen = false;

function evalScript(scripts)
{	try
	{	if(scripts != '')
		{	var script = "";
			scripts = scripts.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
	       	                         if (scripts !== null) script += arguments[1] + '\n';
 	        	                        return '';});
			if(script) (window.execScript) ? window.execScript(script) : window.setTimeout(script, 0);
		}
		return false;
	}
	catch(e)
	{	alert(e)
	}
}

function enterPressed(completer, e){

	if(completer.active == false) {
		var keycode = false;
		if(window.event) {
			keycode = window.event.keyCode;
		} else if(e) {
			keycode = e.which;
		}

		return (keycode == 13);
	}
	else {
		return false;
	}
}

function appendNewListItem(listName, itemText)
{
	var li = document.createElement("li");
	var liText = document.createTextNode(itemText);

	var i = itemText.indexOf('|');
	var id = itemText.substring(0,i);

	if(id == 0) {
		alert("That entry already exists on your list.");
	} else if(id == 'x') {
		// do nothing
	} else {
		var txt = itemText.substring(i+1, itemText.length-1);

		li.id = 'entry_' + id;
		li.innerHTML = txt;
		$(listName).appendChild(li);

		Sortable.create('demolist', {handle:'dragBar', onUpdate:function(sortable) {new Ajax.Request('/demolists/entryorder', {asynchronous:true, evalScripts:true, onSuccess:updateRanks, method:'post', parameters:Sortable.serialize('demolist')})}});

		if(navigator.appName == "Microsoft Internet Explorer" || WebKitDetect.isWebKit())
			evalScript(txt);
	}
	updateRanks();
}

function clearText(field){
	if (field.defaultValue == field.value) field.value = '';
	else if (field.value == '') field.value = field.defaultValue;
}

function doaddentry(form, remove_caller, field)
{
	autocompleteOpen = false;
  	new Ajax.Request('/demolists/addentry', {
  		method: 'post',
		parameters: form.serialize(),
 		onSuccess: function(transport) {
  			appendNewListItem('demolist', transport.responseText);
  		}
	});

	if(remove_caller == true)
	{
		form.hide();
	}

	if($('noEntries') != null)
	{
		$('noEntries').hide();
	}
	if(field != null) {
		field.value = '';
	}
}

function doremoveentry(formName, id, list_id)
{
  	new Ajax.Request('/demolists/removeentry', {
  		method: 'post',
		parameters: $(formName).serialize(),
 		onSuccess: function(transport) {
  			removeListItem('demolist', id);
  		}
	});
}

function removeListItem(listName, id)
{
	$(listName).removeChild($('entry_' + id));
	updateRanks();
}


function updateRanks() {
	var rank = 1;
	$$('div.entryRank').each(function(element) {
		element.innerHTML = rank + ".";
		rank++;
	});
}