var container;
var errorDiv;
var hasTaken;
var approved;
var osContainer;
var surveyImgUrl;
var PAGE=0;
var allFriends = []; 
var friendsToInvite = [];
var presentUrl = "";
var app=null;
var superBanner = "<br><br><center><a href="+MAKER_URL+"><img src='"+IMG_URL+"sendgift.png' ></a></center>";
var presentId=34;
var init = function(){
	var params = opensocial.getEnvironment().getParams();
	if (params["presentId"] && userId != null){
		presentId = params["presentId"];
	}
	
	req_getHTMLToDisplay("superpresent", null, null, false);
	req_getRightBar();
	embedGoogleAnalitics(); 
}

var req_getHTMLToDisplay = function(action, params, handler, refresh){
	selectTab(action);
	container.innerHTML = loadingImgStr;
	Request.sendGET(SERVICE_URL+"q"+presentId+"?t="+action+"&userId="+userId+(params ? params : ''), handler?handler:resp_getHTMLToDisplay, CONTENT_TYPE_TEXT, refresh);
}

var resp_getHTMLToDisplay = function(response){
	container.innerHTML = response.text;
	if ($("friend")) {
		do_present(container);
		getGiftImgUrls();
		//setTimeout(middleBanner, 5000);
		if ($("hiscore")){
			$("addgift").style.display = "";
		}
		presentName = $("gift_selector").getAttribute("appName");
		presentUrl = SUPER_URL+"&appParams=%7B%22presentId%22%3A"+presentId+"%7D";
	}	
	gadgets.window.adjustHeight();
}

var do_present=function(container){
	//var info="By clicking Send Gift you'll be given an apportunity also to comment about the sent gift on selected friends' profile.";
	var info="";
	var inviteObj = new FriendSelector("friend", [sendPresent,invite], "Send Your Gift", true,info);	
}

var giftImgUrls = [];
var getGiftImgUrls = function(){
	var form = $("gift_selector");
	presentUrl = form.name;
	var imgs = form.getElementsByTagName("img");
	for (var i=0;i<imgs.length;i++){
		giftImgUrls[giftImgUrls.length] = imgs[i].src;
	}
} 

var selectedPresentImg;
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+"&";
	}
	var form=$('gift_selector');
	var inputs=form.getElementsByTagName("input");
	for(var i=0; i<inputs.length; i++){
		if(inputs[i].type=="radio" && inputs[i].checked==true){
			postData+="&gift_selector="+inputs[i].value;
			selectedPresentImg = $("giftimg_"+inputs[i].value).src;
			break;
		}
	}
	var textarea=$('giftMessageArea');
	var message=textarea.value;
	postData+="&giftMessage="+message;
	Request.sendPOST(SERVICE_URL+"q"+presentId+"?t=present&userId="+userId, postData, doNothing);
}

var req_getRightBar = function(){
	Request.sendGET(SERVICE_URL+"q"+presentId+"?t=superrightbar&userId="+userId+"&nopromote=1", resp_getRightBar, CONTENT_TYPE_TEXT, false);
}

var resp_getRightBar = function(response){
	$("rightbar").innerHTML = response.text;
	gadgets.window.adjustHeight();
}

var friendIndex = 0;
var defaultInviteMessage = opensocial.newMessage("Hey I'm sending you [app]. Take it.");

var inviteViaBulletin = function(forwardToResultsPage){
	selectTab("invite");
	refreshIframes();
   	var str = "<center><h1 style='font-size:19px'>Invite Your Friends to have more fun!!!<br/></h1>"+
   			"<img style='cursor:pointer' src='"+IMG_URL+"bulletin.png' onclick='postInvite()' ></center>";
	str += "<div style='margin: 30px 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='"+presentUrl+"'><img boder='0px' style='margin:8px;' src='"+giftImgUrls[i]+"' /></a>";
	}
	var content =
	"<b>Hey!<br/>"+
	"See how nice <a target='_blank' href='"+presentUrl+"'>"+presentName+"</a> I've got. "+
	"<br>You may also <a target='_blank' href='"+presentUrl+"'>send "+presentName+"</a> to your friends!</b><br>"+imgStr;
	content += superBanner;
	postTo_(subject, content, user, "BULLETINS");
}

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='"+presentUrl+"'><img boder='0px' style='margin:8px;' src='"+giftImgUrls[i]+"' /></a>";
	}
	var content =
	"<b>Hey!<br/>"+
	"See how nice <a target='_blank' href='"+presentUrl+"'>"+presentName+"</a> I've got. "+
	"<br>You may also <a target='_blank' href='"+presentUrl+"'>send "+presentName+"</a> to your friends!</b><br>"+imgStr;
	content += superBanner;
	postTo_(subject, content, user, "BULLETINS");
}

var postMyGift = function(id, name, img){
	var url = "http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=115131&appParams=%7B%22presentId%22%3A"+id+"%7D";
	var subject = "I have created a cool gift "+name+"!!!";
	var content = 
	"<b>I have created a cool gift <a href='"+url+"'>"+name+"!!!<br><br>"+
	"<img src='"+img+"' ></a><br><br>"+
	"<br>You may <a href='"+url+"'>send</a> it to me and your friends,"+
	" <a href='"+url+"'>create</a> your own gifts and <a href='"+url+"'>enjoy</a> gifts created by our community!!!"+
	"<br><br><center><a href="+url+"><img src='"+IMG_URL+"sendgift.png' ></a></center>";
	postTo_(subject, content, user, "BULLETINS");
}

var postWhatWasSent = function(count, placeToPost){
	var subject = "I have sent "+count+" "+presentName+"s!!!";
	var content = 
	"<b>I have sent "+count+" <a href='"+presentUrl+"'>"+presentName+"s.</a>"+
	"<br>You may also <a href='"+presentUrl+"'>send "+presentName+"</a> to me and your friends!!!<br><br>";
	content += getPostContent();
	content += superBanner;
	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 href='"+presentUrl+"'><img border='0px' src='"+imgs[i].src+"' >&nbsp;</a>";
				sentGifts[sentGifts.length] = imgs[i].src;
			}
		}
	}
	content += "<br><br>Send <a href='"+presentUrl+"'>"+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 href='"+presentUrl+"'><img border='0px' src='"+giftImgUrls[i]+"' >&nbsp;</a>";
		}
	}
	if (additionalGifts != ""){
		content += "<br><br><b>See also</b><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 href='"+presentUrl+"'>"+presentName+"</a> to my friends."+
		"<br><br><img border='0px' style='margin:8px;' src='"+selectedPresentImg+"' />"+
		"<br><br>You may also <a href='"+presentUrl+"'>send "+presentName+"</a> to me and your friends!!!</b>";
		if (giftImgUrls.length > 5){
			var additionalGifts = "";
			for (var i=0;i<giftImgUrls.length;i++){
				additionalGifts += "<a href='"+presentUrl+"'><img border='0px' src='"+giftImgUrls[i]+"' >&nbsp;</a>";
			}
			content += "<br><br><b>See also</b><br><br>"+additionalGifts;
		}
		content += superBanner;
		
		var postComment = function(){
			if (selectorObj.isCommentChecked()){
				postTo_(subject, content, user, "COMMENTS");	
			}
		}
		
		if (selectorObj.isBulletinChecked()){
			postTo_(subject, content, user, "BULLETINS", postComment);	
			isPostedOnBulletin=true;
		}else{
			postComment();
		}
	}
}

var fillBody = function(){
	allContent = $("allContent");
	allContent.innerHTML =	
	'<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script><script type="text/javascript">_uacct = "UA-5234570-1";urchinTracker();</script>'+
	//"<iframe src='http://s2.appotec.com/ha/gift_m/ad_intern_horiz.html' scrolling='no' frameborder='0' width=735px height=40px></iframe>"+
	'<table class=container><tr>'+
		'<td width=80% valign=top>'+
			'<table cellspacing=0 cellpadding=0>'+
				'<tr class="tabs" id="tabContainer">'+
					'<td name=superpresent id="present"><a href="javascript:req_getHTMLToDisplay(\'superpresent\')">Send '+presentName+'</a></td>'+
					'<td name=game id="game"><a target=_blank href="http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=127890">Mood(<span style="color:red">New!!!</span>)</a></td>'+
					'<td name=presentlist id="presentlist"><a href="javascript:req_getHTMLToDisplay(\'presentlist\')">Received</a></td>'+
					'<td name=sentpresent id="sentpresent"><a href="javascript:req_getHTMLToDisplay(\'sentpresent\')">Sent</a></td>'+
					//'<td name=topusers><a href="javascript:req_getHTMLToDisplay(\'topusers\')">Top Users</a></td>'+
					'<td name=supernewapps><a href="javascript:req_getHTMLToDisplay(\'supernewapps\')">New Gifts</a></td>'+
					'<td name=supersimplelist id=topGifts><a href="javascript:req_getHTMLToDisplay(\'supersimplelist\')">Top Gifts</a></td>'+
					'<td name=addgift id="addgift" style="display:none"><a href="javascript:showAddGift()">Add New Gift</a></td>'+
					'<td name=superhome id=superhome><a href="javascript:req_getHTMLToDisplay(\'superhome\')">My Gifts</a></td>'+
					'<td name=supercreate id=supercreate><a href="javascript:req_getHTMLToDisplay(\'supercreate\')">Create Gift</a></td>'+
					'<td name=invite id="invite"><a href="javascript:inviteViaBulletin()">Invite Friends</a></td>'+
				'</tr>'+
			'</table>'+
			'<div id="top_banner" style="margin-top:5px;" >'+getAd(TOP)+'</div>'+
			'<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>'+
			'<div style="margin-top:0px;" id="bottom_banner"></div>'+
		'</td>'+
		'<td id=rightbar width=20% valign=top style="padding:0px 10px;">'+
		'</td>'+
	'</tr></table>';
	//'<div style="margin-top:20px;" id="adDiv2">'+getAd(2)+'</div>';
	//embedRockyouScript();
	container = $("container");
	errorDiv = $("error");
	getUser();
	setTimeout(bottomBanner, 10000);
}

var hideTabs = function(msg) {
	$("present").style.display = "none";
	$("presentlist").style.display = "none";
	$("sentpresent").style.display = "none";
	$("invite").style.display = "none";
	$("supercreate").style.display = "none";
	$("superhome").style.display = "none";
	$("topGifts").style.border = "1px solid #898989";
	req_getRightBar();
	req_getHTMLToDisplay("supersimplelist");
	
	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.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 "+presentName+"</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-7";urchinTracker();';
  head[0].appendChild(script);
 }catch(ex){}
}


function embedRockyouScript(){
	/*
	<!-- begin ryad tag -->
	<div id='_ryad_79EEB23932'></div>
	<script type='text/javascript'>
	<!--
	  _ryadConfig = new Object();
	  _ryadConfig.placeguid='79EEB23932';
	  _ryadConfig.type='Leaderboard';
	-->
	</script>
	<script type='text/javascript' src='http://cdn.rockyou.com/apps/ams/tag_os.js'></script>
	<!-- end ryad tag -->
	*/
 try{
  var head = document.getElementsByTagName("head");
  
    var script = document.createElement("script");
  script.setAttribute('type', 'text/javascript');
  script.text = '_ryadConfig = new Object();_ryadConfig.placeguid="79EEB23932";_ryadConfig.type="Leaderboard";';
  head[0].appendChild(script);
  
  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() {
	/*var rnd = Math.floor(Math.random()*100);
	if (rnd < 93){
		$('bottom_banner').innerHTML = '<iframe src="http://ads.socialmedia.com/myspace/monetize.php?width=645&height=60&pubid=61535b2cd43b88c00cb0933fd72f2d40&bgcolor=FFFFFF&bordercolor=FFFFFF" border="0" width="645" height="60" name="socialmedia_ad" scrolling="no" frameborder="0"></iframe>';
		//$('bottom_banner').innerHTML = '<iframe src="http://s2.appotec.com/ha/gift_m/?t=ad&userId=400519169" border="0" width="645" height="60" name="socialmedia_ad" scrolling="no" frameborder="0"></iframe>';
		
	}else{
		$('bottom_banner').innerHTML = '<iframe src="http://www.easysurveymaker.com/surveymaker/showad.jsp" width="640" height="60" style="border: none; overflow: hidden" scrolling="no" frameborder="0" />';
	}*/
	$('bottom_banner').innerHTML = getAd(BOTTOM);
	gadgets.window.adjustHeight();
}

function middleBanner() {
	/*var rnd = Math.floor(Math.random()*100);
	if (rnd < 96){
		$('middle_banner').innerHTML = '<iframe src="http://ads.socialmedia.com/myspace/monetize.php?width=645&height=60&pubid=11359c3c7acf301dd668000ce532abe7&bgcolor=FFFFFF&bordercolor=FFFFFF" border="0" width="645" height="60" name="socialmedia_ad" scrolling="no" frameborder="0"></iframe>';
		//$('middle_banner').innerHTML = '<iframe src="http://s2.appotec.com/ha/gift_m/?t=ad&userId=400519169" border="0" width="645" height="60" name="socialmedia_ad" scrolling="no" frameborder="0"></iframe>';
	}else{
		$('middle_banner').innerHTML ='<iframe src="http://adturns.com/ad.php?c=35" width="640" height="100" style="border: none; overflow: hidden" scrolling="no" frameborder="0" />';
		//$('middle_banner').innerHTML = '<iframe src="http://www.easysurveymaker.com/surveymaker/showad.jsp" width="640" height="60" style="border: none; overflow: hidden" scrolling="no" frameborder="0" />';
		//http://adturns.com/ad.php?c=30
	}*/
	$('middle_banner').innerHTML = getAd(MIDDLE);
	gadgets.window.adjustHeight();
}


var level = 0;

function showAddGift(){
	selectTab('addgift');
	$("top_banner").style.display = "none";
	$("bottom_banner").style.display = "none";
	level = 0;
	var str = '<div id=error></div>'+
			  '<div id=giftSpace></div>'+
			  '<div><a href="javascript:addGift()">Add One More Gift</a></div>'+
			  '<input id="sendReqBut" style="float:right" type=button value="Add Gifts" onclick="req_addGift()" />';
	container.innerHTML = str;
	addGift();
}

function addGift(){
	level++;
	var str = 
	'<table id=gift'+level+'>'+
		'<tr>'+
			'<td width="30%" style="color: rgb(85, 85, 85); font-size: 11px; font-weight: bold;">Gift Name</td>'+
			'<td><input id="giftname'+level+'" type="text" name="title3" style="width: 286px;"/></td>'+
			'<td coslpan=2 valign=top><img onclick="deleteGift('+level+')" src="http://s2.appotec.com/ha/gift_m/images/delete.gif" /></td>'+
		'</tr>'+
		'<tr>'+
			'<td style="color: rgb(85, 85, 85); font-size: 11px; font-weight: bold;">Gift Picture</td>'+
			'<td>'+
				'<img id="giftimg'+level+'" width=100px height=100px src="http://s2.appotec.com/ha/gift_m/images/noimage.jpg" /><br>'+
				'<form onsubmit="return AIM.submit(this, {onStart : uploadStarted, onComplete : uploadCompleted, id:'+level+'})" enctype="multipart/form-data" action="http://s2.appotec.com/ha/gift_m/?t=upload&userId='+userId+'&level='+level+'" method="post">'+ 
					'<input id="uploadField'+level+'" type="file" id="fileUpload" name="file"/><input id="submit'+level+'" type="submit" value="Upload"/>'+
				'</form>'+
			'</td>'+
		'</tr>'+
	'</table>';
	$("giftSpace").innerHTML += str;
	gadgets.window.adjustHeight();
}
function deleteGift(level){
	$("gift"+level).parentNode.removeChild($("gift"+level));	
}

function uploadStarted(level) {
   var re_text = /\.jpg|.jpeg|.gif/i; 
   var filename = $("uploadField"+level).value;
   /* Checking file type */
   if (filename.search(re_text) == -1){
        alert("File does not have text(jpg, jpeg) extension");
        return false;
    }
	$("submit"+level).disabled = true;
    return true;
}

function uploadCompleted(level) {
	$("submit"+level).disabled = false;
	$("submit"+level).setAttribute("uploaded", "true");
	$("giftimg"+level).src = "http://s2.appotec.com/ha/gift_m/cache/img_upload/"+userId+"_"+level+"_100.jpg?v="+Math.random();
}

function req_addGift(){
	var tables = container.getElementsByTagName("table");
	var data = '';
	for (var i=0;i<tables.length;i++){
		var level = tables[i].id.substring(4,tables[i].id.length);
		if ($("submit"+level).getAttribute("uploaded") == "true"){
			var name = $('giftname'+level).value;
			if (name == ""){
				$("error").innerHTML = ("Fill in gift names.");
			}else{
				data += '&gifts[' + level + ']=' + name;
			}
		}
	}
	if (data != ''){
		$("sendReqBut").disabled = true;
		Request.sendPOST(SERVICE_URL+"q"+presentId+"?t=addgift&userId="+userId, data, resp_addGift);
	}else{
		$("error").innerHTML = ("You haven't uploaded any gift.");
	}
}

function resp_addGift(response){
	$("sendReqBut").disabled = false;
	container.innerHTML = "<div class='heading'>Thank you for uploading new gifts. <br>We will review and publish them to our gallery in order they are compatable with the application.</div>";
}

function goToGift(appId){
	if (userId != null){
		presentId=appId;
		req_getHTMLToDisplay("superpresent");
	}
}

function showHidden(hiddenId) {
	var hiddenElem = document.getElementById(hiddenId);
	hiddenElem.style.display='block';
}

function uploadStartedGift() {

}

var CURRENT_LEVEL = 1;
var LEVEL_COUNT = 1;
var IMAGES_IN_ROW = 6;
var CURRENT_ROW = 0;
var DELETE_IMG = SERVICE_URL + 'images/delete.gif';
var DELETED_GIFTS = new Array();
function uploadCompletedGift() {
	var img = document.getElementById('add_gift_' + CURRENT_LEVEL);
	var newImg = img.cloneNode(false);
	
	var d = new Date();
	img.src = SERVER_URL + 'cache/img_upload/' + userId + '_' + CURRENT_LEVEL + '_100.jpg?a=' + d.getTime(); 
	img.onclick = null;
	
	img.parentNode.innerHTML += "<input type = 'text' name='gift_name' level='" + CURRENT_LEVEL + "' style='width:100px'>" +
				"<div style = 'position:absolute; left:90;top:0'><img style='border:0px;cursor:pointer' onclick='deleteGift(" + CURRENT_LEVEL + ")' src='" + DELETE_IMG + "'></div>";
	
	var addGiftTable = document.getElementById('add_gift_tbl');
	var tdElem = document.createElement('TD');
	tdElem.style.width = '100px';
	tdElem.style.height = '100px';
	tdElem.align = 'center';
	tdElem.valign = 'bottom';
	tdElem.style.verticalAlign = 'bottom';
	tdElem.setAttribute('row', CURRENT_ROW);
	tdElem.id = 'td_' + (CURRENT_LEVEL + 1);
	var div = document.createElement('DIV');
	div.style.position = 'relative';
	div.appendChild(newImg);
	tdElem.appendChild(div);

	var tbody = addGiftTable.getElementsByTagName('TBODY').item(0);
	var trElem = null;
	if(LEVEL_COUNT % IMAGES_IN_ROW == 0) {
		trElem = document.createElement('TR');
		tbody.appendChild(trElem);
		CURRENT_ROW++;
	}
	else {
		trElem = tbody.getElementsByTagName('TR').item(CURRENT_ROW);
	}
	trElem.appendChild(tdElem);
	
	var hiddenFile = document.getElementById('fileUpload');
	var hiddenFileDiv = document.getElementById('hiddenFile');
	hiddenFileDiv.style.display = 'none';
	hiddenFile.value = '';
	
	newImg.id = 'add_gift_' + ++CURRENT_LEVEL;
	
	var uploadForm = hiddenFile.form;
	var uploadFormAction = uploadForm.action;
	uploadFormAction = uploadFormAction.replace( /level=([0-9])+/g , 'level=' + CURRENT_LEVEL );
	uploadForm.action = uploadFormAction;
	
	LEVEL_COUNT++;
}

function deleteGift(giftLevel) {
	if(window.confirm('Delete this gift?')) {
		var tdElem = document.getElementById('td_' + giftLevel);
		
		var lvlId = tdElem.getAttribute('lvl_id');
		if(lvlId) DELETED_GIFTS.push(lvlId);
		
		var giftRow = tdElem.getAttribute('row');
		var trElem = tdElem.parentNode;
		
		if(CURRENT_ROW > giftRow) {
			shiftRows(tdElem);
		}
		else {
			tdElem.parentNode.removeChild(tdElem);	
		}
		
		LEVEL_COUNT--;
		if(LEVEL_COUNT % IMAGES_IN_ROW == 0) {
			var tbody = trElem.parentNode;
			var allTrElems = tbody.getElementsByTagName('TR');
			var lastTr = allTrElems.item(allTrElems.length - 1);
			while(!lastTr.tagName && lastTr.tagName != 'TR') lastTr = lastTr.previousSibling;
			tbody.removeChild(lastTr);
			CURRENT_ROW--;
		}
	}
}

function shiftRows(tdElem) {
	var trElem = tdElem.parentNode;
	
	shiftItemsInRow(tdElem);
	trElem = getNextSibling(trElem);
	while(trElem) {
		if(trElem && trElem.tagName == 'TR') {
			var firstTdElem = trElem.getElementsByTagName('TD').item(0);
			if(firstTdElem) {
				shiftItemsInRow(firstTdElem);
			}
			else {
				trElem.parentNode.removeChild(trElem);
			}
		}
		trElem = getNextSibling(trElem);
	}
}

function shiftItemsInRow(startTd) { 
	var tdElem = startTd;
	
	var nextTdElem = getNextSibling(tdElem);
	while(nextTdElem) {
		nextTdElemClone = nextTdElem.cloneNode(true);
		tdElem = tdElem.parentNode.replaceChild(nextTdElemClone, tdElem);
		
		tdElem = nextTdElem;
		nextTdElem = getNextSibling(tdElem);
	}
	var trElem = tdElem.parentNode;
	trElem.removeChild(tdElem);
	var nextTrElem = getNextSibling(trElem);
	
	if(nextTrElem) {
		var firstTd = nextTrElem.getElementsByTagName('TD').item(0);
		var firstTdClone = firstTd.cloneNode(true);
		
		firstTdClone.setAttribute('row', firstTdClone.getAttribute('row')*1 - 1)
		trElem.appendChild(firstTdClone);
	}
}

function getNextSibling(elem) {
	var tagName = elem.tagName;
	var nextSibling = elem.nextSibling;
	
	if(!nextSibling) return null;
	
	while(!nextSibling.tagName && nextSibling.tagName != tagName) {
		nextSibling = nextSibling.nextSibling;
		if(!nextSibling) return null;
	}
	return nextSibling;
}

function clearErrors() {
	var errorDiv = document.getElementById('error_title');
	if(errorDiv) errorDiv.parentNode.removeChild(errorDiv);
	
	errorDiv = document.getElementById('error_description');
	if(errorDiv) errorDiv.parentNode.removeChild(errorDiv);
	
	errorDiv = document.getElementById('error_message');
	if(errorDiv) errorDiv.parentNode.removeChild(errorDiv);
	
	errorDiv = document.getElementById('error_no_gift');
	if(errorDiv) errorDiv.parentNode.removeChild(errorDiv);
	
	errorDiv = document.getElementById('error_gift');
	while(errorDiv) {
		errorDiv.parentNode.removeChild(errorDiv);
		errorDiv = document.getElementById('error_gift');
	}
}

function sendCreateRequest() {
	clearErrors();
	
	var appTitleInput = document.getElementById('title');
	var appDescriptionInput = document.getElementById('gift_description');
	var defaultMessageInput = document.getElementById('default_message');
	var appTitle = appTitleInput.value;
	var appDescription = appDescriptionInput.value;
	var defaultMessage = defaultMessageInput.value;

	var errorDiv = null;
	if(appTitle == '') { 
		errorDiv = document.createElement('DIV');
		errorDiv.id = 'error_title';
		errorDiv.style.color = '#FF0000';
		errorDiv.innerHTML = 'Please give gift title';
		appTitleInput.parentNode.appendChild(errorDiv);
	}
	if(appDescription == '') {
		errorDiv = document.createElement('DIV');
		errorDiv.id = 'error_description';
		errorDiv.style.color = '#FF0000';
		errorDiv.innerHTML = 'Please give application description';
		appDescriptionInput.parentNode.appendChild(errorDiv);
	}
	if(defaultMessage == '') {
		errorDiv = document.createElement('DIV');
		errorDiv.id = 'error_message';
		errorDiv.style.color = '#FF0000';
		errorDiv.innerHTML = 'Please write default message';
		defaultMessageInput.parentNode.appendChild(errorDiv);
	}
	
	var data = 'action=create' +
				'&title=' + appTitle +
				'&description=' + appDescription +
				'&default_message=' + defaultMessage +
				'&level=' + (CURRENT_LEVEL - 1);

	var giftTbl = document.getElementById('add_gift_tbl');
	var tbody = giftTbl.getElementsByTagName('TBODY').item(0);
	var trElem = tbody.getElementsByTagName('TR').item(0);
	var tdElem = trElem.getElementsByTagName('TD').item(0);
	
	var hasGift = false;
	while(tdElem) {
		var gifts = tdElem.getElementsByTagName('INPUT');
		if(!gifts) {
			nextElem = getNextTdElem(tdElem, trElem);
			tdElem = nextElem[0];
			trElem = nextElem[1];
			continue;
		}
		var gift = gifts.item(0);
		
		if(!gift || !gift.tagName || gift.tagName != 'INPUT') {
			nextElem = getNextTdElem(tdElem, trElem);
			tdElem = nextElem[0];
			trElem = nextElem[1];
			continue; 
		}
		if(!gift.getAttribute('name') || gift.getAttribute('name') != 'gift_name') {
			nextElem = getNextTdElem(tdElem, trElem);
			tdElem = nextElem[0];
			trElem = nextElem[1];
			continue;
		}
		if(gift.value == '') {
			errorDiv = document.createElement('DIV');
			errorDiv.id = 'error_gift';
			errorDiv.style.color = '#FF0000';
			errorDiv.innerHTML = 'Please give description to gift';
			gift.parentNode.appendChild(errorDiv);
		}
		
		nextElem = getNextTdElem(tdElem, trElem);
		tdElem = nextElem[0];
		trElem = nextElem[1];
		
		hasGift = true;
		data += '&gifts[' + gift.getAttribute('level') + ']=' + gift.value;
	}
	
	if(!hasGift) {
		var firstTd = document.getElementById('td_' + CURRENT_LEVEL);
		errorDiv = document.createElement('DIV');
		errorDiv.id = 'error_no_gift';
		errorDiv.style.color = '#FF0000';
		errorDiv.innerHTML = 'You have not uploaded gifts';
		firstTd.appendChild(errorDiv);
	}
	
	if(errorDiv) return;
	
	Request.sendPOST(SERVICE_URL+"?t=supercreate&userId="+userId, data, continueToNextStep_);
}

function getNextTdElem(tdElem, trElem) {
	tdElem = getNextSibling(tdElem);
	if(!tdElem) {
		trElem = getNextSibling(trElem);
		if(trElem) tdElem = trElem.getElementsByTagName('TD').item(0);
	}
	return new Array(tdElem, trElem);
}

function sendEditRequest() {
	clearErrors();
	
	var appTitleInput = document.getElementById('title');
	var appDescriptionInput = document.getElementById('gift_description');
	var defaultMessageInput = document.getElementById('default_message');
	var appTitle = appTitleInput.value;
	var appDescription = appDescriptionInput.value;
	var defaultMessage = defaultMessageInput.value;

	var errorDiv = null;
	if(appTitle == '') { 
		errorDiv = document.createElement('DIV');
		errorDiv.id = 'error_title';
		errorDiv.style.color = '#FF0000';
		errorDiv.innerHTML = 'Please give gift title';
		appTitleInput.parentNode.appendChild(errorDiv);
	}
	if(appDescription == '') {
		errorDiv = document.createElement('DIV');
		errorDiv.id = 'error_description';
		errorDiv.style.color = '#FF0000';
		errorDiv.innerHTML = 'Please give application description';
		appDescriptionInput.parentNode.appendChild(errorDiv);
	}
	if(defaultMessage == '') {
		errorDiv = document.createElement('DIV');
		errorDiv.id = 'error_message';
		errorDiv.style.color = '#FF0000';
		errorDiv.innerHTML = 'Please write default message';
		defaultMessageInput.parentNode.appendChild(errorDiv);
	}

	var data = 'action=edit' +
			'&title=' + appTitle +
			'&description=' + appDescription +
			'&default_message=' + defaultMessage +
			'&level=' + (CURRENT_LEVEL - 1);
			
	var gifts = document.getElementsByName('gift_name');
	var hasGift = false;
	for(var ind in gifts) {
		var gift = gifts[ind];
		if(!gift || !gift.tagName || gift.tagName != 'INPUT') continue; 
		if(gift.value == '') {
			errorDiv = document.createElement('DIV');
			errorDiv.id = 'error_gift';
			errorDiv.style.color = '#FF0000';
			errorDiv.innerHTML = 'Please give description to gift';
			gift.parentNode.appendChild(errorDiv);
		}
		hasGift = true;
		data += '&gifts[' + gift.getAttribute('level') + ']=' + gift.value;
		
		giftTd = gift.parentNode.parentNode;
		lvlId = giftTd.getAttribute('lvl_id');
		if(lvlId) data+='&lvlIds[' + gift.getAttribute('level') + ']=' + lvlId;
	}
	for(var ind in DELETED_GIFTS) {
		data+='&deletedGifts[]=' + DELETED_GIFTS[ind];
	}
	
	if(!hasGift) {
		var firstTd = document.getElementById('td_' + CURRENT_LEVEL);
		errorDiv = document.createElement('DIV');
		errorDiv.id = 'error_no_gift';
		errorDiv.style.color = '#FF0000';
		errorDiv.innerHTML = 'You have not uploaded gifts';
		firstTd.appendChild(errorDiv);
	}
	
	if(errorDiv) return;
	
	Request.sendPOST(SERVICE_URL+"?t=superedit&userId="+userId+"&a_id="+appId, data, giftUpdated);
}

function continueToNextStep_(response) {
	window.alert('Your gift is created succesfully'); 
	req_getHTMLToDisplay('superhome');
}

function giftUpdated(response) {
	window.alert('Your is updated successfully');
	req_getHTMLToDisplay('superhome');
}
var appId = null;
function editResponseHandler(response) {
	resp_getHTMLToDisplay(response);
	var giftCount = document.getElementById('gift_count').innerHTML;
	CURRENT_LEVEL = giftCount*1 + 1;
	LEVEL_COUNT = giftCount*1 + 1;
	CURRENT_ROW = Math.floor(giftCount / IMAGES_IN_ROW);
	appId = document.getElementById('appId_div').innerHTML;
}
