var swfPagesUpload;

function lecturePages()
{
	
	this.lecturePagesInit = function()
	{
		// enejblamo brisanje 
		$(".pages_list .tumb .delete").each(function(){
			var lp = new lecturePages;
			lp.bindClickOnDelete(this);
		});
		// enejblamo klik na tumbnail
		$(".pages_list .tumb .show").each(function(){
			var lp = new lecturePages;
			lp.bindClickOnShowPage(this);
		});
		// omogocimo sort
		this.enablePagesSort();		
		
		// refresh pagea (v primeru, da reloadamo window)
		var lObj = findWindow("lecture");
		var c = new lObj.lectureContent;
		c.refreshPage();		
	}
	
	this.enablePagesSort = function()
	{
		$(".pages_list:eq(0)").sortable({
			axis: 'y',
			cursor: 'move',
			opacity: 0.7,
			revert: false,
			scrollSensitivity: 80,
			handle: '.move',
			update: function(event, ui) {

				var ID_Page = $(ui.helper.get(0)).attr("id");
				var element = $(".pages_list div#" + ID_Page + ":eq(0)");
				var prevElement = element.prev();
				var nextElement = element.next();

				ID_Page = parseInt(element.attr("id"));
				var ID_PrevPage = parseInt(prevElement.attr("id"));
				var ID_NextPage = parseInt(nextElement.attr("id"));
				var postParams = new Object;
				
				
				if(!isNaN(ID_Page))
				{
					postParams["ID_Page"] = ID_Page;
					if(!isNaN(ID_PrevPage) && ID_PrevPage!=ID_Page) postParams["ID_PrevPage"] = ID_PrevPage;
					if(!isNaN(ID_NextPage) && ID_NextPage!=ID_Page) postParams["ID_NextPage"] = ID_NextPage;					
					
					// shranimo na strežnik
					$.post(links.lecture.updatePageSort, postParams, function(data){
					}, "json");
					
					// updejatmo content viewer
					var lectureWinObj = findWindow("lecture");
					var lectureContentObj = new lectureWinObj.lectureContent;
					lectureContentObj.refreshPage();					
				}	
			}		
		});		
	}		
	
	this.bindClickOnDelete = function(file)
	{
		$(file).bind("click", function(){
									   
			if(confirm(lang.producer.editLecture.lecturePages.confirmDeletePage))
			{
				var url = links.lecture.deleteLecturePage;
				var ID_Page = parseInt($(this).parent().attr("id"));
				
				// odstranimo tumbnail :)
				$(".pages_list #" + ID_Page + ":eq(0)").remove();				
			
				// updejtamo tage 
				var tagsWinObj = findWindow("lecture/lectureTags");
				var lectureTagsObj = new tagsWinObj.lectureTags;
				lectureTagsObj.pageDeleted(ID_Page);				
				
				// updejatmo content viewer
				var lectureWinObj = findWindow("lecture");
				var lectureContentObj = new lectureWinObj.lectureContent;
				lectureContentObj.refreshPage();
							
				// pobrišemo na strežniku
				$.post(url, {ID_Page: ID_Page}, function(data){
				}, "json");
			}
		});
	}		
	
	this.bindClickOnShowPage = function(file)
	{
		$(file).bind("click", function(){
			var lp = new lecturePages;
			var id = $(file).parent().attr("id");
			lp.processShowPage(id,0,1);
			return false;
		});
	}	
	
	this.processShowPage = function(id, scrl, tag)
	{
		id = parseInt(id);
		if(isNaN(id)) return false;		
		
		var show = $(".pages_list #" + id + " .show:eq(0)");

		var title = show.attr("title");
		var location = show.attr("href");
		var id = show.parent().attr("id");
		
		var previd = show.parent().prev().attr("id");
		var nextid = show.parent().next().attr("id");
		
		var prevLocation = show.parent().prev().find(".show:eq(0)").attr("href");
		var nextLocation = show.parent().next().find(".show:eq(0)").attr("href");			

		var lectureWinObj = findWindow("lecture");
		var lectureTagsWinObj = findWindow("lecture/lectureTags");
		var lc = new lectureWinObj.lectureContent;
		var lt = new lectureTagsWinObj.lectureTags;

		lc.showContent(title, location, id, previd, nextid);
		if(tag==1) lt.tagPage(title, location, id);				
		if(scrl==1) this.scrollToPage(id);
	}	
	
	this.scrollToPage = function(pageID)
	{
		var win = $(window);
		var wh = win.height();
		var ph = $(".pages_list #" + pageID + ":eq(0)").height();
		var pp = $(".pages_list #" + pageID + ":eq(0)").position().top;		
		var lim = parseInt((wh/2) - (ph/2));		
		var np = pp - lim;
		win.scrollTop(np);
	}		

	this.lecturePagesInitButtons = function()
	{
		// ce imamo id lekcije namestimo flash upload
		if(!(parseInt(windowID)==0 || isNaN(parseInt(windowID))))
		{
			this.lecturePagesSwfUploadInit();
		}
		// enejblamo klik na import
		this.bindClickOnImportRTF();			
	}	
	
	this.updatePageTitle = function(ID_Page, Title)
	{
		var pageObj = $("#" + ID_Page + ":eq(0)");
		if(pageObj!=undefined)
		{
			pageObj.find(".show:first").attr("title", Title);
			pageObj.find(".title:first").html(Title);
		}
	}		
	
	this.bindClickOnImportRTF = function()
	{
		$(".c_lecture_pages .menu .rtf:eq(0)").bind("click", function(){
		
			var ID_Lecture = windowID;
			var url = links.lecture.importRtfData;				
			var j = 0;
			if(isNaN(ID_Lecture) || ID_Lecture == 0) return false;
			ID_Lecture = ID_Lecture + "";
						
			if(confirm(lang.producer.editLecture.lecturePages.confirmImportRtfData))
			{
				$.post(url, {'ID_Lecture': ID_Lecture}, function(data){
				
				
					if(data.Status==1)
					{
						var pagesUrl = links.lecture.showLecturePages.replace("%ID_Lecture%", data.ID_Lecture);
						var tagsUrl = links.lecture.showLectureTags.replace("%ID_Lecture%", data.ID_Lecture);						
						findWindow("lecture/lecturePages").document.location.href = pagesUrl;
						findWindow("lecture/lectureTags").document.location.href = tagsUrl;						
					}
				
				}, "json");
			}
	
		});
	}		
	
	
	this.lecturePagesSwfUploadInit = function()
	{
	
		var SessionID = readCookie("Producer")		
		if(SessionID==null || SessionID.trim().length==0) return false;
		if(isNaN(ID_Lecture) || ID_Lecture==0) return false;
		

		if(!readGlobal("swfPagesUpload"))
		{
		
			var buttonOutObj = $("#swfPageUploadPlaceHolder:eq(0)").parent();
			var bh = buttonOutObj.height() + parseInt(buttonOutObj.css("padding-top")) + parseInt(buttonOutObj.css("padding-bottom"));
			var bw = buttonOutObj.width() + parseInt(buttonOutObj.css("padding-left")) + parseInt(buttonOutObj.css("padding-right"));

			swfPagesUpload =  new SWFUpload({									
					
				// Button settings
				button_image_url: "../data/img/bg_swfupload.png",	// Relative to the Flash file				
				button_width: bw,
				button_height: bh,
				button_placeholder_id: "swfPageUploadPlaceHolder",						
														
																						
				upload_url: links.lecture.uploadLecturePage, 
				flash_url : "/swf/swfupload.swf",
				post_params: {'ID_Lecture': ID_Lecture, 'SessionID': SessionID},
				file_types : settings.Lecture_UploadFilesNames,
				file_types_description : lang.producer.editLecture.lecturePages.fileTypes,
				file_upload_limit : "1000",
				file_queue_limit : "200",
				file_size_limit : "2 MB",		
				file_dialog_complete_handler : 
					function(num_files_queued)
					{
						if(num_files_queued>0) 
						{	
							// skrijemo delete in move gumbke :)
							findWindow("lecture/lecturePages").$(".tumb .delete").css("height", "0px");
							findWindow("lecture/lecturePages").$(".tumb .move").css("height", "0px");
							this.startUpload();
						}
					}					
				,
				upload_complete_handler: 
					function(fileObj)
					{
						if(this.getStats().files_queued > 0) this.startUpload();
						else
						{
							// spet prikažemo move in delete
							var h = findWindow("lecture/lecturePages").$(".tumb .delete:first").css("width");
							findWindow("lecture/lecturePages").$(".tumb .delete").css("height", h);
							findWindow("lecture/lecturePages").$(".tumb .move").css("height", h);							
						}
					}
				,																		
				file_queued_handler : 
					function(fileObj)
					{
						var pageID = fileObj.id;
						var pageElement = findWindow("lecture/lecturePages").$(".page_template:eq(0)").clone();
						var pageTitle = fileObj.name.reverse().substr(fileObj.name.reverse().indexOf(".")+1).reverse();

						pageElement.find(".title:eq(0)").html(pageTitle);
						pageElement.find(".show:eq(0)").html(lang.producer.editLecture.lecturePages.pageWaitingForTransfer);
						pageElement.find(".show:eq(0)").attr("title", pageTitle);
						pageElement.attr("id", pageID);

						pageElement.removeClass("page_template");
						pageElement.addClass("upload");
						
						if(fileObj.name.toLowerCase()!="outline.rtf") pageElement.appendTo(findWindow("lecture/lecturePages").$(".pages_list:eq(0)"));
						findWindow("lecture/lecturePages").$(findWindow("lecture/lecturePages")).scrollTop(1000000);	

					},	
				upload_success_handler : 
					function(fileObj, data)
					{
						var pageID = fileObj.id;	
						var newPageID;
						var tumb;
						var l;
						var win = findWindow("lecture/lecturePages");
												
						data = $.evalJSON(data);
						if(data.Status==1)
						{
							if(!isNaN(parseInt(data.ID_Page)))
							{
								newPageID = data.ID_Page;	
								tumb = data.Tumb;
								file = data.File;								
								win.$(".pages_list #" + pageID + ":eq(0)").css("background-image","url(" + tumb + ")");
								win.$(".pages_list #" + pageID + " .show:eq(0)").html("");
								win.$(".pages_list #" + pageID + ":eq(0)").removeClass("upload");
								win.$(".pages_list #" + pageID + ":eq(0)").addClass("tumb");								
								win.$(".pages_list #" + pageID + " .show:eq(0)").attr("href", file);						
								win.$(".pages_list #" + pageID + ":eq(0)").attr("id", newPageID);								
								
								// skirjemo delete in move :)
								win.$(".pages_list #" + newPageID + " .delete:eq(0)").css("height", "0px");
								win.$(".pages_list #" + newPageID + " .move:eq(0)").css("height", "0px");
								
								l = new win.lecturePages;
								l.bindClickOnDelete(win.$(".pages_list #" + newPageID + " .delete:eq(0)"));
								l.bindClickOnShowPage(win.$(".pages_list #" + newPageID + " .show:eq(0)"));
							}
							else
							{
								$(".c_lecture_pages .menu .rtf:eq(0)").show();
								$(".c_lecture_pages .menu .rtf:eq(0)").css("display", "block");
							}
						}
						else
						{
							win.$(".pages_list #" + pageID + ":eq(0)").remove();										
						}
					},						
				upload_error_handler : 
					function(fileObj)
					{
						var pageID = fileObj.id;							
						findWindow("lecture/lecturePages").$(".pages_list #" + pageID + ":eq(0)").remove();						
					},						
				upload_progress_handler : 
					function(fileObj, bComplete, bTotal)
					{
						var percent = parseInt(bComplete/bTotal*100);
						var pageID = fileObj.id;
						findWindow("lecture/lecturePages").$(".pages_list #" + pageID + " .show:eq(0)").html(lang.producer.editLecture.lecturePages.pageTransfering + ' ' + percent + "%");
					},
				debug: false											  																								
															
			});
			
		}	
	}	

}