var $listeners = new function(){
	var obj = {};
	var list = {
		id : "#SongList",
		defStr : null,
		domList : null,
		lists : null,
		pastNum:null,
		init : function(htmlFile){
			list.defStr = $(list.id).html();
			list.domList = $("#Weekly ul li");
			list.lists = $("#Weekly ul li").clone();
			list.pastNum = null;
			list.change(htmlFile)
		},
		change : function(htmlFile){
			var lenId = Number(htmlFile.split('.html')[0].split('list')[1])-1;
			if(lenId == list.pastNum) return;
			list.loading(true);
			list.ajax(htmlFile,function(html){
				if(!!html){
			  		$(list.id).html(html);
			  		list.current(lenId);
				  	list.pastNum = lenId;
				  	list.loading(false)
				};
			});
		},
		current : function(lenId){
			$.each(list.lists,function(i,obj){
			 	if(lenId == i){
			 		list.domList[i].className="on";
			 		$(list.domList[i]).html($(obj).find("a").text());
			 	}else{
			 		list.domList[i].className="";
			 		$(list.domList[i]).html($(obj).html());
			 	};
			});
		},
		def : function(){
			$(list.id).html((list.defStr)?list.defStr:"null");
		},
		loading : function(bool){
			if(bool){
				$("#Loading").show();
			}else{
				$("#Loading").fadeOut("fast");
			}
		},
		ajax : function(path,callback){
			$.ajax({
			  url: path,
			  dataType : "html",
			  cache: false,
			  success: function(html){
			  	callback(html)
			  },
			  error : function(XMLHttpRequest, textStatus, errorThrown){
			  	$(list.id).html(textStatus+':'+errorThrown);
			  }
			});
		}
	}
	
	
	obj.listInit = list.init;
	obj.change = list.change;
	
	return obj;
}
