
function PostObject (  ) {
	var self = this;
	
	this.createPostButton 	= null;
	this.postMessageField 	= null;
	this.contentHolder		= null;
	this.commentButton		= null;
	this.postDeleteHover	= null;
	this.postDelete			= null;
	
	this.createPostInput	= null;
	
	this.jsonObjectFBData 	= null;
	
	this.sending			= false;
};

PostObject.prototype = {
	init : function (  ) {
		var self = this;
		
		var isKeyShift = false;
		var isKeyEnter = false;
		
		self.createPostButton 	= $( "#post_bar_container .button" );
		self.contentHolder		= $( "#holderContent" );
		self.commentButton		= $( "a.comment_click" );
		self.postDeleteHover	= $( ".post_holder" );
		self.postDelete			= $( ".delete_post" );
		
		self.createPostInput	= $( "#inputSendPost textarea" );
		
		self.createPostInput.bind( "keyup", function ( evt ) {
			switch ( evt.keyCode ) {
				case 13: // enter
					isKeyEnter = false;
					if ( !isKeyShift ) {
						self.clickHanlder (  );	
					}
				break;
				case 16: // shift
					isKeyShift = false;
				break;
			}	
		} );
		
		self.createPostInput.bind( "keydown", function ( evt ) {
			switch ( evt.keyCode ) {
				case 13: // enter
					isKeyEnter = true;
					if ( !isKeyShift ) {
						evt.preventDefault (  );
					}
				break;
				case 16: // shift
					isKeyShift = true;
				break;
			}
		} );
		
		self.createPostInput.focus ( self.hoverPostText );
		self.createPostInput.blur ( self.hoverPostText );
		self.createPostButton.click ( self.clickHanlder );
	},
	setHandler : function (  ) {
		var self = this;
		
		self.commentButton		= $( "a.comment_click" );
		self.postDeleteHover	= $( ".post_holder" );
		self.postDelete			= $( ".delete_post" );
		
		self.commentButton.click ( self.test );
		self.postDelete.click ( self.deleteHanlder );
		self.postDeleteHover.hover ( self.deleteOverHanlder );
		self.postDelete.hover ( self.deleteHanlder );
	},
	createJsonObjectFBData : function (  ) {
		var self = this;
		
		self.jsonObjectFBData = {};
		
		for ( var i in fb_connect.userData[0] ) {
			self.jsonObjectFBData[i] = fb_connect.userData[0][i];
		};
	},
	deleteOverHanlder : function ( evt ) {
		var evtType = evt.type;
		var ausdruck = /post_holder_(.*)/;
		ausdruck.exec(evt.currentTarget.id);
		
		var postID = RegExp.$1;
				
		if ( $( "#post_teaser_win_" + postID ).css ( "display" ) == "block" ) return false;
		
		switch ( evtType ) {
			case "mouseenter":
				/*
				var ausdruck = /post_holder_(.*)/;
				ausdruck.exec(evt.currentTarget.id);
				
				var postID = RegExp.$1;
				*/
				
				var postOwner = $( "#post_holder_" + postID ).attr ( "userID" );
				
				if ( postOwner == postCommentObject.postObject.jsonObjectFBData["id"] ) {
					$( "#delete_post_" + postID ).show (  );
				};
			break;
			case "mouseleave":
				/*
				var ausdruck = /post_holder_(.*)/;
				ausdruck.exec(evt.currentTarget.id);
				
				var postID = RegExp.$1;
				*/
				
				var postOwner = $( "#post_holder_" + postID ).attr ( "userID" );
				if ( postOwner == postCommentObject.postObject.jsonObjectFBData["id"] ) {
					$( "#delete_post_" + postID ).hide (  );
				};
			break;
		};
	},
	deleteHanlder : function ( evt ) {
		var evtType = evt.type;
		
		switch ( evtType ) {
			case "click":
				var srcID 	= evt.currentTarget.id;
				var ausdruck = /(.*)_(.*)_(.*)/;
				ausdruck.exec(srcID);
				
				if ( RegExp.$1 != "" ) {
					switch ( RegExp.$1 ) {
						case "delete":
							var postOwner = $( this ).attr ( "userID" );
							if ( postOwner != postCommentObject.postObject.jsonObjectFBData["id"] ) return false;
							
							var ausdruck = /delete_post_(.*)/;
							ausdruck.exec(srcID);
							
							var postID 	= RegExp.$1;
							
							if ( $( "#post_teaser_win_" + postID ).css ( "display" ) == "block" ) return false;
							
							$( "#post_holder_" + postID ).fadeOut ( function (  ) {
								$( "#post_holder_" + postID ).remove (  );
								
								ajaxObject.doAjax ( {
									type			: "POST",
									url				: postCommentObject.campaignUrl + "fb_gateway.php",
									dataType		: "json",
									data			: {
										action		: "DELETE_POST",
										postID		: postID,
										postOwner	: postOwner
									},
									callBackFunc	: function ( data ) {
										// $( "#post_holder_" + postID ).attr ( "comments", ( parseInt ( $( "#post_holder_" + postID ).attr ( "comments" ) ) - 1 ) );
									}
								} );
								
								return false;
							} );
						break;
					}
				}
			break;
		}
	},
	test : function ( evt ) {
		var evtType = evt.type;
		
		switch ( evtType ) {
			case "click":
				var srcID 	= evt.currentTarget.className;
				var ausdruck = /comment_(.*)/;
				ausdruck.exec(srcID);
				
				if ( RegExp.$1 != "" ) {
					switch ( RegExp.$1 ) {
						case "click":
							var id = $(this).attr('ref');
							
							var commentDiv = $("#commentHolder_" + id);
							var displayStatus = commentDiv.css ( "display" );
							commentDiv.show (  );
							
							switch ( displayStatus ) {
								case "block":
									default_actions.inputActive ( document.getElementById ( "commentField_" + id ), postCommentObject.cmsData.texts_basic[13] );
								break;
								default:
									commentDiv.show ( 10, function (  ) { 
										var srcID 	= $( this ).attr ( "id" );
										var ausdruck = /commentHolder_(.*)/;
										ausdruck.exec(srcID);
										
										var id = RegExp.$1;
										
										default_actions.inputActive ( document.getElementById ( "commentField_" + id ), postCommentObject.cmsData.texts_basic[13] );
									} );
								break;
							}
						break;
					}
				} else {
					
				}
			
				return false;
			break;
			case "mouseenter":
				return false;
			break;
			case "mouseleave":
				return false;
			break;
		}
		
		return false;
	},
	clickHanlder : function (  ) {
		var self = this;
		
		// alert ( postCommentObject.postObject.createPostInput.val (  ) );
		
		// if ( postCommentObject.postObject.createPostInput.val (  ) == "" ) return false;		
		// if ( postCommentObject.postObject.createPostInput.val (  ) == postCommentObject.cmsData.texts_basic[15] ) return false;
		
		var checkContent = postCommentObject.postObject.createPostInput.val (  ).split ( "\n" ).join ( "" );
		checkContent = checkContent.split ( " " ).join ( "" );
		if ( checkContent.length <= 0 ) return false;
		
		if ( postCommentObject.postObject.createPostInput.val (  ) == "" || postCommentObject.postObject.createPostInput.val (  ) == postCommentObject.cmsData.texts_basic[15] ) { postCommentObject.postObject.createPostInput.focus ( postCommentObject.postObject.hoverPostText ); return false; };
		
		if ( postCommentObject.postObject.sending ) return false;
		
		ajaxObject.doAjax ( {
			type			: "POST",
			url				: postCommentObject.campaignUrl + "fb_gateway.php",
			dataType		: "json",
			data			: {
				action		: "INSERT_POST",
				postComment	: postCommentObject.postObject.createPostInput.val (  ),
				userData	: postCommentObject.postObject.jsonObjectFBData,
				countryCode	: postCommentObject.countryCode
			},
			callBackFunc	: postCommentObject.postObject.ajaxCallBack
		} );
		
		postCommentObject.postObject.sending = true;
		
		return false;
	},
	hoverPostText : function ( evt ) {
		var evtType = evt.type;
		
		switch ( evtType ) {
			case "focus":
				switch ( evt.currentTarget.value ) {
					case postCommentObject.cmsData.texts_basic[15]:
						evt.currentTarget.value = "";
					break;
					default:
						evt.currentTarget.value = evt.currentTarget.value;
					break;
				}
				
				return false;
			break;
			case "blur":
				switch ( evt.currentTarget.value ) {
					case "":
						evt.currentTarget.value = postCommentObject.cmsData.texts_basic[15];
					break;
					default:
						evt.currentTarget.value = evt.currentTarget.value;
					break;
				}
				
				return false;
			break;
		}
	},
	ajaxCallBack : function ( data ) {
		postCommentObject.postObject.createPostInput.val ( postCommentObject.cmsData.texts_basic[15] );
		
		// alert ( "href=\"" + postCommentObject.campaignUrl + postCommentObject.urlCountryCode + "/index.php?postID=" + data.requestData.post_id );
		
		postCommentObject.postObject.contentHolder.prepend (
			"<div class=\"post_holder\" id=\"post_holder_" + data.requestData.post_id + "\" userID=\"" + data.userData.id + "\" date=\"" + data.requestData.date + "\" likes=\"0\" comments=\"0\">" +
			"<div class=\"post_profil_image\">" +
			"<a href=\"http://www.facebook.com/profile.php?id=" + data.userData.id + "\" target=\"_blank\"><fb:profile-pic uid=\"" + data.userData.id + "\" linked=\"false\" size=\"square\"></fb:profile-pic></a>" +
			"<div class=\"post_teaser_win\" style=\"display: none;\">" +
			"<p>post_teaser_win</p>" +
			"</div>" +
			"</div>" +
			"<div class=\"post_content\">" +
			"<p><a href=\"http://www.facebook.com/profile.php?id=" + data.userData.id + "\" target=\"_blank\"><fb:name uid=\"" + data.userData.id + "\" linked=\"false\" capitalize=\"true\" useyou=\"false\" reflexive=\"false\"></fb:name></a></p>" +
			"<p>" + data.requestData.post + "</p>" +
			"<div class=\"delete_post\" userID=\"" + data.userData.id + "\" id=\"delete_post_" + data.requestData.post_id + "\"><img src=\"img/icon_close.gif\" alt=\"" + postCommentObject.cmsData.texts_basic[14] + "\" title=\"" + postCommentObject.cmsData.texts_basic[14] + "\" ref=\"" + data.requestData.post_id + "\"/></div>" +
			"<!--<div id=\"post_teaser_win_{ " + data.requestData.post_id + " }\" class=\"post_teaser_win\" style=\"display: none;\">" +
			"<p></p>" +
			"</div>-->" +
			"</div>" +
			"<!--<div style=\"clear: both; margin: 0px; height: 0px;\">" +
			
			"</div>-->" +
			"<div class=\"post_action_bar_holder\" style=\"display: block;\">" +
			"<div class=\"like_holder\" style=\"float: left; height: 23px; width: 200px;\">" +
			"<fb:like href=\"" + postCommentObject.campaignUrl + postCommentObject.urlCountryCode + "/index_like.php?postID=" + data.requestData.post_id + "&randomizer=" + data.requestData.randomizer + "\" layout=\"button_count\" show_faces=\"true\" width=\"70\" font=\"lucida grande\"></fb:like>" +
			"</div>" +
			"<div class=\"link_holder}\">" +
			"<a href=\"#\" ref=\"" + data.requestData.post_id + "\" class=\"comment_click\">" + postCommentObject.cmsData.texts_basic[12] + "</a>" +
			"</div>" +
			"</div>" +
			"<br style=\"clear: both; padding: 0px; margin: 0px; height: 0px; font-size: 1px; line-height: 0; display: none;\" />" +
			"<div id=\"commentHolder_" + data.requestData.post_id + "\" style=\"margin-left: 60px; display: none;\">" +
			"<div id=\"comment_box_" + data.requestData.post_id + "\">" +
			"" +
			"</div>" +
			"<div class=\"comment_action_bar_holder\">" +
			"<div id=\"pic_" + data.requestData.post_id + "\" class=\"comment_action_bar_profile_image\">" +
			"<a href=\"http://www.facebook.com/profile.php?id=" + data.userData.id + "\" target=\"_blank\"><fb:profile-pic uid=\"loggedinuser\" linked=\"false\" size=\"square\" width=\"32\" height=\"32\" style=\"\"></fb:profile-pic></a>" +
			"</div>" +
			"<div class=\"comment_action_bar_textinput_holder\">" +
			"<textarea id=\"commentField_" + data.requestData.post_id + "\" class=\"selectInput\" value=\"" + postCommentObject.cmsData.texts_basic[13] + "\" title=\"" + postCommentObject.cmsData.texts_basic[13] + "\" rows=\"1\" wrap=virtual onkeyup=\"default_actions.checkTextAreaHeight(this);\" onfocus=\"default_actions.inputActive ( this, '" + postCommentObject.cmsData.texts_basic[13] + "' );\" onblur=\"default_actions.inputClear ( this, '" + postCommentObject.cmsData.texts_basic[13] + "' );\">" + postCommentObject.cmsData.texts_basic[13] + "</textarea>" +
			"<div id=\"sendButton_" + data.requestData.post_id + "\" class=\"comment_action_bar_button_holder\">" +
			
			"<div id=\"commentInsert_" + data.requestData.post_id + "_" + data.requestData.post_id + "\" ref=\"" + data.requestData.post_id + "\" class=\"sendButton\">" + 
			"<div class=\"button_leftCorner\">" + 
			"<div class=\"button_rightCorner\">" + 
			"<a href=\"#\">" + postCommentObject.cmsData.texts_basic[12] + "</a>" + 
			"</div>" + 
			"</div>" + 
			"</div>" + 
			"</div>" +
			"</div>" +
			"</div>" +
			"</div>" +
			"<div style=\"clear: both; margin: 0px; padding: 0px; height: 10px;\">" +
			"<hr style=\"color:#edeff4; background-color:#edeff4; height:1px; border:none; margin: 10px 0px 0px 0px; _margin: 0px 0px 0px 0px;\" />" +
			"</div>" +
			"</div>"
		);
		
		$( "#post_holder_" + data.requestData.post_id).fadeIn ( "fast" );
		$( "a.comment_click" ).unbind('click').click ( postCommentObject.postObject.test );
		$( ".sendButton" ).unbind('click').click ( postCommentObject.commentObject.test );
		
		$( ".post_holder" ).unbind('hover').hover ( postCommentObject.postObject.deleteOverHanlder );
		$( ".delete_post" ).unbind('click').click ( postCommentObject.postObject.deleteHanlder );
		
		$(".comment_action_bar_textinput_holder").css ( "display", "block" );
		$(".post_action_bar_holder").css ( "display", "block" );
		
		// FB.XFBML.parse ( document.getElementById ( "holderContent" ), function ( evt ) {  } );
		FB.XFBML.parse ( document.getElementById ( "post_holder_" + data.requestData.post_id ), function ( evt ) {  } );
		
		/*
		_name, _id
		
		_linkText, 
		_message, 
		_caption, 
		_description, 
		_user_message_prompt, 
		_action_links_text, 
		_action_links_url, 
		_image 
		*/
		postCommentObject.streamObject.publishStream ( 
			postCommentObject.postObject.jsonObjectFBData.name, 
			postCommentObject.postObject.jsonObjectFBData.id,
			postCommentObject.cmsData.texts_posts_publish[0],
			postCommentObject.cmsData.texts_posts_publish[1], 
			data.requestData.post,
			"",
			postCommentObject.cmsData.texts_posts_publish[2], 
			postCommentObject.cmsData.texts_posts_publish[3],
			postCommentObject.cmsData.texts_posts_publish[4],
			postCommentObject.cmsData.texts_posts_publish[5]
		);
		
		postCommentObject.postObject.sending = false;
		
		// postCommentObject.init (  ); 
		return false;
	}
};
