var entryPoint = js_gamification_host;
var mbHost = "http://www.mulinobianco.it";
var community_id = "BA00194d824d0a40d0eae7a6b0e9d9beb90aa";


/* NEW BADGE NOTIFY ==> START */
function addNewBadgeNotify(playerNickname, awardName){
	var container = $(".newBadgeContainer");
	// check if not exist container
	if(container.length == 0){
		//if not exist insert container
		container = $("<div>");
		container.addClass("newBadgeContainer");
	}
	
	//Create Container Notify
	var newNotify = $("<div>");
	newNotify.addClass("newBadgeItem");
	
	//Create close button Notify
	var closeButton = $("<div>");
	closeButton.addClass("closeNewBadgeItem");
	//Add event Close
	closeButton.click(function(){
		closeBadgeNotify(newNotify);
	});
	//append close button
	newNotify.append(closeButton);
	
	//Create containerContent
	var containerContent = $("<div>");
	containerContent.addClass("containerContent");
	
	
	//Create image badge
	var imageBadge = $("<img>");
	imageBadge.addClass("imageBadge");
	var urlBadge = badgeUrl(awardName);
	imageBadge.attr("src", urlBadge.substr(0,urlBadge.length-4)+"_big.png");
	
	var FBbadgeImage = urlBadge.replace("/mb-default-theme/images/talentimulino/", "");
	
	//append imageBadge
	containerContent.append(imageBadge);
	
	//create title
	var title = $("<span>");
	title.addClass("newBadgeTitle");
	title.html("Complimenti "+playerNickname+"! <br/>Ora sei ");
	var badgeName = $("<span>");
	badgeName.addClass("newBadgeTitleName");
	badgeName.html(awardName);
	title.append(badgeName);
	//append title
	containerContent.append(title);
	
	//create subtitle
	var subtitle = $("<span>");
	subtitle.addClass("newBadgeSubtitle");
	subtitle.html("<br/>Continua a partecipare per collezionare tutti i Talenti del Mulino!");
	//append title
	containerContent.append(subtitle);
	
	//create facebook
	var facebook = $("<div>");
	facebook.addClass("newBadgeFacebook");
	facebook.click(function(){
		var urlToShare = encodeURIComponent(mbHost + "/web/" + playerNickname + "/il-mio-mulino?fbimg=" + FBbadgeImage + "&fbtext=" + awardName + "&mbnick=" + playerNickname);
		window.open('http://www.facebook.com/sharer.php?u=' + urlToShare ,'name','height=600,width=800')
	});
	//append facebook
	containerContent.append(facebook);
	
	//create twitter
	var twitter = $("<div>");
	twitter.addClass("newBadgeTwitter");
	twitter.click(function(){
		var urlToShare = "Ora+sono+" + awardName.replace(" ", "+") + "+grazie+ai+Talenti+del+Mulino:+" + mbHost + "/web/" + playerNickname + "/il-mio-mulino";
		window.open('https://twitter.com/intent/tweet?source=webclient&text=' + urlToShare ,'name','height=440,width=640')
	});
	//append twitter
	containerContent.append(twitter);
	
	//append containerContent
	newNotify.append(containerContent);
	
	
	//append container notify
	container.append(newNotify);
	
	//append container 
	$("body").append(container);
	//start animationIn
	//append event of closing after delay
	newNotify.slideDown(600).delay(15000).show(function(){
		closeBadgeNotify(newNotify);
	});
}

function closeBadgeNotify(container){
	//is is not in closing
	if(container.attr("isClosing") == undefined || !container.attr("isClosing")=="true"){
		container.attr("isClosing",true);
		container.stop();
		container.slideUp(600,function(){
			//animation finished 
			//remove container
			$(this).remove();
			//check if exit other notify else remove container
			if($(".newBadgeContainer .newBadgeItem").length == 0)
				$(".newBadgeContainer").remove();
		});
	}
}
/* NEW BADGE NOTIFY ==> END */




/* Player Credit
 * 
 * DG parameter is the concatenation of these parameters in order:
 * GUID
 * Community secred 
 * and than hashed with MD5
 * 
 */
function playerCredit(community_id, actionName, url) {

	var endPoint_data = "/html/gamification/loyalty_response.jsp?uncache="+(new Date()).getTime();
	$.getJSON(endPoint_data, function(data_response) {
		var status_data = data_response.status;
		var dg = data_response.dg;
		var guid = data_response.guid;
		var playerId = data_response.playerID;

		var action = "/player/" + playerId + "/credit?";
		var callback = "?";
		var includedata = "True";
		var endPoint = entryPoint + community_id + action;

		var queryParams = [ 'IncludeData=' + includedata,
				'Callback=' + callback, 'GUID=' + guid, 'Name=' + actionName,
				'Url=' + url, 'DG=' + dg, ];
		var query = queryParams.join('&');

		endPoint += query;
		if (status_data=='OK'){
			$.getJSON(endPoint, function(response_credit) {
				if(response_credit.Status == "OK"){
					//Credit action is ok
					var activities = response_credit.Player.PlayerActivities;
					if(activities!=undefined){
						for(var i = 0; i < activities.length;i++){
							if(activities[i].Type == "Badge"){
								//add badgeNotify when win new Badge
								addNewBadgeNotify(activities[i].PlayerNickname, activities[i].Award);
							}
						}
					}
				}
				
			});
		}
	});
}

/*
 *  Get the awards (badges and trophies) owned by a player
 */

function playerAwards(community_id) {
    var awardsList = new Array();
	var endPoint_data = "/html/gamification/loyalty_response.jsp?uncache="+(new Date()).getTime();
	$.getJSON(endPoint_data, function(data_response) {
		var status_data = data_response.status;
		var dg = data_response.dg;
		var guid = data_response.guid;
		var playerId = data_response.playerID;	
        		
		var action = "/player/" + playerId + "/awards?Callback=?";
		var endPoint = entryPoint + community_id + action;
	
		$.getJSON(endPoint, function(data) {			
            //var html = "<div class='response'>";       
			$.each(data.Player.Awards, function(i, awards) {
				//alert(awards.Name);
				awardsList.push(awards.Name);
                //html += "<div class='award'>award: " + awards.Name + "</div>";
			});
			//html += "</div>";
		});
	});
	return awardsList;
}


function getData() {
	var endPoint_data = "/html/gamification/loyalty_response.jsp?uncache="+(new Date()).getTime();
	$.getJSON(endPoint_data, function(data) {
		var status_data = data.status;
		var dg = data.dg;
		var guid = data.guid;
		var playerId = data.playerID;

		var html = "<div class='response'>";

		html += "<div class='info'><br/>status: " + data.status + "</div>";
		html += "<div class='info'><br/>dg: " + data.dg + "</div>";
		html += "<div class='info'><br/>guid: " + data.guid + "</div>";
		html += "<div class='info'><br/>playerID: " + data.playerID + "</div>";
		html += "</div>";

		$('.data').html(html);

	});
}


function mttly_TrackVisit_core(PlayerID) {
	// track visit on this url
	var url = entryPoint + "BA00194d824d0a40d0eae7a6b0e9d9beb90aa/tracking/visit";
	var encodeUrl = encodeURIComponent(document.location.href);
	url += ("?Url=" +encodeUrl);
	if( PlayerID &&  PlayerID != "")
		url += "&idplayer=" + PlayerID;
	
	var randomCallBack = Math.round((new Date()).getTime()) + Math.floor(Math.random() * 10000);
	
	jQuery.ajax({
		crossDomain:true,
		data: "Callback=c" + randomCallBack,
		callback: "c" + randomCallBack,
        jsonpCallback: "c" + randomCallBack,
		contentType:"application/x-www-form-urlencoded",
		url:  url,
		dataType: 'jsonp'
	});
}


/*  
 	 use: 
    $(document).ready(function() {
  	mttly_TrackVisit();
    }); 
  
 */
function mttly_TrackVisit() {
	var endPoint_data = "/html/gamification/loyalty_response.jsp?uncache="+(new Date()).getTime();
	$.getJSON(endPoint_data, function(data_response) {
		var status_data = data_response.status;
		var playerId = data_response.playerID;
		if (status_data=='OK'){
			mttly_TrackVisit_core(playerId);
		} else {
			mttly_TrackVisit_core("");
		}
	});	
}


function badgeUrl(talento) {
	
	var badge_arr=new Array();
	badge_arr["Piccola Farfalla"]="/mb-default-theme/images/talentimulino/medaglia01.png";
	badge_arr["Grande Farfalla"]="/mb-default-theme/images/talentimulino/medaglia02.png";
	badge_arr["Piccolo Frutteto"]="/mb-default-theme/images/talentimulino/medaglia03.png";
	badge_arr["Gran Frutteto"]="/mb-default-theme/images/talentimulino/medaglia04.png";
	badge_arr["Piccola Spiga"]="/mb-default-theme/images/talentimulino/medaglia05.png";
	badge_arr["Grande Spiga"]="/mb-default-theme/images/talentimulino/medaglia06.png";
	badge_arr["Capo Mugnaio"]="/mb-default-theme/images/talentimulino/medaglia07.png";
	badge_arr["Giovane Naturalista"]="/mb-default-theme/images/talentimulino/medaglia08.png";
	badge_arr["Esperto Naturalista"]="/mb-default-theme/images/talentimulino/medaglia09.png";
	badge_arr["Gran Archivista"]="/mb-default-theme/images/talentimulino/medaglia10.png";
	badge_arr["Giocoliere Digitale"]="/mb-default-theme/images/talentimulino/medaglia11.png";
	badge_arr["Giovane Messaggero"]="/mb-default-theme/images/talentimulino/medaglia12.png";
	badge_arr["Giovane Opinionista"]="/mb-default-theme/images/talentimulino/medaglia13.png";
	badge_arr["Esperto Opinionista"]="/mb-default-theme/images/talentimulino/medaglia14.png";
	badge_arr["Piccolo Fan"]="/mb-default-theme/images/talentimulino/medaglia15.png";
	badge_arr["Novello Merendiere"]="/mb-default-theme/images/talentimulino/medaglia16.png";
	badge_arr["Esperto Merendiere"]="/mb-default-theme/images/talentimulino/medaglia17.png";
	badge_arr["Novello Colazioniere"]="/mb-default-theme/images/talentimulino/medaglia18.png";
	badge_arr["Esperto Colazioniere"]="/mb-default-theme/images/talentimulino/medaglia19.png";
	badge_arr["Tourista"]="/mb-default-theme/images/talentimulino/medaglia20.png";
	badge_arr["Esperto Tourista"]="/mb-default-theme/images/talentimulino/medaglia21.png";
	badge_arr["Piccolo Esploratore"]="/mb-default-theme/images/talentimulino/medaglia22.png";
	badge_arr["Grande Esploratore"]="/mb-default-theme/images/talentimulino/medaglia23.png";
	badge_arr["Piccola Ricarica"]="/mb-default-theme/images/talentimulino/medaglia24.png";
	badge_arr["Grande Ricarica"]="/mb-default-theme/images/talentimulino/medaglia25.png";
	badge_arr["Primo Talento"]="/mb-default-theme/images/talentimulino/medaglia26.png";

	var url = badge_arr[talento];

	return url;
}


function playerLastAward(){
	var lastAward = "";
	var endPoint_data = "/html/gamification/loyalty_response.jsp?uncache="+(new Date()).getTime();
	$.getJSON(endPoint_data, function(data_response) {
		var status_data = data_response.status;
		var dg = data_response.dg;
		var guid = data_response.guid;
		var playerId = data_response.playerID;	
		if (status_data=="OK"){
			var action = "/player/" + playerId + "/info?Callback=?";
			var endPoint = entryPoint + community_id + action;
			$.getJSON(endPoint, function(data) {
				if(data.Status=="OK"){
					var html="";
					lastAward = data.Player.LastAward.Name;	
					
					if(lastAward!=null && lastAward!=""){
						
					//	html+="<div class=mylastaward>";
						html+="<img src='"+badgeUrl(lastAward).substr(0,((badgeUrl(lastAward)).length-4))+"_big.png"+"'/>";
						html+="<div class='mylastawartitle'>Sei diventato:</div>";
						html+="<div class='mylastawardname'>"+lastAward+"</div>";
					//	html+="</div>";
						$("#badge_entranelmulino").removeClass('badge_entranelmulino');
						$("#badge_entranelmulino").addClass('badge_entranelmulino_login');
						$("#badge_entranelmulino").html(html);						
					}else{
						html+= "<div class='badge_entranelmulno_title'>Esplora, condividi, partecipa e gioca per conquistare tutti i <br/> <span>Talenti del Mulino!</span></div>";
						$("#badge_entranelmulino").html(html);
					}
				}else{
					var html="";
					html+= "<div class='badge_entranelmulno_title'>Esplora, condividi, partecipa e gioca per conquistare tutti i <br/> <span>Talenti del Mulino!</span></div>";
					$("#badge_entranelmulino").html(html);	
				}
			});			
		}else{
			var html="";
			html+= "<div class='badge_entranelmulno_title'>Esplora, condividi, partecipa e gioca per conquistare tutti i <br/> <span>Talenti del Mulino!</span></div>";
			$("#badge_entranelmulino").html(html);	
		}
	});
	//return lastAward;
}

/*
 * 
 * config badge in comments
 * 
 * */
function getSectionMissions() {
	var thisUrl =  document.location.href;
	var mission_arr=new Array();
	mission_arr["/sorpresina/-/archivio/"]="Grande Archivista";
	mission_arr["/amici-del-mulino/lamerendadeibambini/"]="Missione Amico del Mulino";
	mission_arr["/colazione-e-merenda/"]="Missione Colazione e Merenda";
	//mission_arr[""]="Missione Esperto Merendiere";
	mission_arr["/il-tour-del-mulino/blog-del-tour/dettaglio/-/blogs/"]="Missione Esperto Tourista,Missione Tourista";
	mission_arr["/storie-di-frutta/"]="Missione Frutteto";
	mission_arr["/mulino-verde/"]="Missione Germolio";
	mission_arr["/colazione-e-merenda/"]="Missione Colazione e Merenda";
	//mission_arr[""]="Missione Mugnaio";
	//mission_arr[""]="Missione Novello Merendiere";
	//mission_arr[""]="Missione Opinionista";
	mission_arr["/pane-del-mulino/"]="Missione Pani";
	//mission_arr["Giovane Opinionista"]="Missione Tourista";
	
	for (var p in mission_arr) {
	  if(thisUrl.indexOf(p) !=-1){
	  	return mission_arr[p];	
	  } 
	};
}

function getAwardsPostByMissions(playerId, date, message_id){
	var date_comment= new Date(date.substring(0, 4),  date.substring(5, 7) - 1,  date.substring(8, 10),  date.substring(11, 13),  date.substring(14, 16),  date.substring(17, 19) );
	var div_id="#img_badge_"+message_id;
	var bg_id="#bg_badge_"+message_id;
	var missions = getSectionMissions();	
	var awards_arr = new Array();
	var award_earned;
	var action = "/player/" + playerId + "/awards?";
	var callback = "?";
	var includedata = "True";
	var endPoint = entryPoint + community_id + action;
	var queryParams = [ 'IncludeData=' + includedata,
						'Callback=' + callback, 'FilterByMission=' + missions,];
	var query = queryParams.join('&');
	endPoint += query;

	$.getJSON(endPoint, function(response) {
		if(response.Status == "OK"){
			
			$.each(response.Player.Awards, function(i, award) {
				var earned = award.Earned;
				var date_earned = new Date(earned.substring(0, 4),  earned.substring(5, 7) - 1,  earned.substring(8, 10),  earned.substring(11, 13),  earned.substring(14, 16),  earned.substring(17, 19) );				
				if (date_comment > date_earned){
					award_earned = award.Name;
					$(div_id).append( "<img src='"+badgeUrl(award_earned) +"' alt='"+award_earned+"' />");
					$(bg_id).addClass("active");

					return false;
				};
              
			});
		}
		
	});		
}


function broccaLayer(mc, mu){
	var s0=1;
	var s1=2;
	var s2=5;
	var s3=10;
	var s4=50;
	var currentDate = new Date();
	var giorno = parseInt(currentDate.getDate());
	var lc = Math.round(Math.log(giorno)+3);
	var lu = Math.round(Math.log(giorno)+3);
	if (mu==0 && mc==0){
		lu=0;
		lc=0;
	}else if(mc>mu){
		if (mu!=0){
			var r = mc/mu;
			if (r>s0 && r<=s1) {
				lu=lc-1;
			}else if (r>s1 && r<=s2) {
				lu=lc-2;
			}else if (r>s2 && r<=s3) {
				lu=lc-3;
			}else if (r>s3 && r<=s4) {
				lc=lc+1;
				lu=lc-4;
			}else {
				lc=lc+2;
				lu=lc-5;
			}
		}else{
			lu=0;
		}
	} else if (mu>mc){
		if (mc!=0){
			var r = mu/mc;
			if (r>s0 && r<=s1) {
				lu= lc+1;
			}else if (r>s1 && r<=s2) {
				lu=lc+2;
			}else if (r>s2 && r<=s3) {
			    lu=lc+3;
			}else if (r>s3 && r<=s4) {
			    lc=lc-1;
			    lu=lc+4;
			}else{
			   	lc=lc-2;
			   	lu=lc+5;
			}
		}else{
			lc=0;
		}	 	
	}
	return {
	    'lu': lu,
	    'lc': lc
	 };
}


function generateBroccaLayer(playerId, userName){

	var currentDate = new Date();
	var month = parseInt(currentDate.getMonth()) + 1;
	if (month < 10 ) month = '0' + month; 
	var year = parseInt(currentDate.getFullYear());
	
	var action_community = "/community/metrics?Month="+year+month+"&Callback=?";
	var  action_player = "/player/"+playerId+"/metrics?Month="+year+month+"&Callback=?";
	var endPoint_community = entryPoint + community_id + action_community;
	var endPoint_player = entryPoint + community_id + action_player;
	var mu = 0;
	var mc = 0;
	
	$.getJSON(endPoint_community, function(data_community) {
		if (data_community.Status=="OK"){
			if (data_community.Metrics.UniqueVisits!="0") {
				mc = parseInt(data_community.Metrics.Actions)/parseInt(data_community.Metrics.UniqueVisits);	
			}else{
				mc = 0;
			}
		}else{
			mc = 0;
		}
		$.getJSON(endPoint_player, function(data_player) {
			if (data_player.Status=="OK"){
				if (data_player.Metrics.UniqueVisits!="0") {
					mu = parseInt(data_player.Metrics.Actions)/parseInt(data_player.Metrics.UniqueVisits);	
				}else{
					mu = 0;
				}
			}else{
				mu = 0;
			}
			var lu_lc = broccaLayer(mc,mu);
			var lu = lu_lc.lu;
			var lc = lu_lc.lc;
			var html = "<div class='brocca' style='background-image: url(/mb-default-theme/images/talentimulino/tooltip/player/brocca"+lu+".png); height: 108px; width: 248px;'>";
			html+="<img src='/mb-default-theme/images/talentimulino/tooltip/community/brocca"+lc+".png'>";
			html+="</div>";
			html+="<div class='mb_bottom_link' style='margin-left: -15px; margin-top: 5px;'><a title='GUARDA IL SUO PROFILO' href='/web/"+userName+"/il-mio-mulino'>GUARDA IL SUO PROFILO</a></div>";
			$('.tooltip').html(html);
		});
	});
}

