// JavaScript Document
function hasNumber(t)
{
return /\d/.test(t);
}


function editTagText(listId, tagId, type){
	var isItem = hasNumber(tagId);
	var textLimit = 75;
	
	var saveLinkText='Note';
	if(tagId=='title') saveLinkText = 'Title';
	
	;
	
	//text object to edit
	var obj = document.getElementById(tagId+listId);
	var myText = obj.innerHTML;
	
	//escape($F(obj.innerHTML));
	//alert(obj.innerHTML);
	//escapedText = escape(obj.innerHTML);
	//alert(obj+'= '+tagId+listId);
	
	//hide our text object
	obj.innerHTML = "";
	Element.hide(obj);
	
	//edit links
	var editlinks = document.getElementById('edit'+tagId+listId);

	//hide the edit links
	Element.hide(editlinks);
	
	var objID = tagId+listId;
	
	//set up our editable text link
	//var textarea = '<span id="'+objID+'_editor"><textarea id="'+objID+'_edit" name="'+objID+'" rows="10" cols="70" onKeyUp="javascript:limitText(\''+objID+'\',\''+textLimit+'\');">'+obj.innerHTML+'</textarea></span>';
	//onKeyUp="javascript:limitText(\''+objID+'\',\''+textLimit+'\');"
	if(isItem)
		var textarea = '<span id="'+objID+'_editor"><textarea id="'+objID+'_edit" name="'+objID+'" rows="3" cols="30" size="'+textLimit+'" maxlength="'+textLimit+'" onKeyUp="javascript:limitText(\''+objID+'_edit\',\''+textLimit+'\');">'+myText+'</textarea></span>';
	else
		//var textarea = '<span id="'+objID+'_editor"><input type="text" id="'+objID+'_edit" name="'+objID+'" value=\''+obj.innerHTML+'\' size="'+textLimit+'" maxlength="'+textLimit+'"></span>';
		var textarea = '<span id="'+objID+'_editor"><input type="text" id="'+objID+'_edit" name="'+objID+'" size="'+textLimit+'" maxlength="'+textLimit+'"></input></span>';
	//alert(textarea);
	//set up the save and cancel links
	var saveLinks	 = '<span id="'+objID+'_savecancel" width="150"><a href="javascript:;" id="'+objID+'_cancel" class="home_snapp_links_small">Cancel</a> | <a href="javascript:;" id="'+objID+'_save" class="home_snapp_links_small">Save '+saveLinkText+'</a></span>';

	//add editable text
	new Insertion.After(obj, textarea);
	//alert($F(objID+'_editor').innerHTML+'test');
	$(objID+'_edit').value = myText;
	//alert($(objID+'_edit').value);// = 'testasdf';
	
	
	
	//add save and cancel buttons
	new Insertion.After(editlinks, saveLinks);	
	
	//watch for a click on the save link
	Event.observe(objID+'_save', 'click', function(){
												   saveChanges(objID, editlinks, tagId, listId, type);
												   }, false);
	//watch for a click on the cancel link
	Event.observe(objID+'_cancel', 'click', function(){cleanUp(objID, '', editlinks); obj.innerHTML = myText;}, false);
}

/*
function checkKey(e,obj,category,pagenum, listnum) {
	var KeyID = (window.event) ? event.keyCode : e.keyCode;
	if(KeyID==13)
   		ajax_submit(obj, category, pagenum, listnum)
}
*/
//function saveChanges(obj, editlinks, userid, field, listid){
function saveChanges(obj, editlinks, field, listid, type){
	

	var new_content=$F(obj+'_edit')
	//var new_content	=  escape($F(obj+'_edit'));
	/*
	if(num) {
		thisCommentEdit=document.getElementById('commentStatus'+num);
		thisCommentButton=document.getElementById('commentButton'+num);

		if(new_content =='') {
			thisCommentEdit.innerHTML	= "<br>";
			thisCommentButton.innerHTML	= "Add a Note";
		} else {
			
			thisCommentEdit.innerHTML	= user+" says:";
			thisCommentButton.innerHTML	= "Edit Note";
		}
	}
	*/
	
	$(obj).innerHTML	= "Saving...";
	
	cleanUp(obj, true, editlinks);

	var success	= function(t){editComplete(t, obj);}
	var failure	= function(t){editFailed(t, obj);}

  	var url = '_ajaxtextUpdate.php';
	var pars = 'text='+new_content+'&id='+listid+'&field='+field+'&type='+type;
	var myAjax = new Ajax.Request(url, {method:'post', postBody:pars, onSuccess:success, onFailure:failure});

}


function editComplete(t, obj){
	$(obj).innerHTML = t.responseText;
	showAsEditable(obj, true);
}

function editFailed(t, obj){
	alert('Sorry, the update failed. Please try again later.');
	//$(obj).innerHTML	= 'Sorry, the update failed.';
	cleanUp(obj);
}

function cleanUp(obj, keepEditable, editlinks){

	//remove save and cancel buttons
	Element.remove(obj+'_savecancel');
	//remove textarea
	Element.remove(obj+'_editor');

	//show text field
	Element.show(obj);
	//show edit links
	Element.show(editlinks);
	
	if (!keepEditable) showAsEditable(obj, true);
}

function showAsEditable(obj, clear){
	if (!clear){
		Element.addClassName(obj, 'editable');
	}else{
		Element.removeClassName(obj, 'editable');
	}
}


function limitText(limitField, limitNum) {
	limitField = document.getElementById(limitField);
	
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	}
}