/*
 * JavaScript interface to the SB groups.
 * class SB.group - group interface
 *
 * Requirements: jQuery library 1.4.2 and above
 * Copyright (C) 2010 Tomas Hnilica.   All Rights Reserved.
 */
 
function createGroup() {
 var g = new SB.group();
 g.createGroup();
}

function deleteGroup(id) {
 var g = new SB.group(id);
 g.deleteGroup();
}

function manageGroup(id) {
 var g = new SB.group(id);
 g.manageGroup();
}

function joinGroup(id) {
 var g = new SB.group(id);
 g.joinGroup();
}

function leaveGroup(id) {
 var g = new SB.group(id);
 g.leaveGroup();
}

function deleteGroupTopic(id, tid) {
  var g = new SB.group(id);
  g.deleteTopic(tid);
}

SB.group = function(id, name, link) {
	 this.id = id;
	 this.name = name;
	 this.link = link;
	 
	  this.editCode = "<table><tr><td>Název:</td><td><input type='text' name='new-group-name' id='new-group-name' style='width:250px;'></td></tr>";
		this.editCode += "<tr><td>Popis:</td><td><textarea name='new-group-desc' id='new-group-desc' style='width:250px; height:150px;'></textarea></td></tr>";
		this.editCode += "<tr><td>Správce:</td><td><input type='text' name='new-group-leader' id='new-group-leader' style='width:250px;'></td></tr>";
    this.editCode += "</table>";		

	
}

SB.group.prototype.createGroup = function() {
	
		
		var context = this;
		thDialog(this.editCode,"Vytvoření nové skupiny", function(ret) {
		   if (ret) {
			    var params = {}
			    params['name'] = $('#new-group-name').val();
			    params['desc'] = $('#new-group-desc').val();
			    params['leader'] = $('#new-group-leader').val();
					$.post("/ws/?ws=createGroup", params, function(data){
								location.href = data;
				  	});
		   }
		});
	

};

SB.group.prototype.deleteGroup = function() {
		var context = this;
		thConfirm("Skutečně chcete smazat skupinu?","Smazat skupinu?", function(ret) {
		   if (ret) {
		    var params = {}
			    params['id'] = context.id;
			    params['ws'] = "deleteGroup";
					$.get("/ws/", params, function(data){
							location.reload();
				  });
				}
		});

};

SB.group.prototype.manageGroup = function() {
		var context = this;
		thDialog(this.editCode,"Editace skupiny", function(ret) {
		   if (ret) {
			    var params = {}
			    params['gid'] = $('#group').attr('gid');
			    params['name'] = $('#new-group-name').val();
			    params['desc'] = $('#new-group-desc').val();
			    params['leader'] = $('#new-group-leader').val();
					$.post("/ws/?ws=editGroup", params, function(data){
								location.href = data;
				  	});
		   }
		});
		/*fill current data*/
		$('#new-group-name').val($('#group-name').text());
		$('#new-group-desc').val($('#group-desc').text());
		$('#new-group-leader').val($('#group-leader').text());

};


SB.group.prototype.joinGroup = function() {
	  var uid = SBuser.uid;
	  if (uid=="") {
	     thAlert("Přidat se skupině se může jen registrovaný uživatel.","Chyba");
	     return false; 
	  }
    var params = {}
		params['ws'] = "joinGroup";
		params['group'] = this.id;
		params['uid'] = uid;
		$.get("/ws/", params, function(data){
					if (data == "1") {
					   thAlert("Blahopřejeme, nyní jste členem této skupiny.", "Nový člen skupiny", function() {location.reload();});
					} else {
					  thAlert("Při přidávání do skupiny došlo k chybě:<br>" + data, "Chyba");
					}
		});
   
};

SB.group.prototype.leaveGroup = function() {
	  var uid = SBuser.uid;
	  if (uid=="") {
	     thAlert("Odejít se skupiny může jen registrovaný a přihlášený uživatel.","Chyba");
	     return false; 
	  }
    var params = {}
		params['ws'] = "leaveGroup";
		params['group'] = this.id;
		params['uid'] = uid;
		$.get("/ws/", params, function(data){
					if (data == "1") {
					   thAlert("Opustil(a) jste tuto skupinu.", "Opuštění skupiny",function() {location.reload();});
					} else {
					  thAlert("Při opouštění skupiny došlo k chybě:<br>" + data, "Chyba");
					}
		});
   
};

SB.group.prototype.newTopic = function() {
	  var uid = SBuser.uid;
	  if (uid=="") {
	     thAlert("Jen členové skupiny mohou zakládat nová témata","Chyba");
	     return false; 
	  }
		var code = "<table><tr><td>Název:</td><td><input type='text' name='new-topic-name' id='new-topic-name' style='width:250px;'></td></tr>";
		code += "<tr><td>Popis:</td><td><textarea name='new-topic-desc' id='new-topic-desc' style='width:250px; height:150px;'></textarea></td></tr>";
    code += "</table>";		
		var context = this;
		thDialog(code,"Vytvoření nového tématu", function(ret, dlg) {
		   if (ret) {
		   		if ($('#new-topic-name').val() == "") {
		   			dlg.dialog('open');
		   			thAlert("Zadejte prosím název tématu.", "Vytvoření nového tématu");
		   			return false;
		   		}
			    var params = {}
			    params['group'] = context.id;
			    params['name'] = $('#new-topic-name').val();
			    params['desc'] = $('#new-topic-desc').val();
					$.post("/ws/?ws=newGroupTopic", params, function(data){
								if (data == "1") {
									 /*post activity about this*/
									 if (SBuser) {
									    SBuser.addActivity("založil nové téma " + $('#new-topic-name').val() + ' ve skupině [[a href='+context.link+' ]]' + context.name + "[[/a]]");
									 }
								   /*return data as JSON object with URL and return value*/
								   /*
								   var link = "";
								   location.href = link;
								   */
								   location.reload();
								} else {
								  thAlert("Při zakládání nového tématu došlo k chybě:<br>" + data, "Chyba");
								}
				  	});
		   }
		});
	}
	
	SB.group.prototype.deleteTopic = function(tid) {
		 var context = this;
			thConfirm("Skutečně chcete smazat toto téma?","Smazat téma?", function(ret) {
		   if (ret) {
		    var params = {}
			    params['gid'] = context.id;
			    params['tid'] = tid;
			    params['ws'] = "deleteGroupTopic";
					$.get("/ws/", params, function(data){
						if (data == "1") {
							 var link = '/skupina/' + context.id + '/';
						   thAlert("Téma bylo smazáno.", "Smazání tématu",function() {location.href = link;});
						} else {
						  thAlert("Při mazání tématu došlo k chybě:<br>" + data, "Chyba");
						}
				  });
				}
		});
	 
	}

SB.group.prototype.moreNewPhotogalleries = function() {
  var offset = $('#tab-new-photos .profile-foto-box').size();
	var params = {}
	params["ws"] = "moreGroupPhotogalleries";
	params['gid'] = this.id;
	params["offset"] = offset;
	var context = this;
		$.get("/ws/", params, function(data){
			    if (data == "") {
			     $('#group-photos-show-more').hide();
			  } else {
					   $('#tab-new-photos').append(data);	
				}
	  	});
	  
	
};

SB.group.prototype.moreNewBlogs = function() {
  var offset = $('#tab-new-blogs .blog-list-entry').size();
	var params = {}
	params["ws"] = "moreGroupBlogs";
	params['gid'] = this.id;
	params["offset"] = offset;
	var context = this;
		$.get("/ws/", params, function(data){
			    if (data == "") {
			     $('#group-blogs-show-more').hide();
			  } else {
					   $('#tab-new-blogs').append(data);	
				}
	  	});
};

SB.group.prototype.moreNewActivity = function() {
  var offset = $('#tab-new-activity .profile-wall-record').size();
	var params = {}
	params["ws"] = "moreGroupActivity";
	params['gid'] = this.id;
	params["offset"] = offset;
	var context = this;
		$.get("/ws/", params, function(data){
			    if (data == "") {
			     $('#group-activity-show-more').hide();
			  } else {
					   $('#tab-new-activity').append(data);	
				}
	  	});
};
