/*
 * JavaScript interface to the SB network.
 * class SB.page - manipualtion with the pages 
 *
 * Requirements: jQuery library 1.4.2 and above
 * Copyright (C) 2010 Tomas Hnilica.   All Rights Reserved.
 */
 
/**
Interface to the page
*/ 

SB.page = function(pid, a, init) {
	 if (init == null) init = true;
   this.pid = pid;
   this.a = a;
   if (init) {
   		this.addPagesControls();
		  this.addActivityControls();
		  this.addPagePhotoControls();
		  //this.addPhotoGalleryControls();
		  this.addBlogControls();
		  this.addBlogPostControls();
		  this.addEventsControls();
		  this.addEventControls();
		  this.addProfileControls();
		  this.addPageProfilePhotoControls();
		  this.embedlyWall();

			/*live for embeded clicks*/
		  $('a.embedly').live("click", function(e){
		    e.preventDefault();
		    $(this).parent().parent().find('.embed').toggle();
		  });		  


	}      
};

SB.page.prototype.embedlyWall = function() {
	$('.embed-container').remove();
	
	/*faster approach: embedly does join of URLs and only one call to the embedly site. We need to go with own scripts inside - javascript or php..*/
	$('.profile-wall-activity-text').linkify();
	$('.profile-wall-activity-text a').embedly( {maxWidth:300}, function(oembed, dict){ 
											 var output = "<div class='embed-container'><div class='embed-preview'><a class='embedly' href='#'><img src='"+oembed.thumbnail_url+"' /></a></div>";
										   output += "<div class='embed-info'><a class='embedly' href='#'><span class='embed-title'>"+oembed.title+"</span></a><br>"+dict.node.attr("href") +"<div class='embed-description'>"+oembed.description+"</div></div>";
		   								 output += oembed['code'];
											 output += "<div class='clr'></div></div>";	
												dict.node.after(output);
								});


};


SB.page.prototype.addActivity = function(message, ref_subject, ref_id, ref_url, ref_users, callback) {
		var params = {}
		params["ws"] = "addActivity";
		if (message == "") return;
		params["msg"] = message;
		params["ref_subject"] = ref_subject;
		params["ref_id"] = ref_id;
		params["ref_url"] = ref_url;
		params["ref_users"] = ref_users;
		params["page"] = this.pid;
		var context = this;
		$.get("/ws/", params, function(data){
			if (callback) callback(data);
	  });
}


SB.page.prototype.addPagesControls = function() {
	if (this.a) {
      var newbutton = "<a href='#' onclick='return SBpage.addPage();' id='page-add' class='fr'>Přidat stránku</a>";
    	$('#pages-toolbar').append(newbutton);
   }
}


SB.page.prototype.addPage = function() {
	thPrompt("Zadejte název nové stránky", "", "Nová stránka", function(r,v){
		if (!r) return;
		location.href = '/page/new/' + v + '/';
	});
}


SB.page.prototype.addPageProfilePhotoControls = function() {
	if (this.a) {
		  $('#profile-photo').attr('title','Kliknutím změníte profilovou fotku');
		  $('#profile-photo').css('cursor','pointer');
      $('#profile-photo').tipsy({gravity: 's'});	
      var context = this;
      $('#profile-photo').click(function(){
       	context.changeProfilePhoto();
      });
	}
}

SB.page.prototype.changeProfilePhoto = function() {
	    var context = this;
			var uploadHTML = "";
			uploadHTML += '<input id="profile-image-upload" name="profile-image-upload" type="file" />';
			/*uploadHTML +='	  <a href="#" onclick="$(\'#uploadify-image\').uploadifyUpload(); return false;" class="jq-button">Nahrát</a>';*/

	jQuery("<div />", { id:"profile-photo-dialog", html: uploadHTML, "title": "Nahrát profilovou fotku" }).dialog({
		  width: 420, 
		  height: 200,
		  modal: true,
			buttons: {
				"Nahrát": function() { 
					$('#profile-image-upload').uploadifyUpload();
					/*$(this).dialog("close");*/
				},
				"Zrušit": function() { 
					$(this).dialog("close");
					$('#profile-photo-dialog').remove();
				}
			}	
		  });
			
			/*get the session ID from cookies. The uploadify is flash based and the session is not correct  - Adobe bug*/
			var start = document.cookie.indexOf("PHPSESSID=");
			var end = document.cookie.indexOf(";", start); // First ; after start
			if (end == -1) end = document.cookie.length; // failed indexOf = -1
			var cookie = document.cookie.substring(start+10, end);
		/*this is a hack and possible security problem*/
			cookie = SESSION_COOKIE;
	
				$("#profile-image-upload").uploadify({
					'buttonText'		 : 'Vybrat',
					'uploader'       : '/swf/uploadify.swf',
					'folder'         : '/images',
					'fileDesc'			 : 'Fotografie (*.jpg)',
					'cancelImg'      : '/css/uploadify/cancel.png',
					'fileExt'				 : '*.jpg;',
					'script'				 : '/ws/?ws=uploadProfilePhoto',
					'multi'          : false,
					'sizeLimit'          : 4096000,
					'scriptData'     : { 'PHPSESSID': cookie, 'for' : 'page', 'id' : context.pid  },
					'onComplete'	 : function (evt, queueID, fileObj, response, data) {
									$('#profile-photo').replaceWith(response);
									$('#profile-photo-dialog').dialog("close");
									$('#profile-photo-dialog').remove();
									SBpage.addPageProfilePhotoControls();
									
						}
				});
 
}

/**
Change profile photo dialog with separate options for all profiel photo versions
*/
SB.page.prototype.changeProfileImages = function() {
		  $('#profile-photo-dialog').remove();
	    var context = this;
			var uploadHTML = "<p align='left'>Ujistěte se, že byly nahrány všechny velikosti fotografie. Manuální upload nahrazuje automatický resize nahrané fotky.</p>";
			uploadHTML += '<select id="page-image-type" ><option value="small">Malá (56x56)</option><option value="medium">Střední (71x71)</option><option value="large">Velká (170x170)</option><option value="grey">Šedá (96x96)</option></select><br><input id="page-image" name="page-image" type="file" />';

	jQuery("<div />", { id:"profile-photo-dialog", html: uploadHTML, "title": "Nahrát profilové fotky" }).dialog({
		  width: 440, 
		  height: 250,
		  modal: true,
			buttons: {
				"Nahrát": function() { 
					var s = $('#page-image-type').val();
					$('#page-image').uploadifySettings('script','/ws/?ws=uploadSingleProfilePhoto&size=' + s);
					$('#page-image').uploadifyUpload();
				},
				"Zavřít": function() { 
					$(this).dialog("close");
					$('#profile-photo-dialog').remove();
				}
			}	
		  });
			
		$('.jq-button').button();	
		/*this is a hack and possible security problem*/
			cookie = SESSION_COOKIE;
	
				$("#page-image").uploadify({
					'buttonText'		 : 'Vybrat',
					'auto'					 : false,
					'multi'					 : false,
					'uploader'       : '/swf/uploadify.swf',
					'folder'         : '/images',
					'fileDesc'			 : 'Fotografie (*.jpg, *.png, *.gif)',
					'cancelImg'      : '/css/uploadify/cancel.png',
					'fileExt'				 : '*.jpg;*.png;*.gif',
					'script'				 : '/ws/?ws=uploadSingleProfilePhoto',
					'multi'          : false,
					'scriptData'     : { 'PHPSESSID': cookie, 'for' : 'page', 'id' : context.pid},
					'onComplete'	 : function (evt, queueID, fileObj, response, data) {
									alert("OK");
						}
				});

}

/**
manage top banner of the page
*/
SB.page.prototype.changeBanner = function() {
	var b = new SB.banner("page-" + this.pid);
	b.w = 590;
	b.h = 190;
	b.edit();
}

/*append controls for the activity part */
SB.page.prototype.addActivityControls = function() {
	   var context = this;
     /*append action for new post*/
     $('#profile-wall-addpost').unbind();
     $('#profile-wall-addpost').click(function(){
       		var message = $('#profile-wall-new-post').val();
       		if (message == "" || message == $('#profile-wall-new-post').attr('prefilled')) return false;
     		  context.addActivity(message, '', '', '', '', function(data){
							$(data).hide().prependTo('#profile-wall-activities').slideDown("slow");
					   $('#profile-wall-new-post').val('');
     		  });
     	return false;
     	
     	});

     	/*append some style to the new post area*/
			$('#profile-wall-new-post').focus(function() {
	     	  $('#profile-wall-new-post').val('');
	     	  $('#profile-wall-new-post').css('color','#ffffff');
			});

			/*embedly implemetayion to the add activity textarea*/
			$('#profile-wall-new-post').bind('keyup mouseup',function(event){
				  if ( (event.type == 'keyup' && (event.keyCode == 32 || event.keyCode == 13 || event.keyCode == 86)) || event.type == 'mouseup') {
				  	var link = "";
				  	var hrefs = jQuery("<div />", { id:"temp-tad", html: $(this).val()}).linkify().find("a");
				  	if (hrefs.size() > 0) link = $(hrefs).attr("href");
				  	$("#temp-tad").remove();
				     if (link!='') {
								$.embedly(link, { maxWidth:300 }, function(oembed){ 
												$("#profile-wall-embedview").show();
										   var output = "<div class='embed-container'><div class='embed-preview'><a class='embedly' href='#'><img src='"+oembed.thumbnail_url+"' /></a></div>";
										   output += "<div class='embed-info'><a class='embedly' href='#'><span class='embed-title'>"+oembed.title+"</span></a><br>"+link+"<div class='embed-description'>"+oembed.description+"</div></div>";
		   								 output += oembed['code'];
											 output += "<div class='clr'></div></div>";	
												$('#profile-wall-embedview').html(output);
								});
				     		
				     }
					}
		   });
		   

	    $('#profile-wall-new-post').val('Napište co máte právě na mysli.');
	    $('#profile-wall-new-post').css('color','#bbbbbb');

};

SB.page.prototype.deleteActivity = function(act) {
		var actid = act.attr('actid');
		thConfirm("Skutečně chcete smazat tento záznam?","Smazat záznam?", function(ret) {
		   if (ret) {
					SBuser.deleteActivity(actid, function() {
					   act.hide('slow', function() {act.remove()});
					});
		   }
		});
		return false;

};

SB.page.prototype.moreActivity = function() {
  var offset = $('.profile-wall-record').size();
	var params = {}
	params["ws"] = "moreActivity";
	params["uid"] = this.uid;
	params["offset"] = offset;
	var context = this;
		$.get("/ws/", params, function(data){
			    if (data == "") {
			     $('#profile-wall-show-more').hide();
			  } else {
					   $('#profile-wall-activities').append(data);	
				}
	  	});
	  
	
};

SB.page.prototype.addProfileControls = function() {
      var editbutton = "<li><a href='#' onclick='return SBpage.editPersonalData();' id='profile-edit'>editovat údaje</a></li>";
      var intbutton = "<li><a href='#' onclick='return SBpage.setInterests();' id='profile-edit-interests'>nastavit zájmy</a></li>";
      var admbutton = "<li><a href='#' onclick='return SBpage.setAdmins();' id='profile-edit-admins'>nastavit správce</a></li>";
      var pphotobutton = "<li><a href='#' onclick='return SBpage.changeProfileImages();' id='profile-edit-images'>profilové foto</a></li>";
      var banbutton = "<li><a href='#' onclick='return SBpage.changeBanner();' id='profile-edit-banner'>banner</a></li>";
      var dbutton = "";
      /*if (SBuser.su) dbutton = "<li><a href='#' onclick='return SBpage.deletePage();' id='profile-edit-banner'>smazat</a></li>";*/
   if (this.a) {
    	$('#profile-toolbar').html(editbutton + intbutton + admbutton + pphotobutton + banbutton + dbutton);
   }
}

SB.page.prototype.deletePage = function() {
	/*todo*/
	return false;	
}

SB.page.prototype.editPersonalData = function() {

		$("#profile-order-email").show();
   /*change the data divs to editable*/
   var context = this;
   $('.profile-user-property-value').each(function() {
      var val = $(this).html();
      var key = $(this).attr('key');
      if (key=="about") {
      	/*replace <br> to newline to the textarea.*/
      	val = str_replace("<br>","\n",val);
      	var code = "<textarea name='"+$(this).attr('key')+"' id='personal-"+$(this).attr('key')+"'>" + val + "</textarea>";
      } else {
      	var code = "<input type='text' name='"+$(this).attr('key')+"' value='"+val+"' id='personal-"+$(this).attr('key')+"'>";
        /*
        code += "&nbsp;" + context.permsSelect(key);
        var perm = $(this).attr('perm');
        */
      }
      $(this).html(code);
      /*$('#perm_' + key).val(perm);*/
   });

   /*
   var pcode = this.permsSelect("profile");
   var gperms = "<div class='profile-user-property'><div class='profile-user-property-label'>Práva prohlížet profil:</div><div class='profile-user-property-value'>" + pcode + "</div></div>";
   $('#profile-user-properties').prepend(gperms);
   var gp = $('#profile-user-properties').attr('perm');
   $('#perm_profile').val(gp);
   */
   
   
   /*change toolbar*/
   var cancelbtn = "<li><a href='#'  onclick='return SBpage.getPersonalData();' id='profile-edit'>Zrušit</a></li>";
   var savebtn = "<li><a href='#' onclick='return SBpage.savePersonalData();'>Uložit</a></li>";
   $('#profile-toolbar').html(savebtn + cancelbtn);
   /*$('.jq-button').button();*/
   /*customize the form*/
  /* $('#personal-birthdate').datepicker( { altFormat: 'dd. mm. yy', dateFormat: 'dd. mm. yy' } );*/
  
   /*append form validation methods, add fields to check */
   /*$('#personal-birthdate').addClass('dateCZ');*/
   
   $('form-profile-user-properties').validate();
   
   return false;
   
}


SB.page.prototype.setInterests = function() {
	var params = {}
	params["ws"] = "getInterests";
	params["for"] = "page";
	params["id"] = this.pid;
	
	var context = this;
		$.get("/ws/", params, function(data){
			  var code = "<span style='text-align:left;' id='interest-dialog'><ul>";
			  var pageInterests = data['page'];
				for (i in data) if (i!='page'){
				  var id = i;
				  var q = data[i];
				  var ch = "";
				  if ($.inArray(i,pageInterests) != -1 ) ch = " checked ";
				  code += "<li><input type='checkbox' name='interest-dialog-option'  value='"+i+"' " + ch + "/>&nbsp;"+q+"</li>";
				}
				code += "</ul></span>";
				
				thDialog(code, "Vyberte Vaše zájmy", function(r) {
					if (!r) return;
					var params = {}
					params["ws"] = "setInterests";
					params["for"] = "page";
					params["id"] = context.pid;
					$("#interest-dialog").find("input[@name='interets-dialog-option']:checked").each(function() {
						params["interest-" + $(this).val()] = $(this).val();
					}); 
					$.get("/ws/", params, function(data){
							if (data == "") data = "Uloženo.";
							thAlert(data,"Zájmy uživatele", function() {
								document.location.reload();
								});
					});
			
					
					});
		},"json");
};

SB.page.prototype.setAdmins = function() {
	var code = "<table id='admin-new' style='width=250px;'>";
  code += "<tr><td><input type='text' name='adm-input' id='adm-input' style='width:200px;'><input type='hidden' name='adm' id='adm'></td><td><button id='addAdm' class='jq-button' onclick='SBpage.addAdmin();'>přidat</button></td></tr>";
  code += "</table>";
  code += "<div id='admList'></div>";

  thDialog(code, "Nastavit správce", function(r){
  })
  
  	$('#pm-body').autoResize({
		    onResize : function() {
		        $(this).css({opacity:0.8});
		    },
		    animateCallback : function() {
		        $(this).css({opacity:1});
		    },
		    animateDuration : 100,
		    extraSpace : 30
		});
		
		$(".jq-button").button();
		
   $('#adm-input').autocomplete({
			source: "/ws/?ws=suggestUsers",
			minLength: 2,
			select: function( event, ui ) {
				$('#adm').val(ui.item.id);
				$('#addAdm').show();
      }
   });	
   
   $('#addAdm').hide();
   this.getAdmins();

};
SB.page.prototype.getAdmins = function() {
	var params = {}
  params['ws'] = "pageAdmins";
  params['id'] = this.pid;
	var context = this; 
	$.get("/ws/", params, function(data){
		var rc = "<table style='width:250px;'>";
		for (i in data){
		  rc += "<tr><td align='left'>" + data[i] + "</td><td align='right'><a href='#' onclick='SBpage.remAdmin(\""+data[i]+"\")'>odebrat</a></td></tr>";
		}
		rc+="</table>";
		$('#admList').html(rc);
		$(".jq-button").button();
	}, "json");
};


SB.page.prototype.addAdmin = function() {
	var nu = $('#adm').val();
	$('#adm').val('');
	$('#adm-input').val('');
	$('#addAdm').hide();
	var params = {}
  params['ws'] = "addPageAdmin";
  params['id'] = this.pid;
  params['uid'] = nu;
	var context = this; 
	$.get("/ws/", params, function(data){
		context.getAdmins();
	});
}

SB.page.prototype.remAdmin = function(uid) {
	var context = this; 
	thConfirm("Odebrat uživatele " + uid + " ze seznamu správců?","Správci stránky",function(r){
		if (!r) return;
		var params = {}
	  params['ws'] = "remPageAdmin";
	  params['id'] = context.pid;
	  params['uid'] = uid;
		$.get("/ws/", params, function(data){
			context.getAdmins();
		});

		});
}

SB.page.prototype.savePersonalData = function() {
    /*check data*/
    if (!$('#form-profile-user-properties').valid()) {
       return false;
    }
    
    /*get the data*/
    var params = {}
   	$('#profile-user-properties').find("input, textarea, select").each(function() { 
			params[ this.name ] = this.value; 
		});
		params['id'] = this.pid;
	 var context = this; 
		$.post("/ws/?ws=savePageProperties", params, function(data){
	      context.getPersonalData();
   });
   return false;

};
  
SB.page.prototype.getPersonalData = function() {
	var params = {}
	params["ws"] = "getPageProfileHTML";
	params["id"] = this.pid;
	$.get("/ws/", params, function(data){
    $('#profile-user-properties').replaceWith(data);
    SBpage.addProfileControls();
    $('.jq-button').button();
	});	
	return false;
  
  
};

/*
CREATE BLOG OBJECT INSTEAD (definitely YES since we use fast same methods in page and profile objects)?
*/

SB.page.prototype.addBlogControls = function() {
   if (this.a) {
     /*add controls to the blog posts list */
     var code = "<a href='#' onclick='SBpage.addBlog();return false;' class='buttonLike fr'><span>nový zápis</span></a>";
     $('#blog-toolbar').append(code);
  } 
};

SB.page.prototype.addBlog = function() {
	var context = this;
	thPrompt("Zadejte název nového zápisu", "", "Nový zápis do blogu", function(r,v){
		if (!r) return;
		location.href = '/blog-zapis/'+context.pid+'/new/' + v + '/';
	})
}

SB.page.prototype.addBlogPostControls = function() {
   $('#blog-entry-toolbar').html('');
   if (this.uid == SBuser.uid || SBuser.superUser() || this.a ) {
     /*add controls to the blog post */
     var code = "<a href='#' onclick='SBpage.editBlogPost(); return false;' class='buttonLike fr'><span>upravit</span></a>";
     code += "<a href='#' onclick='SBpage.deleteBlogPost(); return false;' class='buttonLike fr'><span>smazat</span></a>";
     $('#blog-entry-toolbar').append(code);

     /*save ID of the blog to this object */
     this.blogID = $('#blog-post-title').attr('blogid');
     
     if ($('#blog-post-title').attr('new') == '1') {
     	this.editBlogPost();
     }
 
   }
   
   /*append back button*/
   code = "<a href='/pageblog/"+this.pid+"/' class='buttonLike fr'><span>Zpět k blogu</span></a>";
   $('#blog-entry-toolbar').append(code);
	 
	 /*$('.jq-button').button();*/

}

SB.page.prototype.editBlogPost = function() {
   /*change the data divs to editable*/
   var context = this;
      
   var title = $('#blog-post-title').attr('title');
   var content = $('#blog-post-text').html();  
   
   var titlecode = "<tr><td>Nadpis: </td><td><input type='text' name='blog-entry-head' value='"+title+"' id='blog-entry-head' class='blog-entry-head'></td>"; 
   var ctrlcode = "<table>" + titlecode + "</table>";
   $('#blog-post').prepend(ctrlcode);
   $('#perm_perm').val($('#blog-post-title').attr('perm'));
   $('#blog-post-title').html('');
   

   var textcode = "<textarea name='blog-entry-text' id='blog-entry-text' class='blog-entry-text'>" + content + "</textarea>"; 
   $('#blog-post-text').html(textcode);
   
   
   /*change toolbar*/
   var cancelbtn = "<a href='#' class='buttonLike fr' onclick='SBpage.getBlogPost(); return false;' id='profile-edit'><span>zrušit</span></a>";
   var savebtn = "<a href='#' class='buttonLike fr' onclick='SBpage.saveBlogPost(); return false;'><span>uložit</span></a>";
   var deletebtn = "<a href='#' onclick='SBpage.deleteBlogPost(); return false;' class='buttonLike fr'><span>smazat</span></a>";
   $('#blog-entry-toolbar').html(savebtn + cancelbtn + deletebtn);
   $('.jq-button').button();

   /*customize the form (add wysiwyg, etc...)*/
   $('#blog-entry-text').wysiwyg();
   
   return false;
   
}

SB.page.prototype.deleteBlogPost = function() {
	var bid = this.blogID;
		var context = this;
		var params = {}
		params["ws"] = "deleteBlogPost";
		params["id"] = bid;
		
		thConfirm("Skutečně chcete smazat tento záznam?","Smazat záznam?", function(ret) {
		   if (ret) {
				$.get("/ws/", params, function(data){
						window.location = '/pageblog/' + context.pid + '/';
				});
		   }
		});
		return false;
}

/*retrieve blog entry code */
SB.page.prototype.getBlogPost = function() {
		var params = {}
		params["ws"] = "getBlogPost";
		params["id"] = this.blogID;
		var context = this;
		$.get("/ws/", params, function(data){
					$('#blog-post').html(data);
					/*update controls*/
					context.addBlogPostControls();
	  	});
	  $('#profile-right').show();
		
}

/*save the blog data  */
SB.page.prototype.saveBlogPost = function() {
    var params = {}
    params['head'] = $('#blog-entry-head').val();
    params['text'] = $('#blog-entry-text').val();
    params['perm'] = $('#perm_perm').val();
    params['id'] = this.blogID;
    var context = this;

		$.post("/ws/?ws=saveBlogPost", params, function(data){
					alert(data);
			    context.getBlogPost();
	  	});
	  	return false;
   
}




/*
CREATE PHOTOGALLERY OBJECT INSTEAD?
*/

SB.page.prototype.addPagePhotoControls = function() {
   if (this.a) {
     var code = "<a href='#' onclick='SBpage.addPhotogallery();return false;' class='fr'><span>nová galerie</span></a>";
     $('#photo-toolbar').append(code);
  } 
};

SB.page.prototype.addPhotogallery = function() {
	var context = this;
	thPrompt("Zadejte název nové fotogalerie", "", "Nová galerie", function(r,v){
		if (!r) return;
		location.href = '/fotogalerie/'+context.pid+'/new/' + v + '/';
	})
};

/*

SB.page.prototype.addPhotoGalleryControls = function() {
   
   $('#photogallery-toolbar').html('');
   if (this.a) {
     var code = "<a href='#' onclick='SBpage.addPhotos(); return false;' class='buttonLike fr'><span>přidat fotky</span></a>";
     code += "<a href='#' onclick='SBpage.editPhotoGallery(); return false;' class='buttonLike fr'><span>upravit</span></a>";
     code += "<a href='#' onclick='SBpage.deletePhotoGallery(); return false;' class='buttonLike fr'><span>smazat</span></a>";
     $('#photogallery-toolbar').append(code);

     this.photoGalleryID = $('#photogallery').attr('pgid');
     if ($('#photogallery').attr('new') == '1') this.addPhotos();
 
   }
   
   code = "<a href='/pagephoto/"+this.pid+"/' class='buttonLike fr'><span>Zpět k fotogaleriím</span></a>";
   $('#photogallery-toolbar').append(code);

}

SB.page.prototype.addPhotos = function() {
			$('#photo-upload').show('slow');
			var uploadHTML = "<h3>Nahrát fotografie</h3>";
			uploadHTML += '<div id="dialog-image-browser-fileQueue"></div>';
			uploadHTML +='	  <input type="file" name="uploadify-image" id="uploadify-image" />';
			uploadHTML +='	  <div style="margin-top:0px; padding-top:0px; display:inline; position:relative; top:-12px;">';
			uploadHTML +='	  <a href="#" onclick="$(\'#uploadify-image\').uploadifyUpload(); return false;" class="jq-button">Nahrát fotky</a>  <a href="#" onclick="$(\'#uploadify-image\').uploadifyClearQueue(); return false;" class="jq-button">Vyčistit frontu</a>';
      uploadHTML +='    <a href="#" onclick="$(\'#photo-upload\').hide(\'slow\');  return false;" class="jq-button">Zavřít</a>';
			uploadHTML +='	  </div>';
			$('#photo-upload').html(uploadHTML);
			var context = this;
			
			var start = document.cookie.indexOf("PHPSESSID=");
			var end = document.cookie.indexOf(";", start); // First ; after start
			if (end == -1) end = document.cookie.length; // failed indexOf = -1
			var cookie = document.cookie.substring(start+10, end);
			cookie = SESSION_COOKIE;
	

				$("#uploadify-image").uploadify({
					'buttonText'		 : 'Vybrat',
					'uploader'       : '/swf/uploadify.swf',
					'script'         : '',
					'cancelImg'      : '/css/uploadify/cancel.png',
					'folder'         : '/images',
					'queueID'        : 'dialog-image-browser-fileQueue',
					'fileDesc'			 : 'Fotografie (*.jpg)',
					'fileExt'				 : '*.jpg;',
					'auto'           : false,
					'multi'          : true,
					'sizeLimit'          : 4096000,
					'scriptData'     : { 'PHPSESSID': cookie },
					'onAllComplete'	 : function (event, data) {
						           
												$('#photo-upload').hide();
												var link = jQuery.url.attr("path"); 
												if ($('#photogallery').attr('new') == '1' ) {
											    SBpage.addActivity('založil novou [[a href='+link+' ]]fotogalerii[[/a]]', 'photogallery', context.photoGalleryID, link);
											  } else {
											    SBpage.addActivity('přidal nové fotky do galerie [[a href='+link+' ]]'+$('#photogallery-name').html()+'[[/a]]','photogallery', context.photoGalleryID, link);
											  }
												context.getPhotoGallery();
												
						}
					  
				});
				
				$('.jq-button').button();
				   
};

SB.page.prototype.editPhotoGallery = function() {
   $('#photo-upload').hide('slow');
   
   var context = this;
   var name = $('#photogallery-name').html();
   var desc = $('#photogallery-desc').html();  
   
   var namecode = "<tr><td>Název: </td><td><input type='text' name='photogallery-edit-name' value='"+name+"' id='photogallery-edit-name' class='photogallery-edit-name'></td></tr>"; 
  var desccode = "<tr><td>Popis: </td><td><textarea name='photogallery-edit-desc' id='photogallery-edit-desc' class='photogallery-edit-desc'>" + desc + "</textarea></td></tr>"; 
   var ctrlcode = "<table>"+namecode+desccode+"</table>";
   
   $('#photogallery').prepend(ctrlcode);
   $('#perm_gperm').val($('#photogallery').attr('perm'));
   $('#photogallery-name').remove();
   $('#photogallery-desc').remove();

 
    $('.photogallery-photo-desc').each(function() {
      var val = $(this).html();
      var code = "<textarea name='photogallery-photo-desc-edit' class='photogallery-photo-desc-edit'>"+val+"</textarea>";
      $(this).html(code);
      $(this).show();
   });
   var editcode = "<input type='radio' name='photo-default'>Titulní foto<br><input type='checkbox' name='photo-delete'>Smazat";
    $('.photogallery-photo').append(editcode);
    $('.photogallery-photo').addClass('photogallery-photo-edit');
    var titlephoto = $('#photogallery').attr('titlephoto');
    if (titlephoto!='') {
    	var titlediv = $("div[photo="+titlephoto+"]");
    	if (titlediv) {
    	   titlediv.find("input[name=photo-default]").each(function() {
    	      $(this).attr('checked',true);
    	   });
    	}
    }

   var cancelbtn = "<a href='#' class='buttonLike fr' onclick='SBpage.getPhotoGallery();' id='profile-edit'><span>zrušit</span></a>";
   var savebtn = "<a href='#' class='buttonLike fr' onclick='SBpage.savePhotoGallery();'><span>uložit</span></a>";
   $('#photogallery-toolbar').html(savebtn + cancelbtn);
   $('.jq-button').button();

   return false;
   
};

SB.page.prototype.savePhotoGallery = function() {
    var params = {}
    params['name'] = $('#photogallery-edit-name').val();
    params['desc'] = $('#photogallery-edit-desc').val();
    params['perm'] = $('#perm_gperm').val();
    params['id'] = this.photoGalleryID;
    var context = this;

    $('textarea[name=photogallery-photo-desc-edit]').each(function() {
      var val = $(this).val();
      var id = $(this).parent().parent().attr('photo');
      params['comment' + id] = val;
   });
   
   $('#photogallery').find("input[name=photo-default]").each(function() {
      if ($(this).attr('checked')) {
      	params['photo'] = $(this).parent().attr('photo');
      }
   });
   
   $('#photogallery').find("input[name=photo-delete]").each(function() {
   	if ($(this).attr('checked')) {
        params['delete' + $(this).parent().attr('photo')] = 'yes';
    }
   });
   
		$.post("/ws/?ws=savePhotoGallery", params, function(data){
					context.getPhotoGallery();
	  	});
	  	return false;
};


SB.page.prototype.deletePhotoGallery = function() {
		var context = this;
		var params = {}
		params["ws"] = "deletePhotoGallery";
		params["id"] = this.photoGalleryID;
		
		thConfirm("Skutečně chcete smazat tuto fotogalerii?","Smazat fotogalerii?", function(ret) {
		   if (ret) {
				$.get("/ws/", params, function(data){
						window.location = '/pagephoto/' + context.pid + '/';
				});
		   }
		});
		return false;	
};

SB.page.prototype.getPhotoGallery = function() {
		var params = {}
		params["ws"] = "getPhotoGallery";
		params["id"] = this.photoGalleryID;
		var context = this;
		$.get("/ws/", params, function(data){
					$('#photogallery-box').html(data);
					context.addPhotoGalleryControls();
					$('a[rel*=lightbox]').lightBoxClone(); 
	  	});
};
*/



/*EVENTS CODE */

SB.page.prototype.addEventsControls = function() {
		if (this.a) {
     var code = "<a href='#' onclick='SBpage.addEvent();return false;' class='fr'>nová událost</a>";
     $('#events-toolbar').append(code);   
		}
};

SB.page.prototype.addEvent = function() {
	var context = this;
	thPrompt("Zadejte název nové události", "", "Nová událost", function(r,v){
		if (!r) return;
		location.href = '/event/new/' + v + '/' + context.pid + '/';
	})
};

SB.page.prototype.addEventControls = function() {
		/*recognize who can add events*/
		 var code = "";
     code += "<a href='#' onclick='SBpage.editEvent(); return false;' class='fr'><span>upravit</span></a>";
     code += "<a href='#' onclick='SBpage.deleteEvent(); return false;' class='fr'><span>smazat</span></a>";
		 code += "<a href='#' onclick='SBpage.setEventInterests(); return false;' class='fr'>nastavit zájmy</a>";
     $('#event-toolbar').append(code);     	     	
     this.eventID = $('#event').attr('eid');
};

SB.page.prototype.editEvent = function() {
   var context = this;
   
   $('.event-property').each(function() {
      var val = $(this).html();
      var key = $(this).attr('key');
      if (key=="event-desc") {
      	/*replace <br> to newline to the textarea.*/
      	val = str_replace("<br>","\n",val);
      	var code = "<textarea name='"+key+"' id='"+key+"'>" + val + "</textarea>";
      } else {
      	var code = "<input type='text' name='"+key+"' value='"+val+"' id='"+key+"'>";
      }
      $(this).html(code);
   });
   
   /*customize the form*/
   
   
   AnyTime.picker( "event-start",{ format: "%d.%m.%Y %H:%i"} );
   AnyTime.picker( "event-end",{ format: "%d.%m.%Y %H:%i"} );
	 
	 /*
	 var rangeDemoFormat = "%d.%m.%Y %H:%i";
   var rangeDemoConv = new AnyTime.Converter({format:rangeDemoFormat});

		$("#event-start").change( function(e) { 
		      var fromDay = rangeDemoConv.parse($("#event-start").val()).getTime();
		      $("#event-end").
		          AnyTime_noPicker().
		          val(rangeDemoConv.format(fromDay)).
		          AnyTime_picker(
		              { earliest: fromDay,
		                format: rangeDemoFormat
		              } );
		      });

	*/
  /* $('#event-start, #event-end').datepicker( { altFormat: 'dd.mm.yy', dateFormat: 'dd.mm.yy' } );*/
   /*$('#event-start, #event-end').addClass('dateCZ');*/

   var cancelbtn = "<a href='#'  onclick='return SBpage.getEvent();' id='event-edit' class='fr'>Zrušit</a>";
   var savebtn = "<a href='#' onclick='return SBpage.saveEvent();' class='fr'>Uložit</a>";
   $('#event-toolbar').html(savebtn + cancelbtn);
   return false;
};

/*SB.profile used for events*/
SB.page.prototype.deleteEvent = function() {
	
		var context = this;
		var params = {}
		params["ws"] = "deleteEvent";
		params["id"] = this.eventID;
		
		thConfirm("Skutečně chcete smazat tuto událost?","Smazat událost?", function(ret) {
		   if (ret) {
				$.get("/ws/", params, function(data){
					alert(data);
					window.location = '/events/' + context.pid + '/';
				});
		   }
		});
		return false;	
};

SB.page.prototype.getEvent = function() {
	$("#event-start").AnyTime_noPicker();
	$("#event-end").AnyTime_noPicker();
	
	var params = {}
	params["ws"] = "getEventHTML";
	params["id"] = this.eventID;
	$.get("/ws/", params, function(data){
    $('#event').replaceWith(data);
    $('#event-toolbar').html('');
    SBpage.addEventControls();
	});	
	return false;
  
};

SB.page.prototype.saveEvent = function() {
    /*check data*/
    /*
    if (!$('#form-profile-user-properties').valid()) {
       return false;
    }
    */
    
    /*get the data*/
    var params = {}
    params['id'] = this.eventID;
		$('#event').find("input, textarea, select").each(function() { 
			params[ this.name ] = this.value; 
		});
	 var context = this; 
	 $.post("/ws/?ws=saveEvent", params, function(data){
      $('#event-toolbar').html('');
      context.getEvent();
	 });
   return false;
};

SB.page.prototype.setEventInterests = function() {
	var params = {}
	params["ws"] = "getInterests";
	params["for"] = "event";
	params["id"] = this.eventID;
	
	var context = this;
		$.get("/ws/", params, function(data){
			  var code = "<span style='text-align:left;' id='interest-dialog'><ul>";
			  var eventInterests = data['event'];
				for (i in data) if (i!='event'){
				  var id = i;
				  var q = data[i];
				  var ch = "";
				  if ($.inArray(i,eventInterests) != -1 ) ch = " checked ";
				  code += "<li><input type='checkbox' name='interest-dialog-option'  value='"+i+"' " + ch + "/>&nbsp;"+q+"</li>";
				}
				code += "</ul></span>";
				
				thDialog(code, "Vyberte zájmy události", function(r) {
					if (!r) return;
					var params = {}
					params["ws"] = "setInterests";
					params["for"] = "event";
					params["id"] = context.eventID;
					$("#interest-dialog").find("input[@name='interets-dialog-option']:checked").each(function() {
						params["interest-" + $(this).val()] = $(this).val();
					}); 
					$.get("/ws/", params, function(data){
							if (data == "") data = "Uloženo.";
							thAlert(data,"Zájmy události", function() {
								document.location.reload();
								});
					});
			
					
					});
		},"json");
};



SB.page.prototype.informAboutPoints = function(obj) {
	 /*todo: test that the element is on the user profile, may be in another user page!!!*/
	$('#user-points-' + obj.apCat).html(obj.apTotal);
	thAlert(obj.apText,"Připsání bodů");
   
}

SB.page.prototype.pointsFromPage = function(cat) {
	var curr = parseInt($('#user-points-' + cat).html());
  return curr;   
}

SB.page.prototype.updatePoints = function(cat) {
		var params = {}
		params["ws"] = "getPoints";
		params["cat"] = cat;
		var context = this;
		$.get("/ws/", params, function(data){
       $('#user-points-' + cat).html(data);
		});
}

SB.page.prototype.updateAllPoints = function() {
   this.updatePoints(0);
   this.updatePoints(1);
   this.updatePoints(2);
   this.updatePoints(3);
   this.updatePoints(4);
}
