$(document).ready( function () {
	$("#addImgBtn").click(function() {
		if($("#upload").css("display") == "none") {					    
		   $("#upload").slideDown("slow");
		}
		else {
		    $("#upload").slideUp("slow");
		}
	});
	
	
	$(".postReply").click(function(event) {
	   event.preventDefault();
	   postReply();
	});
	
	$(".btnVote").click(function(event) {
	   event.preventDefault();
	   mapPending     = true;
	   voteTopic();
	});
	
	$("#edit").click(function(event) {
	  event.preventDefault();
	  var postId = $("#parentPost").val();
	  loadEdit(postId);
	});
	
	
	$("#delete").click(function(event) {
	  event.preventDefault();
	  if(confirm("This will permanently delete all data, \n Do you want to continue ? ")) {
	      var postId = $("#parentPost").val();
	      $.post(appUrl+'/app/files/deleteTopic.ajx.php', { postId:postId },
		      function(responseData) {
			      if(responseData == "Login") {
			         loadLogin();
			      }
			      else if(responseData == "success") {
					 location.href=appUrl;
			      }
			      else {
			      }
		      }
	      );
	  }
	});
});


function postReply() {
	
	lockPage();	
	
	replyPending     = true;
	
	var postContent = $("#replyContent").val();
	var postType    = "Reply";
	var parentPost  = $("#parentPost").val();
	
	$.post(appUrl+'/app/files/postReply.ajx.php',
		{ 
		   postContent:postContent,
		   postType:postType,
		   parentPost:parentPost
		}, function(responseData) {
			var response  = filterResponse(responseData);
			if(responseData == "Login") {
			   loadLogin();
			}
			else if(response.status == "success") {
				
				 replyPending    = false;
		
				 var result = '<li class="reply_li" id="reply_'+response['reply']['id']+'"><span class="leftImage"><a href="#"><img src="'+response['reply']['userImage']+'" alt=" " /></a></span><span class="replyListRight"><h2><a href="#">'+response['reply']['name']+'</a> '+response['reply']['postTime']+'</h2><div class="replyDetailsClass">'+response['reply']['postContent']+'</div><span class="editReplyLinks" id="editReplyLink_'+response['reply']['id']+'"><a href="javascript:void(0);" class="editReply" onclick="editReply('+response['reply']['id']+')">edit reply</a><a href="javascript:void(0);" class="deleteReply" onclick="deleteReply('+response['reply']['id']+')">Delete reply</a></span></span></li>';
				 
				 $(".replys").append(result);
				 document.getElementById("frmQuest").reset();
				 
				 if (document.body.scrollHeight) { 
                     window.scroll(0, document.body.scrollHeight); 
                 } 
				 unlockPage();
			}
			else {
				replyPending     = false;
				$("#replyErr").html(response.error);
				unlockPage();
				$("#replyErr").fadeOut(5000);
			}
		}
	);
}

function voteTopic() {
	   var postId    = $("#parentPost").val();	
	   
	   $.post(appUrl+'/app/files/voteTopic.ajx.php', { postId:postId },
		   function(responseData) {
			   if(responseData == "Login") {
			      loadLogin();
			   }
			   else if(responseData == "success") {
				   mapPending   = false;
				   var mapCount = $("#mapCount").html();
				   mapCount     = 1+parseInt(mapCount);
				   $("#mapCount").html(mapCount);
				   unlockPage();
			   }
			   else {
				   mapPending     = false;
				   unlockPage();
				  // alert("Sorry! You already supported");
			   }
		   }
	   );
}

function hideImgEdit() {
	if($("#uploads").css("display") == "none") {					    
	   $("#uploads").slideDown("slow");
	}
	else {
	   $("#uploads").slideUp("slow");
	}
}

function loadEdit(postId) {
	lockPage();
	$("#pageLock").html('');
	$("body").append("<div id='editWindow'></div>");
	$("#editWindow").load(appUrl+'/app/files/editTopic.ajx.php', {postId:postId}, function() {
	  incrementText("postContent");});
	scroll(0,0);
}

function updatePost() {
	 
	var postTitle   = $("#postTitle").val();
	var postContent = $("#postContent").val();
	//var postTags    = $("#postTags").val();
	var postId      = $("#parentPost").val();
	
	$.post(appUrl+'/app/files/insertPost.ajx.php',
		{ 
		   postTitle:postTitle,
		   postContent:postContent,
		   postId:postId
		}, function(responseData) {
			if(responseData == "Login") {
			   loadLogin();
			}
			else if(responseData == "success") {
				 postPending     = false;
				 location.reload();
			}
			else {
				var response  = filterResponse(responseData);
				postPending     = false;
				//$("#errorDiv").html(response.error);
				unlockPage();
				//$("#errorDiv").fadeOut(5000);
			}
		}
	);
}

function setProblemFix(event) {
	event.preventDefault();
	var postId      = $("#parentPost").val();
	   
	$.post(appUrl+'/app/files/setFixedTopic.ajx.php', { action:'fixed', postId:postId },
		   function(responseData) {
			   if(responseData == "Login") {
			      loadLogin();
			   }
			   else {
				  var response = filterResponse(responseData);
			      if(response.status == 'success') {
				      $("#solved").removeClass("noFix");
				      $("#solved").addClass("fix");
				      $("#solved").html("This problem has been fixed.");
				   
				      $("#editLinks").append('<a href="#" id="reopen" class="topiOps" onclick="reopenProblem(event)">reopen</a>');
				      $("#fixed").remove();
				   
			      }
			      else {
				     //alert("Sorry! You failed");
			      }
			   }
		  });
}


function setProblemProgress(event) {
	event.preventDefault();
	var postId      = $("#parentPost").val();
	   
	$.post(appUrl+'/app/files/setFixedTopic.ajx.php', { action:'progress', postId:postId },
		   function(responseData) {
			   if(responseData == "Login") {
			      loadLogin();
			   }
			   else {
				  var response = filterResponse(responseData);
			      if(response.status == 'success') {
				      $("#solved").removeClass("noFix");
				      $("#solved").addClass("fix");
				      $("#solved").html("In development.");
				   
				      $("#editLinks").append('<a href="#" id="fixed" class="topiOps" onclick="setProblemFix(event)">set to fixed</a>');
				      $("#progress").remove();
				   
			      }
			      else {
				     //alert("Sorry! You failed");
			      }
			   }
		  });
}

function reopenProblem(event) {
	event.preventDefault();
	var postId      = $("#parentPost").val();
	   
	$.post(appUrl+'/app/files/setFixedTopic.ajx.php', { action:'reopen', postId:postId },
		   function(responseData) {
			   if(responseData == "Login") {
			      loadLogin();
			   }
			   else if(responseData == "success") {
				   $("#solved").removeClass("fix");
				   $("#solved").addClass("noFix");
				   $("#solved").html("");
				   
				   $("#editLinks").append('<a href="#" id="add2DoList" class="topiOps" onclick="setAddtoDoList(event)">add to To DO list</a>');
				   $("#reopen").remove();
				   
				   $("#").show();
				   $("#").hide();
				   
			   }
			   else {
				  //alert("Sorry! You failed");
			   }
		   }
	   );
}

function setAddtoDoList(event) {
	event.preventDefault();
	var postId      = $("#parentPost").val();
	   
	$.post(appUrl+'/app/files/setFixedTopic.ajx.php', { action:'add2DoList', postId:postId },
		   function(responseData) {
			   if(responseData == "Login") {
			      loadLogin();
			   }
			   else {
				  var response = filterResponse(responseData);
			      if(response.status == 'success') {
				      $("#solved").removeClass("noFix");
				      $("#solved").addClass("fix");
				      $("#solved").html("Added to To DO list.");
				   
				      $("#editLinks").append('<a href="#" id="progress" class="topiOps" onclick="setProblemProgress(event)">set to in progress</a>');
				      $("#add2DoList").remove();
				   
			      }
			      else {
				     //alert("Sorry! You failed");
			      }
			   }
		  });
}

function editReply(replyId) {
   var oldRepId = $("#replyId").val();
   
   if(oldRepId) {
	  loadReply(oldRepId);
   }
   $.post(appUrl+'/app/files/editReply.ajx.php', { action:'edit', replyId:replyId }, function(response) {
          if(response == 'Login') {
			 alert('Your session has expired. Please login again');
			 loadLogin();
			 return false;
		  }
          if(response != 'Failed') {
			 $("#reply_"+replyId+" .replyDetailsClass").html(response);
			 $("#editReplyLink_"+replyId).hide();
			 incrementText('replyEditContent');
		  }
		  else {
			  location.reload();
		  }
   });
}

function shoHideUpload() {
   $('#uploadR').slideToggle("slow");
}

function loadReply(replyId) {
	  $.post(appUrl+'/app/files/editReply.ajx.php', { action:'reloadReply', replyId:replyId }, function(responseData) {
             var response  = filterResponse(responseData);
             var result    = '<span class="leftImage"><a href="#"><img src="'+response.userImage+'" alt=" " /></a></span><span class="replyListRight"><h2><a href="#">'+response.name+'</a> '+response.postTime+'</h2><div class="replyDetailsClass">'+response.postContent+'</div><span class="editReplyLinks" id="editReplyLink_'+response.id+'"><a href="javascript:void(0);" class="editReply" onclick="editReply('+response.id+')">edit reply</a><a href="javascript:void(0);" class="deleteReply" onclick="deleteReply('+response.id+')">Delete reply</a></span></span>';
					       
		     $("#reply_"+replyId).html(result);
      });
}

function updateReply() {
	
	var postContent = $("#replyEditContent").val();
	var replyId     = $("#replyId").val();
	var parentId    = $("#parentPost").val();
	var postType    = "Reply";
	
	$.post(appUrl+'/app/files/editReply.ajx.php',
		{ 
		   action:'update',
		   postTitle:'',
		   postContent:postContent,
		   postId:replyId,
		   postType:postType,
		   parentPost:parentId
		}, function(responseData) {
			if(responseData == "Login") {
			   alert('Your session has expired. Please login again');
			   loadLogin();
			   return false;
			}
			else if(responseData == "unauthorized") {
				location.reload();
			}
			else if(responseData == "success") {
				loadReply(replyId);
			}
			else {
				var response  = filterResponse(responseData);
				$("#replyEditErr").html(response.error);
				$("#replyEditErr").fadeOut(5000);
			}
		}
	);
}

function ajaxEditUpload(tForm, uri, resultId,fileId,uploaderBlock,loaderId,errBlock){ 
	$('#'+loaderId).show();
	$.ajaxUpload({
            uploadform: tForm,
            url: uri,
            secureuri: false,
            dataType: 'json',
            success: function (message) {
				var response = filterResponse(message);
				if(response.status == "success"){
					$('#'+loaderId).hide();
					var imageUrl = '<a href="'+response.origImage+'"><img src="'+response.thumbImage+'" /></a>';
					var comment  = $("#"+resultId).val();
					    comment += (comment == "")?imageUrl+"\n" : "\n"+imageUrl+"\n";
					$("#"+resultId).val(comment);
					$("#"+fileId).attr("value","");
					$("#"+uploaderBlock).slideUp("slow");
					
					incrementText(resultId);
				}	
				else{
						$('#'+loaderId).hide();
						$('#'+errBlock).html(response.error);
						$('#'+errBlock).show();
						//$('#uploadErr').fadeOut(5000);
				}
            },
            error: function (msg, status, e) {
				alert(msg);
				var response = filterResponse(msg);
                 alert(e + ' ' + msg );
                }
     		 });
}
function deleteReply(replyId) {
   if(confirm("This will permanently delete reply, \n Do you want to continue ? ")) {
	      $.post(appUrl+'/app/files/deleteReply.ajx.php', { replyId:replyId },
		      function(responseData) {
				if(responseData == "Login") {
			      loadLogin();
			    }else if(responseData == "success") {
					  location.reload();
			    }
			    else {
			    }
		      }
	      );
	}
}
