if (document.images){
	var imgPath = 'http://a.espncdn.com/i/travel/passport/09/';

	var btns = new Array('btn_back.gif','btn_cancel.gif','btn_submitNoDate.gif','btn_continue.gif','btn_submit.gif');
	document.image_cache = new Array();
	for ( i = 0; i < btns.length; i++ )
	{
		document.image_cache[i] = new Image();
		document.image_cache[i].src = imgPath + btns[i];
	}
}

function monthToggle(){
	// return true if monthToggle is availible in the DOM
	if ( jQuery('#month').length == 0 ){
		return false;
	}
	return true;
}

function yearToggle(){
	// return true if yearToggle is availible in the DOM
	if ( jQuery('#year').length == 0 ){
		return false;
	}
	return true;
}

function enable_jcarousel_for_venues(){

	var trs = jQuery('#team-sport-venues-table tr.venuelistrow');
	numVenuesToList = getGlobal('numvlist');

	if ( trs.length > numVenuesToList ){

		jQuery('.arrows .jcarousel-next').unbind();
		jQuery('.arrows .jcarousel-next').click(
			function(){
				if ( jQuery('.arrows .jcarousel-next-disabled').length == 0 ){
					trs.addClass('hidden');
					lastObj = jQuery('#team-sport-venues-table tr.lastshown');
					lastObj.removeClass('lastshown');
					jQuery('#team-sport-venues-table tr.firstshown').removeClass('firstshown');

					for ( var i = 0; i <= numVenuesToList; i++ ){
						lastObj = jQuery(lastObj.next());
						if ( lastObj.length > 0 ){
							lastObj.removeClass('hidden');
							if ( i == 0 ){
								lastObj.addClass('firstshown');
							} else if ( i == numVenuesToList ){
								lastObj.addClass('lastshown');
							}
						}
					}

					if( lastObj.length == 0 ){
						jQuery(trs[(trs.length-1)]).addClass('lastshown');
						jQuery('.arrows .jcarousel-next').addClass('jcarousel-next-disabled');
					}
					jQuery('.arrows .jcarousel-prev-disabled').removeClass('jcarousel-prev-disabled');
				}
			}
		);

		jQuery('.arrows .jcarousel-prev').unbind();
			jQuery('.arrows .jcarousel-prev').click(
				function(){
					if ( jQuery('.arrows .jcarousel-prev-disabled').length == 0 ){
						trs.addClass('hidden');
						lastObj = jQuery('#team-sport-venues-table tr.firstshown');
						lastObj.removeClass('firstshown');
						jQuery('#team-sport-venues-table tr.lastshown').removeClass('lastshown');

						for ( var i = 0; i <= numVenuesToList; i++ ){
							lastObj = jQuery(lastObj.prev());
							if ( lastObj.length > 0 ){
								lastObj.removeClass('hidden');
								if ( i == 0 ){
									lastObj.addClass('lastshown');
								} else if ( i == numVenuesToList ){
									lastObj.addClass('firstshown');
								}
							}
						}

						if( lastObj.prev().attr('class') == "headerrow" ){
							//jQuery(trs[0]).addClass('firstshown');
							jQuery('.arrows .jcarousel-prev').addClass('jcarousel-prev-disabled');
						}
						jQuery('.arrows .jcarousel-next-disabled').removeClass('jcarousel-next-disabled');
					}
				}
		);

		jQuery('.arrows .jcarousel-prev').addClass('jcarousel-prev-disabled');
		jQuery('.arrows .jcarousel-next-disabled').removeClass('jcarousel-next-disabled');

	} else {
		jQuery('.arrows .jcarousel-next').addClass('jcarousel-next-disabled');
		jQuery('.arrows .jcarousel-prev').addClass('jcarousel-prev-disabled');
	}

}

function enable_jcarousel(){

	if ( !monthToggle() && yearToggle() ){
		var yearIndex = jQuery('#year').attr('selectedIndex');
		var yearLastIndex = (jQuery('#year').attr('options').length - 1);

		if ( yearIndex == yearLastIndex+'' ){ // disable previous, it's the first month
			jQuery('.jcarousel-prev').addClass('jcarousel-prev-disabled');
			jQuery('.jcarousel-next-disabled').removeClass('jcarousel-next-disabled');
		} else if ( yearIndex == 0 ){ // disable next, it's the last month
			jQuery('.jcarousel-next').addClass('jcarousel-next-disabled');
			jQuery('.jcarousel-prev-disabled').removeClass('jcarousel-prev-disabled');
		} else { // enable both
			jQuery('.jcarousel-next-disabled').removeClass('jcarousel-next-disabled');
			jQuery('.jcarousel-prev-disabled').removeClass('jcarousel-prev-disabled');
		}
		jQuery('.select-box').removeAttr('disabled');
	} else if ( yearToggle() ){
		var yearIndex = jQuery('#year').attr('selectedIndex');
		var monthIndex = jQuery('#month').attr('selectedIndex');
		var yearLastIndex = (jQuery('#year').attr('options').length - 1);

		if ( yearIndex == yearLastIndex+'' && monthIndex == 0 ){ // disable previous, it's the first month
			jQuery('.jcarousel-prev').addClass('jcarousel-prev-disabled');
			jQuery('.jcarousel-next-disabled').removeClass('jcarousel-next-disabled');
		} else if ( yearIndex == 0 && monthIndex == 11 ){ // disable next, it's the last month
			jQuery('.jcarousel-next').addClass('jcarousel-next-disabled');
			jQuery('.jcarousel-prev-disabled').removeClass('jcarousel-prev-disabled');
		} else { // enable both
			jQuery('.jcarousel-next-disabled').removeClass('jcarousel-next-disabled');
			jQuery('.jcarousel-prev-disabled').removeClass('jcarousel-prev-disabled');
		}
		jQuery('.select-box').removeAttr('disabled');
	}

}

function disable_jcarousel(){
	if ( yearToggle() ){
		// disable the carousel while we're making an ajax call, you need to call re-enable at the end of your fn
		jQuery('.select-box').attr('disabled', 'true');
		jQuery('.jcarousel-next').addClass('jcarousel-next-disabled');
		jQuery('.jcarousel-prev').addClass('jcarousel-prev-disabled');
	}
}

function init_cal_jcarousel(){

	/* cal/list prev arrow */
	jQuery('.arrows .jcarousel-prev').unbind();
	jQuery('.arrows .jcarousel-prev').click(
		function(){

			if ( jQuery('.arrows .jcarousel-prev-disabled').length !== 1 ){

				var yearIndex = jQuery('#year').attr('selectedIndex');

				if ( monthToggle() ){
					// decrement date in dom
					var monthIndex = jQuery('#month').attr('selectedIndex');
					if ( monthIndex == 0 ){
							jQuery('#month').attr('selectedIndex', 11);
							jQuery('#year').attr('selectedIndex', (yearIndex+1));
					} else {
						jQuery('#month').attr('selectedIndex', (monthIndex-1));
					}
				} else {
					jQuery('#year').attr('selectedIndex', (yearIndex+1));
				}

				var m = 0;
				if ( monthToggle() ){
					m = jQuery('#month').val()
				}
				update( m, jQuery('#year').val() );
			}
		}
	);

	/* cal/list next arrow */
	jQuery('.arrows .jcarousel-next').unbind();
	jQuery('.arrows .jcarousel-next').click(
		function(){

			if ( jQuery('.arrows .jcarousel-next-disabled').length == 1 ){}else{ // if its disabled, dont allow click

				var yearIndex = jQuery('#year').attr('selectedIndex');

				if ( monthToggle() ){
					// increment date in dom
					var monthIndex = jQuery('#month').attr('selectedIndex');
					if ( monthIndex == 11 ){
						jQuery('#month').attr('selectedIndex', 0);
						jQuery('#year').attr('selectedIndex', (yearIndex-1));
					} else {
						jQuery('#month').attr('selectedIndex', (monthIndex+1));
					}
				} else {
					jQuery('#year').attr('selectedIndex', (yearIndex-1));
				}

				var m = 0;
				if ( monthToggle() ){
					m = jQuery('#month').val();
				}
				update(m, jQuery('#year').val() );
			}
		}
	);

}

function populateList(s,v,t,m,y){
	if ( jQuery('.arrows .jcarousel-next-disabled').length == 1 && jQuery('.arrows .jcarousel-prev-disabled').length == 1 ){}else{ // if they are both disabled, dont allow change

		disable_jcarousel();

		jQuery('.listrow').remove();
		jQuery('#listLoader').show();

		aurl = "/travel/passport/add/events/venueDates";
		if ( m+'' != '0' && y+'' != '0' ){
			aurl = "/travel/passport/add/events/sportDates";
		}

		jQuery.getJSON(aurl+'?callback=?',
			{ sportId: s, venueId: v, teamId: t, month: m, year: y, _: getTimestamp() },
			function(json){

				tdClass = "alt-bg";

				var html = '';
				for(var i = 0; i < json.dates.length; i++){

					// class of the td elements
					trClass = '';
					if ( ((i % 2)+1) == 1 ){
						trClass = 'odd';
					}

					var obj = json.dates[i];

					if (obj.day != "undefined") {

						var event = obj.event;
						if ( event != "undefined" ){
							event = event[0];
							var eid = event.eventId;
							var dt = event.dateText;
							var nm = event.name;
							var loc = event.location;
							var stamp = event.stamp;
							var objs = jQuery('.eventlist li');
							var checked = '';

							for(var j=0;j<objs.length;j++){
								if ( jQuery(objs[j]).attr('id') == 't'+eid ){
									checked = 'checked'; break;
								}
							}

							var contentMeta = '';
							var editable = '';
							var trtitle = '';
							if ( obj.content ){
								checked = 'checked disabled';
								editable = ' editable {eventId: '+eid+'}';
								contentMeta = getContentMetaString(obj.content, true);
								trtitle = 'title="Edit"';
							}

							html = html + '<tr class="'+trClass+' listrow'+editable+'" '+trtitle+'><td><form><input id="c'+eid+'" class="{stamp: \''+stamp+'\', eventId: \''+eid+'\', loc: \''+loc+'\', name: \''+nm+'\''+contentMeta+'}" type="checkbox" value="1" '+checked+'/></form></td><td>'+dt+'</td><td>'+nm+'</td><td>'+loc+'</td></tr>';
						}

					}
				}
				if ( json.dates.length == 0 ){
					html = '<tr class="odd listrow"><td colspan="4">Sorry, we could not find any events. <a href="#" onclick="tb_remove();">Go Back &#187;</a></td>';
				}
				// hide loader
				jQuery('#listLoader').css('display', 'none');

				// append html
				jQuery('#events-list').append(html);

				// bind this function to all checkboxes on calendar draw
				jQuery('#events-list tr td form input').unbind();
				jQuery('#events-list tr td form input').click(
					function(){
						handleCheckbox(this);
					}
				);

				// bind this function to all CHXd checkboxes on calendar draw
				jQuery('#events-list tr td form input:checked').unbind();
				jQuery('#events-list tr td form input:checked').click(
					function(){
						handleUnCheckbox(this);
					}
				);

				jQuery('.editable').click(
					function(){
						handleEditableTd(this);
					}
				);

				// enable/half disable the jcarousel
				enable_jcarousel();
			}
		);
	}

	windowToThickbox();
	return false;
}

function populateCalendar(s,v,t,m,y){
	//s,v useless. just makes the call easier
	if ( jQuery('.arrows .jcarousel-next-disabled').length == 1 && jQuery('.arrows .jcarousel-prev-disabled').length == 1 ){}else{ // if they are both disabled, dont allow change

		disable_jcarousel();

		jQuery('.daterow').remove();
		jQuery('#calendarLoader').show();

		jQuery.getJSON('/travel/passport/add/events/teamDates?callback=?',
			{ teamId: t, month: m, year: y, _: getTimestamp() },
			function(json){

				tdClass = "alt-bg";

				var html = '';
				for(var i = 0; i < json.dates.length; i++){

					tdClass = tdClass.replace(" home", "");
					tdClass = tdClass.replace(" last", "");
					tdClass = tdClass.replace(" today", "");

					if ( i == 0 ){
						html = html + '<tr class="daterow">';
					} else if ( i % 7 == 0 ){
						html = html + '</tr><tr class="daterow">';
						if ( tdClass.indexOf("alt-bg") > -1 ){ tdClass = '' } else { tdClass = 'alt-bg' }
					} else if ( (i+1)%7 == 0 ){
						tdClass = tdClass + ' last';
					}

					obj = json.dates[i];

					if (obj.day != "undefined") {

						theday = new Date(y,(m-1),obj.day);
						today = new Date();
						str_today = today+'';
						str_theday = theday+'';

						if ( str_theday.substr(0,15) == str_today.substr(0,15) ){
							tdClass = tdClass + ' today';
						}

						game = obj.game;
						if ( game != "undefined" ){
							game = game[0];
							eid = game.eventId;
							stamp = game.stamp;
							loc = game.location;
							objs = jQuery('.eventlist li');
							checked = ''; 
							var titl = game.titleText;
							if ( titl.indexOf('vs.') > -1 ){
								tdClass = tdClass + ' home';
							}

							for(var j=0;j<objs.length;j++){
								if ( jQuery(objs[j]).attr('id') == 't'+eid ){
									checked = 'checked'; break;
								}
							}

							var contentMeta = '';
							var editable = '';
							var hovrtitl = titl;
							if ( obj.content ){
								checked = 'checked disabled';
								editable = ' editable {eventId: '+eid+'}';
								hovrtitl = 'Edit'
								contentMeta = getContentMetaString(obj.content, true);
							}

							html = html + '<td title="'+hovrtitl+'" class="'+tdClass+editable+'"><ul class="cal-date"><li class="day" style="width: 15px;">'+obj.day+'</li><li><form><input type="checkbox" class="{stamp: \''+stamp+'\', eventId: \''+eid+'\', loc: \''+loc+'\', name: \''+titl+'\''+contentMeta+'}" id="c'+eid+'" value="1" '+checked+' /></form></li><li><img alt="'+game.altText+'" src="'+game.img+'"/></li></ul></td>'
						} else {
							/* append with a blank day */
							html = html + '<td class="'+tdClass+'"><ul class="cal-date"><li class="day" style="width: 15px;">'+obj.day+'</li><li> </li><li> </li></ul></td>';
						}
					} else if ( obj.day == "undefined" ){
						/* if the day is not defined and less than 6, we know it should be displayed in this table */
						if ( i < 6 ){
							html = html + '<td class="'+tdClass+'"><ul class="cal-date"><li class="day" style="width: 15px;">&nbsp;</li><li>&nbsp;</li><li>&nbsp;</li></ul></td>';
						}
					}

				}

				// hide loader
				jQuery('#calendarLoader').css('display', 'none');

				// append html
				jQuery('#calendar-list').append(html+'</tr>');


				// bind this function to all checkboxes on calendar draw
				jQuery('.cal-date li form input').unbind();
				jQuery('.cal-date li form input').click(
					function(){
						handleCheckbox(this);
					}
				);

				// bind this function to all CHXd checkboxes on calendar draw
				jQuery('.cal-date li form input:checked').unbind();
				jQuery('.cal-date li form input:checked').click(
					function(){
						handleUnCheckbox(this);
					}
				);

				jQuery('.editable').click(
					function(){
						handleEditableTd(this);
					}
				);

				// enable/half disable the jcarousel
				enable_jcarousel();

			}
		);
	}

	windowToThickbox();
	return false;
}

function getContentMetaString(content, isJSON){
	var contentMeta = '';
	// retruns the content of the obj in continued (stats witha ,) metadata form
	contentObj = content;

	if ( contentObj.rating != null ){
		contentMeta = contentMeta + ", rating: '"+contentObj.rating+"'";
	}
	if ( contentObj.experience != null ){
		exp = contentObj.experience;
		exp = exp.replace(/'/g,"\\\'");
		exp = exp.replace(/"/g,"\\\'");
		contentMeta = contentMeta + ", experience: '"+exp+"'";
	}
	if ( contentObj.section != null ){
		section = contentObj.section;
		section = section.replace(/'/g,"\\\'");
		section = section.replace(/"/g,"\\\'");
		contentMeta = contentMeta + ", section: '"+section+"'";
	}
	if ( contentObj.row != null ){
		row = contentObj.row;
		row = row.replace(/'/g,"\\\'");
		row = row.replace(/"/g,"\\\'");
		contentMeta = contentMeta + ", row: '"+row+"'";
	}
	if ( contentObj.seat != null ){
		seat = contentObj.seat;
		seat = seat.replace(/'/g,"\\\'");
		seat = seat.replace(/"/g,"\\\'");
		contentMeta = contentMeta + ", seat: '"+seat+"'";
	}
	if ( contentObj.friends != null ){
		if ( isJSON ){
			var friends = '';
			for ( var j = 0; j < contentObj.friends.length; j++ ){
				if ( j > 0 ){
					friends = friends + ',';
				}
				friendObj = jQuery(contentObj.friends[j]);
				friends = friends + friendObj[0].user.userName;
			}
			contentMeta = contentMeta + ", friends: '"+friends+"'";
		} else {
			contentMeta = contentMeta + ", friends: '"+contentObj.friends+"'";
		}
	}

	return contentMeta;
}

function handleEditableTd(o){

	var isVenue = false;
	if ( jQuery(o).metadata().isVenue ){
		isVenue = true;
		var unique_id = jQuery(o).metadata().venueId;
		var venueId = unique_id;
	} else {
		var unique_id = jQuery(o).metadata().eventId;
		var eventId = unique_id;
	}

	// o is the td cell
	thisObj = jQuery('#c'+unique_id);

	var nm = thisObj.metadata().name;
	var stamp = thisObj.metadata().stamp;
	var loc = thisObj.metadata().loc;
	if ( !isVenue ){
		// detect if its the calendar (single or double digit html), or MMM d, and append dateText to li accordingly
		var dateTextInDOM = thisObj.parent().parent().siblings().get(0).innerHTML;
		if ( dateTextInDOM.length <= 2 ){
			var date = jQuery('#month').val()+'/'+dateTextInDOM+'/'+jQuery('#year').val();
		} else {
			if ( yearToggle() ){
				date = dateTextInDOM + ', '+jQuery('#year').val();
			}
		}
	}

	/* if the continue button is hidden, show it and the list */
	if ( jQuery('#continue').css('display') == 'none' ){
		jQuery('#continue').css('display', 'inline'); 
		jQuery('#submitvenue').hide();
		bindInfoFormToObj(jQuery('#continue'));
		jQuery('.cal-ft').css('display', 'block'); 
	}

	var contentMeta = getContentMetaString(thisObj.metadata(), false);
	if ( isVenue ){
		html = '<li id="t'+venueId+'" class="{eventId: \'-1\', venueId: \''+venueId+'\', name: \''+nm+'\', stamp: \''+stamp+'\', venueId: \''+venueId+'\', loc: \''+loc+'\''+contentMeta+'}">EDIT: '+nm+' <span class="del"><a href="#" id="d'+venueId+'">Remove</a></span></li>';
	} else {
		html = '<li id="t'+eventId+'" class="{date: \''+date+'\', name: \''+nm+'\', stamp: \''+stamp+'\', eventId: \''+eventId+'\', loc: \''+loc+'\''+contentMeta+'}">EDIT: '+nm+', '+date+' <span class="del"><a href="#" id="d'+eventId+'">Remove</a></span></li>';
	}

	jQuery('.eventlist').prepend(html);

	if ( jQuery('#calendar-list').css('display') == 'none' || jQuery('#events-list').css('display') == 'none' ){
		jQuery('#startover').hide();
	}

	jQuery(o).unbind();
	jQuery(o).click(
		function(){
			handleUnEditTd(this);
		}
	);

	jQuery('#d'+unique_id).click(
		function(){
			var o = jQuery('#c'+unique_id);
			if ( o.length < 1 ){ // checkbox not in dom, not the current month
				jQuery('#t'+unique_id).remove();
				if ( jQuery('.eventlist li').length == 0 ){
					jQuery('#continue').css('display', 'none');
					jQuery('.eventlist').css('display', 'none'); // this is 1-2ms faster than hide()
					jQuery('#submitvenue').show();
				}
			} else {
				handleUnEditTd(o);
			}
			return false;
		}
	);
}

function handleUnEditTd(o){

	thisObj = jQuery(o);

	if ( thisObj.metadata().isVenue ){
		unique_id = thisObj.metadata().venueId;
	} else {
		unique_id = thisObj.metadata().eventId;
	}

	// o is the td cell, thisObj is the input el
	//thisObj = jQuery('#c'+eventId);

	if ( jQuery('.eventlist li').length == 1 ){
		jQuery('#continue').css('display', 'none');
		jQuery('.eventlist').css('display', 'none'); // this is 1-2ms faster than hide()
		if ( jQuery('#calendar-list').css('display') == 'none' || jQuery('#events-list').css('display') == 'none' ){
			jQuery('#startover').show();
		} else {
			jQuery('#submitvenue').show();
		}
	}

	jQuery('#t'+unique_id).remove();

	// unbind delete and rebind the add function
	jQuery(o).unbind();
	jQuery(o).click(
		function(){ handleEditableTd(this); }
	);

}

function handleCheckbox(o){

	thisObj = jQuery(o);
	// build the date, get eventId, get the title of the game (stored in input's alt)
	var nm = thisObj.metadata().name;
	var eventId = thisObj.metadata().eventId;
	var stamp = thisObj.metadata().stamp;
	var loc = thisObj.metadata().loc;
	var isVenue = false;

	if ( thisObj.metadata().isVenue ){
		isVenue = true;
		var venueId = thisObj.metadata().venueId;
	} else {
		var dateTextInDOM = thisObj.parent().parent().siblings().get(0).innerHTML;
		if ( dateTextInDOM.length <= 2 ){
			var date = jQuery('#month').val()+'/'+dateTextInDOM+'/'+jQuery('#year').val();
		} else {
			if ( yearToggle() ){
				date = dateTextInDOM + ', '+jQuery('#year').val();
			}
		}
	}

	/* if the continue button is hidden, show it and the list */
	if ( jQuery('#continue').css('display') == 'none' ){
		jQuery('#continue').css('display', 'inline');
		jQuery('#submitvenue').hide();
		bindInfoFormToObj(jQuery('#continue'));
		jQuery('.cal-ft').css('display', 'block'); 
	}

	if ( isVenue ){
		html = '<li id="t'+venueId+'" class="{eventId: \'-1\', venueId: \''+venueId+'\', name: \''+nm+'\', stamp: \''+stamp+'\', loc: \''+loc+'\'}">'+nm+' <span class="del"><a href="#" id="d'+venueId+'">Remove</a></span></li>';
	} else {
		html = '<li id="t'+eventId+'" class="{date: \''+date+'\', name: \''+nm+'\', stamp: \''+stamp+'\', eventId: \''+eventId+'\', loc: \''+loc+'\'}">'+nm+', '+date+' <span class="del"><a href="#" id="d'+eventId+'">Remove</a></span></li>';
	}
	jQuery('.eventlist').prepend(html);

	if ( jQuery('#calendar-list').css('display') == 'none' || jQuery('#events-list').css('display') == 'none' ){
		jQuery('#startover').hide();
	}

	// unbind this function to this element only
	thisObj.unbind();

	// bind the delete function to the changed element. rebind a mirror of that function to the delete text
	thisObj.click(
		function(){
			handleUnCheckbox(this);
		}
	);

	var unique_id = eventId;
	if ( isVenue ){
		unique_id = venueId;
	}

	jQuery('#d'+unique_id).click(
		function(){
			var o = jQuery('#c'+unique_id);
			if ( o.length < 1 ){ // checkbox not in dom, not the current month
				jQuery('#t'+unique_id).remove();
				if ( jQuery('.eventlist li').length == 0 ){
					jQuery('#continue').css('display', 'none');
					jQuery('.eventlist').css('display', 'none'); // this is 1-2ms faster than hide()
					jQuery('#submitvenue').show();
				}
			} else {
				handleUnCheckbox(o);
			}
			return false;
		}
	);



}

function handleUnCheckbox(o){

	thisObj = jQuery(o);

	if ( thisObj.metadata().isVenue ){
		unique_id = thisObj.metadata().venueId;
	} else {
		unique_id = thisObj.metadata().eventId;
	}

	if ( jQuery('.eventlist li').length == 1 ){
		jQuery('#continue').css('display', 'none');
		jQuery('.eventlist').css('display', 'none'); // this is 1-2ms faster than hide()
		if ( jQuery('#calendar-list').css('display') == 'none' || jQuery('#events-list').css('display') == 'none' ){
			jQuery('#startover').show();
		} else {
			jQuery('#submitvenue').show();
		}
	}

	// remove from dom
	jQuery('#t'+unique_id).remove();

	if ( thisObj.length == 1 ){
		thisObj.removeAttr('checked');
	}

	// unbind delete and rebind the add function
	thisObj.unbind();
	thisObj.click(
		function(){ handleCheckbox(this); }
	);

}

// this function is a little tricky to explain, but thisItem is really the jCarousel arrow that is clicked (if its clicked), and cur is the current active
// li info-form (the current active data entry tab) that the data comes from.  there are actions that need to occur IN the callback function, (like
// setting the next/prev info-form to active, but i didnt want to write all this code twice.
function savePendingContent(type, thisItem, cur){

	jQuery('#saving').show();
	dataObj = cur;
	if ( dataObj.data('flag') ){
		var rate = null;
		var experience = null;
		var seat = null;
		var row = null;
		var section = null;
		var friends = null;
		var venueId = null;
		var eventId = dataObj.metadata().eventId;
		var dataToServer = {eventId: eventId};
		if ( eventId+'' == -1 ){
			venueId = dataObj.metadata().venueId;
			dataToServer = {venueId: venueId, sportId: getGlobal('sportId')}
		}

		if ( eventId || venueId ){
			if ( dataObj.data('rate') != null ){
				rate = dataObj.data('rate');
				dataToServer.rating = rate;
			}
			if ( dataObj.data('experience') != null ){
				experience = escape(encodeURI(dataObj.data('experience')));
				dataToServer.experience = experience;
			}
			if ( dataObj.data('seat') != null ){
				seat = escape(encodeURI(dataObj.data('seat')));
				dataToServer.seat = seat;
			}
			if ( dataObj.data('row') != null ){
				row = escape(encodeURI(dataObj.data('row')));
				dataToServer.row = row;
			}
			if ( dataObj.data('section') != null ){
				section = escape(encodeURI(dataObj.data('section')));
				dataToServer.section = section;
			}
			var friendlist = jQuery('#friendlist'+eventId+' p');
			var flen = friendlist.length;
			var strFriends = '';
			var fbNotificationArray = new Array();
			if ( friendlist != null && friendlist.length > 0 ){
				for(var i = 0; i < flen; i++){
					var usr = jQuery(friendlist[i]).metadata().user;
					var eml = jQuery(friendlist[i]).metadata().email;
					var fbid = jQuery(friendlist[i]).metadata().id;
					if ( eml != null && eml != "undefined" ){
						usr = 'email-'+eml;
					} else if ( fbid != null ){
						// this is a facebook user. send them the notification
						fbNotificationArray.push(fbid);
					}
					if ( fbid == null || fbid == "undefined" ){
						/* dont send fb data to server, we'll handle that client side */
						strFriends = strFriends + usr + '~';
					}
				}
				dataToServer.friends = strFriends;
			}

			dataToServer._ = getTimestamp();
			
			if ( fbNotificationArray.length > 0 ){
				// FACEBOOK NOTIFICATIONS TO USERS.
				
				var dateTxt = dataObj.metadata().date;
				var gDate = new Date();
				yr = dateTxt.substring(dateTxt.length-4,dateTxt.length);
				mo = parseInt(dateTxt.substring(0,dateTxt.indexOf('/')))-1;
				dy = dateTxt.substring(dateTxt.indexOf('/')+1)
				dy = dy.substring(0,dy.indexOf('/'));
				var rnow = new Date().getTime();
				gDate.setFullYear(yr,mo,dy);
				var verbage = ' attended';
				if ( gDate.getTime() > rnow ){
					var verbage = ' is attending';
				}
				var thisUid = getGlobal('uid');
				
				if ( eventId != null ){
					var msg = '';
					if ( verbage == ' attended' ){
						msg = verbage + ' a sporting event with you on <a href="http://travel.espn.go.com/travel/passport/event?eid='+eventId+'&uid='+thisUid+'&ex_cid=Passport_FacebookNotification">'+dateTxt+'</a>.';
					} else {
						msg = verbage + ' a sporting event with you on '+dateTxt+'.' + ' Get restaurant suggestions and see who else is attending on <a href="http://travel.espn.go.com/travel/passport/event?eid='+eventId+'&ex_cid=Passport_FacebookNotification">ESPN.com Passport &#187;</a>';
					}
				} else {
					var msg = ' added a venue to their <a href="http://travel.espn.go.com/travel/passport/event?eid='+eventId+'&uid='+thisUid+'&ex_cid=Passport_FacebookNotification">ESPN.com Passport &#187;</a>';
				}
				FBapi.notifications_send(fbNotificationArray, msg,
					function(){
						//console.log('fbnofications should be sent');
					}
				);
			}

			// AJAX HERE
			jQuery.getJSON('/travel/passport/api/save/content?callback=?',
				dataToServer,
				function(json){
					if ( !json.error ){
						switch(type)
						{
							case 0:
								// case prev
								var prev = cur.prev();
								if ( prev.attr('alt') == 1 ){
									jQuery(thisItem).addClass('jcarousel-prev-disabled');
								}
								prev.addClass('info-form-active');
								updatePagination();
								break;
							case 1:
								// case next
								var next = cur.next();
								if ( next.attr('alt') == (jQuery('.info-form-list').children().length) ){
									jQuery(thisItem).addClass('jcarousel-next-disabled');
									jQuery(thisItem).children('img').attr('src','http://a.espncdn.com/i/travel/passport/09/btn_continue.gif');
									bindReviewToObj(jQuery(thisItem));
								}
								next.addClass('info-form-active');
								updatePagination();
								break;
							case 2:
								jQuery("#form-controls").hide();
								buildMyEventsTable();
								break;
						}
					} else {
						alert('There was an error saving to your passport. Please try adding your visits again.');
						force_tb_remove();
					}
					jQuery('.info-form').data('flag', false);
					jQuery('#saving').hide();
				}
			);
		}
	}
}

function changeFlag(){
	dataObj = jQuery('.info-form-active');
	dataObj.data('flag', true);
}

// this binds the object button to go to step 2
function bindInfoFormToObj(o){

	o.unbind();
	o.click(
		function(){
			buildDataForms(o);
			return false;

		}
	); // END CONTINUE CLICK
}
			
function log(txt,h){
	try { 
		if ( h != null ){
			console.log('/*** '+h+' */')
		}
		console.log(txt);
	} catch (e) {
		//die
	}
}

function getFacebookFriendsSearchBar(){

	// REQUIRE LOGIN-- then we can access API
	FB.Connect.requireSession(function(exception){

		//log(FBapi.get_session().uid, 'USER ID');
		jQuery('div.fb-search-cont').html('<img class="fb-load" style="margin-top: 5px;" src="http://b.static.ak.fbcdn.net/rsrc.php/z57QP/hash/6nr0un50.gif" />');

		//var sequencer = new FB.BatchSequencer();
		//var pendingFriendsResult = FBapi.friends_get(null, sequencer);
		//var pendingLoggedInUserResult = FBapi.users_getLoggedInUser(sequencer);

		FBapi.friends_get(null, function(friends_result, exception){

			if ( exception != null && exception.name.toLowerCase() == 'error' ){
				//log(exception, 'ERROR');
				//jQuery('div.fb-search-cont').html('An unknown error occured. Please <a href="#" onclick="getFacebookFriendsSearchBar(); return false;">try again</a>.');
				getFacebookFriendsSearchBar(); // if it fails, screw it try again.
			} else {

				var fieldsArray = new Array('pic_square, first_name, last_name, uid');
				FBapi.users_getInfo(friends_result, fieldsArray, function(result, exception){

					if ( exception != null && exception.name.toLowerCase() == 'error' ){
						//log(exception, 'ERROR');
						//jQuery('div.fb-search-cont').html('An unknown error occured. Please <a href="#" onclick="getFacebookFriendsSearchBar(); return false;">try again</a>.');
						getFacebookFriendsSearchBar(); // if it fails, screw it try again.
					} else {

						var userArray = new Array();

						for(var i in result){
							var thisUser = result[i];
							var pic = thisUser.pic_square;
							if ( pic == null ){
								pic = 'http://a.espncdn.com/i/travel/passport/09/fb2_btn.gif';
							}
							var n = thisUser.first_name+' '+thisUser.last_name;
							userArray[i] = {name: n, image: pic, id: thisUser.uid};
						}

						jQuery('div.fb-search-cont').html('<input type="text" onclick="if(this.value==\'search friends\'){this.value=\'\';}" onblur="if(this.value==\'\'){this.value=\'search friends\';}" value="search friends" class="wide-search fb-search-input" style="margin-top: 0;" /><img src="http://a.espncdn.com/i/travel/passport/09/fb2_btn.gif" style="margin: 1px 5px 0;" alt="fb" title="Connect with Facebook Friends" />');
						jQuery("input.fb-search-input").autocomplete(userArray, {
							minChars: 1,
							width: 283,
							matchContains: "word",
							autoFill: false,
							formatItem: function(row, i, max) {
								r = '&nbsp;&nbsp;&nbsp;';
								if ( row.image != null && trim(row.image) != '' ){
									r = '<img src="'+row.image+'" width="20" height="20" style="margin-right: 4px;" />';
								}
								var nme = row.name;
								var q = jQuery('.info-form-active input.ac_input').val();
								bld = nme.toLowerCase().indexOf(q.toLowerCase());
									if ( bld > -1 ){
										nme = nme.substring(0,bld)+'<strong>'+nme.substring(bld, (bld+q.length) )+'</strong>'+nme.substring(bld+(q.length));
								}
								return r + nme;
							},
							formatMatch: function(row, i, max) {
								//console.log('call formatMatch');
								return row.name; // + row.to;
							},
							formatResult: function(row) {
								//console.log('call formatResult');
								return row.name;
							}
						}).result(function(event, item) {

							var unique_id = jQuery('li.info-form-active').metadata().eventId;
							if ( unique_id == '-1' ){
								unique_id = jQuery('li.info-form-active').metadata().venueId;
							}

							nm = item.name;
							thisObj = jQuery('#friendlist'+unique_id);
							jQuery('li.info-form-active input.ac_input').val('');
							currentFriends = jQuery('#friendlist'+unique_id+' p');
							if( currentFriends.length == 0 ){
								thisObj.show();
								changeFlag();
								//jQuery('#continueImg').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_continue.gif');
								thisObj.prepend('<p class="{id: \''+item.id+'\', user: \''+nm+'\'}">'+nm+' <span class="del"><a href="#" class="del-friend">Remove</a></span></p>');
							} else {
								var found = false;
								for(var i = 0; i < currentFriends.length; i++){
									if ( jQuery(currentFriends[i]).metadata().user == nm ){
										found = true;
									}
								}
								if ( !found ){
									changeFlag();
									//jQuery('#continueImg').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_continue.gif');
									thisObj.prepend('<p class="{id: \''+item.id+'\', user: \''+nm+'\'}">'+nm+' <span class="del"><a href="#" class="del-friend">Remove</a></span></p>');
								}
							}

							jQuery('.del-friend').unbind();
							jQuery('.del-friend').click(
								function(){
									thisObj = jQuery(this);
									containerId = thisObj.parent().parent().parent().attr('id');
									var theseFriends = jQuery('.friends-cont a.espnuser-add');
									for(var i=0;i<theseFriends.length;i++){
										if ( thisObj.parent('span').parent('p').metadata().user == jQuery(theseFriends[i]).metadata().user ){
											jQuery(theseFriends[i]).removeClass('thumb-toggle');
											break;
										}
									}
									thisObj.parent().parent().remove(); //removes the p-tag
									if ( jQuery('#'+containerId+' p').length == 0 ){
										jQuery('#'+containerId).hide();
									}
									return false;
								}
							);
							return false;

						});	
					}
				});
				
			}

		});

	});
	return false;
}

function buildDataForms(o){

	// o - pass in the jQuery object of the continue button
	o.hide();

	jQuery('.dates').hide();
	jQuery('#saving').show();
	events = jQuery('.eventlist li');
	var html = '';

	eids = '';
	vids = '';
	isVenue = false;
	for(var i = 0; i < events.length; i++ ){
		e = jQuery(events[i]).metadata().eventId;
		if ( e == '-1' ){
			isVenue = true;
			v = jQuery(events[i]).metadata().venueId;
			vids = vids+v+'~';
		} else {
			eids = eids+e+'~';
		}
	}

	var jsonurl = '/travel/passport/api/save/items';
	var objData = { eventIds: eids, _: getTimestamp(), status: 5 };
	if ( isVenue ){
		var objData = { venueIds: vids, sportId: getGlobal('sportId'), _: getTimestamp() };
	}

	jQuery.getJSON(jsonurl+'?callback=?',
		objData,
		function(json){
			if ( !json.error ){
				var hideFriendsCont = false;
				for(var i = 0; i < events.length; i++ ){

					thisObj = jQuery(events[i]);
					var metaObj = thisObj.metadata();
					eventId = metaObj.eventId;
					nm = metaObj.name;
					eventName = nm;
					venueId = metaObj.venueId;
					if ( eventId+'' != '-1' ){
						date = metaObj.date;
						eventName = date+' - '+nm;
					}
					stamp = metaObj.stamp;
					loc = metaObj.loc;
					sport = jQuery('#global').metadata().sportName;

					/* pull meta content to support edits */
					var rating = 0;
					if ( metaObj.rating != null ){
						var rating = metaObj.rating;
					}
					htm_rate = '<label style="margin-top: 0pt;">Rate</label><div style="margin-top: 0pt;" class="star-cont" id="" alt="">';
					for ( var k = 1; k <= 5; k++ ){
						var txt = 'off';
						if ( k <= rating ){
							txt = 'on2';
						}
						htm_rate = htm_rate + '<a href="#" alt="'+k+'" class="star"><img id="star_i'+k+'" class="stari" src="http://a.espncdn.com/i/travel/passport/09/star_'+txt+'.gif"/></a>';
					}
					htm_rate = htm_rate + '</div><br/><div style="clear: both;"> </div>';

					var experience = 'experience';
					var section = 'section';
					var row = 'row';
					var seat = 'seat';

					if ( metaObj.experience != null ){
						var experience = unescape(decodeURI(metaObj.experience));
					}
					if ( metaObj.section != null ){
						var section = unescape(decodeURI(metaObj.section));
					}
					if ( metaObj.row != null ){
						var row = unescape(decodeURI(metaObj.row));
					}
					if ( metaObj.seat != null ){
						var seat = unescape(decodeURI(metaObj.seat));
					}
					htm_text = '<label>Experience</label><textarea rows="4" name="experience" id="experience" class="inputtext experience">'+experience+'</textarea><br/><label>Seat</label><input type="text" class="seat-style inputtext" value="'+section+'" id="section" name="section"/><input type="text" class="seat-style inputtext" value="'+row+'" id="row" name="row"/><input type="text" class="seat-style inputtext" value="'+seat+'" id="seat" name="seat"/><br/><div style="clear: both;"> </div>';
		
					/* FACEBOOK */
					var htm_facebook = '<label> </label><div class="fb-search-cont" style="padding: 12px 0 0;">';
					if ( FB_SESSION == false || FB_UID == null ){
						htm_facebook = htm_facebook + '<a class="fb-connect" href="#"><img src="http://a.espncdn.com/i/travel/passport/09/fb_conn.gif" /></a>';
					}
					htm_facebook = htm_facebook + '</div><div style="clear: both;"> </div>';
					
					var htm_friendList = '';
					var disp_friendList = 'none';
					var friends = [];

					if ( metaObj.friends != null || metaObj.friends != '' ){
						var fs = metaObj.friends;
						if ( fs != null && fs != '' ){
							friends = fs.split(',');
							if ( friends.length > 0 ){
								var disp_friendList = 'block';
							}
						}
					}
					if ( friends.length > 0 && friends[0] == '' ){
						disp_friendList = 'none';
					}
					for ( var k = 0; k < friends.length; k++ ){
						var nam = friends[k];
						if ( nam != '' ){
							htm_friendList = htm_friendList + '<p class="{user: \''+nam+'\'}">'+nam+' <span class="del"><a href="#" class="del-friend">Remove</a></span></p>';
						}
					}
					//htm_ftop = htm_facebook;
					htm_ftop='';
					htm_ftop = htm_ftop + '<label>Friends</label><div class="friends-cont {eventId: \''+eventId+'\', venueId: \''+venueId+'\'}">';
					htm_fbot = '</div><br/><div class="clearfix"> </div>';
					htm_inv = htm_facebook + '<label>Invite Friend</label><input type="invite" class="seat-style email inputtext" value="name" id="inv_name'+eventId+'" name="name"/><input type="email" class="seat-style email inputtext" value="email" id="inv_email'+eventId+'" name="email"/><div class="del email-add"><a href="#" class="{eventId: \''+eventId+'\'}">Click to Add Friend</a></div><div style="clear: both;"> </div>';
					
					var active = '';
					if ( i == 0 ){
						active =  ' info-form-active';
					}

					unique_id = eventId;
					if ( unique_id+'' == '-1' ){
						unique_id = venueId;
					}

					if ( eventId+'' == -1 ){
						meta = '{sport: \''+sport+'\', name: \''+nm+'\', stamp: \''+stamp+'\', eventId: \''+eventId+'\', venueId: \''+venueId+'\', loc: \''+loc+'\', rating: \''+rating+'\'}';
					} else {
						meta = '{date: \''+date+'\', sport: \''+sport+'\', name: \''+nm+'\', stamp: \''+stamp+'\', eventId: \''+eventId+'\', loc: \''+loc+'\', rating: \''+rating+'\'}';
					}
					html = html + '<li class="info-form'+active+' '+meta+'" id="info'+unique_id+'" alt="'+(i+1)+'"><h2 style="padding-bottom: 8px;">'+eventName+'</h2><div class="clearfix"> </div><form>';

					// html
					html = html + htm_rate + htm_text;
					var friendsJSON = getGlobal('friends');
					
					//// for friend give them the thumb class if they're in the >>>> friends array
					html = html + htm_ftop;
					if ( friendsJSON != null && friendsJSON.length > 0 ){
						for(var l=0;l<friendsJSON.length;l++){
							var u = friendsJSON[l].user;
							var imgURL = getGlobal('avatar-url') + '/' + u + '/' + '48' + '/' + u + '.jpg';
							imgURL = imgURL.toLowerCase();
							var moreClass = '';
							for(var m=0;m<friends.length;m++){
								if ( friends[m] == u ){
									moreClass = 'thumb-toggle ';
									break;
								}
							}
							html = html + '<a href="#" class="espnuser-add profile-img '+moreClass+'{user: \''+u+'\'}"><img title="'+u+'" alt="'+u+'" src="'+imgURL+'"/></a>';
						}
					} else {
						hideFriendsCont = true;
					}
					html = html + htm_fbot;
					html = html + htm_inv + '</form><div class="cal-ft info-invite info-form-friend-list {eventId: \''+eventId+'\', venueId: \''+venueId+'\'}" id="friendlist'+unique_id+'" style="display:'+disp_friendList+';">'+htm_friendList+'</div></li>';
				}

				// append list to element
				jQuery('.info-form-list').prepend(html);
				if ( hideFriendsCont ){
					jQuery('.friends-cont').hide();
				}

				// if there's more than one item, show the custom jcarousel
				if ( events.length > 1 ){
					jQuery("#form-controls").show();
					jQuery('div.btn').hide();
					jQuery('div.d-skip').show();
					enable_dataCarousel();
					updatePagination();
				} else {
					jQuery("#continue").show();
				}

				jQuery('.info-form').data('flag', false);

				bindReviewToObj(o);
				bindReviewToObj(jQuery('div#skip-txt'));
				
				if ( o.children().attr('tagName') == 'IMG' ){
					o.children().attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_continue.gif');
					//o.css({display: inline});
				}

				///o.show();
				
				/* FACEBOOK POST ACTIONS */
				if ( FB_SESSION && FB_UID != null ){
					getFacebookFriendsSearchBar();
				} else {
					jQuery('div.fb-search-cont a.fb-connect').click(
						function(){
							getFacebookFriendsSearchBar();
							return false;
						}
					);
					
				}

				/* update the dataObj on blur */
				jQuery('.inputtext').blur( 
					function(){
						o = jQuery(this);
						nm = o.attr('name');
						var txt = trim(t.val());
						if ( txt == '' ){
							o.val(nm);
						} else if ( nm != 'email' && nm != 'name' ){
							dataObj = jQuery('.info-form-active');
							dataObj.data(o.attr('name'), o.val()); // set data for this 'tab'
							changeFlag();
						}
					}
				);

				/* clear/show text within fields */
				jQuery('.inputtext').focus(
					function(){
						t = jQuery(this);
						var txt = t.val();
						if ( txt == 'seat' || txt == 'row' || txt == 'section' || txt == 'name' || txt == 'email' || txt == 'experience' ){
							t.val('');
						}
						if ( txt != 'email' && txt != 'name' ){
							jQuery('#continueImg').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_continue.gif');
						}
					}
				);

				/* clickable stars */
				jQuery('.star').click(
					function(){

						thisObj = jQuery(this);					
						var num = thisObj.attr('alt');
						// num == starClicked

						thisObj.children().attr('src', 'http://a.espncdn.com/i/travel/passport/09/star_on2.gif');
						var otherstars = thisObj.siblings();
						for(var i = 1; i <= otherstars.length; i++){
							if ( i < num ){
								jQuery(otherstars[i-1]).children().attr('src', 'http://a.espncdn.com/i/travel/passport/09/star_on2.gif');
							} else {
								jQuery(otherstars[i-1]).children().attr('src', 'http://a.espncdn.com/i/travel/passport/09/star_off.gif');
							}
						}

						jQuery('.info-form-active').data('rate', num);
						changeFlag();
						jQuery('#continueImg').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_continue.gif');
						return false;
					}
				);

				jQuery('.star').mouseout(
					function(){
						var num = jQuery('.info-form-active').data('rate');
						if ( num == null ){
							var num = jQuery('.info-form-active').metadata().rating;
						}
						var starObjs = jQuery('.info-form-active .star-cont').children();
						if ( num != null ){
							for(var i = 1; i <= starObjs.length; i++){
								if ( i <= num ){
									jQuery(starObjs[i-1]).children().attr('src', 'http://a.espncdn.com/i/travel/passport/09/star_on2.gif');
								} else {
									jQuery(starObjs[i-1]).children().attr('src', 'http://a.espncdn.com/i/travel/passport/09/star_off.gif');
								}
							}
						} else {
							starObjs.children().attr('src', 'http://a.espncdn.com/i/travel/passport/09/star_off.gif');
						}
					}
				);

				jQuery('.star').mouseover(
					function(){
						thisObj = jQuery(this);					
						var num = thisObj.attr('alt');

						thisObj.children().attr('src', 'http://a.espncdn.com/i/travel/passport/09/star_on2.gif');
						var otherstars = thisObj.siblings();
						for(var i = 1; i <= otherstars.length; i++){
							if ( i < num ){
								jQuery(otherstars[i-1]).children().attr('src', 'http://a.espncdn.com/i/travel/passport/09/star_on2.gif');
							} else {
								jQuery(otherstars[i-1]).children().attr('src', 'http://a.espncdn.com/i/travel/passport/09/star_off.gif');
							}
						}
					}
				);

				/* bind click function to the Add text. */
				jQuery('.email-add a').click(
					function(){

						var unique_id = jQuery(this).metadata().eventId;
						if ( unique_id+'' == '-1' ){
							unique_id = jQuery(this).metadata().venueId;
						}

						nm = jQuery('#inv_name'+unique_id).val();
						email = jQuery('#inv_email'+unique_id).val();
						if ( (nm != 'name' && email != 'email') && email.indexOf('@') > 0 ){

							currentFriends = jQuery('#friendlist'+unique_id+' p');
							thisObj = jQuery('#friendlist'+unique_id);
							if( currentFriends.length == 0 ){
								thisObj.show();
								changeFlag();
								jQuery('#continueImg').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_continue.gif');
								thisObj.prepend('<p class="{email: \''+email+'\'}">'+nm+': '+email+' <span class="del"><a href="#" class="del-friend">Remove</a></span></p>');
								jQuery('#inv_name'+unique_id).val('name');
								jQuery('#inv_email'+unique_id).val('email');
							} else {
								var found = false;
								for(var i = 0; i < currentFriends.length; i++){
									if ( jQuery(currentFriends[i]).metadata().user == email ){
										found = true;
										jQuery('input.email').css({backgroundColor: "#FF8888"});
										setTimeout("jQuery('input.email').css({backgroundColor: '#FFFFFF'});", 2500);
									}
								}
								if ( !found ){
									changeFlag();
									jQuery('#continueImg').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_continue.gif');
									thisObj.prepend('<p class="{email: \''+email+'\'}">'+nm+': '+email+' <span class="del"><a href="#" class="del-friend">Remove</a></span></p>');
									jQuery('#inv_name'+unique_id).val('name');
									jQuery('#inv_email'+unique_id).val('email');
								}
							}

							jQuery('.del-friend').unbind();
							jQuery('.del-friend').click(
								function(){
									thisObj = jQuery(this);
									containerId = thisObj.parent().parent().parent().attr('id');
									var theseFriends = jQuery('.friends-cont a.espnuser-add');
									for(var i=0;i<theseFriends.length;i++){
										if ( thisObj.parent('span').parent('p').metadata().user == jQuery(theseFriends[i]).metadata().user ){
											jQuery(theseFriends[i]).removeClass('thumb-toggle');
											break;
										}
									}
									thisObj.parent().parent().remove(); //removes the p-tag
									if ( jQuery('#'+containerId+' p').length == 0 ){
										jQuery('#'+containerId).hide();
									}
									return false;
								}
							);
						} else {
							jQuery('input.email').css({backgroundColor: "#FF8888"});
							setTimeout("jQuery('input.email').css({backgroundColor: '#FFFFFF'});", 2500);
						}
						return false;
					}
				);

				/* bind click to the espn user images */
				jQuery('.espnuser-add').click(
					function(){
						
						var unique_id = jQuery(this).parent().metadata().eventId;
						if ( unique_id == '-1' ){
							unique_id = jQuery(this).parent().metadata().venueId;
						}

						nm = jQuery(this).metadata().user;
						thisObj = jQuery('#friendlist'+unique_id);
						jQuery(this).addClass('thumb-toggle');
						currentFriends = jQuery('#friendlist'+unique_id+' p');
						//thisObj = jQuery('#friendlist'+unique_id);
						if( currentFriends.length == 0 ){
							thisObj.show();
							changeFlag();
							//jQuery('#continueImg').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_continue.gif');
							thisObj.prepend('<p class="{user: \''+nm+'\'}">'+nm+' <span class="del"><a href="#" class="del-friend">Remove</a></span></p>');
						} else {
							var found = false;
							for(var i = 0; i < currentFriends.length; i++){
								if ( jQuery(currentFriends[i]).metadata().user == nm ){
									found = true;
								}
							}
							if ( !found ){
								changeFlag();
								//jQuery('#continueImg').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_continue.gif');
								thisObj.prepend('<p class="{user: \''+nm+'\'}">'+nm+' <span class="del"><a href="#" class="del-friend">Remove</a></span></p>');
							}
						}

						jQuery('.del-friend').unbind();
						jQuery('.del-friend').click(
							function(){
								thisObj = jQuery(this);
								containerId = thisObj.parent().parent().parent().attr('id');
								var theseFriends = jQuery('.friends-cont a.espnuser-add');
								for(var i=0;i<theseFriends.length;i++){
									if ( thisObj.parent('span').parent('p').metadata().user == jQuery(theseFriends[i]).metadata().user ){
										jQuery(theseFriends[i]).removeClass('thumb-toggle');
										break;
									}
								}
								thisObj.parent().parent().remove(); //removes the p-tag
								if ( jQuery('#'+containerId+' p').length == 0 ){
									jQuery('#'+containerId).hide();
								}
								return false;
							}
						);
						return false;
					}
				);

				/* bind delete to friends drawn on edit */
				jQuery('.del-friend').unbind();
				jQuery('.del-friend').click(
					function(){
						thisObj = jQuery(this);
						containerId = thisObj.parent().parent().parent().attr('id');
						var theseFriends = jQuery('.friends-cont a.espnuser-add');
						for(var i=0;i<theseFriends.length;i++){
							if ( thisObj.parent('span').parent('p').metadata().user == jQuery(theseFriends[i]).metadata().user ){
								jQuery(theseFriends[i]).removeClass('thumb-toggle');
								break;
							}
						}
						thisObj.parent().parent().remove(); //removes the p-tag
						if ( jQuery('#'+containerId+' p').length == 0 ){
							jQuery('#'+containerId).hide();
						}
						return false;
					}
				);

				/* hide modal title, show ul list, hide the saving gif */
				jQuery('#m_title').hide();
				jQuery('.info-form-list').show();
				jQuery('#saving').hide();
				
				// handle bad img srcs
				// this really doesnt work 100%
				//jQuery(window).bind('load', function() {
					jQuery('img.profile-img').each(function() {				
						if((typeof this.naturalWidth != "undefined" &&				
							this.naturalWidth == 0 ) 				
							|| this.readyState == 'uninitialized' ) {				
							var srcBad = jQuery(this).attr('src');
							if ( srcBad.indexOf('/90/') > -1 ){
								jQuery(this).attr('src','http://avatars.espn.go.com/assets/espn_images/33/90/b6692ea5df920cad691c20319a6fffd7a4a766b8/silo_dude.jpg');
							} else if ( srcBad.indexOf('/48/') > -1 ){
								jQuery(this).attr('src','http://avatars.espn.go.com/assets/espn_images/33/48/b6692ea5df920cad691c20319a6fffd7a4a766b8/silo_dude.jpg');
							}
						}				
					});				
				//});


				return false;

			} else {
				alert('You must be logged in to add items to your passport. Please log-in and try again.');
				force_tb_remove();
				setTimeout('window.location="https://r.espn.go.com/espn/memberservices/pc/login?appRedirect=http://travel.espn.go.com/travel/passport/add";',100);
			}
		} // end callback to save items.
	);
}

function updatePagination(){
	var pos = jQuery('.info-form-active').attr('alt');
	var pdiv = jQuery('.pag-num')
	pdiv.html(pos+' of '+events.length);
	pdiv.show();
}

function data_next(){
	/* jcarousel-next for the data tab */
	jQuery('#form-controls #next-form').unbind();
	jQuery('#form-controls #next-form').click(
		function(){
			if ( jQuery("#form-controls").length > 0 ){
				if ( jQuery('#form-controls .next-form-disabled').length == 1 ){}else{ // if its disabled, dont allow click
					var currentActive = jQuery('.info-form-active');
					currentActive.addClass('wasactive');
					currentActive.removeClass('info-form-active');
					jQuery('a#prev-form').removeClass('prev-form-disabled');
					jQuery('a#prev-form img').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_prev2.gif');
					if ( currentActive.data('flag') ){
						jQuery('.wasactive').removeClass('wasactive'); // clear this helper class for the 'timeout tab switching'
						savePendingContent(1, this, currentActive);
						// more actions in function callback
					} else {
						jQuery('#saving').show();
						var next = currentActive.next();
						if ( next.attr('alt') == (jQuery('.info-form-list').children().length) ){
							///jQuery(this).addClass('next-form-disabled');
							bindReviewToObj(jQuery(this));
							jQuery('a#next-form img').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_continue.gif');
						}
						setTimeout("var wasActive = jQuery('.wasactive'); var next = wasActive.next(); wasActive.removeClass('wasactive'); next.addClass('info-form-active'); jQuery('#saving').hide(); updatePagination();",250);
					}
				}
			}
			return false;
		}
	);
}

function data_prev(){
	/* jcarousel-prev for the data tab */
	jQuery('#form-controls #prev-form').unbind();
	jQuery('#form-controls #prev-form').click(
		function(){
			if ( jQuery("#form-controls").length > 0 ){
				if ( jQuery('#form-controls .prev-form-disabled').length == 1 ){}else{ // if its disabled, dont allow click
					jQuery('#saving').show();									
					var currentActive = jQuery('.info-form-active');
					currentActive.addClass('wasactive');
					currentActive.removeClass('info-form-active');
					jQuery('a#next-form').removeClass('next-form-disabled');
					jQuery('a#next-form img').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_next2.gif');
					if ( currentActive.data('flag') ){
						jQuery('.wasactive').removeClass('wasactive'); // clear this helper class for the 'timeout tab switching'
						savePendingContent(0, this, currentActive);
						// more actions in function callback
					} else {
						jQuery('#saving').show();
						var prev = currentActive.prev();
						if ( prev.attr('alt') == 1 ){
							jQuery(this).addClass('prev-form-disabled');
							jQuery('a#prev-form img').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_prev1.gif');
						}
						setTimeout("var wasActive = jQuery('.wasactive'); var prev = wasActive.prev(); wasActive.removeClass('wasactive'); prev.addClass('info-form-active'); jQuery('#saving').hide(); updatePagination(); data_next();",250); // reinit data_next() incase review was binded to it.
					}
				}
			}
			return false;
		}
	);
}

function enable_dataCarousel(){

	/* clear old actions first */
	data_prev();
	data_next();
	jQuery('a#next-form img').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_next2.gif');
	
	/* init dataCar code */
	jQuery('a#prev-form').removeClass('prev-form-disabled');
	jQuery('a#next-form').removeClass('next-form-disabled');

	var firstInfoEl = jQuery(jQuery('.info-form-list').children().get(0));
	var lastInfoEl = jQuery(jQuery('.info-form-list').children().get((jQuery('.info-form-list').children().length-1)));

	firstClass = firstInfoEl.attr('class');
	lastClass = lastInfoEl.attr('class');

	if ( firstClass.indexOf('info-form-active') > -1 ){
		jQuery('a#prev-form').addClass('prev-form-disabled');
		jQuery('a#prev-form img').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_prev1.gif');
	} else if ( lastClass.indexOf('info-form-active') > -1 ){
		//jQuery('a#next-form').addClass('next-form-disabled');
		bindReviewToObj(jQuery('a#next-form'));
		jQuery('a#next-form img').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_continue.gif');
	}

}

function bindReviewToObj(o){
	o.unbind();
	o.click(
		function(){
			jQuery('div.btn').show();
			var currentActive = jQuery('.info-form-active');
			theObj = jQuery('#'+currentActive.attr('id'));
			jQuery('.info-form').removeClass('info-form-active');
			if ( currentActive.data('flag') ){
				savePendingContent(2, null, theObj);
			} else {
				jQuery('#saving').show();
				jQuery("#form-controls").hide();
				setTimeout("buildMyEventsTable(); jQuery('#saving').hide();", 250);
			}
			return false;
		}
	);
}

function streamPub_cb(r,e){
	log('err', e);
}

function buildMyEventsTable(){
	dataObjs = jQuery('.info-form-list li');
	var html = '';
	for ( var i = 0; i < dataObjs.length; i++ ){

		var cls ="reviewevent even"
		if ( (i+1) % 2 == 1 ){
			cls="reviewevent odd"
		}

		thisObj = jQuery(dataObjs[i]);
		var data = thisObj.metadata();
		var nm = data.name;

		var eventId = data.eventId;
		var moreMeta = '';
		if ( eventId+'' != '-1' ){
			var date = data.date;
			var moreMeta = '{eventId: \''+eventId+'\', name: \''+date+' - '+nm+'\'}'; // this allows us to edit, delete, and guides us on which items to approve
			var dateCol = '<td>'+date+'</td>';
		} else {
			var moreMeta = '{venueId: \''+venueId+'\', eventId: \'-1\', name: \''+nm+'\'}';
			var dateCol = '';
			jQuery('#my-events-date-th').remove(); // no date so remove it in the th
		}
		var sport = data.sport;
		var stamp = data.stamp;
		var venue = data.loc;

		html = html+'<tr class="'+cls+' '+moreMeta+'" title="'+venue+'"><td class="stamp"><img alt="'+sport+'" src="'+stamp+'"/></td><td>'+sport+'</td>';
		html = html+dateCol+'<td>'+nm+'</td><td><a href="#" class="edit '+moreMeta+'">Edit</a> | <a href="#" class="quick-del '+moreMeta+'">Delete</a></td></tr>';
	}

	jQuery('#myEventsTable').append(html);
	jQuery('#continue').hide();
	//jQuery('#').show();
	//jQuery('#startover').show(); // @tofix - dont exe if just edit screen
	jQuery('#submitall').show(); // @tofix - dont exe if just edit screen
	//jQuery('#mypassport').show(); // @tofix - dont exe if just edit screen

	/* table right column cell actions */
	/*
	jQuery('.upload').unbind();
	jQuery('.upload').click(
		function(){
			jQuery(this).metadata().eventId;
			// SAVE CONTENT, STATUS 5 -> 2
				alert('You will be redirected to the community photo upload tool, after we save your information of course');
			return false;
		}
	);
	*/

	jQuery('.quick-del').unbind();
	jQuery('.quick-del').click(
		function(){
			var eventId = jQuery(this).metadata().eventId;
			var unique_id = eventId;
			var dataObj = { eventId: eventId };
			if ( eventId+'' == '-1' ){
				venueId = jQuery(this).metadata().venueId;
				dataObj = { venueId: venueId };
				unique_id = venueId;
			}
			dataObj._ = getTimestamp();
			thisObj = jQuery(this);

			var c = confirm(getGlobal('delete-message'));
			if ( c ){
				thisObj.parent().parent().addClass('deleting');
				jQuery.getJSON('/travel/passport/api/save/delete?callback=?',
					dataObj,
					function(json){
						if ( !json.error ){
							thisObj.parent().parent().remove();
							jQuery('#info'+unique_id).remove();
							if ( jQuery('#myEventsTable tr.reviewevent').length == 0 ){
								force_tb_remove();
							}
						} else {
							thisObj.parent().parent().removeClass('deleting');
							alert('There was an error deleting your item! Please try again');
						}
					}
				);
			}
			return false;
		}
	);

	jQuery('.edit').unbind();
	jQuery('.edit').click(
		function(){
			var eventId = jQuery(this).metadata().eventId;
			var unique_id = eventId;
			if ( eventId+'' == '-1' ){
				venueId = jQuery(this).metadata().venueId;
				unique_id = venueId;
			}

			bindReviewToObj(jQuery('#continue'));
			jQuery('.reviewevent').remove();
			jQuery('#continue').show();
			jQuery('#myEvents').hide();
			jQuery('#startover').hide(); // @tofix - dont exe if just edit screen
			jQuery('#submitall').hide(); // @tofix - dont exe if just edit screen
			jQuery('#mypassport').hide(); // @tofix - dont exe if just edit screen
			jQuery('#info'+unique_id).addClass('info-form-active');
			enable_dataCarousel();
			if ( jQuery('.info-form-list li').length > 1 ){
				jQuery('div.btn').hide();
				jQuery("#form-controls").show();
				updatePagination();
			}
			return false;
		}
	);

	/* init button actions here */

	jQuery('#submitall').unbind();
	jQuery('#submitall').click(
		function(){
			jQuery('#cancelbutton').hide();
			jQuery('#submitall').hide();
			jQuery('#saving').show();
			jQuery('#myEvents').hide();
			events = jQuery('tr.reviewevent');
			var eventIds = '';
			var venueIds = '';
			jQuery('.updated #moredetails').html('');
			var htm = '';
			var enm = 'View';
			var uid = getGlobal("uid");
			if ( uid == null ){
				uid = getGlobal('sessionId');
			}
			for(var i=0; i < events.length; i++){
				var eid = jQuery(events[i]).metadata().eventId;
				if ( jQuery(events[i]).metadata().name ){
					enm = jQuery(events[i]).metadata().name;
				}
				var uniqueId = eid;
				var uniq = '';
				if ( eid+'' == '-1' ){
					vid = jQuery(events[i]).metadata().venueId;
					uniqueId = vid;
					venueIds = venueIds+vid+'~';
					var templ = 'venue';
					var uniq = '&vid='+vid;
				} else {
					eventIds = eventIds+eid+'~';
					var templ = 'event';
					var uniq = '&eid='+eid;
				}
				htm = htm + '<span> - <a href="/travel/passport/'+templ+'?uid='+uid+uniq+'" target="_top">'+enm+'</a> - ';
				htm = htm + '<a href="/travel/passport/'+templ+'?uid='+uid+uniq+'" target="_top">Add Photos</a> | ';
				htm = htm + '<a href="add/modal?'+templ+'Id='+uniqueId+'" class="passport thickbox">Edit</a> | ';
				htm = htm + '<a class="quick-del {'+templ+'Id: '+uniqueId+'}" href="#">Delete</a></span><br/>';
			}

			var dataObj = { eventIds: eventIds };
			if ( venueIds != '' ){
				dataObj = { venueIds: venueIds }
			}
			dataObj._ = getTimestamp();

			if( eventIds != '' || venueIds != '' ){
				jQuery.getJSON('/travel/passport/api/save/updatestatus?callback=?',
					dataObj,
					function(json){ // exit modal actions
						if ( !json.error ){
							var wl = window.location+'';
							//if ( wl.indexOf('/add') > -1 || wl.indexOf('/event') > -1 || wl.indexOf('/venue') > -1 || wl.indexOf('/activity') > -1 ){
								jQuery('div.updated div#details div#moredetails').html(htm);
								jQuery('div.updated div#details div#moredetails').show();
								jQuery('div.updated').show('fast');
								jQuery('#saving').hide();
								if ( jQuery('.unsaved').length > 0 ){ // for unsaved items
									items = jQuery('.unsaved').children('div').children('div').children('span').children('a.quick-del');
									for(var i=0;i<items.length;i++){
										var aObj = jQuery(items[i]);
										tempId = aObj.metadata().eventId;
										if ( tempId != null ){
											if ( eventIds == tempId+'~' ){
												jQuery(aObj.parent('span')).remove();
												if ( jQuery('.unsaved').children('div').children('div').children('span').length == 0 ){
													jQuery('.unsaved').hide('fast');
												}
												break;
											}
										} else {
											tempId = aObj.metadata().venueId;
											if ( venueIds == tempId+'~' ){
												jQuery(aObj.parent('span')).remove();
												if ( jQuery('.unsaved').children('div').children('div').children('span').length == 0 ){
													jQuery('.unsaved').hide('fast');
												}
												break;
											}
										}
									}
								}
							//}
							force_tb_remove();
							bindEditDeleteLinks();
							
							// ----------------------
							// POST ACTION - FB PERM
							// ----------------------
														
							/*FB.Connect.showPermissionDialog('status_update');
							FBapi.users_hasAppPermission('email', function(r){
								if ( r == 1 ){
								
								} else {
									
								}
							});
							*/
							
							if ( jQuery.cookie('_passport_facebookwall') == null ){
								jQuery.cookie('_passport_facebookwall', 'posted');
								var use_tmpl = 119455876542;
								template_data = {uid: uid};
								var sequencer = new FB.BatchSequencer();
								var pendingResult = FBapi.feed_publishUserAction(use_tmpl, template_data, [], '', 1, "", sequencer);
								sequencer.execute(function(){});
							}
							
						} else {
							alert('An error occured trying to update your passport. Please try again.');
						}
					}
				);
			} /* else {
				var wl = window.location+'';
				if ( wl.indexOf('/add') > -1 ){
					jQuery('#saving').hide();
					jQuery('.updated').show('fast');
				}
				force_tb_remove();
			} */
			return false;
		}
	);

	/*
	jQuery('#mypassport').unbind();
	jQuery('#mypassport').click(
		function(){
			jQuery('#saving').show();
			jQuery('#myEvents').hide();
			jQuery('#startover').hide();
			jQuery('#submitall').hide();
			jQuery('#mypassport').hide();
			events = jQuery('tr.reviewevent');
			var eventIds = '';
			for(var i=0; i < events.length; i++){
				var eid = jQuery('tr.reviewevent').metadata().eventId;
				eventIds = eventIds+eid+'~';
			}

			if ( eventIds != '' ){
				jQuery.getJSON('/travel/passport/api/save/updatestatus?callback=?',
					{ eventIds: eventIds },
					function(json){
						if ( !json.error ){	
							jQuery('#saving').hide();
							alert('redirect to passport index');
							force_tb_remove();
						} else {
							alert('An error occured trying to update your passport. Please try again.');
						}
					}
				);
			} else {
				jQuery('#saving').hide();
				alert('redirect to passport index');
				force_tb_remove();
			}
			return false;
		}
	);
	*/
	jQuery('.pag-num').hide();
	//jQuery('#cancelbutton').hide(); // we can keep this.

	/* lastly, show the tab */
	jQuery('#myEvents').show();

}

/* modalLoad actions */
function modalLoad(){

	jQuery('.updated').hide('fast');

	/* onchange select box */
	jQuery('.select-box').change(
		function(){
			var m = 0;
			if ( monthToggle() ){
				m = jQuery('#month').val()
			}
			update(m, jQuery('#year').val() );
		}
	);

	init_cal_jcarousel();

	jQuery('#submitvenue').click(
		function(){

			// hide buttons
			jQuery('#saving').show();
			jQuery('#events-list, #calendar-list').hide();
			disable_jcarousel();
			if ( yearToggle() ){ jQuery('#year').hide() }
			if ( monthToggle() ){ jQuery('#month').hide() }
			jQuery(this).hide();
			jQuery('.dates').hide();
			jQuery('#dates-venues').html('Venues');

			// this to remove any possible conflicting IDs
			jQuery('.daterow').remove();
			jQuery('.listrow').remove();

			var dataToServer = {};
			var aurl = "/travel/passport/add/venues/teamVenues";
			if ( getGlobal('teamId') != null ){
				dataToServer.teamId = getGlobal('teamId');
			} else {
				dataToServer.sportId = getGlobal('sportId');
				aurl = "/travel/passport/add/venues/sportVenues";
			}

			jQuery.getJSON(aurl+'?callback=?',
				dataToServer,
				function(json){
					if ( !json.error ){
						html = '';
						/* this is essentially populateVenueList */
						for(var i = 0; i < json.venues.length; i++ ){

							trClass = '';
							if ( ((i % 2)+1) == 1 ){
								trClass = 'odd';
							}

							thisObj = json.venues[i];
							var nm = thisObj.name;
							var loc = thisObj.location;
							var venueId = thisObj.venueId;
							var stamp = thisObj.stamp;

							var contentMeta = '';
							var editable = '';
							var trtitle = '';
							var checked = '';
							if ( thisObj.content != null ){
								checked = 'checked disabled';
								editable = ' editable {venueId: '+venueId+', isVenue: \'true\'}';
								contentMeta = getContentMetaString(thisObj.content, true);
								trtitle = 'title="Edit"';
							}

							if ( i == 0 ){
								trClass=trClass+' firstshown';
							} else if ( i == getGlobal('numvlist') ){
								trClass=trClass+' lastshown';
							} else if ( i > getGlobal('numvlist') ){
								trClass=trClass+' hidden';
							}

							html = html + '<tr class="'+trClass+' venuelistrow'+editable+'" '+trtitle+'><td><form><input id="c'+venueId+'" class="{stamp: \''+stamp+'\', venueId: \''+venueId+'\', loc: \''+loc+'\', name: \''+nm+'\''+contentMeta+', isVenue: true}" type="checkbox" value="1" '+checked+'/></form></td><td>'+nm+'</td><td>'+loc+'</td></tr>';
						}
						if ( json.venues.length == 0 ){
							html = '<tr class="odd listrow"><td colspan="4">Sorry, we could not find venues. <a href="#" onclick="force_tb_remove();">Go Back &#187;</a></td>';
						}

						// append html
						jQuery('#team-sport-venues-table').append(html);

						// bind this function to all checkboxes on calendar draw
						jQuery('#team-sport-venues-table tr td form input').unbind();
						jQuery('#team-sport-venues-table tr td form input').click(
							function(){
								handleCheckbox(this);
							}
						);

						// bind this function to all CHXd checkboxes on calendar draw
						jQuery('#team-sport-venues-table tr td form input:checked').unbind();
						jQuery('#team-sport-venues-table tr td form input:checked').click(
							function(){
								handleUnCheckbox(this);
							}
						);

						jQuery('.editable').click(
							function(){
								handleEditableTd(this);
							}
						);

						// view
						// hide loader
						jQuery('#saving').css('display', 'none');
						jQuery('#team-sport-venues').css('display', 'block');
						jQuery('.dates').show();

						jQuery('#submitvenue').hide();
						jQuery('#startover').show();
						enable_jcarousel_for_venues();

					}
				}
			);
			return false;
		}
	);

	jQuery('#startover').unbind();
	jQuery('#startover').click(
		function(){
			//jQuery(this).unbind();
			//jQuery('#myEvents').hide();
			//jQuery('#saving').show();
			/*
			events = jQuery('tr.reviewevent');
			var eventIds = '';
			for(var i=0; i < events.length; i++){
				var eid = jQuery('tr.reviewevent').metadata().eventId;
				eventIds = eventIds+eid+'~';
			}

			if ( eventIds != '' ){
				jQuery.getJSON('/travel/passport/api/save/updatestatus?callback=?',
					{ eventIds: eventIds },
					function(json){
						if ( !json.error ){								
							//jQuery('#saving').hide();
							jQuery('.reviewevent').remove();
							jQuery('.info-form-list li').remove();
							jQuery('.eventlist li').remove();
							jQuery('#startover').hide();
							jQuery('#submitall').hide();
							jQuery('#mypassport').hide();
							bindInfoFormToObj(jQuery('#continue'));
							jQuery('#continueImg').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_continue.gif');
							jQuery('#continue').hide();
							jQuery('.dates').show();
							jQuery('.eventlist').hide();
							jQuery('#cancelbutton').show();
							jQuery('#myEvents').hide();
							jQuery('#m_title').show();
							reupdate();
							//setTimeout("jQuery('.dates').show();jQuery('#saving').hide();", 250);
						} else {
							alert('An error occured trying to delete this visit. Please try again.');
						}
						return false;
					}
				);
			} else { */
				//jQuery('.reviewevent').remove();
				//jQuery('.info-form-list li').remove();
				jQuery('.eventlist li').remove();
				jQuery('.venuelistrow').remove();
				jQuery('#startover').hide();
				jQuery('#dates-venues').html('Dates');
				//jQuery('#submitall').hide();
				//jQuery('#mypassport').hide();
				bindInfoFormToObj(jQuery('#continue'));
				jQuery('#continueImg').attr('src', 'http://a.espncdn.com/i/travel/passport/09/btn_continue.gif');
				jQuery('#continue').hide();
				//jQuery('.dates').show();
				init_cal_jcarousel();
				enable_jcarousel();
				reupdate();
				jQuery('.eventlist').hide();
				//jQuery('#cancelbutton').show();
				jQuery('#team-sport-venues').hide();
				if ( jQuery('#events-list tr').length > 0 ){
					jQuery('#events-list').show();
				} else {
					jQuery('#calendar-list').show();
				}
				if ( monthToggle() ){
					jQuery('#month').show();
				}
				if ( yearToggle() ){
					jQuery('#year').show();
				}
				jQuery('#startover').hide();
				jQuery('#submitvenue').show();
				//jQuery('#myEvents').hide();
				//jQuery('#m_title').show();
			//}
			return false;
		}
	);

}
/* end modalLoad */

/* on page load init the thickbox - call tb_init */