/* start passport profile js */
// @todo, combine onloads
/*
jQuery(
	function(){
		var navigation = jQuery('.passport .span-4 .mod-tabs .ui-tabs-nav li');
		navigation.children().click(
			function(){
				
				var thisObj = jQuery(this);
				
				navigation.removeClass('ui-tabs-selected');
				navigation.addClass('ui-tabs-disabled');
				thisObj.parent().addClass('ui-tabs-selected');
				contentLoading();
				
				var tab = thisObj.attr('id');
				
				switch(tab){
					case "activity":
						jQuery.getJSON('/travel/passport/api/data/getActivity',
							{}, //{ userName: "passporttest1" }, // remove this once you merge the two arrays in the json.
							function(json){
								buildActivity(json);
								subNav(tab);
							}
						);
						
						return false;
						break;
					default:
						alert('you clicked '+tab+', but i aint set this functionality up yet.');
						contentLoaded();
						return false;
						break;
				}
			}
		);
	}
);
*/

function contentLoading(){
	jQuery('div.updated').hide('fast');
	jQuery('div#passport-content').html('');
	jQuery('div#passport-content').html('<div style="padding-top: 30px; height: 500px; text-align: center;"><img src="http://a.espncdn.com/prod/assets/memberservices/ajax-loader.gif" /></div>')
}

function contentLoaded(){
	jQuery('div#passport-content').html('');
}

/* subnav 
function subNav(tab){
	
	// destroy subnav
	//var subnav = jQuery('div.article ul.sub-pgNav');
	//var subnavElements = jQuery('div.article ul.sub-pgNav li');
	//subnavElements.remove();
	
	//switch(tab){
	//	case "activity":
			//subnav.prepend('<li id="activity-all" class="active"><span>All</span></li><li id="activity-user"><a href="#"><span>by '+getUserName()+'</span></a></li><li id="activity-friends"><a href="#"><span>Friends</span></a></li>');
	
			return false;
			break;
		default:
			alert('you clicked subnav '+tab+', but i aint set this functionality up yet.');
			contentLoaded();
			return false;
			break;
	}
}
*/

function subNavStyles(thisObj){
	//var active = jQuery('div.article ul.sub-pgNav#pg-sub-nav li.active span');
	var active = jQuery(thisObj).siblings('li.active').children('span');
	//console.log('clicked element');
	//console.log(thisObj);
	//console.log('active element');
	//console.log(active);
	var txt = active.html();
	active.parent('li.active').removeClass('active');

	active.parent('li').html('<a href="#"><span>'+txt+'</span></a>');
	thisObj.addClass('active');
	var txt = thisObj.children().children().html();
	thisObj.html('<span>'+txt+'</span>');
}

/* activity functions */
function getMonthName(i){
	var month_name=new Array(12);
	month_name[0]="January";
	month_name[1]="February";
	month_name[2]="March";
	month_name[3]="April";
	month_name[4]="May";
	month_name[5]="June";
	month_name[6]="July";
	month_name[7]="August";
	month_name[8]="September";
	month_name[9]="October";
	month_name[10]="November";
	month_name[11]="December";
	return month_name[i];
}

function buildActivity(json){

	jQuery('#prev').addClass('hidden'); jQuery('span.paginate-seperate').addClass('hidden'); jQuery('#next').addClass('hidden'); // hardcoded

	if ( json.activity.length > 0 ){
		var lastDate = -1;
		var html='';
		var dateCount = 0;
		for(var i=0;i<json.activity.length;i++){
			var thisJson = json.activity[i];
			var thisUser = thisJson.user;
			var eventId = thisJson.eventId;
			var venueId = thisJson.venueId;
			var last = '';
			if ( json.activity[i+1] == null ){
				last = ' last';
			} else if ( thisJson.date != json.activity[i+1].date ){
				last = ' last';
			}
			if ( lastDate != thisJson.date ){
				if ( i != 0 ){
					html = html + '</div>';
				}
				viewClass = 'hidden';
				if ( dateCount < 5 ){
					viewClass = 'inview';
				}
				dateCount = dateCount + 1;
				var itemDate = new Date(); yesterday = new Date(); weekago = new Date(); twodays = new Date(); threedays = new Date(); fourdays = new Date(); fivedays = new Date();
				itemDate.setFullYear(parseInt(thisJson.date.substring(0,4)),parseInt(thisJson.date.substring(4,6))-1,parseInt(thisJson.date.substring(6,8)));
				yesterday.setFullYear(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()-1);
				twodays.setFullYear(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()-2);
				threedays.setFullYear(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()-3);
				fourdays.setFullYear(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()-4);
				fivedays.setFullYear(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()-5);
				weekago.setFullYear(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()-6);
				if ( Date() == itemDate ){
					txt = 'Today';
				} else if ( itemDate.getDate() == yesterday.getDate() && itemDate.getMonth() == yesterday.getMonth() && itemDate.getFullYear() == yesterday.getFullYear() ){
					txt = 'Yesterday';
				} else if ( itemDate.getDate() == twodays.getDate() && itemDate.getMonth() == twodays.getMonth() && itemDate.getFullYear() == twodays.getFullYear() ){
					txt = 'Two days ago';
				} else if ( itemDate.getDate() == threedays.getDate() && itemDate.getMonth() == threedays.getMonth() && itemDate.getFullYear() == threedays.getFullYear() ){
					txt = 'Three days ago';
				} else if ( itemDate.getDate() == fourdays.getDate() && itemDate.getMonth() == fourdays.getMonth() && itemDate.getFullYear() == fourdays.getFullYear() ){
					txt = 'Four days ago';
				} else if ( itemDate.getDate() == fivedays.getDate() && itemDate.getMonth() == fivedays.getMonth() && itemDate.getFullYear() == fivedays.getFullYear() ){
					txt = 'Five days ago';
				} else if ( itemDate.getDate() == weekago.getDate() && itemDate.getMonth() == weekago.getMonth() && itemDate.getFullYear() == weekago.getFullYear() ){
					txt = 'About a week ago';
				} else {
					txt = getMonthName(parseInt(itemDate.getMonth()))+' '+itemDate.getDate()+', '+itemDate.getFullYear();
				}
		 		html = html + '<div class="'+viewClass+'"><div class="news-cont news-date">'+txt+'</div>';
			}
			html = html + buildActivityItem(thisUser.userName, thisUser.userId, thisUser.small_avatar, "?uid="+thisUser.userId, thisJson.description, last, eventId, venueId);
			lastDate = thisJson.date;
		}
	} else {
		html = '<div class="inview"><div class="news-cont news-date">Today</div>No recent activity.'
	}

	/* write to dom */
	contentLoaded();
	//subNavStyles(clickedObj);
	jQuery('div#passport-content').html(html+'</div>');
	paginate(jQuery('div#passport-content'), jQuery('#prev'), jQuery('#next'), 5); // hardcoded
	bindEditDeleteLinks(); //remove@ ????
	
}

/* add .news-mug padding-bottom: 5px to css */
function buildActivityItem(user, userId, avatar, lnk, txt, moreClass, eventId, venueId){
	var r = '<div class="news-cont'+moreClass+'"><div class="news-mug" style="padding-bottom: 5px;"><a href="'+lnk+'"><img src="'+avatar+'"/></a></div>';
	var newLink = 'event?uid='+userId+'&eid='+eventId;
	if ( eventId < 1 ){
		newLink = 'venue?uid='+userId+'&vid='+venueId;
	}
	if ( user == getUserName() && userIsGuest() ){
		var u = 'You';
	} else {
		var u = '<a href="'+lnk+'">'+user+'</a>';
	}
	r = r + '<div class="news-txt"><strong>'+u+'</strong> '+txt+'<div class="del">';
	r = r + '<a href="'+newLink+'">View</a>'
	if ( u == 'You' && userIsGuest() ){
		if ( eventId != null && eventId > -1 ){
			r = r + ' | <a class="edit thickbox" href="add/modal?eventId='+eventId+'">Edit</a> | <a href="#" class="quick-del {eventId: '+eventId+'}">Delete</a>';
		} else if ( venueId != null && venueId > -1 && eventId != -1 ){ // blocking eventId -1
			r = r + ' | <a class="edit thickbox" href="add/modal?venueId='+venueId+'">Edit</a> | <a href="#" class="quick-del {venueId: '+venueId+'}">Delete</a>';
		}
	}
	r = r + '</div></div><div class="clear"> </div></div>';
	return r;
}
/* end activity */
/* moved to global
function bindEditDeleteLinks(){
	//bind edit
	jQuery('a.edit.thickbox').unbind();
	tb_init('a.edit.thickbox');

	//bind to delete
	jQuery('a.quick-del').unbind();
	jQuery('a.quick-del').click( function(){
		var c = confirm(getGlobal('delete-message'));
		if ( c ){
			var thisObj = jQuery(this);
			var uniqueId = thisObj.metadata().eventId;
			dataObj = {eventId: uniqueId};
			if ( uniqueId == null ){
				uniqueId = thisObj.metadata().venueId;
				dataObj = {venueId: uniqueId};
			}
			if ( thisObj.parent().parent('tr').length > 0 ){
				thisObj = thisObj.parent().parent('tr'); // events, venues
			} else {
				thisObj = thisObj.parent().parent().parent(); //activity, others
			}
			thisObj.addClass('deleting');
			jQuery.getJSON('/travel/passport/api/save/delete',
				dataObj,
				function(json){
					if ( !json.error ){
						thisObj.removeClass('deleting');
						thisObj.remove();
					} else {
						alert('There was an error proccessing your request. Please try again.');
						thisObj.removeClass('deleting');
					}
				}
			);
		}
		return false;
	});
}
*/
/* end passport profile js */

/* friends */
function buildAllFriends(json,disp){
	count=0;
	h='<div class="mod-columnists-results" style="padding-left: 0pt;"><div class="mod-columnists-results" style="padding-left: 0pt;"><ul class="brief-overview altrows" style="padding-bottom: 4px;">';
	for(var i=0; i<json.length; i++){
		liClass='hidden';
		if ( i < disp ){
			liClass = 'inview';
		}
		var thisJson = json[i];				
		var userJson = thisJson.user;
		// li, alt-bg
		if ( count == 0 || count % 2 == 0 ){
			if ( count % 4 == 0 ){
				liClass = liClass+' alt alt-bg';
			}
			h=h+'<li class="'+liClass+'">';
		}

		h=h+'<div class="column"><a href="'+userJson.passport_link+'"><img src="'+userJson.med_avatar+'" alt="'+userJson.userName+'"/></a>'
		h=h+'<div><h6><a href="'+userJson.passport_link+'">'+userJson.userName+'</a></h6>';
		h=h+'<p>Event Rank: '+thisJson.eventRank+'<br/>Venue Rank: '+thisJson.venueRank+'</p>';
		h=h+'</div></div>';

		if ( count+1 % 2 == 0 ){
			h=h+'</li>';
		}
		
		count = count + 1;
	}
	contentLoaded();
	h=h+'</ul></div></div>';
	jQuery('#passport-content').html(h);
	
	if ( json.length > disp ){
		jQuery('#passport-content').append('<div class="del photo-pag"><a href="#" id="prev-f" class="hidden">&#171; Previous</a><span class="paginate-seperate hidden"> | </span><a id="next-f" href="#">Next &#187;</a></div>');
		paginate(jQuery('.brief-overview.altrows'),jQuery('#prev-f'),jQuery('#next-f'),disp/2);
	}
}

function buildLeaders(j,type,disp){
  //alert(json)
  if ( j.length > 0 ){
	//json = json.friendRankings;
	json = j;
	h='<div class="mod-container mod-no-footer content-box mod-inline full mod-no-header-footer leaders"><div class="mod-content"><h4>Friends '+type+' Standings</h4><table class="stamp-cont"><thead><tr><th>Mug</th><th>User</th><th>Rank</th><th>Total</th></tr></thead><tbody>';
	for(var i=0; i<json.length; i++){
		
		// tr class
		trClass='hidden';
		if ( i < disp ){
			trClass = 'inview';
		}

		// td class, alt-bg
		tdClass="";
		if ( i == 0 || i % 2 == 0 ){
			tdClass = tdClass+' alt alt-bg';
		}		
		
		var thisJson = json[i];				
		var userJson = thisJson.user;

		var rank = thisJson.eventRanking;
		var lbl = 'e';
		var evCount = thisJson.eventCount;
		if ( type=='Venue' ){
			rank = thisJson.venueRanking;
			lbl = 'v';
			var evCount = thisJson.venueCount;
		}

		h=h+'<tr class="last '+trClass+'">';
		h=h+'<td class="'+tdClass+'" width="40"><img height="48" width="35" src="'+userJson.small_avatar+'"/></td>';
		h=h+'<td class="'+tdClass+'"><a href="'+userJson.passport_link+'">'+userJson.userName+'</a></td>';
		h=h+'<td class="'+tdClass+'">'+rank+'</td>';
		h=h+'<td class="'+tdClass+'">'+evCount+'</td></tr>';
		
	}
	h=h+'</tbody></table></div>';
  } else {
  	h='We know this sounds kind of funny to say, but you have no friends. Add them &#187;';
  }
  
	contentLoaded();
	
	jQuery('#passport-content').html(h);
	
	if ( json.length > disp ){
		jQuery('#passport-content').append('<div class="del photo-pag"><a href="#" id="prev-fl'+lbl+'" class="hidden">&#171; Previous</a><span class="paginate-seperate hidden"> | </span><a id="next-fl'+lbl+'" href="#">Next &#187;</a></div>');
		paginate(jQuery('div.leaders table.stamp-cont tbody'),jQuery('#prev-fl'+lbl),jQuery('#next-fl'+lbl),disp);
	}	
}


/* paginate, this fn sucks */
function paginate(container,prev,next,numToggle){
	
	next.unbind();
	next.click(
		function(){
			
			if ( jQuery('html, #passport-content').attr('scrollTop') > 450 ){
				jQuery('html, #passport-content').animate({scrollTop:253}, 'fast'); 
			}
			
			var activeElements = jQuery(container).children('.inview');
			var last = activeElements.length-1;
			jQuery(container).children().removeClass('inview');
			jQuery(container).children().addClass('hidden');
		
			var nex = jQuery(activeElements[last]).next('.hidden');
			if ( container.attr('tagName') == "TBODY" ){
				container.prepend('<tr class="temp-loader" style="text-align: center;"><td colspan="99"><img src="http://a.espncdn.com/prod/assets/memberservices/ajax-loader.gif"/></td></tr>');
			} else if ( container.attr('tagName') == "UL" ){
				container.parent().prepend('<div style="padding: 20px; text-align:center; height: 470px;" class="temp-loader"><img src="http://a.espncdn.com/prod/assets/memberservices/ajax-loader.gif"/></div>');
			} else if ( container.attr('tagName') == "DIV" ){
				container.prepend('<div style="padding-top: 20px; text-align:center; height: 470px;" class="temp-loader"><img src="http://a.espncdn.com/prod/assets/memberservices/ajax-loader.gif"/></div>');
			}
			
			// ugh.  gives this an ajaxy feel.			
			setTimeout(function(){for(var i=0; i<numToggle; i++){jQuery('.temp-loader').remove();nex.removeClass('hidden');nex.addClass('inview');nex = nex.next('.hidden');jQuery(prev).removeClass('hidden');jQuery('span.paginate-seperate').removeClass('hidden');if ( nex.length < 1 ){next.addClass('hidden');jQuery('span.paginate-seperate').addClass('hidden');}}}, 450);
			
			return false;
		}
	);
	
	prev.unbind();
	prev.click(
		function(){
		
			if ( jQuery('html, #passport-content').attr('scrollTop') > 450 ){
				jQuery('html, #passport-content').animate({scrollTop:253}, 'fast'); 
			}
			
			var activeElements = jQuery(container).children('.inview');
			var last = activeElements.length-1;
			jQuery(container).children().removeClass('inview');
			jQuery(container).children().addClass('hidden');
		
			var pre = jQuery(activeElements[0]).prev('.hidden');
			if ( container.attr('tagName') == "TBODY" ){
				container.prepend('<tr class="temp-loader" style="text-align: center;"><td colspan="99"><img src="http://a.espncdn.com/prod/assets/memberservices/ajax-loader.gif"/></td></tr>');
			} else if ( container.attr('tagName') == "UL" ){
				container.parent().prepend('<div style="padding: 20px; text-align:center; height: 470px;" class="temp-loader"><img src="http://a.espncdn.com/prod/assets/memberservices/ajax-loader.gif"/></div>');
			} else if ( container.attr('tagName') == "DIV" ){
				container.prepend('<div style="padding-top: 20px; text-align:center; height: 470px;" class="temp-loader"><img src="http://a.espncdn.com/prod/assets/memberservices/ajax-loader.gif"/></div>');
			}

			// yikes			
			setTimeout(function(){for(var i=0; i<numToggle; i++){jQuery('.temp-loader').remove();pre.removeClass('hidden');pre.addClass('inview');pre = pre.prev('.hidden');jQuery(next).removeClass('hidden');jQuery('span.paginate-seperate').removeClass('hidden');if ( pre.length < 1 ){prev.addClass('hidden');jQuery('span.paginate-seperate').addClass('hidden');}}}, 450);
			
			return false;
		}
	);
	
	prev.addClass('hidden');
	jQuery('span.paginate-seperate').addClass('hidden');
	next.removeClass('hidden');
	
}