// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function createDialogBox() {
	if(!$('DialogBox')) {
		new Insertion.Bottom(document.body,'<div id="DialogShade"> </div><div id="DialogBox"><div id="DialogContents">Loading...</div></div>');
	}
	$('DialogShade').show();
	$('DialogBox').show();
}

function loadDialogBox(url) {
	createDialogBox();
	new Ajax.Updater('DialogContents',url,{
		asynchronous: true,
		evalScripts: true,
		method: 'get'
	});
	return false;
}

function destroyDialogBox() {
	new Effect.Parallel(
		[ new Effect.Fade('DialogShade',{duration:0.5}), new Effect.Fade('DialogBox',{duration:0.5})], {
			afterFinish:function(){
				['DialogShade','DialogBox'].each(Element.remove);
			}
		}
	);
}


function cI(id,src){ $(id).src = '/images/icons/' + src; }

function smartToggle(link,id) {
	if(link.hasClassName('on')){
		link.removeClassName('on');
		$(id).hide();
	}
	else {
		link.addClassName('on');
		$(id).show();
	}
	link.blur();
}

function updateTags(link) {
	link.blur();

	if(link.hasClassName('on')){
		Element.removeClassName(link,'on');
	}
	else {
		Element.addClassName(link,'on');
	}
	
	tags_list = new Array();
	
	$$('#TagsBar .on').each(function(elem){
		tags_list.push(elem.innerHTML);
	});
	
	$('tags').value = tags_list.join(" ");	
}

function fixTagName(name){
	if(/ /.test(name)){
		name = "'" + name + "'";
	}
	return name;
}

function addNewTag() {
	if(name = fixTagName($F('new_tag_name'))){
		name = $F('new_tag_name');
		
		$('ticket_tag_list').value += " " + name;
		//link.addClassName('on');
		
		new_tag = ' <li> <a class="on" href="javascript:void%200" onclick="addTag(this,\''+ name +'\')">'+name+'</a> </li> '

		new Insertion.Bottom('ticket_tags',new_tag);

		$('new_tag_name').value = "";
		$('add_tag_button').blur();
	}
	
	closeTagForm();
}

function closeTagForm(){
	$('addTagForm').hide();
	$('addTagLink').show();
	clearInterval($('new_tag_name').observator);
}

function addTag(link,name){
	name = fixTagName(name);
	
	if(link.hasClassName('on')){
		tag_list = $F('ticket_tag_list');
		revised = tag_list.replace(name,"");
		revised = revised.replace(/ {2,}/," ");
		revised = revised.replace(/^ /,"");
		$('ticket_tag_list').value = revised;
		link.removeClassName('on');
	}
	else {
		$('ticket_tag_list').value += " " + name;
		link.addClassName('on');
	}
	
	link.blur();
}

function openTagForm(link){
	link.hide();
	$('addTagForm').show();
	$('new_tag_name').focus();
	$('new_tag_name').observator = setInterval((function(){
		if($F('new_tag_name').search(/^[a-z]+ +/)){
			//alert('Includes space');
			//closeTagForm();
			//addNewTag();
		}
	}).bind($('new_tag_name')),3000);
}