var DiscussionModule=MGModule.extend({
	initialize:function(mediaMap, item, options)
	{
	var me=this;
	me.mediaMap=mediaMap;
	me.item=item;
	me.setOptions(options);
	},
	process:function(){
		var me=this;
		var discussions=new DiscussionListRequest(MapFactory.AbstractItem(me.item));
		discussions.addEvent('onSuccess',function(list){
			me.loadDiscussion(list.discussions[0]);
		});
		discussions.execute();
	},
	loadDiscussion:function(discussion)
	{
		var me=this;
		var contentServer=MapFactory.GetMM(me.item).serverClient;
		MapFactory.ItemOwner(me.mediaMap, me.item.wrapper||me.item,function(isOwner){
			mm_debug("Discussion Module: Loaded");

			var chat=new AjaxDiscussion(me.node,{
				editable:isOwner,
				server:contentServer,
				id:discussion.id,
				showReply:false,
				serverOffset:MapFactory.GetMM(mapItem).serverOffsetTime
			});
			var resizePosts=function(){
				var images=$$('.mediaMapPost_Text img');
				mm_debug("Geolive - Discussion Module. Resizing "+images.length+" images");
				$each(images,function(image){
					var img=new Asset.image(image.src,{onload:function(){
						if(img.getCoordinates().width>(me.options.maxDiscussionsImageWidth||150)){
							img.setStyle('width', (me.options.maxDiscussionsImageWidth||150)+'px');
							img.setStyle('height', 'auto');
							}				
						}});
					img.inject(image,'before');	
					image.parentNode.removeChild(image);																

					});
				$each($$('.mediaMapPost_Text'),function(txt){
						if(txt.getCoordinates().width>(me.options.maxDiscussionsWidth||250)){
							txt.setStyle('width', (me.options.maxDiscussionsWidth||250)+'px');
							txt.setStyle('height', 'auto');
							}																			

					});
				
				
				
			};
			me.addEvent('onLoad',function(){
				resizePosts();			
			});
			chat.addEvent('onAddedPosts',function(){
				resizePosts();
				setTimeout(resizePosts,1500);
				setTimeout(resizePosts,5000);		
			});
			
			var UsersReplyString="";
			var map=me.mediaMap;
			var replyFunction=function(){
				var field=new MooEditorModule(MapFactory.GetMM(mapItem), mapItem, {
					message:"add a comment",
					width:100,
					widthUnit:"%",
					height:7,
					heightUnit:"em",
					value:UsersReplyString,
					showEmptyValueMessage:true,
					classPrefix:"ContentDock",
					onUpdate:function(){
						UsersReplyString=field.getValue()||"";
					}					
					});			
				var optionsEl=new Element('ul');
				optionsEl.setStyle('width', '100%');
				var send=new Element('li');
				var sendButton=new Element('img',{src:map.options.site+'administrator/components/com_mediamapserver/Widgets/ContentDock/images/done_btn.png'});
				send.appendChild(sendButton);
				send.addEvent('click',function(){
					if(field.getValue()!==false){
						chat.getPosts(field.getValue());	
						//alert(field.getValue());														
						MapFactory.GetMM(mapItem).squeezeViewer.close();
						UsersReplyString="";//close it first, becuase closing probably will update this field.			
						}else{
							alert("Please enter a message");
							}
				});
				
				optionsEl.appendChild(send);
				var cancel=new Element('li');
				var cancelButton=new Element('img',{src:map.options.site+'administrator/components/com_mediamapserver/Widgets/ContentDock/images/cancel_btn.png'});														
				cancel.appendChild(cancelButton);
				cancel.addEvent('click',function(){MapFactory.GetMM(mapItem).squeezeViewer.close();});
				optionsEl.appendChild(cancel);
				var options=new DomModule(MapFactory.GetMM(mapItem), optionsEl);
				var textBubbleImage=new Asset.image(map.options.site+'administrator/components/com_mediamapserver/Widgets/ContentDock/images/chat_bubble.png');
				var icon=new DomModule(MapFactory.GetMM(mapItem), textBubbleImage, {'className':'contentDock_topRightCornerIcon'});
				//open the reply box in a lightbox.
				//sorry no admin customizability here. 
				var spacer=new Element('div');
				spacer.setStyle('height',"30px");
				
				MapFactory.GetMM(mapItem).squeezeViewer.open(new CustomPageModule(MapFactory.GetMM(mapItem),mapItem,{
					
					"discussion_contentDock_Content":[
														new DomModule(chat, spacer),
														new HTMLModule(chat, "Please Enter Your Reply Text",{'className':'textEntryModule_Title'}),
														field, 
														options, icon]															
					},{template:"widget.ContentDock.discussion"} ), mapItem, {prefix:"contentDock-", hieght:250, showClose:false});
				};
				if(MapFactory.GetMM(mapItem).options.user!="guest"){
				var toolBar=new Element('ul',{});
				var reply=new Element('li');
				reply.setStyle('float','right');
				reply.setStyle('listStyle','none');
				reply.setStyle('paddingRight','4px');
				reply.setStyle('cursor','pointer');
				reply.innerHTML='<img src="'+map.options.site+'administrator/components/com_mediamapserver/Widgets/ContentDock/images/post_btn.png" />';
				reply.addEvent('click',replyFunction);
				toolBar.appendChild(reply);
				me.node.appendChild(toolBar);
				}
				
			
			var close=function(){
				chat.bePassive();
				mm_debug("Discussion Closed!");
				me.viewer.removeEvent('onClose',close);
			};		
			me.viewer.addEvent('onClose',close);
			me.fireEvent('onLoad');
			mm_debug("Discussion Module: Loaded");
		});
	}


});
