var Notepad = new Object();

Notepad.open = function() {
 		ajaxLoading(true);
 		$('#jqDialog').jqm({
 			ajax: '?p=plugin&a=notepad&f=showNotepadDialog',
 			onLoad: function() {
				Notepad.initialize();
 				ajaxLoading(false);
 			}
 		}).jqmShow();
}

Notepad.addNew = function() {
	$('.notepadBrowser').css('display', 'none')
	$('.notepadEditor').css('display', 'block')
}

Notepad.browser = function () {
	$('.notepadEditor').css('display', 'none')
	$('.notepadBrowser').css('display', 'block')
	Notepad.searchNote(Notepad.BrowserForm);
}

Notepad.initialize = function() {
	$('#jqDialog').css({width: '600px', height: "500px"});
	$('#jqDialog').center();
	$("#jqDialog").jqmAddClose("input[name='cancel']");

	Notepad.EditorForm = document.getElementById("notepadEditorForm");
	Notepad.BrowserForm = document.getElementById("notepadBrowserForm");
	
	$('.notepadMenuItem').mouseover( function(e) {
		$(e.target).css({borderLeft: '1px solid #fff', borderTop: '1px solid #fff', borderBottom: '1px solid #aaa', borderRight: '1px solid #aaa'});
	})

	$('.notepadMenuItem').mouseout( function(e) {
		$(e.target).css('border','1px solid #eeeeee');
	})

	tinyMCE.init({
		// General options
		mode : "exact",
		elements : "notepadContent",
		height: "400",
		theme : "advanced",
		plugins : "paste,save,preview,print,fullscreen,contextmenu,table",
		
		// Theme options
		theme_advanced_buttons1 : "save,newdocument,print,|,cut,copy,paste,pastetext,pastewor,|,bold,italic,underline,strikethrough,|,sub,sup,|,charmap,|,justifyleft,justifycenter,justifyright,justifyfull,|,fontselect,fontsizeselect|,fullscreen",
		theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,|,forecolor,backcolor,|,hr,removeformat,visualaid",
		theme_advanced_buttons3 : "tablecontrols",
		theme_advanced_toolbar_location : "bottom",
		theme_advanced_toolbar_align : "center",
		theme_advanced_resizing : false,		
	});
}

Notepad.checkTitle = function(title) {
	if(title.trim() != "")
	 return title;
	 
	if((title = prompt("Enter title for this note"))== null)
		return false;
		
	if(title.trim() == '')
	{
		if(!confirm('Title cannot be empty. Do you wana try again?'))
			return false;
		else
			this.checkTitle('');
	}
	else
		return title;
}




Notepad.save = function(form) {
	var title = "";
	var note_id = (form.note_id.value > 0) ? form.note_id.value : 0;
	if((title = this.checkTitle(form.note_title.value)) === false)
		return false;
	
	form.note_title.value = title;
	var content = "note_id="+note_id+"&title="+encodeURI(title)+"&body="+encodeURIComponent(Notepad.getContent());
	Notepad.progress(1);
	if(note_id == 0)
		this.addNote(content,form);
	else
		this.updateNote(content,form);
	return false;
}

Notepad.addNote = function(content,form) {
	$.ajax({
		type: "POST",
		url: "?p=plugin&a=notepad&f=addNote", 
		data: content,
		dataType: "script",
		success: function(jsResponse) {
			if(AjaxObj.__RESULT_STATUS) {
				form.note_id.value = AjaxObj.note_id;
			}
			else
				alert(AjaxObj.errorMsg);
			Notepad.progress(0);
		}
	});
}

Notepad.updateNote = function(content,form) {
	$.ajax({
		type: "POST",
		url: "?p=plugin&a=notepad&f=updateNote", 
		data: content,
		dataType: "script",
		success: function(jsResponse) {
			if(!AjaxObj.__RESULT_STATUS)
				alert("Not save");
				
			Notepad.progress(0);
		}
	});	
}

Notepad.searchNote = function(form) {
	var url = "?p=plugin&a=notepad&f=searchNote";
	var q = form.search.value.trim();
	$("div.searchResult").load(url+"&search="+q);
	return false;
}

Notepad.editNote = function(id) {
	$.get("?p=plugin&a=notepad&f=editNote", {note_id: id}, function(json_data){
		eval("var note = ("+json_data+")");
		Notepad.setContent(note.body);
		Notepad.setTitle(note.title);
		Notepad.setId(note.id);
		Notepad.addNew();
	}); 
}

Notepad.delNote = function(id) {
	$.get("?p=plugin&a=notepad&f=delNote", {note_id: id}, function(data){
		eval(data);
		if(AjaxObj.__RESULT_STATUS)
			alert("Deleted");
	}); 	
}

Notepad.getContent = function () {
	var editor = tinyMCE.get('notepadContent');
	return editor.getContent();
}

Notepad.progress = function(stat) {
	var editor = tinyMCE.get('notepadContent');
	editor.setProgressState(stat);
	return true;	
}

Notepad.setTitle = function(str) {
	Notepad.EditorForm.note_title.value = str;
}

Notepad.setId = function(id) {
	Notepad.EditorForm.note_id.value = id;
}

Notepad.setContent = function (data) { 
	var editor = tinyMCE.get('notepadContent');
	return editor.setContent(data);
}