﻿var NEWS_STR_MAXLEN = 48;
var CURR_NEWS_PAGE = 0;
var CURR_COURSE_PAGE = 0;
var CURR_USER_PAGE = 0;

var NEWS_PER_PAGE = 4;
var COURSES_PER_PAGE = 5;
var USERS_PER_PAGE = 5;
	
var ThreadTypes = [
	['一般討論',3,new Array(),"User Discussion"],
	['最新消息',0,new Array(),"News"],
	['回饋建議',2,new Array(),"Suggestions"],
	['問題回報',1,new Array(),"Bugs/Typos"]	];
	
function trimStr(text, maxLen){
	if(text.length > maxLen) return text.substr(0,maxLen) + "...";
	else return text;
}

function CreateNav(nav_list, display_list, pageMethodName, array, itemsPerPage, idName){
	var list = document.getElementById(nav_list);
	
	var count = array.length;
	var pages = Math.ceil(count/itemsPerPage);
	var str = "";
	for(var i=0;i<pages;i++){
		str += "<div id='"+idName+"_"+i+"' class='pagSel' onclick='"+pageMethodName+"("+i+",\""+display_list+"\","+itemsPerPage+");'>"+(i+1)+"</div>";
	}
	list.innerHTML = str;
}
function CreateUserList(user_list,nav_list){
	CreateNav(nav_list, user_list,"ShowUserRange",usersDat,USERS_PER_PAGE,"user");
	ShowUserRange(0,user_list,USERS_PER_PAGE);
}
function ShowUserRange(index,user_list,itemsPerPage){
	PageSelector(CURR_USER_PAGE, index, "user");
	CURR_USER_PAGE = index;
	
	var list = document.getElementById(user_list);
	var start = itemsPerPage*index;
	var end = Math.min(itemsPerPage*index + itemsPerPage, usersDat.length);
	var str = "";
	for(var i=start;i<end;i++){
		str += WriteUser(usersDat[i]);
	}
	list.innerHTML = str;
}
function WriteUser(item){
	var str = "<div class='userItem' onclick='open_student(\""+item[0]+"\")'>";
	str += "<div class='userDetails'>";
	str += "<div class='userName'>"+item[0]+"</div>";
	str += "<div class='userLevel lvlsprite lvl_"+item[1]+"'></div>";
	str += "</div>";
	str += "<div class='userStars'>"+item[2]+"</div>";
	str += "</div>";
	return str;
}
function CreateNewsBox(news_list,nav_list){
	CreateNav(nav_list, news_list,"ShowNewsRange",newsDat,NEWS_PER_PAGE,"news");
	ShowNewsRange(0,news_list,NEWS_PER_PAGE);
}
function ShowNewsRange(index,news_list,itemsPerPage){
	PageSelector(CURR_NEWS_PAGE, index, "news");
	CURR_NEWS_PAGE = index;
	
	var list = document.getElementById(news_list);
	var start = itemsPerPage*index;
	var end = Math.min(itemsPerPage*index + itemsPerPage, newsDat.length);
	var str = ""
	for(var i=start;i<end;i++){
		str += WriteNews(newsDat[i]);
	}
	list.innerHTML = str;
}
function WriteNews(item){
	item[1] = trimStr(item[1],NEWS_STR_MAXLEN);
	
	var str = "<div class='newsItem' onclick='readNews("+item[0]+")'>";
	str += "<div class='ni_topLine'>";
	str += "<div class='niType'>" + FindNewsType(item[4]) +"</div>";
	str += "<div class='niDate'>"+item[2] + "</div>";
	str += "</div>";
	str += "<div class='newsItemTitle'>"+"● "+item[1]+"</div>";
	str += "</div>";
	return str;
}
function FindNewsType(id){
	var news=Groups[0];
	for(var i=0;i<news.length;i++){
		if(id == news[i][1]) return news[i][0];
	}
}
function CreateCourseList(course_list,nav_list){
	CreateNav(nav_list, course_list,"ShowCourseRange",coursesDat,COURSES_PER_PAGE,"course");
	ShowCourseRange(0,course_list,COURSES_PER_PAGE);
}
function ShowCourseRange(index,course_list,itemsPerPage){
	PageSelector(CURR_COURSE_PAGE, index, "course");
	CURR_COURSE_PAGE = index;
	
	var list = document.getElementById(course_list);
	var start = itemsPerPage*index;
	var end = Math.min(itemsPerPage*index + itemsPerPage, coursesDat.length);
	var str = ""
	for(var i=start;i<end;i++){
		str += WriteCourse(coursesDat[i]);
	}
	list.innerHTML = str;
}
function WriteCourse(item){
	var str = "<div class='courseItem' onclick='openCourse(\""+item[0]+"\")'>";
	str += "<div class='courseName'>"+item[1]+"</div>";
	//str += "<div class='courseLessons'>"+item[4]+"</div>";
	//str += "<div class='courseExercises'>"+item[5]+"</div>";
	str += "</div>";
	return str;
}
function PageSelector(oldIndex, newIndex, idName){
	document.getElementById(idName+"_"+oldIndex).className = "pagSel";
	document.getElementById(idName+"_"+newIndex).className = "pagSel pageActive";
}
