﻿function setSession(name,value){
	$.ajax({
		type: "post",
		url: "servlet/SessionInformation",
		data: "name="+name+"&value="+value,
		async: false
	});
}

function getSession(name){

	var value=$.ajax({
		type: "post",
		url: "servlet/SessionInformation",
		data: "name="+name,
		async: false
	}).responseText;
	
	return value;
}

function getRequestURL(){
	return window.location.href;
}

function getRequestBase(){
	var host=getRequestURL();
	if(host.indexOf("?")>-1){
		host=host.split("?")[0];
	}
	return host;
}

function getParametersMap(url){
	
	var map=new Object();
	
	url=url.split("#")[0];
	
	url=url.split("?");
	
	if(url.length>1){
		var params=url[1].split("&");
		
		for(index in params){
			var param=params[index].split("=");
			
			var key=param[0];
			var value=param.length>1?param[1]:null;
			
			map[key]=value;
		}
	}
	
	return map;
}

function getLoadingHTML(){
	var html="<span class=\"courseItem\"><img src=\"images/loading.gif\" alt=\"Loading\" /> Loading ...</span>";
	return html;
}

function MM_preloadImages(){
    var d=document;
	if(d.images){
		if(!d.MM_p) d.MM_p=new Array();
    	var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
		for(i=0;i<a.length;i++){
    		if (a[i].indexOf("#")!=0){
				d.MM_p[j]=new Image;
				d.MM_p[j++].src=a[i];
			}
		}
	}
}

function preloadImages(){
	MM_preloadImages("images/loading.gif","images/treeLine.png","images/treeLineLast.png","images/attentionMark.png","images/questionMark.png","images/tipsClose.png","images/tipsCloseOver.png");
}

function configAjax(){
	$(document).ajaxStart(function(){
		$("#msg").html(getLoadingHTML());
	});
	
	$(document).ajaxSuccess(function(){
		$("#msg").html("&nbsp;");
	});
}

var $countRefresher=null;
var $lastRefresh=null;
var $nextRefreshInterval=1*60*1000;

function refreshCounter(){
	
	switch(refreshCounter.arguments.length){
		case 0:
			var now=new Date();
			if(verifyFrequently($lastRefresh,now,$nextRefreshInterval)){
				$.getJSON("servlet/Counter",{timestamp:now},function(json){
					refreshCounter(json)
				});
				$lastRefresh=now;
			}
		break;
		
		case 1:
			var json=refreshCounter.arguments[0];

			$("#"+countVisited).text(json[countVisited]);
			$("#"+concurrency).text(json[concurrency]);
			$("#"+countStored).text(json[countStored]);
			$nextRefreshInterval=json[nextRefresh]/2.0;
			
			if($countRefresher!=null){
				clearTimeout($countRefresher);
			}
			
			$countRefresher=setTimeout(refreshCounter,json[nextRefresh]);
		break;

	}
}

function needRefresh(){
	with(document.body){
		if(scrollHeight-clientHeight<=scrollTop+12){
			refreshCounter();
		}
	}
}

function initCounterRefresher(){
	$countRefresher=setTimeout(refreshCounter,$nextRefreshInterval);
}

function readyMainAction(){
	
	$(".curricButton,.curricTextField,.detailRenderRender,.curricComboBox").live("mouseover",function(){
		$(this).addClass("curricHover");
	});
	
	$(".curricButton,.curricTextField,.detailRenderRender,.curricComboBox").live("mouseout",function(){
		$(this).removeClass("curricHover");
	});
	
	$(".curricButton").live("focus",function(){
		this.blur();
	});
	
	$(window).scroll(needRefresh);
	
	initCounterRefresher();
}

$(document).ready(function(){
	
	preloadImages();
	
	configAjax();
	
	//loadTreeList();
	
	readyMainAction();
	
	readyLehuAction();
	
	readyHelpAction();
	
	readyExtraPanelAction();
	
	readyTimeCubeAction();
	
	readyInfoPanelAction();
	
	readyQueryPanelAction();
	
	readyCurricPanelAction();
	
	readyTreeListAction();
	
	readyDialogAction();
	
	readyTipsAction();
	
	readyHintAction("#"+hintKey,hintKey);
	
	readyExtendsAction();
});
