var container;
var errorDiv;
var hasTaken;
var approved;
var osContainer;
var surveyImgUrl;
var PAGE=0;
var allFriends = []; 
var friendsTotalCount = 1;
var friendPage = 0;
var friendsToInvite = [];
var app=null;
var selectedGift=0;
var levels;

var init = function(){
	req_getLevels();
	//embedGoogleAnalitics();
}

var req_getLevels = function(){
	selectTab("present");
	if (!levels){
		Request.sendGET(SERVICE_URL+"q"+presentId+"?t=levels&userId="+userId+'&ajax=1', resp_getLevels, CONTENT_TYPE_JSON, false);
	}else{
		drawGiftSelector();
		refreshIframes();
	}
}

var req_getInbox = function(action, params){
	selectTab("inbox");
	container.innerHTML = loadingImgStr;
	Request.sendGET(SERVICE_URL+"q"+presentId+"?t=presentlist_thanks&userId="+userId, resp_getInbox, CONTENT_TYPE_TEXT);
}

var req_getHTMLToDisplay = function(action, params){
	if (action == "presentlist_thanks"){
		Request.sendGET(SERVICE_URL+"q"+presentId+"?t=presentlist_thanks&userId="+userId+params, resp_getInbox, CONTENT_TYPE_TEXT);	
	}
}

var receivedGiftImgs = null;
var resp_getInbox = function(response){
	container.innerHTML = response.text;
	if ($("presentlist")){	
		receivedGiftImgs = $("presentlist").getElementsByTagName("img");
		currentGift = 0;
		var giftId = receivedGiftImgs[currentGift].getAttribute("giftId");
		str = "<table cellspacing=13><tr>"+
			"<td align=left><p onclick='prevReceivedGift()' class=button_prev onmouseover='this.className=\"button_prev_over\"' onmouseout='this.className=\"button_prev\"'></p></td>"+
			"<td align=center style='width:182px;'><a href='#inboxAll'><img src='"+IMG_URL+"viewAll.png' ></a></td>"+
			"<td align=right><p onclick='nextReceivedGift()' class=button_next onmouseover='this.className=\"button_next_over\"' onmouseout='this.className=\"button_next\"'></p></td>"+
		"</tr></table>"+
		"<div align=center id=currentGift style='padding:10px;width:510px'></div>"+
		"<div id=ad_middle>"+getAd()+"</div>";
		$("enlargedCard").innerHTML = str;
		enlargeCard(giftId);
	}
	//gadgets.window.adjustHeight();
}

var prevReceivedGift = function(){
	if (currentGift > 0){
		currentGift--;
	}else{
		currentGift = receivedGiftImgs.length-1;
	}
	var giftId = receivedGiftImgs[currentGift].getAttribute("giftId");
	enlargeCard(giftId);
}

var nextReceivedGift = function(){
	if (currentGift < receivedGiftImgs.length-1){
		currentGift++;
	}else{
		currentGift = 0;
	}
	var giftId = receivedGiftImgs[currentGift].getAttribute("giftId");
	enlargeCard(giftId);
}

var enlargeCard = function(id){
	$("currentGift").innerHTML = getGiftHTML(getLevelById(id));
}

var getLevelById = function(id){
	id = parseInt(id);
	for (var i=0;i<levels.length;i++){
		if (levels[i].id == id) return  levels[i];
	}
}

var shuffle = function(ar){
	var rand1, rand2, cup;
	for (var i=0;i<ar.length/2;i++){
		rand1 = Math.floor(Math.random()*(ar.length-1));
		rand2 = Math.floor(Math.random()*(ar.length-1));
		cup = ar[rand1];
		ar[rand1] = ar[rand2];
		ar[rand2] = cup;
	}
	return ar;
}
var resp_getLevels = function(response){
	levels = shuffle(response.data);
	giftImgUrls = [];
	for (var i=0;i<levels.length;i++){
		giftImgUrls[i] = getScreenshotUrl(levels[i].img_url);
	}
	drawGiftSelector();
}

var getScreenshotUrl = function(url){
	return SERVER_URL+url.substring(0, url.indexOf("."))+"_scr.gif";
}

var getGiftHTML = function(lvl){
	var str = "";
	if (lvl.img_url.indexOf(".swf") > 0){
		str = "<iframe src='"+SERVER_URL+lvl.img_url+"' width=500px height=400px scrolling=no frameborder=0></ifarme>";
	}else{
		str = '<img src="'+SERVER_URL+lvl.img_url+'">'; 
	}
	str += '<div style="margin-top:10px;color: #4E9735; font-size: 18px;">'+lvl.name+'</div>';
	return str;
}
var getRandomElement = function(ar, limit){
	var limit = limit ? limit : ar.length; 
	return ar[Math.floor(Math.random()*(limit-1))];
}

var getBannerAdLeft = function(){
	var str = 
	"<table style='height:190px;'>"+
		"<tr><td align=center><a target='_blank' href='http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=115450' style='color:#94E024;font-size:14px;font-weight:bold;'>Send Angels</a></td></tr>"+
		"<tr><td align=center><a target='_blank' href='http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=115450'><img src='http://s2.appotec.com/ha/gift_m/uploads/400519169/28_13_160.jpg' /></a></td></tr>"+
	"</tr></table>";
	return str;
}

var getBannerAdRight = function(){
	var str = 
	"<table>"+
		"<tr><td align=center><a target='_blank' href='http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=129295' style='color:#FE2238;font-size:14px;font-weight:bold;'>Sweet Kiss</a></td></tr>"+
		"<tr><td align=center><a target='_blank' href='http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=129295'><img src='http://s2.appotec.com/ha/gift_m/uploads/365337006/2429_1_160.jpg' /></a></td></tr>"+
	"</tr></table>";
	return str;
}

var drawGiftSelector = function(){
	var str = 
	"<div id=giftSelector><center>"+
		"<table cellspacing=13><tr>"+
			"<td align=left><p onclick='prevGift()' class=button_prev onmouseover='this.className=\"button_prev_over\"' onmouseout='this.className=\"button_prev\"'></p></td>"+
			"<td align=center><p onclick='showFriendSelector()' class=button_send onmouseover='this.className=\"button_send_over\"' onmouseout='this.className=\"button_send\"'></p></td>"+
			"<td align=right><p onclick='nextGift()' class=button_next onmouseover='this.className=\"button_next_over\"' onmouseout='this.className=\"button_next\"'></p></td>"+
		"</tr></table>"+
		"<table><tr>"+
			"<td id=left_ad style='padding-right:20px;'>"+getBannerAdLeft()+"</td>"+
			"<td><div align=center id=currentGift style='padding:10px;width:510px'></div></td>"+
			"<td id=right_ad style='padding-left:20px;'>"+getBannerAdRight()+"</td>"+
		"</tr></table>"+
		"<table cellspacing=13><tr>"+
			"<td align=left><p onclick='prevGift()' class=button_prev onmouseover='this.className=\"button_prev_over\"' onmouseout='this.className=\"button_prev\"'></p></td>"+
			"<td align=center><p onclick='showFriendSelector()' class=button_send onmouseover='this.className=\"button_send_over\"' onmouseout='this.className=\"button_send\"'></p></td>"+
			"<td align=right><p onclick='nextGift()' class=button_next onmouseover='this.className=\"button_next_over\"' onmouseout='this.className=\"button_next\"'></p></td>"+
		"</tr></table>"+
	"</center></div>"+
	"<div id=friendSelector style='display:none'>"+
		"<a href='javascript:showGiftSelector()'><img src='"+IMG_URL+"chnagecard.png'></a>"+
		"<div style='magin-top:10px;color: black; font-size: 14px;'><b>You've selected the following card to send. "+
		"<span id=selectedCard_scr></span>"+
		"1. Type a greeting msg to send <br>"+
		"<textarea cols=34 rows=3 id=giftMsg>"+app.desc+"</textarea><br><br>"+
		"2. Click on a friend's photo to send him/her the greeting."+
		"<div style='font-size:10px; font-weight:normal'>To notify your friend about the greeting card you are sending him, you'll be also propmted to send him a msg.</div>"+
		"</b></div>"+
		"<div id=friend></div>"+
	"</div>";
	$("container").innerHTML = str;
	nextGift();
	//gadgets.window.adjustHeight();
}


var showFriendSelector = function(container){
	var selectedLvl = levels[selectedGift]; 
	$("giftSelector").style.display = "none";
	$("friendSelector").style.display = "";
	$("selectedCard_scr").innerHTML = 
	"<table cellspacing=6 style='margin: 10px 0px;'><tr><td><img src='"+getScreenshotUrl(selectedLvl.img_url)+"'></td>"+
	"<td><span style='color: #4E9735; font-size: 14px;'><b>"+selectedLvl.name+"</b></span></td></tr></table>";
	if ($("friend").innerHTML == ""){
		var inviteObj = new FriendSelector("friend", [sendPresent,invite]);	
	}
}

var showGiftSelector = function(container){
	$("giftSelector").style.display = "";
	$("friendSelector").style.display = "none";
}


var nextGift = function(){
	if (selectedGift<levels.length-1){
		selectedGift++;
	}else{
		selectedGift = 0;
	}
	$("currentGift").innerHTML = getGiftHTML(levels[selectedGift]);
}

var prevGift = function(){
	if (selectedGift >0){
		selectedGift--;
	}else{
		selectedGift = levels.length-1;
	}
	$("currentGift").innerHTML = getGiftHTML(levels[selectedGift]);
}

var sendPresent=function(friends){
	var postData="";
	for(var i=0; i<friends.length; i++){
		postData+="ids[]="+friends[i].id+"&";
		postData+="names[]="+friends[i].name+"&";
		postData+="profiles[]="+friends[i].profile+"&";
		postData+="pictures[]="+friends[i].thumbnail+"&";
	}
	postData+="&gift_selector="+levels[selectedGift].id;
	postData+="&giftMessage="+$("giftMsg").value;
	Request.sendPOST(SERVICE_URL+"q"+presentId+"?t=present_thanks&userId="+userId, postData, doNothing);
}


var friendIndex = 0;
var defaultInviteMessage = opensocial.newMessage("Hey I'm sending you [app]. Take it.");

var inviteViaBulletin = function(forwardToResultsPage){
	selectTab("invite");
   	var str = "<center><h1 style='font-size:19px'>Invite Your Friends to have more fun!!!<br/></h1>"+
   			"<img onclick='postInvite()' src='"+IMG_URL+"bulletin_grren.png' style='cursor: pointer;'/></center>";
	str += "<br><div name=info><b style='font-size:17px;'>Click on a friend's image to send him/her invitation.</b></div>";
  	str += "<div style='margin: 10px 0px;'><div id=friend><div></div>";
	container.innerHTML = str;
    var inviteObj = new FriendSelector("friend", [sendOnlyInvitation], "Invite", false);
}

var postInvite = function(){
	var subject = "Send "+presentName+" to your friends.";
	var imgStr = "";
	for (var i=0;i<giftImgUrls.length;i++){
		imgStr += "<a target='_blank' href='"+MP_APP.CANVAS_URL+"'><img boder='0px' style='margin:8px;' src='"+giftImgUrls[i]+"' /></a>";
	}
	var content =
	"<b>Hey!<br/>"+
	"See how nice <a target='_blank' href='"+MP_APP.CANVAS_URL+"'>"+presentName+" cards</a> I've got. "+
	"<br>You may also <a target='_blank'  href='"+MP_APP.CANVAS_URL+"'>send "+presentName+" card</a> to your friends!</b><br>"+imgStr;
	postTo_(subject, content, user, "BULLETINS");
}

var postWhatWasReceived = function(count, placeToPost){
	var subject = "I have received "+count+" "+presentName+"s!!!";
	var content = 
	"<b>I have received "+count+" <a target='_blank' href='"+MP_APP.CANVAS_URL+"'>"+presentName+" cards.</a><br>";
	content += getPostContent();
	placeToPost = placeToPost ? placeToPost : "BULLETINS";
	postTo_(subject, content, user, placeToPost);
}

var postWhatWasSent = function(count, placeToPost){
	var subject = "I have sent "+count+" "+presentName+"s!!!";
	var content = 
	"<b>I have sent "+count+" <a target='_blank' href='"+MP_APP.CANVAS_URL+"'>"+presentName+" cards.</a><br>";
	content += getPostContent();
	placeToPost = placeToPost ? placeToPost : "COMMENTS";
	postTo_(subject, content, user, placeToPost);
}

var getPostContent = function(){
	var content = "";
	var imgs = container.getElementsByTagName("img");
	var sentGifts = [];
	for (var i=0;i<imgs.length;i++){
		if (imgs[i].name == 'gift'){
			var isSent = false;
			for (var j=0;j<sentGifts.length;j++){
				if (imgs[i].src == sentGifts[j]){
					isSent = true; break;
				}
			}
			if (!isSent){
				content += "<a target='_blank' href='"+MP_APP.CANVAS_URL+"'><img border='0px' src='"+imgs[i].src+"' >&nbsp;</a>";
				sentGifts[sentGifts.length] = imgs[i].src;
			}
		}
	}
	content += "<br><br>Send <a target='_blank' href='"+MP_APP.CANVAS_URL+"'>"+presentName+"</a> to your friends!!!</b>";
	
	var additionalGifts = "";
	for (var i=0;i<giftImgUrls.length;i++){
		var isSent = false;
		for (var j=0;j<sentGifts.length;j++){
			if (giftImgUrls[i] == sentGifts[j]){
				isSent = true; break;
			}
		}	
		if (!isSent){
			additionalGifts += "<a target='_blank' href='"+MP_APP.CANVAS_URL+"'><img border='0px' src='"+giftImgUrls[i]+"' >&nbsp;</a>";
		}
	}
	if (additionalGifts != ""){
		content += "<br><br>"+additionalGifts;
	}
	return content;
}

var postWhatWasJustSent = function(friends, selectorObj){
	if (app!=null && app.approved && app.approved==1){
		var subject = "I have just sent "+presentName+" to my friends!!!";
		var content = 
		"<b>I have sent <a target='_blank' href='"+MP_APP.CANVAS_URL+"'>"+presentName+"</a> to my friends."+
		"<br><br><img border='0px' style='margin:8px;' src='"+SERVER_URL+selectedGift.img_url+"' />"+
		"<br><br>You may also <a target='_blank' href='"+MP_APP.CANVAS_URL+"'>send "+presentName+"</a> to me and your friends!!!</b>";
		var additionalGifts = "";
		for (var i=0;i<giftImgUrls.length;i++){
			additionalGifts += "<a target='_blank' href='"+MP_APP.CANVAS_URL+"'><img border='0px' src='"+giftImgUrls[i]+"' >&nbsp;</a>";
		}
		content += "<br><br><b>See also</b><br><br>"+additionalGifts;
		
		var postComment = function(){
			if (selectorObj.isCommentChecked()){
				postTo_(subject, content, user, "COMMENTS");	
			}
		}
		
		if (selectorObj.isBulletinChecked()){
			postTo_(subject, content, user, "BULLETINS", postComment);	
		}else{
			postComment();
		}
	}
}

var fillBody = function(){
	allContent = $("allContent");
	allContent.innerHTML = 
	'<table width=100%><tr>'+
	'<td><table cellspacing=0 cellpadding=0>'+
		'<tr class="tabs_new" id="tabContainer">'+
			'<td name=present><a href="javascript:req_getLevels()">Send Card</a></td>'+
			'<td name=inbox><a href="javascript:req_getInbox()">My Cards</a></td>'+
			'<td name=invite><a href="javascript:inviteViaBulletin()">Invite</a></td>'+
		'</tr>'+
	'</table></td>'+
	'<td align=right><a style="color: #649925;text-decoration:none" target=_blank href="http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&friendid=365337006"><b>Contact Us</b></td>'+
	'</tr></table>'+
	
	'<div id="top_banner" style="margin-top:5px;" align=center>'+getAd(TOP)+'</div>'+
	'<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script><script type="text/javascript">_uacct = "UA-5234570-1";urchinTracker();</script>'+
	'<table class=container><tr>'+
		'<td width=100% valign=top>'+
			'<div id=error style="display: none"></div>'+
			'<div id=container><div class=loading><img src="http://s2.appotec.com/ha/gift_m/images/loading.gif" /></div></div>'+
		'</td>'+
	'</tr></table>'+ 
	'<div style="margin-top:0px;" id="bottom_banner" align=center></div>';
		
	container = $("container");
	errorDiv = $("error");
	getUser();
	getAppInfo();
	setTimeout(bottomBanner, 10000);
}

var MP_APP = {};
var getAppInfo=function(){
	var mpApp = opensocial.getEnvironment().currentApplication;
	MP_APP.ICON_LARGE = mpApp.getField("ICON_LARGE");
	MP_APP.ICON_SMALL = mpApp.getField("ICON_SMALL");
	MP_APP.ID = mpApp.getField("ID");
	MP_APP.NAME = mpApp.getField("NAME");
	MP_APP.PROFILE_URL = mpApp.getField("PROFILE_URL");
	MP_APP.CANVAS_URL = "http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId="+MP_APP.ID;
}

var hideTabs = function(msg) {
	var bodyMask = document.createElement("div");
	bodyMask.className = "body-mask";
	bodyMask.id = "body-mask";
	bodyMask.onclick = function(ev){
		if (window.event) ev = window.event;
		ev.cancelBubble = true;
		return false;
	}
	document.body.appendChild(bodyMask);
	
	var wizardBox = document.createElement("div");
	wizardBox.className = "wizardBox-dlg";
	wizardBox.id = "wizardBox-dlg";
	wizardBox.style.left = (70+MP_APP.NAME.length*10)+"px";
	wizardBox.innerHTML = 
	"<center><img src='"+IMG_URL+"arrow_jump.gif'></center>"+
	"<div style='border: 3px solid red; padding:13px'>"+
	"Add / Install this App to start using "+MP_APP.NAME+"</div>";
	document.body.appendChild(wizardBox);
}

function embedGoogleAnalitics(){
 try{
  var head = document.getElementsByTagName("head");
  var script = document.createElement("script");
  script.setAttribute('src', 'http://www.google-analytics.com/urchin.js');
  script.setAttribute('type', 'text/javascript');
  head[0].appendChild(script);
  
  var script = document.createElement("script");
  script.setAttribute('type', 'text/javascript');
  script.text = '_uacct = "UA-5234570-2";urchinTracker();';
  head[0].appendChild(script);
 }catch(ex){}
}

function embedRockYouAds(){
 try{
 	
  _ryadConfig = new Object();
  _ryadConfig.placeguid='BAC8025049';
  _ryadConfig.type='Leaderboard';
  
  var head = document.getElementsByTagName("head");
  var script = document.createElement("script");
  script.setAttribute('src', 'http://cdn.rockyou.com/apps/ams/tag_os.js');
  script.setAttribute('type', 'text/javascript');
  head[0].appendChild(script);
  
 }catch(ex){}
}


function bottomBanner() {
	$('bottom_banner').innerHTML = getAd(BOTTOM);
}
