var currentSubjectDetail="";
var currentCourseDetail="";
var lehuGroupURL="http://group.lehu.shu.edu.cn/BizClub.aspx?sysid=";

function getLehuGroupURL(){
	var subject=getSubject(currentSubjectDetail);
	var course=getCourse(currentCourseDetail);
	return lehuGroupURL+subject["id"]+course["id"];
}

function clearCurrentDetail(){
	currentSubjectDetail="";
	currentCourseDetail="";	
	currentCourseTimeTable=""
}

function setSubjectPreference(preference,sid){
	var subject=getSubject(sid);
	if(subject!=null){
		subject.preference=preference.attr("value");
		if(preference.attr("value")==0.0){
			showMessage({type:0,brief:"警告 您没有为该课程选择偏好",detail:"您没有为该课程选择偏好，系统将视此课程的偏好为0(比“这个可以不选”更低)。"});
		}
	}
}

function setCoursePreference(preference,cid){
	var course=getCourse(cid);
	if(course!=null){
		course.preference=preference.attr("value");
		if(preference.attr("value")==0.0){
			showMessage({type:0,brief:"警告 您没有为该老师选择偏好",detail:"您没有为该老师选择偏好，系统将视此老师的偏好为0(比“这个可以不选”更低)。"});
		}
	}
}

function readyInfoPanelAction(){
	$(".idTabs a").focus(function(){
		this.blur();
	});
	
	$("#drSubjectPreference").change(function(){
		if(currentSubjectDetail!=""){
			setSubjectPreference($(this),currentSubjectDetail);
		}
	});
	
	$("#drCoursePreference").change(function(){
		if(currentCourseDetail!=""){
			setCoursePreference($(this),currentCourseDetail);
		}
	});
	
	$("#lehuGroup").attr("hint","在乐乎圈子中<br>寻找这位老师的参考信息");
	
	$("#lehuGroup").click(function(){
		if(currentSubjectDetail!="" && currentCourseDetail!=""){
			window.open(getLehuGroupURL());
		}
	});
	
	$("#lehuGroup").mouseover(function(){
		$(this).toggleClass("lehuGroupMouseOver");
	}).mouseout(function(){
		$(this).toggleClass("lehuGroupMouseOver");
	});
	
}

function clearDetailRender(){
	$("input.detailRenderRender").attr("value","");
	$("select.detailRenderRender").attr("value","");
}

function showSubjectDetail(sid){
	
	if(!isSubjectComplete(sid)){
		
		loadSubjectDetail(sid);
		
	}else{
		clearDetailRender();
		
		var subject=getSubject(sid);
		
		$("#"+detailRenderId+"SubjectId").attr("value",subject["id"]);
		$("#"+detailRenderId+"SubjectName").attr("value",subject["name"]);
		$("#"+detailRenderId+"SubjectCredit").attr("value",subject["credit"]);
		$("#"+detailRenderId+"SubjectPreference option").each(function(){
			if(parseFloat($(this).attr("value"))==Math.floor(subject["preference"])){
				$(this).attr("selected",true);
			}
		});
		
		currentSubjectDetail=sid;
		currentCourseDetail="";
	}

}

function getSubjectPreference(id){
	var prefer=preferenceMap[id.charAt(4).toUpperCase()];
	return prefer;
}

function storeSubjectDetail(json){
	
	/*
	var subject=data.split(valueSplit);
	
	var sid=parseInt(subject[0]);
	var id=subject[1];
	var name=subject[2];
	var credit=parseFloat(subject[3]);
	var prefer=storeSubjectDetail.arguments[1]==null?getSubjectPreference(id):storeSubjectDetail.arguments[1];
	var included=storeSubjectDetail.arguments[2]==null?false:storeSubjectDetail.arguments[2];
	
	$subjects[sid]={"id":id,"name":name,"credit":credit,"preference":prefer,"included":included};
	*/
	
	var prefer=(storeSubjectDetail.arguments[1]==null || isNaN(storeSubjectDetail.arguments[1]))?getSubjectPreference(json.id):storeSubjectDetail.arguments[1];
	var included=storeSubjectDetail.arguments[2]==null?false:storeSubjectDetail.arguments[2];
	
	json.preference=prefer;
	json.included=included;
	
	addSubjects(json);
	
}

function loadSubjectDetail(sid){

	if(!isSubjectComplete(sid)){
	
		$.getJSON("servlet/SubjectDetail",{sid:sid},function(json){
															 
			storeSubjectDetail(json);
			
			$("#"+treeListSubjectInclude+sid).attr("disabled",false);
			
			showSubjectDetail(sid);
			
		});
		
	}else{
		showSubjectDetail(sid);
	}
	
}

function showCourseDetail(cid){
	
	var course=getCourse(cid);
	
	var sid=course["sid"];

	//if(currentSubjectDetail=="" || currentSubjectDetail!=sid){
		clearCourseTimeTable();
		showSubjectDetail(sid);
	//}
	
	
	$("#"+detailRenderId+"CourseId").attr("value",course["id"]);
	$("#"+detailRenderId+"CourseName").attr("value",course["name"]);
	$("#"+detailRenderId+"CoursePreference option").each(function(){
		if(parseFloat($(this).attr("value"))==Math.floor(course["preference"])){
			$(this).attr("selected",true);
		}
	});
	
	showCourseTimeTable(cid);
	
	currentCourseDetail=cid;
	
}

function storeCourseDetail(json){
	
	/*
	var course=json.split(valueSplit);
	
	var cid=parseInt(course[0]);
	var sid=parseInt(course[1]);
	var id=course[2];
	var name=course[3];
	var prefer=storeCourseDetail.arguments[1]==null?5.0:storeCourseDetail.arguments[1];
	var included=storeCourseDetail.arguments[2]==null?false:storeCourseDetail.arguments[2];
	var times=null;
	
	$courses[cid]={"sid":sid,"id":id,"name":name,"preference":prefer,"included":included,"times":times};
	*/
	
	var prefer=(storeCourseDetail.arguments[1]==null || isNaN(storeCourseDetail.arguments[1]))?5.0:storeCourseDetail.arguments[1];
	var included=storeCourseDetail.arguments[2]==null?false:storeCourseDetail.arguments[2];
	
	json.preference=prefer;
	json.included=included;
	
	json.times=getTimeTableMap(json.times);
	
	addCourses(json);
}

function loadCourseDetail(cid){
	
	//if(currentCourseDetail=="" || currentCourseDetail!=cid){
		
		if(!hasCourse(cid)){
			
			var callback=loadCourseDetail.arguments[1];
			var param=loadCourseDetail.arguments[2];
			
			$.getJSON("servlet/CourseDetail",{cid:cid},function(json){
				
				storeCourseDetail(json);
				
				$("#"+treeListCourseInclude+cid).attr("disabled",false);
				
				showCourseDetail(cid);
				
				//loadCourseTimeTable(cid);
				
				if(callback!=null){
					callback(param);
				}
				
			});
		
		}else{
			
			showCourseDetail(cid);
			
			//loadCourseTimeTable(cid);
			
		}
	//}
}
