YAHOO.namespace("Youniverse");

YAHOO.Youniverse.appLove = function()
{
	var userID;
	var ownerID;
	var currentShow = 'vgfProductSlideshow';
	
	
	this.init = function()
	{
	}
	
	/*
	* Sent userID
	*/
	this.setUserID = function(uid){
		userID = uid;
	}
	
	/*
	* Sent ownerID
	*/
	this.setOwnerID = function(oid){
		ownerID = oid;
	}
	/*
	* Send Message to internal
	*/
	this.sendInternal = function(uid){
		dialogMessage.loadMessage("/dialog/msg_internal/"+uid);
	}
	
	/*
	* Invite partner
	* @ String Partner ID
	*/
	this.invitePartner = function(partnerId){
		var answer = confirm(msg.translate('appLove01'));
		if (answer){
			this.invitePartnerAjax(partnerId);
		}
	}
	
		/*
	 * invites friend
	 * @param guid guid of friend being removed
	 * @param type type of friend
	 */
	 this.inviteFriendship = function (contentId,type)
	{
		var postData = '&data[Friends][guid]=' + contentId;
		postData += '&data[Friends][type]=' + type;
		var callback =
		{
			success: this.onInviteFriend, 
			failure: this.ajaxFailure,
			cache: false
		};
		
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/friendships/inviteFriendship', callback, postData);
	}
	
	/*
	* onInviteFriend
	*/
	this.onInviteFriend = function(o)
	{
		eval(o.responseText);
	}
	
	/*
	* Invite partner ajax
	* @ String Partner ID
	*/
	this.invitePartnerAjax = function(partnerId){
		var callback =
		{
			success: this.onInvitePartnerAjax,
			failure:this.ajaxFailure,
			cache:false 
		};
		
		var request = YAHOO.util.Connect.asyncRequest('GET', "/love/invite_partner/"+partnerId, callback);
	}
	
	/*
	* View Partner profile
	* @ String Partner ID
	*/
	this.viewPartner = function(partnerId){
		window.location = "/love/results/"+partnerId;
		pageTracker._trackPageview('/love/results/partner/view');
	}
	
	/*
	* onInvite partner ajax
	*/
	this.onInvitePartnerAjax = function()
	{
		pageTracker._trackPageview('/love/results/partner/invite/internal');
	}
	
	/*
	* Send message to partner
	*/
	this.invitePartnerEmail = function(){
		dialogMessage.loadMessage("/love/dialogMsgPartner/");
	}
	
	/*
	* Accept Partner
	*/
	this.acceptPartner = function(partnerId) {
		var callback =
		{
			success: function() {
				pageTracker._trackPageview('/love/results/partner/accept');
				var selfLove = document.getElementById('selfLove');
				if(selfLove)
				{
					selfLove.style.display = 'none';
				}
				appLove.renderPartners();
			},
			failure:this.ajaxFailure,
			cache:false 
		};
		
		var request = YAHOO.util.Connect.asyncRequest('GET', "/love/accept_partner/"+partnerId, callback);
	}
	
	/*
	* Reject Partner
	*/
	this.rejectPartner = function(partnerId) {
		var callback =
		{
			success:function() {
				pageTracker._trackPageview('/love/results/partner/reject');
				appLove.renderPartners();
			},
			failure:appLove.ajaxFailure,
			cache:false 
		};
		
		var request = YAHOO.util.Connect.asyncRequest('GET', "/love/reject_partner/"+partnerId, callback);
	}
	
	/*
	* Remove partner
	*/
	this.removePartner = function(guid) {
		var postData = '&data[Friends][guid]=' + guid;
		postData += '&data[Friends][type]=2';
		var callback =
		{
			success: this.renderPartners, 
			failure: this.ajaxFailure,
			cache: false
		};
		
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/friendships/removeFriendship', callback, postData);
		
	}
	
	/*
	* Change status to in progress
	*/
	this.changePartnerStatus = function (status)
	{
		this.renderPartners();
	}
	
	/*
	* Render Partners
	*/
	this.renderPartners = function ()
	{
		var callback =
		{
			success: function(o) { 
				var partnerApplet = document.getElementById("partnerApplet");
				partnerApplet.innerHTML = o.responseText;
				partnersRendered();
			},
			failure : this.ajaxFailure,
			cache:false 
		};
		
		var request = YAHOO.util.Connect.asyncRequest('GET', "/love/display_partners/" + ownerID, callback);
	}
	
	/*
	* Ajax Failure	
	*/
	this.ajaxFailure = function (o)
	{
		// If client aborts, ignore
		if (o.status > -1)
		{
			alert(msg.translate('err01'));
		}
	}
	
	/*
	* Toggle between img selections and product display	
	*/
	this.toggleVGFDisplay = function ()
	{
		if (currentShow == "vgfProductSlideshow")
		{
			currentShow = "vgfImgSelSlideshow";
			vgfProductSlideshow.endShow();
			delete vgfProductSlideshow;
			vgfImgSelSlideshow = new YAHOO.Youniverse.slideShow();
			vgfImgSelSlideshow.loadShow('VGFImgSel','vgfImgSelSlideshow');	
		}
		else
		{
			currentShow = "vgfProductSlideshow";
			vgfImgSelSlideshow.endShow();
			delete vgfImgSelSlideshow;
			vgfProductSlideshow = new YAHOO.Youniverse.slideShow();
			vgfProductSlideshow.loadShow('VGFProducts','vgfProductSlideshow');
		}
	}
	
	/*
	* Load Next Slide
	*/
	this.loadVGFNextSlide = function ()
	{
		eval(currentShow+".loadNextSlide();");
	}
	
	/*
	* Load Prev Slide	
	*/
	this.loadVGFPrevSlide = function ()
	{
		eval(currentShow+".loadPrevSlide();");
	}
	
	this.closeEncyl = function(encylType)
	{
		YAHOO.util.Dom.setStyle("loveEncyl"+encylType, 'display', 'none');
		var list = YAHOO.util.Dom.getChildren('loveEncylopediaList',function(el){return el.nodeName=='LI';});
		for (var i=0;i<list.length;i++)
		{
			list[i].setAttribute('class', '');
		}
	}
	
	this.doModule = function (moduleID)
	{
		window.location = "/statement/module/LoveModule/"+moduleID+"";
	}
	
	this.redoModule = function (moduleID)
	{
		window.location = "/statement/retake/LoveModule/"+moduleID+"";
	}
	
	this.clearModule = function (moduleID)
	{
		if (confirm(msg.translate('appLove02')))
		{
			var callback =
			{
				success: function (o) {
					window.location.reload()
				},
				failure: this.jsonFailure,
				cache: false
			};
			
			var request = YAHOO.util.Connect.asyncRequest('GET', "/statement/clear/" + moduleID + "/LoveModule", callback);
		}
	}
	
	this.addToFavorites = function (userId)
	{
		var callback =
		{
			success: this.hideFav,
			failure: this.jsonFailure,
			cache: false
		};
		var request = YAHOO.util.Connect.asyncRequest('GET', '/content/add_favourite/people/' + userId + ".json",callback);
	}
	
	this.removeFromFavorites = function (userId)
	{
		var callback =
		{
			success: this.showFav,
			failure: this.jsonFailure,
			cache: false
		};
		var request = YAHOO.util.Connect.asyncRequest('GET', '/content/remove_favourite/people/' + userId + ".json",callback);
	}
	
	this.hideFav = function()
	{
		YAHOO.util.Dom.setStyle("addFavOwner", 'display', 'none');
		YAHOO.util.Dom.setStyle("removeFavOwner", 'display', 'inline');
	}
	
	this.showFav = function()
	{
		YAHOO.util.Dom.setStyle("addFavOwner", 'display', 'inline');
		YAHOO.util.Dom.setStyle("removeFavOwner", 'display', 'none');
	}
	
	
}

function editHILTBL ()
{
	document.getElementById('meHILTBLView').style.display = 'none';
	var meHILTBLEdit = document.getElementById('meHILTBLEdit');
	meHILTBLEdit.style.display = 'block';
	var HILTBLTextArea = document.getElementById('HILTBLTextArea');
	HILTBLTextArea.focus();
}


function editPartnerBest ()
{
	document.getElementById('meTBTALView').style.display = 'none';
	var meTBTALEdit = document.getElementById('meTBTALEdit');
	meTBTALEdit.style.display = 'block';
	var partnerBestTextArea = document.getElementById('partnerBestTextArea');
	partnerBestTextArea.focus();
}

function editPartnerWorst ()
{
	document.getElementById('meLoveTipsView').style.display = 'none';
	var meLoveTipsEdit = document.getElementById('meLoveTipsEdit');
	meLoveTipsEdit.style.display = 'block';
	var partnerWorstTextArea = document.getElementById('partnerWorstTextArea');
	partnerWorstTextArea.focus();
}

function saveHILTBL ()
{
	// trigger XHR to save self love text			
	var handleSuccess = function(o)
	{
		eval(o.responseText);
	}
	
	var callback =
	{
		success:handleSuccess,
		cache:false 
	};
	
	var postData = "data[Love][howILikeToBeLoved]=" + document.getElementById('HILTBLTextArea').value;
	var sUrl    = '/love/save_howiliketobeloved/?1';
	
	var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
}

function savePartnerBest ()
{
	// trigger XHR to save self love text			
	var handleSuccess = function(o)
	{
		eval(o.responseText);
		pageTracker._trackPageview('/love/results/partner/tips/bestThing');
	}
	
	var callback =
	{
		success:handleSuccess,
		cache:false 
	};
	
	var postData = "data[Love][partnerBest]=" + document.getElementById('partnerBestTextArea').value;
	var sUrl    = '/love/save_partner_best/?1';
	
	var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
}

function savePartnerWorst ()
{
	// trigger XHR to save self love text			
	var handleSuccess = function(o)
	{
		eval(o.responseText);
		pageTracker._trackPageview('/love/results/partner/tips/keepAlive');
	}
	
	var callback =
	{
		success:handleSuccess,
		cache:false 
	};
	
	var postData = 'data[Love][partnerWorst]=' + document.getElementById('partnerWorstTextArea').value;
	var sUrl    = '/love/save_partner_worst/?1';
	
	var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
}

function editSelfLove ()
{
	document.getElementById('selfLoveView').style.display      = 'none';
	document.getElementById('selfLoveEditBtn').style.display   = 'none';
	document.getElementById('selfLoveEdit').style.display      = 'block';
	document.getElementById('selfLoveSubmitBtn').style.display = 'block'
	
	var selfLoveTextArea = document.getElementById('selfLoveTextArea');
	selfLoveTextArea.focus();
}

function saveSelfLove ()
{
	// trigger XHR to save self love text			
	var handleSuccess = function(o)
	{
		eval(o.responseText);
		pageTracker._trackPageview('/love/results/partner/tips/selfLove');
	}
	
	var callback =
	{
		success:handleSuccess,
		cache:false 
	};
	
	var postData = "data[Love][howILikeToBeLoved]=" + document.getElementById('selfLoveTextArea').value;
	var sUrl    = '/love/save_self_love/?1';
	
	var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
}