var skcommon = {
	$ : function(id){
		return (typeof(id) == 'string') ? document.getElementById(id) : 'undefined';
	},
	create_script : function(url){
		var script = document.createElement('script');
		script.src = url;
		script.type = 'text/javascript';
		document.getElementsByTagName('head')[0].appendChild(script);
	},
	substr_text : function(text, leng){
		var count = 0;
		var count2 = 0;
		var omitText = '';
		for(var i = 1; i <= text.length; i++){
			(escape(text.charAt(i)).length < 4) ? count += 0.58 : count += 1;
			(count <= leng) ? count2 = i : omitText = '...';
		}
		return (text.substr(0, count2) + omitText);
	}//,
};

var skcamp = {
	req_program : function(){
		var start = (new Date(2007, 8, 22, 12, 0, 0, 0).getTime()) / 1000;
		var end = (new Date(2007, 8, 22, 22, 0, 0, 0).getTime()) / 1000;
		
		var url = 'http://perlyst.labs.stickam.com/api/event/?type=application/json&callback=skcamp.load_program&rows=99&order_by=start,created_on&start=between%20' + start + '%20and%20' + end;
		skcommon.create_script(url);
	},
	user_info : {
		casts_num : 0
	},
	load_program : function(obj){
		skcamp.user_info.casts = [];
		for(var i = 0; i < obj.length; i++){
			//一周年該当ユーザであれば
			if((obj[i].flag == 'TV') && (obj[i].title.match(/([一周年])/))){
				//一周年該当ユーザとしてskcamp.user_info.castsに追加
				obj[i].title = obj[i].title.replace('[一周年]', '');
				skcamp.user_info.casts.push(obj[i]);
				
			}
		}
		skcamp.user_info.num = skcamp.user_info.casts.length;
		for(var j = 0; j < skcamp.user_info.casts.length; j++){
			skcamp.req_user_info(skcamp.user_info.casts[j].user_name);
		}
	},
	req_user_info : function(user_name){
		var url = 'http://api.stickam.com/api/user/' + user_name + '/profile?mime=json&callback=skcamp.load_user_info';
		skcommon.create_script(url);
	},
	load_user_info : function(obj){
		for(var i = 0; i < skcamp.user_info.casts.length; i++){
			if(obj.user_name == skcamp.user_info.casts[i].user_name){
				skcamp.user_info.casts[i].profile_image = obj.profile_image;
				skcamp.user_info.casts[i].screen_name = obj.screen_name;
				skcamp.user_info.casts[i].status = obj.status;
				skcamp.user_info.casts_num--;
			}
		}
		//numが0になったらリスト生成へ
		if(!skcamp.user_info.casts_num){
			skcamp.gen_casts_list();
		}
	},
	gen_casts_list : function(){
		var casts = skcamp.user_info.casts;
		var text = '';
		for(var i = 0; i < casts.length; i++){
			
			text += '<table cellspacing="0" cellpadding="0" border="0" class="sche-box">'
			+ '<tr>'
			+ '<td class="sche-boxtitle">' + skcommon.substr_text(casts[i].title, 18) + '</td>'
			+ '</tr>'
			+ '<tr>'
			+ '<td class="sche-time">時間：'
			+ (new Date(casts[i].start * 1000)).getHours() + '時';
			if ((new Date(casts[i].start * 1000)).getMinutes() < 10) {
				text += '0' + (new Date(casts[i].start * 1000)).getMinutes();
			} else {
				text += (new Date(casts[i].start * 1000)).getMinutes();
			}
			text += '分～'
			+ (new Date(casts[i].end * 1000)).getHours() + '時';
			if ((new Date(casts[i].end * 1000)).getMinutes() < 10) {
				text += '0' + (new Date(casts[i].end * 1000)).getMinutes();
			} else {
				text += (new Date(casts[i].end * 1000)).getMinutes();
			};
			text += '分</td>'
			+ '</tr>'
			+ '<tr>'
			+ '<td>'
			+ '<table cellspacing="0" cellpadding="0" border="0" class="sche-text">'
			+ '<tr>'
			+ '<td>' + skcommon.substr_text(casts[i].description, 66) + '</td>'
			+ '</tr>'
			+ '</table>'
			+ '</td>'
			+ '</tr>'
			+ '<tr>'
			+ '<td class="sche-boxbottom"/>'
			+ '</tr>'
			+ '</table>';
		}
		skcommon.$('sche-main').innerHTML = text;
	}
};


(function(){
	skcamp.req_program();
})();




