var pagingPage;
var pagingPageRecords;
var pagingAllRecords;
var pagingSearch;
var pagingFilter;
var pagingSort;
var pagingLinkObj;


function lecturesList()
{
	this.lecturesListInit = function()
	{
		var llObj = new lecturesList;

		// bind clik on  lecture
		for(var j=0; j<$(".l_title a").length; j++)
		{
			llObj.bindClickOnLecture($(".l_title a:eq(" + j + ")"));
		}
		
		// paging
		this.parsePagingData();
		this.updatePaging();
		
		// bind click on add lecture
		llObj.bindClickOnLecture($(".addlecture:first"));
	}
	
	this.parsePagingData = function()
	{
		var ps = $(".paging:first").attr("id");
		ps = ps.split("|");
		try
		{
			pagingLinkObj = $(".paging a:first");
			pagingPage = ps[1];
			pagingPageRecords = ps[2];
			pagingAllRecords = ps[3];
			pagingSearch = ps[4];
			pagingFilter = ps[5];			
			pagingSort = ps[6];		
		}
		catch(e) {}		
	}
	
	this.updatePaging = function()
	{
		var pageRecords = parseInt(pagingPageRecords);
		var allRecords = parseInt(pagingAllRecords);		
		var page = parseInt(pagingPage);		
		var search = pagingSearch.trim();
		var pagingObj = $(".paging:first");		
		var pageUrl;		
		var allPages;
		var linkObj;
				
		if(isNaN(pagingPageRecords) || isNaN(pagingAllRecords) || isNaN(page)) return false;
		allPages = Math.ceil(allRecords/pageRecords);
		
		// first, prev
		if(page>1)
		{
			// first
			linkObj = pagingLinkObj.clone();					
			linkObj.html(lang.producer.lecturesList.paging.first);		
			linkUrl = links.lecturesList.lecturesList;
			linkUrl = linkUrl.replace("%search%", encodeURIComponent(search));
			linkUrl = linkUrl.replace("%page%", 1);
			linkObj.attr("href", linkUrl);
			this.bindClickOnPagingPage(linkObj);			
			linkObj.appendTo(pagingObj);			
			// prev
			linkObj = pagingLinkObj.clone();					
			linkObj.html(lang.producer.lecturesList.paging.prev);		
			linkUrl = links.lecturesList.lecturesList;
			linkUrl = linkUrl.replace("%search%", encodeURIComponent(search));
			linkUrl = linkUrl.replace("%page%", page-1);
			linkObj.attr("href", linkUrl);
			this.bindClickOnPagingPage(linkObj);			
			linkObj.appendTo(pagingObj);	
		}
		
		for(var j=1; j<=allPages; j++)
		{
			linkObj = pagingLinkObj.clone();			
			// current
			if(page==j)			
			{
				linkObj.html(j);
				linkObj.addClass("selected");
				this.bindClickOnPagingPage(linkObj);			
				linkObj.appendTo(pagingObj);				
			}
			else
			{
				if(j>=page-3 && j<=page+3)
				{
					linkUrl = links.lecturesList.lecturesList;
					linkUrl = linkUrl.replace("%search%", encodeURIComponent(search));
					linkUrl = linkUrl.replace("%page%", j);
					linkObj.attr("href", linkUrl);
					linkObj.html(j);
					this.bindClickOnPagingPage(linkObj);			
					linkObj.appendTo(pagingObj);					
				}
			}
		}
		
		// next, last
		if(page<allPages)
		{
			// next
			linkObj = pagingLinkObj.clone();					
			linkObj.html(lang.producer.lecturesList.paging.next);		
			linkUrl = links.lecturesList.lecturesList;
			linkUrl = linkUrl.replace("%search%", encodeURIComponent(search));
			linkUrl = linkUrl.replace("%page%", page+1);
			linkObj.attr("href", linkUrl);
			this.bindClickOnPagingPage(linkObj);			
			linkObj.appendTo(pagingObj);			
			// last
			linkObj = pagingLinkObj.clone();					
			linkObj.html(lang.producer.lecturesList.paging.last);		
			linkUrl = links.lecturesList.lecturesList;
			linkUrl = linkUrl.replace("%search%", encodeURIComponent(search));
			linkUrl = linkUrl.replace("%page%", allPages);
			linkObj.attr("href", linkUrl);
			this.bindClickOnPagingPage(linkObj);			
			linkObj.appendTo(pagingObj);		
		}				
	}
	
	this.bindClickOnPagingPage = function(el)
	{
		if(el.attr("href")!=undefined)
		{
			if(el.attr("href").length>0)
			{
				el.bind("click", function(){
					var url = $(this).attr("href");
					var mwObj = new main;
					mwObj.loadUrl("lecturesList", url);
					return false;
				});			
			}
		}
	}
		
	this.bindClickOnLecture = function(el)
	{
		el.bind("click", function(){
			var url = $(this).attr("href");
			var mwObj = new main;
			mwObj.loadUrl("lecture", url);
			return false;
		});
	}
	
	
	this.refreshList = function()
	{
		var mainWin = findWindow("main");
		var listUrl = mainWin.$("iframe[name=iframe_lecturesList]").attr("src");
		var newLoad = 0;	
		var m = new main;						
		
		// check if list has been loaded
		if(listUrl==undefined) newLoad = 1;
		else if(listUrl.trim().length==0) newLoad = 1;				
					
		if(newLoad)
		{	
			// load default win...					
			var url = links.lecturesList.lecturesList;
			url = url.replace("%page%", 1);
			url = url.replace("%search%", "");
			m.loadUrl("lecturesList", url);
		}
		else
		{
			// reload current list
			m.reloadWindow("lecturesList");
		}	
	}
	
	this.searchLectures = function(url, postParams, formElement)
	{
		var srch = postParams["search"].trim();
		var m = new main;
		url = url.replace("%page%", "1");
		url = url.replace("%search%", encodeURI(srch));
		m.loadUrl("lecturesList", url);
	}
	
	this.updateLecture = function(ID_Lecture, Enabled, Title, Lecturer, Description, LastAccessDate, LastAccessTime)
	{
		ID_Lecture = parseInt(ID_Lecture);
		if(ID_Lecture==0 || isNaN(ID_Lecture)) return;
		
		var enabledObj = $("#lecture_" + ID_Lecture + " .l_enabled:first");
		var lecturerObj = $("#lecture_" + ID_Lecture + " .l_lecturer:first");
		var descriptionObj = $("#lecture_" + ID_Lecture + " .l_description:first");
		var titleObj = $("#lecture_" + ID_Lecture + " .l_title a:first");
		
		try
		{
			if(Enabled!=undefined && Enabled!=null)
			{
				if(Enabled==1)
				{
					enabledObj.removeClass("no");
					enabledObj.addClass("yes");
				}
				else
				{
					enabledObj.removeClass("yes");
					enabledObj.addClass("no");			
				}
			}
			if(Description!=undefined && Description!=null) descriptionObj.html(Description);
			if(Title!=undefined && Title!=null) titleObj.html(Title);
			if(Lecturer!=undefined && Lecturer!=null) lecturerObj.html(Lecturer);
			if(LastAccessDate!=undefined && LastAccessDate!=null && LastAccessTime!=undefined && LastAccessTime!=null)
			{
				var timeStr = LastAccessDate + "&nbsp;" + lang.common.at +  "&nbsp;" + LastAccessTime;
				enabledObj.html(timeStr);
				
			}			
		}
		catch(e) {}
	}
	
}