var site;

$(document).ready(function(){
	
	$("#sendInviteMail").css("cursor","pointer").click(function(){
		params['mail_address'] = $("#inviteMail").val();
		$.post(
			'/hoge/friend_sendInviteMail',
			params,
			function (data, status){
				//alert(data);
				if(data == "invalidAddress") {
					$("#mail_error_message").html('Invalid Address!');
				}else{
					$("#mail_error_message").html('Mail is sent!');
				}
			}
		);
	});
	
	$(".showFriends").css("cursor","pointer").click(function(){
		site = $(this).attr("alt");
		makeWindow(site);
		if( $(this).attr("name").match(/login/i) ){
			var html = makeLoginHtml(site);
			$("#outServicePop").html(html);
			$("#inviteFriendList").show("nomarl");
			return;
		}
	
		params = new Object();
		params['site'] = site;
		$.post(
			'/hoge/friend_'+ site +'friends',
			params,
			function (data, status){
				//console.log(data);
				if(!data || data == "login") {
					var html = makeLoginHtml(site);
					$("#outServicePop").html(html);
				}else if(data == "none"){
					$("#outServicePop").html('<p style="position: relative; top: 120px; font-size:120%;">There are no friends listed in this service.</p>');
				}else{
					var html = makeListHtml(decodeJsonData(data));
					$("#outServicePop").html(html);
					listEventLisener();
				}
			}
		);
		$("#inviteFriendList").show("nomarl");
	});
	
});

function listEventLisener(){
	
	$("#friendList :checkbox").click(function(){
		if ($(this).attr("checked")) {
			$("#check" + $(this).val()).css("background","#e2f9fb").css("color","#07a5d3");
		} else {
			$("#check" + $(this).val()).css("background","#ffffff").css("color","#4a4a4a");
			$("#selectAll").attr({checked: ""});
		}
	});
	
	$(".td").css("cursor","pointer").click(function(){
		if ($("#sendlist" + $(this).attr("id")).attr("checked")) {
			$("#sendlist" + $(this).attr("id")).attr({checked: ""});
			$("#check" + $(this).attr("id")).css("background","#ffffff").css("color","#4a4a4a");
			$("#selectAll").attr({checked: ""});
		} else {
			$("#sendlist" + $(this).attr("id")).attr({checked: "checked"});
			$("#check" + $(this).attr("id")).css("background","#e2f9fb").css("color","#07a5d3");
		}
	});
	
	$("#sendInvite").css("cursor","pointer").click(function(){
		sendInvite(site);
	});
	
	$("#selectAll").change(function(){
		if ($(this).attr("checked")) {
			$("#friendList :checkbox").each(function(){
				$(this).attr({checked: "checked"});
				$("#check" + $(this).val()).css("background","#e2f9fb").css("color","#07a5d3");
			});
		} else {
			$("#friendList :checkbox").each(function(){
				$(this).attr({checked: ""});
				$("#check" + $(this).val()).css("background","#ffffff").css("color","#4a4a4a");
			});
		}
	});
}

function sendInvite(site) {
	var sendlist = "";
	$("#outServicePop :checked").each(function(){
		sendlist += $(this).val();
		sendlist += ",";
	});
	
	params = new Object();
	params['sendlist'] = sendlist.slice(0, -1);
	params['site'] = site;
	$.post(
		'/hoge/friend_invite'+ site +'',
		params,
		function (data, status){
			if(data == "login") {
				var html = makeLoginHtml('facebook');
				$("#outServicePop").html(html);
			}else{
				var html = '<p style="position: relative; top: 120px; font-size:120%;">Invitation is sent.</p>';
				$("#outServicePop").html(html);
				setTimeout(
					function(){
						$("#inviteFriendList").hide('normal');
					}, 2000
				);
			}
		}
	);
}

function makeWindow(site){
	switch(site){
		case "twitter": $("#listTitle").html('<img src="/img/ttl_invite_twitter.png" alt="twitter\'s Friends List" />'); break;
		case "facebook": $("#listTitle").html('<img src="/img/ttl_invite_facebook.png" alt="Facebook\'s Friends List" />'); break;
		case "myspace": $("#listTitle").html('<img src="/img/ttl_invite_myspace.png" alt="MySpace\'s Friends List" />'); break;
		default: break;
	}
	$("#outServicePop").html('<div style="position: relative; top: 95px;"><img src="/img/ajax_loader.gif" /><br />Loading....</div>');
}

function makeListHtml(data){
	var html = '';
	//html += '<input type="checkbox" id="selectAll" name="select_all_switch" checked="checked" value="all"/>Select All';
	html += '<p class="select_all" align="left"><input type="checkbox" id="selectAll" name="select_all_switch" checked="checked" value="all" /><label for="select_all">Select All</label></p>';
	html += '<div class="list" id="friendList">';
	html += '<table cellpadding="0" cellspacing="0" summary="Friends List">';
	for(var i=0; i<data.length; i++) {
		if(data[i]["send_flag"] == "true"){
			html += '<tr id="check'+ i +'" class="selected">';
			html += '<td class="check"><input type="checkbox" id="sendlist'+ i +'" name="sendlist['+ i +']" value="'+ i +'" checked/></td>'
		}else{
			html += '<tr id="check'+ i +'">';
			html += '<td class="check"><input type="checkbox" id="sendlist'+ i +'" name="sendlist['+ i +']" value="'+ i +'"/></td>';
		}
		
		html += '<td class="td" id="'+ i +'" style="width: 50px;"><img src="'+ data[i]["image_url"] +'" alt="thumb" width="50px" height="50px" /></td>';
		html += '<td class="td" id="'+ i +'">'+ data[i]["name"] +'</td>';
		html += '</tr>';
	}
	html += '</tr></table></div>';
	html += '<p class="btn"><img class="btn_send" src="/img/btn_send_invitation.gif" alt="Send Invitation" id="sendInvite"/></p>';
	
	return html;
}

function makeLoginHtml(site){
	var html = '';
	html += '<div style="position: relative; top: 100px;">';
	html += '<p style="font-size:120%;">Please try again after logging in through the button below.</p><br/><br/>';
	switch(site){
		case "twitter":
			html += '<a href="/api/TwitterAPI_auth"><img src="/img/twitter_toolbar_popup_btn_add.png" alt="Add Twitter" class="btn_twitter_add" /></a>';
			break;
		case "facebook":
			html += '<a href="/api/FacebookAPI_auth"><img src="/img/facebook_toolbar_popup_btn_add.png" alt="Add Facebook" class="btn_facebook_add" /></a>';
			break;
		case "myspace":
			html += '<a href="/api/MyspaceAPI_auth"><img src="/img/myspace_toolbar_popup_btn_add.png" alt="Add MySpace" class="btn_myspace_add" /></a>';
			break;
	}
	html += '</div>';
	return html;
}

function getScaleRate(w, h){
	var rate;
	if(50/w < 50/h){
		rate = 50/w;
	}else{
		rate = 50/h
	}
	return rate;
}

function decodeJsonData(jdata) {
	var orderStr = "cardData = "+ jdata;
	eval(orderStr);
	return cardData;
}