mySettings = {	
	onShiftEnter:  	{keepDefault:false, replaceWith:'<br /><br />\n'},
	onEnter:  	{keepDefault:false, replaceWith:'<br />\n'},
	onCtrlEnter:  	{keepDefault:false, openWith:'\n<p>', closeWith:'</p>'},
	onTab:    		{keepDefault:false, replaceWith:'    '},
	markupSet:  [ 	
		{name:'Bold', key:'B', openWith:'(!(<strong>|!|<b>)!)', closeWith:'(!(</strong>|!|</b>)!)' },
		{name:'Italic', key:'I', openWith:'(!(<em>|!|<i>)!)', closeWith:'(!(</em>|!|</i>)!)'  },
		{name:'Stroke through', key:'S', openWith:'<del>', closeWith:'</del>' },
		{separator:'---------------' },
		{name:'Picture', key:'P', replaceWith:'<img src="[![Source:!:http://]!]" alt="[![Alternative text]!]" />' },
		{name:'Link', key:'L', openWith:'<a href="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>', closeWith:'</a>', placeHolder:'Your text to link...' },
		{separator:'---------------' },
		{name:'Clean', className:'clean', replaceWith:function(markitup) { return markitup.selection.replace(/<(.*?)>/g, "") } },		
		{name:'Preview', className:'preview',  call:'preview'},
		{separator:'---------------' },
		{name:'Save', className:'save', beforeInsert:function(markItUp) { miu.save(markItUp) } }
	]
}

miu = {
    save: function(markItUp) {
        var target = markItUp.textarea.id
        var content = markItUp.textarea.value;
		
		var $id = getId(target);
		var $table = getTable(target);
		
		$dataString = "?x=4&t=save&table=" + $table + "&id=" + $id + "&content=" + content;
		
		$.ajax({
	       	type: "POST",
	       	url: "/phpscripts/updatehandler.php",
	       	data: $dataString,
	       	success: function(msg){
	       		$('#' + target).css('border-color', '#e4e4e4');
	       	}
	    });
        
    }   
}

function getId(element)
{
   	$tokenIndex = element.indexOf("_");
   	$tokenIndex2 = element.indexOf("-");
    	return element.substring($tokenIndex+1,$tokenIndex2);
}

function getTable(element)
{
	$tokenIndex = element.indexOf("-");
	return element.substr($tokenIndex+1, (element.length - $tokenIndex));
}

$(document).ready(function(){
    
   	$('.save').click(function($e){
		$e.preventDefault();
		var $id = getId($e.target.id);
		var $table = getTable($e.target.id);

		var $title = '#title_' + $id + '-' + $table;
		var $description = '#description_' + $id + '-' + $table;
		var $createdDate = '#createddate_' + $id + '-' + $table;
		
		$title = $($title).html();
		$description = $($description).html();
		$createdDate = $($createdDate).val();
		
		$dataString = "?x=4&t=update&table=" + $table + "&id=" + $id + "&title=" + $title + "&description=" + $description + "&createdDate=" + $createdDate;

		$.ajax({
        	type: "POST",
        	url: "/phpscripts/updatehandler.php",
        	data: $dataString,
        	success: function(msg){
          		markSaved($id);
          		$('#olddate_' + $id + '-' + $table).html('Last Updated: ' + $createdDate);
          		$('#createddate_' + $id + '-' + $table).val('');
        	}
     	});
	}); 
	
	$('.active').click(function($e){
		$e.preventDefault();
		var $id = getId($e.target.id);
		var $table = getTable($e.target.id);

		$dataString = "?x=4&t=active&table=" + $table + "&id=" + $id;

		$.ajax({
        	type: "POST",
        	url: "/phpscripts/updatehandler.php",
        	data: $dataString,
        	success: function(msg){
        		if(msg == 1){
        			$('#active_' + $id + '-' + $table).attr('src', '/images/icons/accept.png');
        		}
        		else {
        			$('#active_' + $id + '-' + $table).attr('src', '/images/icons/block.png');
        		}
        	}
     	});
	}); 
	
	function deleteItem(element){
		var $id = getId(element);
		var $table = getTable(element);

		$dataString = "?x=4&t=delete&table=" + $table + "&id=" + $id;

		$.ajax({
        	type: "POST",
        	url: "/phpscripts/updatehandler.php",
        	data: $dataString,
        	success: function(msg){
          		//alert(msg);
          		deleteDivElement($id);
        	}
     	});
	}
	
	  $(function() {
   	$("#dialog").dialog({
 		autoOpen: false,
		bgiframe: true,
		resizable: false,
		height:200,
		modal: true,
		overlay: {
			backgroundColor: '#000',
			opacity: 0.5
		},
		buttons: {
     		"Cancel": cancel,
     		"Yes": getResponse     		
		}
		});
	});

	function getResponse()
	{
		$("#dialog").dialog('close');
		deleteItem($workingElement);
		$workingElement = null;
	}
	
	function cancel()
	{
		$("#dialog").dialog('close');
	}
  
   	$('.delete').click(function($e){
   		$e.preventDefault();
   		$workingElement = $e.target.id;
		var $result = $("#dialog").dialog("open");
		
		//temp
		//deleteItem($workingElement);
		//$workingElement = null;
		
	});
	
	$('.editable').keypress(function($e){
		var $id = getId($e.target.id);
   		markUnsaved($id);
   	});
   	
   	$(".datepicker").change(function($e) {
   		var $id = getId($e.target.id);
   		markUnsaved($id);
   	});
   	
    function deleteDivElement(id)
    {
    	//alert('dataContainer_' + id + "-");
    	$('#dataContainer_' + id + "-").fadeOut('slow');
    }
   	
   	function markUnsaved(id)
   	{
   		$('#dataTools_' + id + "-").removeClass('dataTools');
   		$('#dataTools_' + id + "-").addClass('dataToolsEdit');
   		$('#databorder_' + id + "-").addClass('databorderEdit');
   		$('#databorder_' + id + "-").removeClass('databorder');
   	}
   	
   	function markSaved(id)
   	{	
   		$('#dataTools_' + id + "-").removeClass('dataToolsEdit');
   		$('#databorder_' + id + "-").removeClass('databorderEdit');
   		$('#dataTools_' + id + "-").addClass('dataTools');
   		$('#databorder_' + id + "-").addClass('databorder');
   	}
	
	function getElement(element)
	{
    	$tokenIndex = element.indexOf("_");
    	$token2Index = element.indexOf("-");
    	return element.substr(0,$tokenIndex);
	}
	    
    $('.editable').editable(function(element){
		//editable text     
    });
    
  });


/**
 * Edit-in-place with contentEditable property (FF2 is not supported)
 * Project page - http://valums.com/edit-in-place/
 * Copyright (c) 2008 Andris Valums, http://valums.com
 * Licensed under the MIT license (http://valums.com/mit-license/)
 * Version 0.4 (27.02.2009)
 */
(function(){
var d = document, w = window;

/**
 * Get element by id
 */	
function $(element){
	if (typeof element == "string")
		element = d.getElementById(element);
	return element;
}

/**
 * Attaches event to a dom element
 */
function addEvent(el, type, fn){
	if (w.addEventListener){
		el.addEventListener(type, fn, false);
	} else if (w.attachEvent){
		var f = function(){
		  fn.call(el, w.event);
		};			
		el.attachEvent('on' + type, f)
	}
}


if (jQuery){
	jQuery.fn.editable = function(onChange){
		return this.each(function(){
			editableAreas.add(this, onChange);
		});
	};
}

editableAreas = {
	enterDisabled : false
	,instances : []
	,active : null
	,inited : false
	,init : function(){
		var self = this;
		// attach enter keypress capturer to document
		addEvent(d, 'keypress', function(e){
			// find which key was pressed (code from jQuery library)
			if ( !e.which && ((e.charCode || e.charCode === 0) ? e.charCode : e.keyCode)){
				e.which = e.charCode || e.keyCode;	
			}

			if (self.enterDisabled && (e.which == 13)) {
				if (e.preventDefault) e.preventDefault();				
				else e.returnValue = false;
			}
		});
		
		addEvent(d, 'click', function(e){
			var target = e.target ? e.target : e.srcElement || document;

			while (target.nodeName != "HTML"
				&& target.nodeName != "BODY"
				&& target.contentEditable != true && target.contentEditable != 'true')
				// contentEditable is boolean in Opera
			{										
				target = target.parentNode;				
			}

			if (self.active && (self.active.el !== target)){
				// User clicked outside of editable area
				self.enterDisabled = false;
				self.active.onChange.call(self.active.el, self.active.el);
				self.active = null;												
			}
			
			if ( ! self.active){				
				var i = self.indexOfEditable(target);
				if (i !== -1){
					if (target.nodeName != 'DIV'){						
						//disable line breaks for h1..h5,p,etc ..
						self.enterDisabled = true;
					}
					self.active = self.instances[i];
				}			
			}
		});
		
		this.inited = true;				
	}
	,add : function(el, onChange){
		el = $(el);
		onChange = onChange ||	function(){};
		// FF2 doesn't support contentEditable
		el.contentEditable = true;
		this.instances.push({el:el, onChange:onChange});
		
		if (!this.inited) this.init();		
	}
	,indexOfEditable : function(el){
		for (var i=0, length = this.instances.length; i < length; i++){				
			if (this.instances[i].el === el){
				return i;
			}	
		}				
		return -1;
	}
	
	};
})();

