var CKEditorModule=FeildEditModule.extend({

	process:function()
	{
		var me=this;
		me.d.height="220px";
		var inputContainer=me.input();
		inputContainer.setStyle("height","230px");
		inputContainer.setStyle("width","420px");
		inputContainer.injectInside(me.node); 
		var editor;
		var id="ckEditor_"+Math.floor(Math.random()*10001); //TODO: make random number uneccesary
		me.entryMessage.el.id = id;
		var closeFunction=function(){
			//close function updates items with any changes
			me.update();
			me.viewer.removeEvent('beforeClose',closeFunction); //removes self, otherwise events stack    		
		};	
		var ckeditorOpenFunction=function(){
			me.viewer.removeEvent('onOpened',ckeditorOpenFunction);	
			me.editor=CKEDITOR.replace(id,{				
				toolbar :     [
				               ['Image','Source']
				                ],
				        //		  point these to files that geolive creates.
				        //        filebrowserBrowseUrl : 'http://geolive.ca/components/com_gfiles/uploader.php',
				                filebrowserImageBrowseUrl : MapFactory.GetMM(me.item).options.contentServer+"&task=browse_images",
				        //        filebrowserUploadUrl : "http://geolive.ca?option=com_gfiles&format=raw&task=upload",//uploader.php",//"http://geolive.ca?option=com_gfiles&format=raw",
				                filebrowserImageUploadUrl : MapFactory.GetMM(me.item).options.contentServer+"&task=upload_image",
				                resize_enabled : false,
				                height : '161px',
				                skin : "kama",
				                uiColor : "#c7d9b1",
				                toolbarStartupExpanded:false
			});
			me.viewer.addEvent('beforeClose',closeFunction);
			me.viewer.eventInstance.addEvent('onSave', function(){ me.update(true);}); //eventInstance is an shared event source for all modules. ie, save button propagates its save event using it.
		};	
	
		me.viewer.addEvent('onOpened',ckeditorOpenFunction);
		me.fireEvent('onLoad'); //must fire this or info-window will stall until timeout (6 sec)

	},
	update:function(){
		var me=this;
		MapFactory.EditItemParameter(me.item, me.parameter, me.editor.getData(),{});
	}

});

