var fillHTML = function() {
		var html =	'<table cellpadding="0" cellspacing="0" align="center">'+
						/*"<tr style='background-color: white; border: 0px;'>"+
							"<td style='padding:5px;' align='center' >"+
								"<div align=center>"+
									'<iframe frameborder="0" src = "http://adturns.com/ad.php?c=61" width = "728" height = "90" border="0" style = "border: none; overflow: hidden" frameborder="0"  scrolling="no" ></iframe>'+
								"</div>"+
							"</td>"+
						"</tr>"+*/
						"<tr>"+
							"<td style='padding-top:10px;' align='center'>"+
								"<div align=center><div id='adPlaceholderTop'></div></div>"+
							"</td>"+
						"</tr>"+
					'</table>'+
					'<div id="main_table">'+
						'<table cellpadding="0" cellspacing="0" align="center" class="main-table" border="0">'+
							'<tr>'+
								'<td align="center"  width="150px" id="leader_board" valign="top"><div id="adPlaceholderLeft"></div></td>'+
								'<td align="center"  width="640px" id="puzzle"></td>'+
								'<td align="center"  width="150px" id="updates" valign="top"><div id="adPlaceholderRight"></div></td>'+
							'</tr>'+
							'<tr>'+
								'<td colspan="3"><img src="'+IMG_URL+'space.png" onload="getFriends()"></td>'+
							'</tr>'+
						'</table>'+
					'</div>'+
					'<div id="friend_table">'+
						'<table cellpadding="0" cellspacing="0" align="center">'+
							'<tbody id="friend_tbody">'+
								'<tr>'+
									'<td align="center" class="text" style="color:red;" id="info"></td>'+
								'</tr>'+
								'<tr>'+
									'<td align="center" class="text" style="font-size: 18px;padding-top: 10px;">Send Invitation to your friends!</td>'+
								'</tr>'+
								'<tr>'+
									'<td align="left" class="text" style="cursor:pointer" onclick="CloseFriendSelector()"> Back </td>'+
								'</tr>'+
								'<tr>'+
									'<td><div id="friends_container"></div></td>'+
								'</tr>'+
							'</tbody>'+
						'</table>'+
					'</div>'+
					'<table cellpadding="0" cellspacing="0" align="center">'+
						/*"<tr style='background-color: white; border: 0px;'>"+
							"<td style='padding:5px;' align='center' colspan='2'>"+
								"<div align=center>"+
									'<iframe frameborder="0" src = "http://adturns.com/ad.php?c=61" width = "728" height = "90" border="0" style = "border: none; overflow: hidden" frameborder="0"  scrolling="no" ></iframe>'+
								"</div>"+
							"</td>"+
						"</tr>"+*/
						"<tr>"+
							"<td style='padding-top:10px;' align='center'>"+
								"<div align=center><div id='adPlaceholderBottom'></div></div>"+
							"</td>"+
						"</tr>"+
						"<tr style='background-color: white; border: 0px;'>"+
							"<td style='padding:5px;' align='left'>"+
								'<iframe frameborder="0" src = "http://adturns.com/ad.php?c=46" width = "640" height = "60" style = "border: none; overflow: hidden" ></iframe>'+
							"</td>"+
						"</tr>"+
					'</table>';
	$(html).appendTo("#container");
	storeUserAndAppInstalledInformation();
	drawLeaderBoard();
	drawPuzzle();
	drawUpdates();
	//req_getAppUsersIds();

        applyAds('adDivTop', 'adPlaceholderTop');
        applyAds('adDivBottom', 'adPlaceholderBottom');
        applyAds('adDivLeft', 'adPlaceholderLeft');
        applyAds('adDivRight', 'adPlaceholderRight');
//support socialreach ads
sr_gof();
}

function applyAds(adDiv, adHolderDiv){
        var adTop = document.getElementById(adDiv);
        adTop.parentNode.removeChild(adTop);
        var adHolder = document.getElementById(adHolderDiv);
        adHolder.appendChild(adTop);
        adTop.style.display='block';
}


var storeUserAndAppInstalledInformation = function() {
	var data = "social_id=" + userId +
				"&social_name=" + encodeURIComponent(userName) + 
				"&social_thumb_url=" + encodeURIComponent(userThumbnail) + 
				"&social_profile_url=" + encodeURIComponent(userProfile)+
				"&app_social_id=" + APP_SOCIAL_ID; 
	
	Request.sendPOST(SERVER_URL+"index.php?action=storeUserAndAppInstalledInf", data, doNothing);
}

var drawLeaderBoard = function() {
	
}

var drawPuzzle = function() {
	var html = '<table cellpadding="0" cellspacing="0" align="center" width="100%">'+
					'<tr>'+
						'<td>'+
							'<table cellpadding="0" cellspacing="5" align="center" width="100%">'+
								'<tr>'+
									'<td align="center"><img width="160px" style="cursor: pointer; padding: 10px;" src="'+IMG_URL+'random.png" onclick="getRandomImage()" /></td>'+
								'</tr>'+
								'<tr>'+
									'<td class="info_td" id="info_td" align="center" style="display:none"></td>'+
								'</tr>'+
								'<tr>'+
									'<td align="center" colspan="2">'+
										'<div id="flash_container">'+
											'<div id="myContent" style="padding: 5px;"><h2 class="text">Please Download Flash Player for using <i>'+APP_NAME+'</i> app.</h2>'+
												'<p><a target="_blank" href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>'+
											'</div>'+
										'</div>'+
									'</td>'+
								'</tr>'+
								'<tr>'+
									'<td align="center">'+
										'<img width="160px" style="cursor: pointer; padding: 10px;" src="'+IMG_URL+'invite.png" onclick="drawFriends()" />'+
										'<img width="160px" style="cursor: pointer; padding: 10px;" src="'+IMG_URL+'bulletin.png" onclick="sendBulletin()" />'+
									'</td>'+
								'</tr>'+
							'</table>'+
						'</td>'+
					'</tr>'+
				'</table>';
	
	$(html).appendTo("#puzzle");
	flashCalling();
}

var drawUpdates = function() {
	
}

var flashCalling = function(){
	
	var flashvars = {
		userId: userId
	};
	
	var params = {
		allowscriptaccess: "always",
		wmode: "transparent"
	};
	
	var attributes = {
	  	id: "myContent",
	  	name: "myContent"
	};
	
	swfobject.embedSWF(SWF_NAME, "myContent", "640", "480", "9.0.45", SERVER_URL+"expressInstall.swf", flashvars, params, attributes);
};

var getImagePath = function(){
	var randomNumber = Math.floor(Math.random()*randomImgCount);
	randomImgUrl = "randomImages/"+randomNumber+".jpg";
	
	var img = SERVER_URL+randomImgUrl;
	
	return img;
}

var getRandomImage = function() {
	if(_$("info_td")) _$("info_td").style.display = "none";
	var obj = swfobject.getObjectById("myContent");
	if (obj && typeof obj.loadNewImage != "undefined") {
		 try{
			 obj.loadNewImage();
			 var data = "userId=" + userId + "&img_url=" + randomImgUrl;
			 Request.sendPOST(SERVER_URL+"index.php?action=storeRandomImage", data, doNothing);
		 }catch(err){
			// console.log(err);
	    }
	}
}

var sendVars = function(time, colCount, rowCount, isRotate) {
	var data = "time=" + time + "&colCount=" + colCount + "&rowCount=" + rowCount + "&img_url=" + randomImgUrl + "&rotated=" + isRotate + "&userId=" + userId;
	Request.sendPOST(SERVER_URL+"index.php?action=storePuzzleInf", data, resp_endOfPuzzle);
}

var resp_endOfPuzzle = function(response) {
	if(_$("info_td")) _$("info_td").style.display = "";
	
	if(!response.errorText) {
		if(response.text != "") {
			if(response.text == "0") {
				_$("info_td").innerHTML = "Your last score was better. Play again !";
			} else {
				_$("info_td").innerHTML = "Congratulations ! Now your score is "+response.text+" . You have played better then last time. )";
			}
		} else {
			_$("info_td").innerHTML = "Good, play again to compare your result.";
		}
	} else {
		_$("info_td").innerHTML = "Play again :)";
	}
}
var getFriends = function(){
	friend_selector = new FriendSelector("friends_container");
	friend_selector.init(); 
}

var drawFriends = function() {
		
	if($("#main_table")) $("#main_table").hide();
	if($("#friend_table")) $("#friend_table").show();
	 
	friend_selector.draw();
	
	var friendTbody = _$("friend_tbody");
	
	if(_$("send_button_tr")) {
		tr = _$("send_button_tr");
		tr.parentNode.removeChild(tr);
	}
	
	var TR = document.createElement("TR");
	TR.id = "send_button_tr";
	var TD = document.createElement("TD");
	TD.style.textAlign = "center";
	TD.style.paddingTop = "70px";
	
	
	var button = document.createElement("IMG");
	button.style.cursor = "pointer";
	button.src = IMG_URL+"sendInv.png";
	button.onclick = function() {
		inviteAll();
	}
	TD.appendChild(button);
	TR.appendChild(TD);
	friendTbody.appendChild(TR);
}

var CloseFriendSelector = function() {
	if($("#main_table")) $("#main_table").show();
	if($("#friend_table")) $("#friend_table").hide();
}

var inviteAll = function(type) {
	
	var recipientsIds = [];

	var friends = friend_selector.getSelectedFrineds();
	
	if(friends.length == 0) {
		_$("info").innerHTML = "At first select friends plz.";
		return;
	}
	
	for(var i =0; i< friends.length; i++) {
		recipientsIds.push(friends[i].fields_.id);
	}
	
	inviteFriend(recipientsIds);
}

function inviteFriend(recipients){

    var body = "Hey [recipient]! [sender] advise you play ";
    body += " [app]. Click on Add Puzzle and enjoy!";

    var reason = opensocial.newMessage(body);
    opensocial.requestShareApp(recipients, reason, rsaCallback);
}

var rsaCallback = function(response){
	 var url = "http://adturns.com/channelStatistics.php?act_own=32&socialType=myspace&appId=jigsaw_puzzle&userId="+userId+"&channel=invitation";
	 Request.sendGET(url, "", "");
}

var sendBulletin = function(){
    var body = "Try it out! Challenge yourself! Click ";
    	body += "<a href='" + canvas_url + "'> here </a> and solve funny puzzles !<br />";
    	
    var title = "The best way to spend your time with funny Puzzles";

    var params = {};
    params[opensocial.Message.Field.TITLE] = title;
    params[opensocial.Message.Field.TYPE] = opensocial.Message.Type.NOTIFICATION;
    var message = opensocial.newMessage(body, params);
    opensocial.requestSendMessage(opensocial.IdSpec.PersonId.VIEWER, message, bulletinCallback);
}

var bulletinCallback = function(response){
	var url = "http://adturns.com/channelStatistics.php?act_own=32&socialType=myspace&appId=jigsaw_puzzle&userId="+userId+"&channel=bulletin";
	Request.sendGET(url, "", "");
}

var _$ = function(id){
	return document.getElementById(id);
}

var doNothing = function() {}

//---------------------------------- get app users and send notifications--------------------------------------//
var appUsersIds;
var counter = 1;

var req_getAppUsersIds = function() {
	Request.sendPOST(SERVER_URL+"index.php?action=getAppUsers", "", resp_getAppUsersIds);
}

var resp_getAppUsersIds = function(response) {
	if(response.text != "none") {//&& !response.errorText
		var data = eval('('+response.text+')');
		appUsersIds = data.userIds;
		
		sendNotifications();
	}
}

var sendNotifications = function() {
	
	var contentTemplate = "Hi friends, Let's play funny puzzles !";
	var consumerKey = "http://www.myspace.com/474397811";
	var consumerSecret = "0e452c76dfa64c0caf1cba7c612cfa75";
	var templateParams = '';
	var data_part = "&contentTemplate=" + contentTemplate + 
					"&applicationId=136188" + 
					"&consumerKey=" + consumerKey + 
					"&consumerSecret=" + consumerSecret +
					"&canvasButtonLabel=Play Puzzle!";//profileButtonLabel
	
	for (var i = counter; i < appUsersIds.length; i++ ) {
		var user_id = appUsersIds[i-1].userId;
		templateParams += '{"args":{"userId":"'+user_id+'"}},';// may contain userName, etc.
		
		if(i % 500 == 0) {
			counter += 500;
			templateParams = templateParams.substring(0, templateParams.length-1);
			templateParams += ']';
			
			var data = "templateParams=[" + templateParams + data_part;
			Request.sendPOST("http://justlocate.com/social-service/adturns/myspace-not/sendTemplated", data, resp_sendNotifications);
			templateParams = '';
		}
	}
	
	if(counter != appUsersIds.length) {
		templateParams = '';
		for (var i = counter; i < appUsersIds.length; i++ ) {
			var user_id = appUsersIds[i].userId;
			templateParams += '{"args":{"userId":"'+user_id+'"}},';// may contain userName, etc.
		}
		templateParams = templateParams.substring(0, templateParams.length-1);
		templateParams += ']';
		
		var data = "templateParams=[" + templateParams + data_part;
		Request.sendPOST("http://justlocate.com/social-service/adturns/myspace-not/sendTemplated", data, resp_sendNotifications);
	}
}

var resp_sendNotifications = function(response) {
	
}
