//	alert('dsfdsds');
// jquery extensions
jQuery.fn.center = function () {jQuery(this).css("position","absolute");jQuery(this).css("top", ( jQuery(window).height() - jQuery(this).height() ) / 2+jQuery(window).scrollTop() + "px");if (jQuery.browser.msie && (jQuery.browser.version == "6.0" || jQuery.browser.version == "7.0" || jQuery.browser.version == "8.0")){jQuery(this).css("left", ( jQuery(window).width() - jQuery(this).width() ) / 2+jQuery(window).scrollLeft() + "px");}else jQuery(this).css("left", ( jQuery(window).outerWidth() - jQuery(this).outerWidth() ) / 2+jQuery(window).scrollLeft() + "px");return jQuery(this);}

function number_format(number, decimals, dec_point, thousands_sep) {
    // Formats a number with grouped thousands  
    // 
    // version: 1009.2513
    // discuss at: http://phpjs.org/functions/number_format
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://getsprink.com)
    // +     bugfix by: Benjamin Lupton
    // +     bugfix by: Allan Jensen (http://www.winternet.no)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +     bugfix by: Howard Yeend
    // +    revised by: Luke Smith (http://lucassmith.name)
    // +     bugfix by: Diogo Resende
    // +     bugfix by: Rival
    // +      input by: Kheang Hok Chin (http://www.distantia.ca/)
    // +   improved by: davook
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Jay Klehr
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Amir Habibi (http://www.residence-mixte.com/)
    // +     bugfix by: Brett Zamir (http://brett-zamir.me)
    // +   improved by: Theriault
    // +      input by: Amirouche
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: number_format(1234.56);
    // *     returns 1: '1,235'
    // *     example 2: number_format(1234.56, 2, ',', ' ');
    // *     returns 2: '1 234,56'
    // *     example 3: number_format(1234.5678, 2, '.', '');
    // *     returns 3: '1234.57'
    // *     example 4: number_format(67, 2, ',', '.');
    // *     returns 4: '67,00'
    // *     example 5: number_format(1000);
    // *     returns 5: '1,000'
    // *     example 6: number_format(67.311, 2);
    // *     returns 6: '67.31'
    // *     example 7: number_format(1000.55, 1);
    // *     returns 7: '1,000.6'
    // *     example 8: number_format(67000, 5, ',', '.');
    // *     returns 8: '67.000,00000'
    // *     example 9: number_format(0.9, 0);
    // *     returns 9: '1'
    // *    example 10: number_format('1.20', 2);
    // *    returns 10: '1.20'
    // *    example 11: number_format('1.20', 4);
    // *    returns 11: '1.2000'
    // *    example 12: number_format('1.2000', 3);
    // *    returns 12: '1.200'
    // *    example 13: number_format('1 000,50', 2, '.', ' ');
    // *    returns 13: '100 050.00'
    number = (number+'').replace(',', '').replace(' ', '');
    var n = !isFinite(+number) ? 0 : +number, 
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function (n, prec) {
            var k = Math.pow(10, prec);
            return '' + Math.round(n * k) / k;
        };
    // Fix for IE parseFloat(0.55).toFixed(0) = 0;
    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
    if (s[0].length > 3) {
        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
    }
    if ((s[1] || '').length < prec) {
        s[1] = s[1] || '';
        s[1] += new Array(prec - s[1].length + 1).join('0');
    }
    return s.join(dec);
}

// insert old obj and it'll tack onto robj and return a new instance of it
function ObjAdd(oldObj, rObj, titleMode)
{
	if (typeof oldObj == 'string') // get the objects if it's a string
	{
		var nObj = {};
		jQuery(oldObj).each(function()
		{
			//if (titleMode && jQuery(this).attr('title'))
			//	nObj[jQuery(this).attr('title')] = jQuery(this).val();
			if (jQuery(this).attr('name'))
			{
				if (titleMode && jQuery(this).attr('title'))
					nObj[jQuery(this).attr('name')] = {'value':jQuery(this).val(), 'title':jQuery(this).attr('title')};
				else nObj[jQuery(this).attr('name')] = jQuery(this).val();
			}
			else if (jQuery(this).attr('id'))
				nObj[jQuery(this).attr('id')] = jQuery(this).val();
		});
		oldObj = nObj;
	}
	for(var prop in oldObj) {
		if(oldObj.hasOwnProperty(prop))
			rObj[prop] = oldObj[prop];
	}
	return rObj;
}


// preps a form by prefix, returns an object that we can easily send into some sort of form processing
function PrepFormByPrefixObj(pre, type, obj)
{
	var nObj = null;
	if (!obj) nObj = new Object();
	else nObj = obj;
	
	if (!type) type = 'name';
	jQuery("*[" + type + "^='" + pre + "']").each(function()
	{
		nObj[jQuery(this).attr(type)] = jQuery(this).val();
	});
	return nObj;
}

function UpdateStreamItem(type, message)
{
	if (type == 'comment' && message != '')
	{
		
	}
}

function GlobalUpdateDiv(div, html, mode)
{
	if (!mode)
		jQuery(div).html(html);
	else if (mode == "prepend")
		jQuery(div).prepend(html);
	else if (mode == "append")
		jQuery(div).append(html);
}

function UpdateItemWithPostDefaultActions(div, div_update_area, base_url, url, obj, mode, options, data, uniqID)
{
	/*if (options.do_not_update_html)
	{
	}
	else*/ if (data && data.html)
	{
		GlobalUpdateDiv(div_update_area, data.html, mode)
	}
	if (options && options.reset_state && options.reset_input)
	{
		jQuery(options.reset_input).blur();
		jQuery(options.reset_input).val(options.reset_state);
	}
	
	// function?
	if (options && options.func && typeof options.func == 'function')
		options.func();

	if (options && options.funcd && typeof options.funcd == 'function')
		options.funcd(data);
	if (options && options.funcdd && typeof options.funcdd == 'function')
		options.funcdd(data);

	if (options && options.outsideProgressHandler) eoptions.ProgressUniqID = uniqID;
	else UnShowProgressAction(uniqID);
	

	if (options && options.funcdo && typeof options.funcdo == 'function')
		options.funcdo(data, eoptions);

	if (data && data.points_returned)
	{
		NUpdatePointsEffect(div, '.UserTotalPoints', '.UserTotalPoints', data.points_returned, base_url);
		NUpdatePointsEffect(div, '.UserTotalPointsCeleb', '.UserTotalPointsCeleb', data.points_returned, base_url, {no_chaching: true});
	}
	if (options && data && data.thumbs_up && options.item_rating_id)
	{

		NUpdateRatingEffect(options.item_rating_id, data.thumbs_up, base_url);
	}
	if (data && data.post_action_level_percent && data.post_action_level)
	{
		if (data.post_action_level_percent != -1 && data.post_action_level != -1)
		{
			NUpdatePostArea(data.post_action_level_percent, data.post_action_level);
		}
	}
	if (data && data.mission_info)
	{
		//alert(print_r(data.mission_info));
		NMissionUpdate(data.mission_info, base_url);
	}
	
	
}

function UpdateItemWithPost(div, div_update_area, base_url, url, obj, mode, options)
{
	//alert('hi');
	var spaobj = {};
	if (options && options.spaobj) spaobj = options.spaobj;
	if (options && options.beforePost && typeof options.beforePost == 'function') options.beforePost();
	var eoptions = (options && options.eoptions) ? options.eoptions : {};
	var uniqID = ShowProgressAction(jQuery(div), base_url, false, spaobj);

	// form objects to get?
	if (options && options.getFormFromDiv)
	{
		if (options && options.getFormFromDivName)
			eval('obj.' + options.getFormFromDivName + ' = {} ');
		jQuery(options.getFormFromDiv + ' .nform_object').each(function()
		{
			if (jQuery(this).attr('name'))
			{
				if (options && options.getFormFromDivName)
					eval('obj.' + options.getFormFromDivName + '.' + jQuery(this).attr('name') + " = '" + jQuery(this).val().replace("'", '\"')  + "'");
				else eval('obj.' + jQuery(this).attr('name') + " = '" + jQuery(this).val().replace("'", '\"')  + "'");
			}
		});
	}

	// html override just go right to the actions
	if (options && options.data_override) return UpdateItemWithPostDefaultActions(div, div_update_area, base_url, url, obj, mode, options, options.data_override, uniqID);
	jQuery.post(url, obj, function(data)
	{	
		return UpdateItemWithPostDefaultActions(div, div_update_area, base_url, url, obj, mode, options, data, uniqID);
			//alert(data.points_returned);
		//alert(data.html);
	}, 'json');
}

function NBuyThumbsUpExplodeAnimate(general_div, i, maxSize, mode, base_url, options)
{
	var ui_effect = 'puff';
	var ui_obj = {};
	if (options && options.ui_effect) ui_effect = options.ui_effect;
	if (options && options.ui_obj) ui_obj = options.ui_obj;
	
	//alert(var_dump(options));
	//return false;
	
	if (!mode)
	{
		jQuery(general_div).eq(i).hide(ui_effect, ui_obj, 500, function()
		{
			if (i == 0) jQuery(general_div).unbind('click').attr('onclick','');
			var ItemID = jQuery(this).attr('ItemID');
			var ItemDiv = jQuery(this).attr('ItemDiv');
			var href2 = jQuery(this).attr('href2');
			
			//jQuery('.item_rating_' + ItemID).attr('onclick', "NNyroRShow('" + base_url + "ncelebdetail/show_stat/post/" + ItemID + "', '" + base_url + "')");
			jQuery('.' + ItemDiv).click(function() {NNyroRShow(href2/*base_url + "ncelebdetail/show_stat/post/" + ItemID*/,base_url);});

			if (i < maxSize) return NBuyThumbsUpExplodeAnimate(general_div, ++i, maxSize, 0, base_url,options);
			else
				NBuyThumbsUpExplodeAnimate(general_div, 0, maxSize, 1, base_url, options);

		});
		if (jQuery(general_div).eq(i).size() == 0) NBuyThumbsUpExplodeAnimate(general_div, 0, maxSize, 1, base_url,options);
	}
	else
	{
		jQuery(general_div).eq(i).show(ui_effect, ui_obj, 500, function() {if (i < maxSize) return NBuyThumbsUpExplodeAnimate(general_div, ++i, maxSize,1, base_url,options);});		
	}
}

function NBuyThumbsUp(ItemCode, MessageConfirm, Message, div, div_update_area, base_url, options, general_div) 
{
	var ItemID = 0;
	if (options && options.passedobj && options.passedobj.ItemID) ItemID = options.passedobj.ItemID;
	var n_options = {};
	if (options && options.n_options) n_options = options.n_options;
	var ui_effect = 'puff';
	

	
	if (options && options.n_options && options.n_options.ui_effect) ui_effect = options.n_options.ui_effect;
	
	options.boughtfunc = function()
	{
		jQuery(div).hide(ui_effect, 500);
		
			//alert(print_r(options));return false;
			
		NBuyThumbsUpExplodeAnimate(general_div, 0, jQuery(general_div).size(), 0, base_url, n_options);
	};
	return NBuyItem(ItemCode, MessageConfirm, Message, div, div_update_area, base_url, options);
}

function NBuyItem(ItemCode, MessageConfirm, Message, div, div_update_area, base_url, options)
{
	var CanBuy = true;
	//var CantBuyMessage = (options && options.CantBuyMessage) ? options.CantBuyMessage : false;
	//if (options && options.CantBuyMessage) CantBuyMessage = options.CantBuyMessage;
	if (MessageConfirm)
	{
		if (window.confirm(MessageConfirm)) CanBuy = true;
		else CanBuy = false;
	}
	if (CanBuy)
	{
		var passedobj = {};
		if (options && options.passedobj) passedobj = options.passedobj;
		var extra_params = {};
		extra_params.funcd = function(data)
		{
			if (data && data.bought)
			{
				if (data.bought == "0") alert('There was an error in the buying transaction, sorry!');
				else
				{
					//if (data && data.html)
					if (options && options.boughtfunc && typeof options.boughtfunc == 'function') options.boughtfunc();
					
				}
			}
		};
		passedobj.ItemCode = ItemCode;

		UpdateItemWithPost(div, div_update_area, base_url, base_url + 'ncoins/buy_something', passedobj, null, extra_params);
	}
	//else if (CantBuyMessage) alert(CantBuyMessage);
}

// facebook updates
function NShareOnFacebook(base_url, options)
{
	
}

// comment on a post
function NCommentOnPost(base_url, stream_id, celeb_id, item_text, options)
{
	if (item_text == 'Leave a comment...' || jQuery.trim(item_text) == '')
	{
		alert('Please leave a valid comment!');
		return false;
	}
	
	var params = {
		stream_id: stream_id,
		celeb_id: celeb_id,
		item_text: item_text
	};
	
	var postActtionParams = {
		reset_state: 'Leave a comment...',
        reset_input: '.comment_box_' + stream_id
	};
	
	if (options && options.join_celeb)
	{
		params.join_celeb = options.join_celeb;
		postActtionParams.funcd = function(data)
		{
			if (data.joined == '1') window.location.reload(true); 
			else alert('There was an error joining the Fantourage on this Celeb!');
		}
	}
	//if (options && options.funcdd && typeof options.funcdd == 'function')
		postActtionParams.funcdd = function(data)
		{
			//alert('hi');
			// check to see if we need to do more commenting
			if (data && data.stream_id)
			{
				jQuery.post(base_url + 'nceleb/ajx_check_comment_share/' + stream_id, {the_comment: item_text}, function(d)
				{
					if (d && d.points_returned)
					{
						NUpdatePointsEffect('.item_id_' + data.stream_id, '.UserTotalPoints', '.UserTotalPoints', d.points_returned, base_url);
						NUpdatePointsEffect('.item_id_' + data.stream_id, '.UserTotalPointsCeleb', '.UserTotalPointsCeleb', d.points_returned, base_url, {no_chaching: true});
					}

				});
			}
		}
	
	
	UpdateItemWithPost('.comment_box_area_' + stream_id, '.comment_new_area_' + stream_id, base_url, base_url + 'nceleb/npost_comment', params, 'append', postActtionParams);
}
function NCommentPostShow(base_url, stream_id)
{
	jQuery('.n_show_comment_post_area_' + stream_id).css({'width':jQuery('.n_show_comment_post_area_' + stream_id).outerWidth()});//animate({'width': 0}, 'slow');
	//alert(jQuery('.n_show_comment_post_area_' + stream_id).outerWidth());
	jQuery('.n_show_comment_post_area_button_' + stream_id).hide('explode', 2000, function()
	{
		jQuery('.n_show_comment_post_area_' + stream_id).html('&nbsp;');
		jQuery('.n_show_comment_post_area_' + stream_id).hide('slow');//({'display':'none'}, 'slow');
		//alert(jQuery('.n_show_comment_post_area_' + stream_id).outerWidth());
	});
	var cBox = jQuery('.comment_box_area_' + stream_id);
	//alert(cBox.position().left + ' and ' + cBox.position().top);
	jQuery('.comment_box_area_' + stream_id).slideDown('slow');
}


// update post area
function NUpdatePostArea(post_action_level_percent, post_action_level)
{
	// first make sure we are showing the option
	var qSize = jQuery('.list_items_container_holder .list_items_level_count_question .text .question_marks').size();
	var qMarks = '';
	if (post_action_level_percent < 1)
	{
		if (jQuery('.list_items_container_holder .list_items_level_count_question:hidden'))
			jQuery('.list_items_container_holder .list_items_level_count_question:hidden').fadeIn('slow');
		if (qSize < 1 && post_action_level_percent >= 0)
			qMarks = '<span class="question_marks">?</span>';
		if (qSize < 2 && post_action_level_percent >= 0.25)
			qMarks += '<span class="question_marks">?</span>';
		if (qSize < 3 && post_action_level_percent >= 0.50)
			qMarks += '<span class="question_marks">?</span>';
		if (qSize < 4 && post_action_level_percent >= 0.75)
			qMarks += '<span class="question_marks">?</span>';
//alert(qSize);
		jQuery('.list_items_container_holder .list_items_level_count_question .text').append(qMarks);
		//alert(qMarks);
	}
	else
	{
		// hide question mark
		jQuery('.list_items_container_holder .list_items_level_count_question').fadeOut('slow', function()
		{
			var newItem = jQuery('.list_items_container_holder .list_items_level_count_' + (parseInt(post_action_level)+1));
	//		alert(newItem.size() +  ' .list_items_container_holder .list_items_level_count_' + (parseInt(post_action_level)+1));
			if (newItem.is(':hidden'))
				newItem.fadeIn('slow');
				//newItem.show('slide', {direction: 'left'}, 'slow');
			jQuery('.list_items_container_holder .list_items_level_count_question .text').text('');
			//alert('here');

		});
		
	}
	//alert('test');

}


/** SURVEY STUFF **/
function NOptionSurveyInitiate(base_url, objID, obj, detailedLink, survey_id, option_num)
{

	if (jQuery(obj).attr('onmouseover') != '')
	{
		jQuery(obj).attr('onmouseover', '');
		jQuery(obj).unbind('click');

		jQuery(obj).click(function()
		{
			// must be voting
			if (!detailedLink)
			{

				var naction_link = base_url + 'nceleb/nupdate_post';
				//alert(survey_id + ' and ' + option_num);	
				
				var SurveyID = obj.find('.option_survey_id_val:first').val();
				var OptionNum = obj.find('.option_val:first').val();
				//alert(obj.find('.option_val').size());
				//alert(SurveyID + ' and ' + OptionNum);	
				UpdateItemWithPost(objID, objID, base_url, naction_link, {item_mode: 'answer_survey', survey_id: SurveyID, survey_choice: OptionNum}, false, {

					/*func: function()
					{
						//alert('hi');
						jQuery('.list_items_options .options .picked').not(thisObj).switchClass('options picked','options');
					}*/});	
				
			}
			/*alert(jQuery(this).find('.val_option_num').size());
			if (detailedLink)
				return false;
			*/
		});
	}
}
var SurveyOptionDefaultText = 'Type in your answer...';
function NPostOptionAnswerSelect(obj)
{
	if (obj.val() == SurveyOptionDefaultText)
		obj.val('');
}

function NPostOptionSurveyChangeHelper(showIDArray, valArray)
{
	var showArrayString = '';
	var showArrayStringSeperation = '';
	for (i = 0; i < showIDArray.length; i++)
	{
		showArrayString += showArrayStringSeperation + '.list_items_post_area_container .survey_answer_options ' + showIDArray[i];
		showArrayStringSeperation = ', ';
	}

	
	jQuery('.list_items_post_area_container .survey_answer_options .survey_answer_num').not(jQuery(showArrayString)).hide('slow', function()
	{
		jQuery(this).children('input').val('');
	});
	for(i = 0; i < valArray.length; i++)
		jQuery('.list_items_post_area_container .survey_answer_options ' + showIDArray[i] + '_input').val(valArray[i]);
	jQuery(showArrayString).show('slow');
}

// survey options changing
function NPostOptionSurveyChange(obj)
{
	var showIDArray = new Array();
	var valArray = new Array();
	// basic answer arrays used by options 5, 4 and 3
	for(i = 1; i <= 5; i++)
	{
		showIDArray[i] = '.survey_answer' + i;
		valArray[i] = SurveyOptionDefaultText;
	}

	switch(obj.val())
	{
		case '1YN':
			NPostOptionSurveyChangeHelper(['.survey_answer1', '.survey_answer2'], ['Yes', 'No']);
			break;
		case '2TF':
			NPostOptionSurveyChangeHelper(['.survey_answer1', '.survey_answer2'], ['True', 'False']);
			break;
/*		case '2O':
			//NPostOptionSurveyChangeHelper(['.survey_answer1', '.survey_answer2'], ['Type in your answer...', 'Type in your answer...']);
			NPostOptionSurveyChangeHelper(showIDArray.splice(0,2), valArray.splice(0,2));
			break;*/
		case '2':
		case '3':		
		case '4':
		case '5':
			NPostOptionSurveyChangeHelper(showIDArray.splice(0,(parseInt(obj.val())+1)), valArray.splice(0,(parseInt(obj.val())+1)));
			break;
		default:
			//alert('bye');
	}
}
function NPostOptionChange(obj,iName, base_url, celeb_id, celeb_name, celeb_fan_id)
{
	/*switch(iName)
	{
		case 'text'
	}*/
	if (!obj.hasClass('list_items_container_picked'))
	{
		if (!obj.hasClass('list_items_level_count_question'))
		{
			//jQuery('.list_items_container_holder .list_items_container_picked').addClass('list_items_container').removeClass('list_items_container_picked');
			//obj.addClass('list_items_container_picked').removeClass('list_items_container');
			jQuery('.list_items_container_holder .list_items_container_picked').switchClass('list_items_container_picked', 'list_items_container');
			obj.switchClass('list_items_container', 'list_items_container_picked');
			
			switch(iName)
			{
				case 'phone':
					jQuery('.list_items_post_area_container .list_items_post_area_second_input_area').not('.list_items_post_area_container .audio_info').hide('slow');					
					jQuery('.list_items_post_area_container .list_items_post_area .list_items_post_area_input_text').hide('slow');
					NPostAudioStart(base_url, celeb_id, celeb_name, celeb_fan_id);
					
					break;
				case 'survey':
					jQuery('.list_items_post_area_container .list_items_post_area_second_input_area').not('.list_items_post_area_container .survey_info').hide('slow');
					jQuery('.list_items_post_area_container .survey_info').show('slow');
					break;
					

				case 'pic':
					jQuery('.list_items_post_area_container .list_items_post_area_second_input_area').not('.list_items_post_area_container .photo_file').hide('slow');
					jQuery('.list_items_post_area_container .photo_file').show('slow');

					break;
				case 'video':
					jQuery('.list_items_post_area_container .list_items_post_area_second_input_area').not('.list_items_post_area_container .link_video_url').hide('slow');
					jQuery('.list_items_post_area_container .link_video_url').show('slow');

					break;
				case 'news':
					jQuery('.list_items_post_area_container .list_items_post_area_second_input_area').not('.list_items_post_area_container .link_news_url').hide('slow');
					jQuery('.list_items_post_area_container .link_news_url').show('slow');
					break;
				case 'text':
					jQuery('.list_items_post_area_container .list_items_post_area_second_input_area').hide('slow');
					break;
			}
		}
		
		// default for others
		switch(iName)
		{
			case 'survey':
			case 'pic':
			case 'news':
			case 'video':
			case 'text':
				jQuery('.list_items_post_area_container .list_items_post_area .list_items_post_area_input_text').show('slow');
				NPostAudioStop(); // no matter what stop the audio check				
		}
	}
}

var NPostAudioStartVar = false;
function NPostAudioStart(base_url, celeb_id, celeb_name, celeb_fan_id)
{
	jQuery('.list_items_post_area_container .audio_info').text('Loading phone info...');
	jQuery('.list_items_post_area_container .audio_info').show('slow');
	jQuery.get(base_url + 'audiopost/n_setup_audio_post/' + celeb_id, {'rd': new Date().getTime()},
		function(data){
			data.base_url = base_url;
			data.celeb_id = celeb_id;
			data.celeb_name = celeb_name;
			data.celeb_fan_id = celeb_fan_id;
			return NSetupPostAudio(data, 0);
	}, 'json');

}

function NPostAudioStop(data, Thread)
{
	NPostAudioStartVar = false;
	jQuery('.list_items_post_area_container .audio_info').stopTime();
	if (data && data.base_url && data.celeb_id)
		jQuery('.list_items_post_area_container .audio_info').html('Please click <a href="javascript:;" onClick="NPostAudioStart(\'' + data.base_url + '\', \'' + data.celeb_id + '\', \'' + data.celeb_name + '\', \'' + data.celeb_fan_id + '\');">here</a> to get a new audio code.');
		//jQuery('.list_items_post_area_container .audio_info').html('Please click <a href="javascript:;" onClick="NSetupPostAudio(\'' + data.base_url + '\', \'' + data.celeb_id + '\');">here</a> to get a new audio code.');

	return false;
}

function NSetupPostAudio(data, Thread)
{
	// loop it up
	if (Thread == 0)
	{
		data.expire_time = Math.round(new Date().getTime()/1000.0) + 120;
		NPostAudioStartVar = true;
		/*jQuery('.list_items_post_area_container .audio_info').everyTime(1500, function()
		{
			NSetupPostAudio(data, ++Thread);
		});*/
	}
	if (data && Thread == 0 && data.phone_number && data.code)
	{
		jQuery('.list_items_post_area_container .audio_info').html('Please dial <b><em>' + data.phone_number + '</em></b> and enter the code <b><em>' + data.code + '</em></b><br /><span class="phone_status"> - <span class="phone_status_detail">Waiting for your call</span><span class="dots"><span class="dot">.</span><span class="dot">.</span><span class="dot">.</span></span></span>');
		
	}
	if (data && data.code)
	{
		var currTime = Math.round(new Date().getTime()/1000.0);
		//alert('here ' + currTime + ' and ' + data.expire_time);
		if (data.expire_time < currTime)
			return NPostAudioStop(data, Thread);
		
		// move dots
		var dotSize = jQuery('.list_items_post_area_container .audio_info .dots .dot').size();
		var dotNum = dotSize%3 + 1;
		var dotHTML = '';
		for (i = 0; i < dotNum; i++)
			dotHTML += '<span class="dot">.</span>';
	    jQuery('.list_items_post_area_container .audio_info .dots').html(dotHTML);
		
// $.get('<?=base_url()?>audiopost/monitor_audio_post/<?=$PostInfo['id']?>/' + Code, {'rd': new Date().getTime()},function(data){return RfrAudio(data, Thread);});
		jQuery.get(data.base_url + 'audiopost/n_monitor_audio_post/' + data.celeb_id + '/' + data.code, {}, function(rdata)
		{
			if (rdata && rdata.phone_status && NPostAudioStartVar)
			{
				switch(rdata.phone_status)
				{
					case 'expired':
						return NPostAudioStop(data, Thread);
						break;
					case 'unknown':
						return NPostAudioStop(data, Thread);
						break;
					case 'validated':
						jQuery('.list_items_post_area_container .audio_info .phone_status .phone_status_detail').text('Recording');
						break;
					case 'finished':
						jQuery('.list_items_post_area_container .audio_info .phone_status .phone_status_detail').text('Finishing');
						break;
					case 'posted':
						jQuery('.list_items_post_area_container .audio_info .phone_status .phone_status_detail').text('Posting');
						var w = window.prompt('What\'s this audio message about?', 'For all you ' + data.celeb_name + ' fans out there!');
						jQuery('.list_items_post_area_container .list_items_post_area_input').val(w);
						jQuery('.list_items_post_area_container .audio_info').html('Click <a href="javascript:;" onClick="NSetupPostAudio(\'' + data.base_url + '\', \'0\');">here</a> to post another audio message.');
						return NPostContent(data.base_url, data.celeb_fan_id, {audio_id: rdata.id});
						break;
				}
				jQuery('.list_items_post_area_container .audio_info').oneTime(1500, function()
				{
					NSetupPostAudio(data, ++Thread);
				})

			}
		}, 'json');
	}
	else
	{
		NPostAudioStop(data, Thread);
	}
}



// update ratings
function NUpdateRatingEffect(OriginID, NewRating, options)
{
	var OldRating = jQuery.trim(jQuery(OriginID).text());
	
	var UIEffect = 'explode';
	var UIEffectSpeed = 'slow';
	if (options)
	{
		if (options.ui_effect)
			UIEffect = options.ui_effect;
		if (options.ui_effect_speed)
			UIEffectSpeed = options.ui_effect_speed;
	}
	if (NewRating != OldRating)
		jQuery(OriginID).hide(UIEffect, UIEffectSpeed, function()
		{
			if (options && options.html_update)
				jQuery(this).html(NewRating);
			else
				jQuery(this).text(NewRating);
			jQuery(this).fadeIn('slow');
		});
}

function NUpdateMissionTimer(OriginID, PointsToAdd, base_url, options)
{
	var seconds_to_add = '';
	var seconds_to_add_html = '';
	if (options && options.seconds_to_add) seconds_to_add = options.seconds_to_add;
	if (options && options.seconds_to_add_html) seconds_to_add_html = options.seconds_to_add_html;
				
	NUpdatePointsEffect(OriginID, '.mission_timer_main_areas', '.mission_timer_main_areas', '5', base_url, {points_popup_text: '+ ' + seconds_to_add + ' seconds', points_after_animation: function()
            {
				jQuery('.mission_timer_main_area').html(seconds_to_add_html);
				var seconds = parseInt(jQuery('<div>' + seconds_to_add_html + '</div>').find('.seconds').text());
				var minutes = parseInt(jQuery('<div>' + seconds_to_add_html + '</div>').find('.minutes').text());
				var hours = parseInt(jQuery('<div>' + seconds_to_add_html + '</div>').find('.hours').text());
				var days = parseInt(jQuery('<div>' + seconds_to_add_html + '</div>').find('.days').text());					
				if (NInitMissionTime)
					NInitMissionTime.set_itime(seconds, minutes, hours, days);
				
            	NUpdateRatingEffect('.mission_timer_main_areas', seconds_to_add_html, {html_update: true}); 

				//alert(seconds_to_add_html);
				//jQuery('.mission_timer_main_area').stopTime();
            	//alert('hi');
            }
	});
}

// brand new updates point
function NUpdatePointsEffect(OriginID, PointsID, TargetID, PointsToAdd, base_url, options)
{
	if (!options)
		options = null;

	// no points to add? well return false!
	if (!PointsToAdd)
		return false;
		
	// first get all the objects
	var OriginObj = jQuery(OriginID);
	var PointsObj = jQuery(PointsID);
	var TargetObj = jQuery(TargetID);
	
	if (OriginObj.size() == 0 || PointsObj.size() == 0 || TargetObj.size() == 0)
		return false;
	
	var TotalPoints = parseInt(jQuery.trim(jQuery(PointsID + '_raw_number').text()));


	
	var NewTotalPoints = TotalPoints + PointsToAdd;
	jQuery(PointsID + '_raw_number').text(NewTotalPoints); // update raw number for points

	var NewTotalPointsDisplay = number_format(NewTotalPoints);
	
	var thePointsPopupOptions = {};
	if (options && options.points_popup_text) thePointsPopupOptions.points_popup_text = options.points_popup_text;
	if (options && options.points_popup_icon_pic) thePointsPopupOptions.points_popup_icon_pic = options.points_popup_icon_pic;
	
	var thePointsPopup = NUpdatePointsPopupCreate(PointsToAdd, base_url, thePointsPopupOptions);
	

	
	// now do the animation portion
	if (thePointsPopup) // pass a function on what to do after the animation
		NUpdatePointsPopupAnimate(thePointsPopup, OriginObj, TargetObj, base_url, options, function()
		{
			if (options && options.points_after_animation && typeof options.points_after_animation == 'function')
				options.points_after_animation();
			else
			{
				PointsObj.hide('slide', {direction:'down'}, 150, function()
				{
					PointsObj.text(NewTotalPointsDisplay);
					PointsObj.show('slide', {direction:'up'}, 150, function()
					{
						jQuery(PointsID + '_icon_glow').fadeIn(1000);
						if (options && options.points_after_all_animations && typeof options.points_after_all_animations == 'function')
							options.points_after_all_animations();
							
					});
					
				});
			}
		});
}

function PlayNSound(file)
{
    var embed = document.createElement("embed");

    embed.setAttribute('src', file);
    embed.setAttribute('hidden', true);
    embed.setAttribute('autostart', true);

    document.body.appendChild(embed);
}

function NUpdatePointsPopupAnimate(thePointsPopup, OriginObj, TargetObj, base_url, options, func)
{
//	alert(jQuery(this).attr('class'));
	var objWidthChange = OriginObj.outerWidth()/2;//jQuery(effectOrigin).width()/2;
	var objHeightChange = OriginObj.outerHeight()/2;//jQuery(effectOrigin).height()/2;
	
	thePointsPopup.css({'z-index': '10000', 'position':'absolute', 'top':OriginObj.offset().top - objHeightChange, 'left': OriginObj.offset().left + objWidthChange});
	thePointsPopup.show('slide', {direction: 'down'}, 200, function() //thePointsPopup.show("bounce", {direction: 'down', distance: 200,}, 500, function()
	{
		if (options && options.no_chaching)
		{
		}
		else
			window.setTimeout("PlayNSound('" + base_url + "images/chaching.wav');", 200);
		//alert(jQuery(this).attr('class'));
		//jQuery(this).removeClass('hidden');
		jQuery(this).oneTime(1200, function()
		{
			jQuery(this).animate({
				'top':TargetObj.offset().top, 'left': TargetObj.offset().left
				}, 1000, function()
				{
					jQuery(this).hide('puff', {}, 1000, function()
					{
						//alert('hi');
						//alert($(this).css('z-index'));
					}).css({'z-index':200});
					
					jQuery(this).oneTime(75, function()
					{
						if (func)
							func();
					});
				});
		}); //onetime
	}); // the show part
}

function NUpdatePointsPopupCreate(PointsToAdd, base_url, options)
{
	var newDate = new Date;
	var uniqID = newDate.getTime();
	
	var points_popup_icon_pic = 'f_icon_star_purple f_icon_size';
	if (options && options.points_popup_icon_pic) points_popup_icon_pic = options.points_popup_icon_pic;
	
	var points_icon = '<img src="' + base_url + 'images/nlayout/layout/blank.gif" width="16" height="16" class="' + points_popup_icon_pic + '" align="absmiddle" />';
	
	var points_text = '<span class="grow_mod_4">+</span>' + PointsToAdd + ' pts</b>';
	if (options && options.points_popup_text) points_text = options.points_popup_text;
	
	// append to the body
	jQuery('body').append('<span class="updatePointsPopup_' + uniqID + ' updatePointsPopupA_' + uniqID + ' hidden bg_fade50 update_points_popup_container"><span class=""><b class="points_note_color grow_mod_4">' + points_icon + '&nbsp;' + points_text + '</span></span>');

	return jQuery('.updatePointsPopup_' + uniqID);		
	
}

function updatePointsEffect(obj, targetObj, pointsObjName, base_url, celeb_id, addThePoints, targetObj2, pointsObjName2, totalPlacement, celebPlacement)
{
	
	if (!targetObj)
		targetObj = jQuery('.total_celeb_points');
	if (!pointsObjName)
		pointsObjName = '.total_celeb_points';
	if (!targetObj2)
		targetObj2 = jQuery('#your_total_points');
	if (!pointsObjName2)
		pointsObjName2 = '#your_total_points';
		
	
	var effectOrigin = obj;
	
	//var addedPoints = 6;
	var total_points = parseInt(jQuery.trim(jQuery(pointsObjName + '_number').text()));
	
//	var celeb_placement = false;
//	if (celeb_id && $('.total_celeb_placement').size())
//		celeb_placement = parseInt(jQuery.trim($('.total_celeb_placement' + '_number').text()));
	
	//alert(total_points);
	
	var addedPoints = 0;
	
	if (addThePoints && parseInt(addThePoints))
		addedPoints = addThePoints;
	
	

	
		
	if (!addThePoints)
	{
		if (celeb_id)
		{
			jQuery.post(base_url + 'celeb/ajx_show_fan_points/' + celeb_id, {'rd': new Date().getTime(), 'point_value_return': '1'},function(data){
				//data = 600000;
				var the_celeb_points = parseInt(data.points);
				//var new_celeb_placement = parseInt(data.rank);
				
				addedPoints = the_celeb_points - total_points;
				
				if (addedPoints > 0)
				{
					if (targetObj2)
					{
						/*if (data.rank)
						{
						}*/
						
						window.setTimeout("PlayNSound('" + base_url + "images/chaching.wav');", 200);
						updatePointsEffect(obj, targetObj2, pointsObjName2, base_url, false, addedPoints);
						updatePointsEffect(obj, targetObj, pointsObjName, base_url, false, addedPoints,null,null, data.rank_overall, data.rank_celeb);
						//alert('here');
					}
				}
			}, "json");
		}
		else
		{
			// just get how many total points
			jQuery.post(base_url + 'celeb/ajx_show_points/', {},function(data){
				//data = 600000;
				var the_all_points = parseInt(data.points);
				addedPoints = the_all_points - total_points;
				
				if (addedPoints > 0)
				{
						window.setTimeout("PlayNSound('" + base_url + "images/chaching.wav');", 200);
	
						updatePointsEffect(obj, targetObj, pointsObjName, base_url, false, addedPoints, null, null,  data.rank_overall);
						//alert('here');
				}
			}, "json");			
		}
	}
	//alert (addedPoints);
	else if (addedPoints > 0)
	{
	
		// get points first
		
		
		var newDate = new Date;
		var uniqID = newDate.getTime();
		
		var points_icon = '<img src="' + base_url + 'images/nlayout/layout/blank.gif" width="16" height="16" class="icon_fantourage_points_smaller" align="absmiddle" />';
		/*if (FBMode)
		{
			points_icon = '<img src="' + base_url + 'images/nlayout/icons/icon_fantourage_points.png" width="16" height="16"  align="absmiddle" />';
		}*/
		
		jQuery('body').append('<span class="updatePointsPopup_' + uniqID + ' updatePointsPopupA_' + uniqID + ' hidden bg_fade50 update_points_popup_container"><span class=""><b class="points_note_color grow_mod_4">' + points_icon + '&nbsp;<span class="grow_mod_4">+</span>' + addedPoints + ' pts</b></span></span>');
	
		var thePointsPopup = jQuery('.updatePointsPopup_' + uniqID);
		//alert(thePointsPopup);
	
		
		var objWidthChange = effectOrigin.outerWidth()/2;//jQuery(effectOrigin).width()/2;
		var objHeightChange = effectOrigin.outerHeight()/2;//jQuery(effectOrigin).height()/2;
		
		thePointsPopup.css({'z-index': '1000', 'position':'absolute', 'top':effectOrigin.offset().top - objHeightChange, 'left': effectOrigin.offset().left + objWidthChange});
		thePointsPopup.show('slide', {direction: 'down'}, 200, function() //thePointsPopup.show("bounce", {direction: 'down', distance: 200,}, 500, function()
		{
	
			thePointsPopup.oneTime(1200, function()
			{
				
				thePointsPopup.animate({
					'top':jQuery(targetObj).offset().top, 'left': jQuery(targetObj).offset().left
					}, 1000, function()
					{
						jQuery(this).hide('puff', {}, 1000, function()
						{
							//alert('hi');
							//alert($(this).css('z-index'));
						}).css({'z-index':200});
						
						jQuery(this).oneTime(75, function()
						{

							//var total_points = parseInt(jQuery.trim($(pointsObjName + '_number').text()));
							var new_total_points = total_points + parseInt(addedPoints);
							jQuery(pointsObjName + '_number').text(parseInt(new_total_points));
							
							
							
							//alert(total_points + ' and ' + addedPoints + ' and ' + $('#your_total_points_number').text());
							
							jQuery(pointsObjName + ' .total_points span').addClass('your_total_points_to_hide');
							jQuery(pointsObjName + ' .total_points').append('<span class="hidden your_total_points_to_show">' + number_format(new_total_points) + '</span>');
							
							//alert($(pointsObjName + ' .total_points span').size());
							
							// did placement change?
							if (celebPlacement)
							{
								//alert('here');
								updateMyRanks(base_url, celeb_id, null, celebPlacement);
							}
							if (totalPlacement)
							{
								updateMyRanks(base_url, null, totalPlacement);
								//updateMyRanks(base_url, null, 23423432);
							}
							/*if ($('.total_celeb_placement').size() && celebPlacement)
							{
							}*/
							//$(pointsObjName).css('width', $(pointsObjName + " .your_total_points_to_show").outerWidth());
							
							jQuery(pointsObjName + " .your_total_points_to_hide").hide('slide', {direction: 'down'}, 150, function()
							{	

								//alert($(pointsObjName + " .your_total_points_to_show").outerWidth() + ' he');
								
								jQuery(pointsObjName + " .your_total_points_to_show").show('slide', {direction: 'up'}, 150, function()
								{
									//$(this).removeClass('your_total_points_to_hide');
									jQuery(pointsObjName + " .your_total_points_to_hide").remove();
									jQuery(this).removeClass('your_total_points_to_show');
									
									if (jQuery(pointsObjName + ' .ui-effects-wrapper').size())
										jQuery(pointsObjName + ' .ui-effects-wrapper').slideUp('slow', function()
										{
										}).remove();
										
										
										
										/// PLEASE REMOVE THIS, THIS IS ONLY TO BE USED FOR TESTING
										//NumPointsEarned++;
										
										//EarnHeart();
										//alert(NumPointsEarned);
								});
								
							});	
						});
					});
				
			});
		});
	}

}

// updates your ranking, overall and or celeb!
function updateMyRanks(base_url, celeb_id, overAllRank, celebRank)
{
	//alert(overAllRank + ' thats right');
	if (overAllRank)
	{
		
		if (jQuery('.my_overall_ranking_number_real').size())
		{
			var my_overall_ranking = parseInt(jQuery.trim(jQuery('.my_overall_ranking_number_real').text()));
			if (overAllRank != my_overall_ranking)
			{
				jQuery('.my_overall_ranking_number_real').text(celebRank);
				jQuery('.my_overall_ranking_number').fadeOut('slow', function()
				{
					jQuery(this).text(overAllRank);
					jQuery(this).fadeIn('slow');
				});
				
			}
		}

	}
	if (celebRank)
	{
		if (jQuery('.my_celeb_ranking_number_real').size())
		{
			var my_celeb_ranking = parseInt(jQuery.trim(jQuery('.my_celeb_ranking_number_real').text()));
			if (celebRank != my_celeb_ranking)
			{
				jQuery('.my_celeb_ranking_number_real').text(celebRank);
				jQuery('.my_celeb_ranking_number').fadeOut('slow', function()
				{
					jQuery(this).text(celebRank);
					jQuery(this).fadeIn('slow');
				});
			}
		}
	}
}

function NAnimateBigBall(div, base_url)
{
	/*jQuery(div).everyTime(500, function()
	{*/
		jQuery(div).animate({rotate: '+=50deg'}, 490, function()
		{
			NAnimateBigBall(div,base_url);
		});
	//});
}

function ShowProgressAction(coverObject, base_url, dontShowLoad, options)
{
	var newDate = new Date;
	var uniqID = newDate.getTime();
	var posObj = coverObject.offset();
	
	
	if (options && options.newCover)
	{
		jQuery(coverObject).append('<table class="black_fade_fill_' + uniqID + ' position_absolute hidden" style="background:#ffffff;opacity:0.7;width:500px;height:500px" cellpadding="0" cellspacing="0"><tr><td valign="middle"><center><img src="' + base_url + 'images/nlayout/icons/icon_fantourage_ball.png" class="icon_fantourage_ball" /></center></td></tr></table>');
		posObj = coverObject.position();
		NAnimateBigBall('.black_fade_fill_' + uniqID + ' .icon_fantourage_ball', base_url);
	}
	else 
		jQuery('body').append('<img class="black_fade_fill_' + uniqID + ' hidden position_absolute" src="' + base_url + 'images/nlayout/layout/black_fade_fill_50.png" width="200" height="200" /><img class="black_fade_fill_loading_' + uniqID + ' hidden position_absolute" src="' + base_url + 'images/nlayout/ajaxLoaderFacebook.gif" width="32" height="22" /> ');
	
	jQuery('.black_fade_fill_' + uniqID).width(coverObject.outerWidth());       
	jQuery('.black_fade_fill_' + uniqID).height(coverObject.outerHeight());
	
	var zIndex = 500;
	if (options && options.zIndex)
		zIndex = options.zIndex;
	
	var cssObj = {'left': posObj.left, 'top': posObj.top, 'z-index': zIndex};
	
//	alert(coverObject.offset().left + ' and ' + coverObject.offset().top);
	if (options && options.position_fixed)
		cssObj.position = 'fixed';
	
	jQuery('.black_fade_fill_' + uniqID).css(cssObj);
	
	var halfWay = coverObject.offset().left + coverObject.width()/2;
	
	var cssObjBFL = {'left': halfWay, 'top': coverObject.offset().top + 20, 'z-index': zIndex};
	
	if (options && options.position_fixed)
		cssObjBFL.position = 'fixed';
	
	if (options && options.func && typeof options.func == 'function') options.func();
	
	jQuery('.black_fade_fill_loading_' + uniqID).css(cssObjBFL);
	
	jQuery('.black_fade_fill_' + uniqID).fadeIn('slow');
	if (dontShowLoad)
	{
	}
	else
		jQuery('.black_fade_fill_loading_' + uniqID).fadeIn('slow');	
	
	return uniqID;
}

function UnShowProgressAction(uniqID)
{
	jQuery('.black_fade_fill_' + uniqID).fadeOut('slow', function()
	{
		jQuery(this).remove();
	});
	jQuery('.black_fade_fill_loading_' + uniqID).fadeOut('slow', function()
	{
		jQuery(this).remove();
	});	

}

// deleting a post
function NPostDelete(base_url, divName, item_id, comment_id)
{
	if (window.confirm('Are you sure you want to delete this post?'))
	{
		jQuery(divName).slideUp('slow', function(){jQuery(this).remove();});
		
		var pobj = {};
		if (item_id) pobj.ItemID = item_id;
		if (comment_id) pobj.CommentID = comment_id;
		jQuery.post(base_url + 'nceleb/ajx_delete_item', pobj, function(data){},'json');
	}
}

// checking a pic
function NPostContentPicCheck(base_url, celeb_fan_id, uniqID, itemText, options, counter)
{
	var photo_file_form = jQuery('.list_items_post_area_container .photo_upload_target_form');
	var photo_file_request_code = jQuery('.list_items_post_area_container .photo_file_request_code');
/*		options.itemCat = 'pic_check_post';
		UnShowProgressAction(uniqID);
		return NPostContent(base_url, celeb_fan_id, options);*/

	//alert(counter);
	//alert(celeb_fan_id + ' and ' + photo_file_request_code.val());
	if (counter > 5)
	{
		options.itemCat = 'pic_check_post';
		UnShowProgressAction(uniqID);
		return NPostContent(base_url, celeb_fan_id, options);
	}

	photo_file_form.oneTime(1000, function()
	{	
		jQuery.post(base_url + 'nceleb/npost_pic_instant', {celeb_fan_id:celeb_fan_id, item_request_code:photo_file_request_code.val(), item_text: itemText}, function(data) {
			//if (data && data.failure && data.failure == "1") 
			if (data && data.html)
			{
				options.data_override = data;
				UnShowProgressAction(uniqID);
				return NPostContentPicCheck(base_url, celeb_fan_id, uniqID, itemText, options, 6);
			}
			return NPostContentPicCheck(base_url, celeb_fan_id, uniqID, itemText, options, ++counter);
		}, 'json');
	});
}

// posting content
function NPostContent(base_url, celeb_fan_id, options)
{
	var itemText = jQuery('.list_items_post_area_container .list_items_post_area_input').val();
	// picked category
	var itemCat = jQuery.trim(jQuery('.list_items_container_holder .list_items_container_picked .text').text());
	var naction_link = base_url + 'nceleb/';
	var naction_link_original = naction_link;
	var item_mode = '';
	
	var CelebText = '...';
	
	if (options)
	{
		if (options.celeb_name)
			CelebText = ' about ' + options.celeb_name + '...';
		
		if (options.itemCat) itemCat = options.itemCat;
		
		if (options.join_celeb)
		{
			/*jQuery.post(base_url + 'nceleb/become_fan_of/' + options.join_celeb, {}, function(data)
			{
				if (data == "1")
					window.location.reload(true);
			});*/
			itemCat = 'text';
		}
	}
	
	var DefaultText = 'Say something interesting' + CelebText;

	params = {
		item_text: itemText, celeb_fan_id: celeb_fan_id, item_mode: item_mode
	};
	
	if (!itemText || jQuery.trim(itemText) == '' || itemText == '' || itemText == DefaultText)
	{
		alert('Please enter a valid post!');
		return false;
	}

	switch(itemCat)
	{
		case 'video':
			//alert('hi');
			params.video_url = jQuery('.list_items_post_area_container .video_url').val();
			if (params.video_url && (params.video_url == '' || params.video_url.indexOf('youtube.com') == -1))
			{
				alert('Please enter a valid youtube video');
				return false;
			}
			naction_link += 'npost';
			params.item_mode = 'video';
			break;
		case 'news':

			params.news_url = jQuery('.list_items_post_area_container .news_url').val();
			if (params.news_url && (params.news_url == '' || !params.news_url/*|| params.video_url.indexOf('http://') == -1*/))
			{
				alert('Please enter a valid link');
				return false;
			}
			naction_link += 'npost';
			params.item_mode = 'news';
			break;
		case 'survey':
			var survey_answers = new Array();
			for (i = 0; i <= jQuery('.list_items_post_area_container .survey_info .survey_answer_num_input').size(); i++)
			{
				var CurrOptionVal = jQuery('.list_items_post_area_container .survey_info .survey_answer' + (i+1) + '_input').val();
				if (CurrOptionVal != '' && CurrOptionVal != SurveyOptionDefaultText)
					survey_answers[i] = CurrOptionVal;
			}
			params.survey_answers = survey_answers;
			params.item_mode = 'survey';
			naction_link += 'npost';
			break;
		case 'pic_check_post':

			var photo_file_request_code = jQuery('.list_items_post_area_container .photo_file_request_code');
			params.item_request_code = photo_file_request_code.val();
			params.item_mode = 'pic';
			naction_link += 'npost_pic_instant';
			//naction_link += 'npost_pic_wait';

			
			//alert('heh');
			break;			
		case 'pic':
			// first upload the photo
			var photo_file_form = jQuery('.list_items_post_area_container .photo_upload_target_form');
			var photo_file_upload_target = jQuery('.list_items_post_area_container .photo_file_upload_target');
			var photo_file_name = jQuery('.list_items_post_area_container .photo_file_name');
			var photo_file_request_code = jQuery('.list_items_post_area_container .photo_file_request_code');
			if (photo_file_form.size() == 0 || photo_file_upload_target.size() == 0 || photo_file_name.size() == 0 || photo_file_request_code.size() == 0)
			{
				alert('There was an error uploading the photo');
				return false;
			}
			photo_file_form.attr('target', 'photo_file_upload_target');
			photo_file_name.val(params.item_text);
			
			var newDate = new Date;
			var uniqID = newDate.getTime();

			photo_file_request_code.val(photo_file_request_code.val() + ' ' + uniqID);
			photo_file_form.unbind('submit');
			var uniqID = ShowProgressAction(jQuery('.list_items_post_area_container'), base_url, false, {});
			photo_file_form.submit(function() {
				photo_file_form.oneTime(1000, function()
				{
					NPostContentPicCheck(base_url, celeb_fan_id, uniqID, itemText, options, 0);
				});
			});
			photo_file_form.submit();
			

			return false;
			//return NPostContentPicCheck(base_url, celeb_fan_id, uniqID, options, 0);
			
			/*jQuery(photo_file_form).oneTime(1500, function()
			{*/
				//options.itemCat = 'pic_check_post';
				options.itemCat = 'pic';
				options.eoptions = {generalCounter:0};
				options.outsideProgressHandler = true;
				//options.func_override = true;
				
				//if (!options.generalCounter) options.generalCounter = 0;
				options.funcdo = function(data, eoptions)
				{
					// upon completion, check again
					//alert('sdf');
					var photo_file_form = jQuery('.list_items_post_area_container .photo_upload_target_form');
					if (data && data.failure && data.failure == "1")
					{
						if (eoptions && eoptions.generalCounter && (eoptions.generalCounter > 5))
						{
							if ( eoptions.ProgressUniqID)
							{
								UnShowProgressAction(eoptions.ProgressUniqID);
								return false;
							}
						}
//						photo_file_form.oneTime(1000, function()
//						{
//						});
						if (!eoptions || !eoptions.generalCounter) eoptions = {generalCounter: 0};
						else eoptions.generalCounter++;
						options.eoptions = eoptions;
						return NPostContent(base_url, celeb_fan_id, options);

					}
					else if (eoptions && eoptions.ProgressUniqID)
					{
						options.itemCat = 'pic_check_post';
						return NPostContent(base_url, celeb_fan_id, options);
						UnShowProgressAction(eoptions.ProgressUniqID);
					}
				}
				//return NPostContent(base_url, celeb_fan_id, options);
			//});
			naction_link_original = naction_link;
			/*var photo_file_form = jQuery('.list_items_post_area_container .photo_upload_target_form');
			var photo_file_upload_target = jQuery('.list_items_post_area_container .photo_file_upload_target');
			var photo_file_name = jQuery('.list_items_post_area_container .photo_file_name');
			var photo_file_request_code = jQuery('.list_items_post_area_container .photo_file_request_code');
			if (photo_file_form.size() == 0 || photo_file_upload_target.size() == 0 || photo_file_name.size() == 0 || photo_file_request_code.size() == 0)
			{
				alert('There was an error uploading the photo');
				return false;
			}
			photo_file_form.attr('target', 'photo_file_upload_target');
			photo_file_name.val(params.item_text);
			
			var newDate = new Date;
			var uniqID = newDate.getTime();

			photo_file_request_code.val(photo_file_request_code.val() + ' ' + uniqID);
			photo_file_form.submit();
			*/
			
			// wait for submission
			//for(i = 0; i < 40;i++);

			break;
		case 'phone':
			params.audio_id = 0;
			if (options && options.audio_id)
				params.audio_id = options.audio_id;
		case 'text':
			naction_link += 'npost';
			params.item_mode = itemCat;
			if (options && options.join_celeb)
			{
				params.join_celeb = options.join_celeb;
			}
			break;
		case 'all_items':
			naction_link += 'nupdate_post';
			
			break;
	}
	
	
//	alert(params.video_url);
	
	// as long as it's a valid request
	if (naction_link_original != naction_link)
	{
		if (options && options.UpdateBefore && typeof options.UpdateBefore == 'function')
			options.UpdateBefore();
			
		var oOptions = {
			reset_state: DefaultText,
			reset_input: '.list_items_post_area_container .list_items_post_area_input',
			func: function()
			{
				//alert('hi');
				jQuery('.list_items_post_area_container .list_items_post_area_input').addClass('input_has_default_text');
				jQuery('.list_items_post_area_second_input_area input').not('.list_items_post_area_second_input_area .photo_file_original_request_code, .list_items_post_area_second_input_area .photo_celeb_fan_id').val('');
				// set the photo request code to the original time
				jQuery('.list_items_post_area_second_input_area .photo_file_request_code').val(jQuery('.list_items_post_area_second_input_area .photo_file_original_request_code').val());
				
				if (options && options.UpdateAfter && typeof options.UpdateAfter == 'function')
					options.UpdateAfter();
			},
			funcd: function(data)
			{
				if (data && data.do_stream_auto_share_on_id)
				{
					jQuery('.post_actions_icons_twitter_share_container_' + data.do_stream_auto_share_on_id + ', .post_actions_icons_fb_share_container_' + data.do_stream_auto_share_on_id).click();
				}
			}
		};
		
				
		//if (!options.generalCounter) options.generalCounter = 0;
		if (options && options.eoptions) oOptions.eoptions = options.eoptions;
		if (options && options.outsideProgressHandler) oOptions.outsideProgressHandler = options.outsideProgressHandler;
		if (options && options.funcdo) oOptions.funcdo = options.funcdo;
		if (options && options.func_override) oOptions.func = function() {};
		if (options && options.data_override) oOptions.data_override = options.data_override;
		
		UpdateItemWithPost('.list_items_post_area_container', '.list_items_new_content_area', base_url, naction_link, params, 'prepend', oOptions);


	}
}
// update stream posts area
function NUpdateStreamFilterRefresh()
{
	// just refreshing stream filters
	jQuery('.list_items_options .options .picked').removeClass('picked');
	jQuery('.item_filter_option_sub_all-items').addClass('picked');
	jQuery('.item_filter_option_newest').click();
}

function NUpdateStreamFilter(base_url, celeb_fan_id, filter_mode, filter_mode_sub, thisObj, thisObjSub)
{

	filter_mode_sub = jQuery.trim(filter_mode_sub);
	filter_mode = jQuery.trim(filter_mode);
	//alert(filter_mode_sub + ' and ' + filter_mode);
	if (!celeb_fan_id)
		alert('Must become a fan to be able to control filters!');
	if (celeb_fan_id && !thisObj.hasClass('picked'))
	{
		var naction_link = base_url + 'nceleb/nupdate_post';
		
		thisObj.switchClass('options', 'options picked');
		//alert(thisObj.attr('class'));
		
		UpdateItemWithPost('.list_items_main', '.list_items_main', base_url, naction_link, {item_mode: 'all_items', FilterMode:filter_mode, FilterModeSub: filter_mode_sub, CelebFanID: celeb_fan_id}, false, {
			func: function()
			{
				jQuery('.list_items_options .options .picked').not(thisObj).not(thisObjSub).switchClass('options picked','options');
			}});	
	}
}

function NUpdateStreamSubFilter(base_url, celeb_fan_id, filter_mode, filter_mode_sub, thisObj, thisObjSub)
{
	return  NUpdateStreamFilter(base_url, celeb_fan_id, filter_mode, filter_mode_sub, thisObj, thisObjSub);
}

/*function NUpdateLeaderboard(base_url, celeb_id, filter_mode, thisObj)
{
}*/
// updating the leaderboard choice
function NUpdateLeaderboardChoice(obj,celeb_id, base_url, choice)
{
	if (!obj.hasClass('picked'))
	{
		UpdateItemWithPost('.celeb_leaderboard_container', '.celeb_leaderboard_container', base_url, base_url + 'nceleb/nupdate_leaderboard', 
			{celeb_id: celeb_id, leaderboard_type: choice},
		false);
	}

}


// custom expand post images using only jquery
function NUpdateImage(ExpandOptionID, ImageID, image_src, image_width, image_height, base_url)
{
	jQuery(ExpandOptionID).fadeOut('slow');
	jQuery(ImageID).attr({
		//'src': base_url + 'images/stream_photos/' + image_src
		/*'width': image_width,
		'height': image_height*/
	});
	jQuery(ImageID).animate({
		'width': image_width,
		'height': image_height
	}, 'slow', function()
	{
		jQuery(this).attr({'src': base_url + 'images/stream_photos/' + image_src});
/*		jQuery(this).animate({
			'height': image_height
		},'slow');*/
	});
//	alert ( base_url + 'images/stream_photos/' + image_src);
}

function NUpdateAudio(base_url, audio_code_id, AudioID, Width, Title)
{
	if (jQuery(AudioID).size())
	{
		jQuery(AudioID).fadeOut('slow', function()
		{
			jQuery(AudioID).html('<object height="20" width="' + Width + '">' +
									'<embed src="' + base_url + 'images/mp3player.swf?&amp;file=http://www.fantourage.com/audio/audio_post_' + audio_code_id + '.mp3&amp;autostart=t&amp;song_title=' + Title + '" height="20" width="' + Width + '"></embed>' +
								'</object>');
			jQuery(AudioID).fadeIn('slow');
								
//								alert('<embed src="' + base_url + 'images/mp3player.swf?&amp;file=' + base_url + 'audio/audio_post_' + audio_code_id + '.mp3&amp;autostart=t&amp;song_title=' + Title + '" height="20" width="' + Width + '"></embed>');
		});
/*    FrmHTML += "<object height=\"20\" width=\"" + Width + "\">";
    FrmHTML += "<embed src=\"" + document.getElementById('base_url').value + "images/mp3player.swf?&amp;file=" + document.getElementById('base_url').value + MP3File + "&amp;autostart=t&amp;song_title=Audio\" height=\"20\" width=\"" + Width + "\"></embed>";
    FrmHTML += "</object>";		*/
	}
}

function nyroMessageShowjQuery(message, uicenter)
{

	if (message == null || message == "")
		message = "#nyroMessage";
		
//	alert('hi');
		
		
	if (jQuery(message + " .nyro_content").text() != '')
	{

		// make sure we can to the modal box!
		if (jQuery.browser.msie && (jQuery.browser.version == "6.0" || jQuery.browser.version == "7.0")) { 
		
		   var zIndexNum = 20000; // fix for IE7 (6?) Z-index bug. we set the zindex for all li and divs 
			jQuery('li').each(function(){
				jQuery(this).css('zIndex',zIndexNum);
				zIndexNum -= 5;
			});
		
			var zIndexNum = 10000;
			$('div').each(function(){
				jQuery(this).css('zIndex',zIndexNum);
				zIndexNum -= 5;
			});
		}
		
		jQuery("body")
			.append('<div class="dark_overlay"></div><div class="dark_container"></div>');
		jQuery(".dark_overlay").animate({
			"opacity":"0.75",
			"height": jQuery("body").height(),
			"width": jQuery("body").width()
		}, 400, "linear", function()
		{
			//$("#CelebPointsBubble").css({"z-index": "51", "width": $("#CelebPointsBubble").width(), "position": "absolute"});
			if (uicenter) // center by jquery ui?
			{
				/*jQuery(message).position({
					of: jQuery(window)
				});*/
				jQuery(message).center();
			}
			
			if (jQuery(message))
			{
				jQuery(message).fadeIn(1000, function()
				{
					if(jQuery.browser.msie)
						jQuery(this).get(0).style.removeAttribute('filter');
				});
			}
		});
	}
}


function UpdateMissionPanel(base_url, originObj, newMissionEntry)
{
	// do not put references to new object in timers, get them out first because the object will be removed regardless
	jQuery.post(base_url + 'celeb/ajx_mission_load', {}, function(data)
	{
		if (data == "0")
			return false;
		// check to see if we need to change anything
		//alert(data);
		var isAnimated = false;
		jQuery('body').append('<div class="MissionInfoTempDiv">' + data + '</div>');
		
		
		// we wipe out everything if it's a new mission entry
		if (newMissionEntry)
		{
			//StopMissionTimer();
			
			var mission_new_description = jQuery('.MissionInfoTempDiv .bottom_floating_nav_rounded').html();
			var mission_new_modal_info = jQuery('#nyroMessageMissionTemp .mission_nyro_content').html();
			var mission_current_timer = jQuery('.MissionInfoTempDiv .fan_mission_timer').html();
			
			// attach it to global
			//jQuery('.fan_mission_timer_global').remove();
			//jQuery('body').append('<div class="fan_mission_timer_global hidden">' + mission_current_timer + '</div>');
			jQuery('.fan_mission_timer_global').html(mission_current_timer);
	


			//alert(mission_new_description);
			
			//bottom_floating_nav_rounded
			
			jQuery('#nyroMessageMission .mission_nyro_content').fadeOut(300, function()
			{
				//alert('test');
				jQuery(this).html(mission_new_modal_info);
				//jQuery('#nyroMessageMission .mission_nyro_content .fan_mission_timer').html(mission_current_timer);
				
				jQuery(this).fadeIn(300, function()
				{
					
				});
			});			
			
			//var mission_current_description = jQuery('.bottom_floating_celeb_nav_bar_misc .mission_current_step_text').html();
			
			var MCurrentStepObj = jQuery('.bottom_floating_celeb_nav_bar_misc .bottom_floating_nav_rounded');
			isAnimated = true;
			MCurrentStepObj.hide('slide', {direction: 'left'}, 500, function()
			{
				MCurrentStepObj.html(mission_new_description);
				
				MCurrentStepObj.show('slide', {direction: 'right'}, 500);
				jQuery('#bottom_floating_celeb_nav_bar').animate({'bottom':'-40px'}, 500);

		//var mission_old_modal_info = jQuery('#nyroMessageMission .mission_nyro_content').html();

				//alert(mission_current_timer);
				
				
				//StartMissionTimer();
				jQuery('.MissionInfoTempDiv').remove();
			});
			//jQuery('.MissionInfoTempDiv').remove();
			
		}
		else
		{
		

			
			if (jQuery('.MissionInfoTempDiv .show_missions_finished').size())
			{
				// show current finished missions?
				//alert('here');


				var mission_new_description = jQuery('.MissionInfoTempDiv .bottom_floating_nav_rounded').html();
				var mission_new_modal_info = jQuery('#nyroMessageMissionTemp .mission_nyro_content').html();
				var MCurrentStepObj = jQuery('.bottom_floating_celeb_nav_bar_misc .bottom_floating_nav_rounded');
				
				
				jQuery('.fan_mission_timer_global').html('');
				StopMissionTimer();
				
				
				jQuery('#nyroMessageMission .mission_nyro_content').html(mission_new_modal_info);
				jQuery('#nyroMessageMission .fan_mission_timer').remove();

				isAnimated = true;
				MCurrentStepObj.hide('slide', {direction: 'left'}, 500, function()
				{
					MCurrentStepObj.html(mission_new_description);
					
					MCurrentStepObj.show('slide', {direction: 'right'}, 500);
					//jQuery('#bottom_floating_celeb_nav_bar').animate({'bottom':'-40px'}, 500);
	
			//var mission_old_modal_info = jQuery('#nyroMessageMission .mission_nyro_content').html();
	
					//alert(mission_current_timer);
					
					
					//StartMissionTimer();
					jQuery('.MissionInfoTempDiv').remove();
				});
				
				// show the mission
				window.setTimeout("PlayNSound('" + base_url + "media/applause.wav');", 200);
				nyroMessageShowjQuery('#nyroMessageMission', true);
				
			}
			else
			{
	
			
		
				var mission_new_time_due = jQuery('.MissionInfoTempDiv .fan_mission_timer_due').html();//fan_mission_timer_due;
				var mission_current_time_due = jQuery('.bottom_floating_celeb_nav_bar_misc .fan_mission_timer_due').html();//fan_mission_timer_due;
				if (mission_new_time_due != mission_current_time_due)
				{
					
					
					isAnimated = true;
					//StopMissionTimer();
					MCurrentTimerCObj = jQuery('.bottom_floating_celeb_nav_bar_misc .fan_mission_time_container');
					
					MCurrentTimerNObj = jQuery('.MissionInfoTempDiv .fan_mission_timer_check');
					
					var new_timer_html = MCurrentTimerNObj.html();
					
					MCurrentTimerCObj.fadeOut(300, function()
					{
						jQuery('.fan_mission_timer_global, .bottom_floating_celeb_nav_bar_misc .fan_mission_timer').html(new_timer_html);
						//MCurrentTimerCObj.html(new_timer_html);
						MCurrentTimerCObj.fadeIn(300);
						//StartMissionTimer();
		
					});
					
				}
		
		
		
				var mission_new_modal_info = jQuery('#nyroMessageMissionTemp .mission_nyro_content').html();
				var mission_old_modal_info = jQuery('#nyroMessageMission .mission_nyro_content').html();
				
				if (mission_new_modal_info != mission_old_modal_info)
				{
					//StopMissionTimer();
					jQuery('#nyroMessageMission .mission_nyro_content').html(mission_new_modal_info);
					
					jQuery('#nyroMessageMission .mission_nyro_content .fan_mission_timer').html(jQuery('.bottom_floating_celeb_nav_bar_misc .fan_mission_timer').html());
					//StartMissionTimer();
				}
		
		
				var mission_new_description = jQuery('.MissionInfoTempDiv .mission_current_step_text').html();
				var mission_current_description = jQuery('.bottom_floating_celeb_nav_bar_misc .mission_current_step_text').html();
				
				if (mission_new_description != mission_current_description)
				{
					//alert(mission_new_description);
					var MCurrentStepObj = jQuery('.bottom_floating_celeb_nav_bar_misc .mission_current_step_text');
					isAnimated = true;
					MCurrentStepObj.hide('slide', {direction: 'left'}, 500, function()
					{
						MCurrentStepObj.html(mission_new_description);
						MCurrentStepObj.show('slide', {direction: 'right'}, 500);
						jQuery('.MissionInfoTempDiv').remove();
					});
				}
				
			}
			
			//alert(mission_new_description);
			//if (!isAnimated)
				jQuery('.MissionInfoTempDiv').remove();
		}
		
		
		
	});
//	alert(base_url);
}

function TrackClickEvent(obj, event, celeb_id, base_url)
{
	var TagName = 0;
	var href = 0;
	var TheText = 0;
	var DocLocation = escape(document.location.pathname);
	
	if (obj[0].tagName)
		TagName = obj[0].tagName;
	if (obj.attr('href'))
		href = obj.attr('href');
	if (obj.text())
		TheText = obj.text();
//	jQuery.post(base_url + 'nceleb/ajx_track_click', {
	jQuery.ajax('http://t.fantourage.com/nceleb/ajx_track_click2', {
		cache:false,
		data:{
		celeb_id: celeb_id,
		x: event.pageX,
		y: event.pageY,
		l:DocLocation,
		link_to: href,
		extra_information: TheText,
		tag_type: TagName
		}
	});	
	//alert (TagName + ' and ' + href + ' ' + TheText + ' ' + DocLocation + ' and ' + event.pageX + ' and ' + event.pageY);
	
	
	//alert(obj[0].tagName);
}
//alert('sd');


/**
 * Concatenates the values of a variable into an easily readable string
 * by Matt Hackett [scriptnode.com]
 * @param {Object} x The variable to debug
 * @param {Number} max The maximum number of recursions allowed (keep low, around 5 for HTML elements to prevent errors) [default: 10]
 * @param {String} sep The separator to use between [default: a single space ' ']
 * @param {Number} l The current level deep (amount of recursion). Do not use this parameter: it's for the function's own use
 */
function print_r(x, max, sep, l) {

	l = l || 0;
	max = max || 10;
	sep = sep || ' ';

	if (l > max) {
		return "[WARNING: Too much recursion]\n";
	}

	var
		i,
		r = '',
		t = typeof x,
		tab = '';

	if (x === null) {
		r += "(null)\n";
	} else if (t == 'object') {

		l++;

		for (i = 0; i < l; i++) {
			tab += sep;
		}

		if (x && x.length) {
			t = 'array';
		}

		r += '(' + t + ") :\n";

		for (i in x) {
			try {
				r += tab + '[' + i + '] : ' + print_r(x[i], max, sep, (l + 1));
			} catch(e) {
				return "[ERROR: " + e + "]\n";
			}
		}

	} else {

		if (t == 'string') {
			if (x == '') {
				x = '(empty)';
			}
		}

		r += '(' + t + ') ' + x + "\n";

	}

	return r;

};
var_dump = print_r;


function NSelectAllTextCheck(jobj)
{
	if (!jobj.hasClass('n_select_all_text_check'))
	{
		jQuery(jobj).click(function()
		{
			jQuery(this).focus();
			jQuery(this).select();
		});
		//alert('check');
		jobj.addClass('n_select_all_text_check');
	}
}

function NHoneInEffect (jObj, honeOut)
{
	if (!honeOut) 
		jObj.switchClass('post_action_iconsb_container','post_action_iconsb_container1');
	else jObj.switchClass('post_action_iconsb_container1','post_action_iconsb_container');
}


var NPosterImageTooltipCache = 0;
function NPosterImageTooltip(jobj, base_url, reApply)
{
	var HoverIntentOpts = {interval: 300,timeout:300};
	if (!reApply) var reApply = false;
	if (!jobj.hasClass('bt_applied') || reApply)
	{
		if (!reApply) jobj.addClass('bt_applied');
		//alert('df');
		var pig_user_id = jQuery(jobj).attr('user_id');
		jQuery(jobj).bt({cssStyles:{color: '#ffffff', /*fontWeight: 'bold',*/ width: 'auto'},
			ajaxPath: base_url + 'nfan/ajx_fan_tip/' + pig_user_id,// + "?' + jQuery(this).attr('tooltip_counter')"], //["'nfan/ajx_fan_tip/' + jQuery(this).attr('user_id')"], 
			ajaxCache: true,
			ajaxData: false,
			hoverIntentOpts: HoverIntentOpts,
		  padding: 10,
		  fill: 'rgba(0, 0, 0, .8)',
		  strokeStyle: '#CC0',
	//	  strokeStyle: 'rgba(0, 0, 0, .8)',
		  trigger: [/*'mouseover','click'*/'hoverIntent'],
		  positions: 'right',
			textzIndex:       999,                  // z-index for the text
			boxzIndex:        998,                  // z-index for the talk box (should always be less than textzIndex)
			wrapperzIndex:    997,
			
			preShow: function(box)
			{
				//alert(jQuery(this).ajaxPath);
				//alert(this.data('bt-content-orig'));
				//alert(jQuery(this).attr('class') + ' ' + jQuery(this).data('bt-box'));
				//if (jQuery(this).data('bt-box')) alert(jQuery(this).data('bt-box').html());
				//jQuery(this).data('bt-box').html('sdfdsf');
				//alert(jQuery(box).html());
/*				alert(jQuery(this).data('bt-box').html());
				var url = base_url + 'nfan/ajx_fan_tip/' + pig_user_id + '?0';
				$(document.body).data('btCache-' + url.replace(/\./g, ''), 'hello');*/
				/*alert(jQuery(this).data('new-bt-box-html') + ' ' + jQuery(this).attr('class'));
				if (jQuery(this).data('new-bt-box-html'))
				{
					jQuery(this).data('bt-box', jQuery(this).data('new-bt-box-html'));
					jQuery(this).removeData('new-bt-box-html');
				}*/
				//jQuery(box).html('sdfdsf');
				//alert(jQuery(box).html());
				if (jQuery('.poster_image_get_tooltip_' + pig_user_id + '_html').size()) jQuery(box).children('.bt-content').html(jQuery('.poster_image_get_tooltip_' + pig_user_id + '_html').html());
				
			},
	
			showTip: function(box){
					//alert(jQuery(this).attr('user_id'));
				//alert(jQuery(box).attr('id'));
				if (jQuery(box).is(':hidden'))
				{
				var $content = jQuery('.bt-content', box).hide(); /* hide the content until after the animation */
				var $canvas = jQuery('canvas', box).hide(); /* hide the canvas for a moment */
				var origWidth = $canvas[0].width; /* jQuery's .width() doesn't work on canvas element */
				var origHeight = $canvas[0].height;
				$(box).show(); /* show the wrapper, however elements inside (canvas, content) are now hidden */
				$canvas
				  .css({width: origWidth * .5, height: origHeight * .5, left: origWidth * .25, top: origHeight * .25, opacity: .1})
				  .show()
				  .animate({width: origWidth, height: origHeight, left: 0, top: 0, opacity: 1}, 400, 'easeOutBounce',
					function(){$content.show()} /* show the content when animation is done */
					);
				}
			  },
	
		   closeWhenOthersOpen: true,
		   shadow: true,
		   postShow: function(box)
		   {
			   jQuery('.bt-content').bind('mouseleave',function() {
				   /*var $content = jQuery('.bt-content', box);
				   var $canvas = jQuery('canvas', box);
				   $canvas.animate({width: origWidth, height: origHeight, left: 0, top: 0, opacity: 1}, 400, 'easeOutBounce',
					function(){$content.hide()} /* show the content when animation is done 
					);*/
	//         		jQuery(box).hide();
		var $content = $('.bt-content', box).hide();
		var $canvas = $('canvas', box);
		var origWidth = $canvas[0].width;
		var origHeight = $canvas[0].height;
		$canvas
		  .animate({width: origWidth * .5, height: origHeight * .5, left: origWidth * .25, top: origHeight * .25, opacity: 0}, 400, 'swing'); /* callback */
	
					
				});
		   },
		   hideTip: function(box, callback)
		   {
			  // jQuery('.f_header_content .UserTotalPoints_icon_glow').fadeOut('slow');
			  /*box.hover(function()
			  {
				  //alert('hi');
			  },
			  function()
			  {
				  callback();
			  });*/
			  
			  callback();
			   //
		   }
	/*	   hideTip: function(box, callback){
				$(box).fadeOut('slow', function(){
	
					callback();
				});
		   },*/
	/*	   showTip: function(box){
			   //alert('test');
			   $(box).show('slide', {direction: 'down'}, 'slow');
		   }*/
		});
		jQuery(jobj).oneTime(HoverIntentOpts.interval*2, function()
		{
			//jQuery(this).trigger('mouseover');

			jQuery(this).btOn();
			//alert('e');
		}).hover(function(){}, function()
			{
				jQuery(this).stopTime();
			});
		//jQuery(jobj).hoverIntent();//trigger(['hoverIntent']);
		//jQuery(jobj).btOn();//trigger('hoverIntent');
		//jQuery(jobj).bt.ajaxCache = false;
	}

}

function NUpdateCrewMemberAccept(base_url, buttonobj, fan_id )
{
	//alert(buttonobj.attr('class'));
	//buttonobj.hide('slow');
	//buttonobj.remove();
	buttonobj.text('Request Accepted!');
	buttonobj.switchClass('fpurp', 'grey');
	buttonobj.attr('onclick', '');
	jQuery.post(base_url + 'nfan/ajx_crew_accept/' + fan_id);
}

// crew member requests
function NUpdateCrewMemberRequest(base_url, user_id, other_user_id, other_user_name, div, options)
{
	if (user_id == other_user_id)
		return false;

	
	var url = base_url + 'nfan/ajx_fan_tip/' + other_user_id;
//					$(document.body).data('btCache-' + url.replace(/\./g, ''), 'dsfdsfdsf');
				//alert($(document.body).data('btCache-' + url.replace(/\./g, '')) + ' and ' + url);

	var x = window.prompt('What would you like to say to ' + other_user_name + '?', 'Please join my crew ' + other_user_name + '!');
	if (x !== null)
	{
		UpdateItemWithPost(div + '_button', div, base_url, base_url + 'nfan/ajx_add_to_crew/' + other_user_id, {
			Message: x
		}, null, 
		{
			spaobj: {zIndex:1000},
			funcd: function(d)
			{

				if (d && d.html)
				{
					jQuery(document.body).data('btCache-' + url.replace(/\./g, ''), d.html);
					if (jQuery('.poster_image_get_tooltip_' + other_user_id + '_html').size()) jQuery('.poster_image_get_tooltip_' + other_user_id + '_html').html(d.html);
					jQuery(document.body).append('<div class="poster_image_get_tooltip_' + other_user_id + '_html">' + d.html + '</div>');
				}
			}
		});
	}
}


var NInitIsFBLikeChecking = false;

function NPicSwitchIteration(div, i, TotalSize)
{
	if (div.eq(i).size())
	{
		// refresh the rest 
		div.eq(i).hide('explode',{},1000, function()
		{
			jQuery(this).attr('src', jQuery(this).attr('src')+'?'+Math.random());
			jQuery(this).show('drop', {},1000, function(){NPicSwitchIteration(div, ++i, TotalSize);});
		});
	}
}

function NProfilePicVideoSwitch(j, base_url)
{
	var x = window.prompt('Copy & Paste the YouTube URL here');
	if (x)
	{
		if (x.indexOf('youtube.com') == -1)
		{
			alert('Please enter a valid YouTube video with youtube.com in the URL');
			return false;
		}
		var uniqID = ShowProgressAction(jQuery('.celeb_main_pic_area'), base_url, false, {});
		jQuery.post(base_url + 'nceleb/nprofile_video_upload', {video_url:x}, function(data)
		{
			if (data)
			{
				if (data.html)
				{
					jQuery('.celeb_main_pic_area').find('.celeb_main_pic').hide('slow', function()
					{
						jQuery(this).replaceWith(data.html);
						
					});
				}
			}
			UnShowProgressAction(uniqID);
		}, 'json');
		
	}
}

// document ready stuff
//alert('dsf'); 
function NInitLoad(base_url, celeb_id, celeb_fan_id)
{
	
	// picture stuff
	function PhotoProfileCheck(uniqID, base_url, counter)
	{
		var photo_file_form = jQuery('.profile_photo_upload_target_form');		
		if (counter > 5)
		{
			UnShowProgressAction(uniqID);
			return false;
		}
		jQuery(photo_file_form).oneTime(1000, function()
		{

			var photo_file_request_code = jQuery('.profile_photo_upload_target_form').find('.photo_file_request_code:first');;

			jQuery.post(base_url + 'nceleb/npost_profile_pic_instant', {item_request_code:photo_file_request_code.val()}, function(data)
			{
				if (data && data.success && data.success == '1')
				{
					UnShowProgressAction(uniqID);
					var TheDiv = photo_file_form.closest('.celeb_main_pic_area');
					var PicImg = TheDiv.find('.celeb_main_pic:first');
					PicImg.hide('fold', {},2000, function()
					{
						var origSrc = PicImg.attr('src');
						PicImg.attr('src', jQuery(this).attr('src')+'?'+Math.random());
						PicImg.show('fold',{}, 2000);
						
						
						var totalImg = jQuery("img[src='" + origSrc + "']").size();
						NPicSwitchIteration(jQuery("img[src='" + origSrc + "']"), 0,totalImg)

					});

					return true;
				}
				else
					return PhotoProfileCheck(uniqID, base_url, ++counter);
			},'json');
			
		});
	}
	jQuery('.photo_file_profile_upload').change(function()
	{
		var newDate = new Date;
		var uniqID = newDate.getTime();
		var photo_file_form = jQuery('.profile_photo_upload_target_form');
		var photo_file_request_code = jQuery('.profile_photo_upload_target_form').find('.photo_file_request_code:first');;

		photo_file_request_code.val(photo_file_request_code.val() + ' ' + uniqID);

		//alert('aaa');
		//alert('dsf');
		// submit a new picture
		
		photo_file_form.attr('target', 'profile_photo_file_upload_target');
		photo_file_form.submit(function()
		{
			photo_file_form.unbind('submit');
			var uniqID = ShowProgressAction(jQuery('.celeb_main_pic_area'), base_url, false, {});
			PhotoProfileCheck(uniqID, base_url, 0);
/*			jQuery(photo_file_form).oneTime(1500, function()
			{
				//alert(photo_file_request_code.val());
				var TheDiv = photo_file_form.closest('.celeb_main_pic_area');
				//alert(photo_file_request_code.val());
				UpdateItemWithPost('.celeb_main_pic_area', '.celeb_main_pic_area', base_url, base_url + 'nceleb/npost_profile_pic_wait', {item_request_code:photo_file_request_code.val()}, null, {funcd: function(data)
				{
					//alert(var_dump(data));
					if (data && data.success)
					{
						var PicImg = TheDiv.find('.celeb_main_pic:first');
						PicImg.hide('fold', {},2000, function()
						{
							var origSrc = PicImg.attr('src');
							PicImg.attr('src', jQuery(this).attr('src')+'?'+Math.random());
							PicImg.show('fold',{}, 2000);
							
							
							var totalImg = jQuery("img[src='" + origSrc + "']").size();
							NPicSwitchIteration(jQuery("img[src='" + origSrc + "']"), 0,totalImg)
	
						});
						
					}
					else alert('There was an error changing the profile pic! Try again');
				}});
			}); */

		});
		
		photo_file_form.trigger('submit');
	});

		/*NNyroRShow('#Missions_Box', base_url, {after_load: function()
		{
			alert('hi');
		}});

		jQuery('#Missions_Box').oneTime(2000, function()
		{
			NNyroRShow('#Missions_Box', base_url, {after_load: function()
			{
				alert('two');
			}});		
		});*/
//	return false;
/*	var jj = [{'is_tested': 'sadsad'}, ["dsfsdf","asdfdsaf"],["#####","%%%%%%"]];
	//alert(jQuery(jj).size());
	for(var prop in jj) {
    if(jj.hasOwnProperty(prop))
        alert(jj[prop] + ' and ' + prop);
	}*/
	/* tool tip for posting pics */
/*	jQuery('.poster_image_get_tooltip').each(function()
	{

	});*/




	/* hone in effect */
	jQuery('.hone_in_effect').hover(function() {NHoneInEffect(jQuery(this))}, function() {NHoneInEffect(jQuery(this), true)});


	var topBarLoc = jQuery('#f_header').height();
	jQuery(window).scroll(function()
	{
		//alert(jQuery(window).scrollTop() + ' and ' + topBarLoc); 
		if (jQuery(window).scrollTop() > topBarLoc && !jQuery('#f_header_drop2').hasClass('f_header_drop2_moved'))
		{
			jQuery('#f_header_drop2').addClass('f_header_drop2_moved');
			jQuery('#f_header_drop2').animate({
				'z-index':9999,
				'top':'0px'
			}, 500);
		}
		else if (jQuery(window).scrollTop() <= topBarLoc && !jQuery('#f_header_drop2').hasClass('f_header_drop2_moved'))
		{
			jQuery('#f_header_drop2').css({'top': (topBarLoc-jQuery(window).scrollTop()+4) + 'px'}, 500);
		}
		else if (jQuery(window).scrollTop() <= topBarLoc && jQuery('#f_header_drop2').hasClass('f_header_drop2_moved'))
		{
			jQuery('#f_header_drop2').removeClass('f_header_drop2_moved');
			jQuery('#f_header_drop2').animate({'top': (topBarLoc + 4) + 'px'}, 500);
		}
		
	});
	
	if (jQuery('#f_footer_right').size())
	{
		//alert('test');
		jQuery('#f_footer_right').css({
			'left': jQuery('#f_footer_right').position().left,
			'bottom':0,
			'position':'fixed',
			'width': jQuery('#f_footer_right').outerWidth()
		});
	}
	
	//alert(jQuery('.ninput_on_focus_select').size()); 

	// find mission timers
	NInitMissionTimers(base_url);
	
	
	
	var LeaderBoardLastUpdated = 0;
	var LeaderBoardType = 0;
	if (jQuery('.leaderboard_content .leaderboard_last_updated').size()) LeaderBoardLastUpdated = jQuery('.leaderboard_content .leaderboard_last_updated').val();
	if (jQuery('.leaderboard_content .leaderboard_type').size()) LeaderBoardType = jQuery('.leaderboard_content .leaderboard_type').val();
	
	function NUpdateLeaderboard(leaderboard_html)
	{
		if (leaderboard_html)
		{
			var newDate = new Date;
			var uniqID = newDate.getTime();
			
			var leaderboardID = 'leaderboard_new_' + uniqID;
			
			jQuery('body').append('<div class="' + leaderboardID + ' hidden">' + leaderboard_html + '</div>');
			
			var newLeaderboard = jQuery('.' + leaderboardID);
			jQuery('.leaderboard_content').not('.' + leaderboardID + '.leaderboard_content').each(function(i,e)
			{
				var currJElement = jQuery(this);
				//alert(e);
				currJElement.find('.leader').each(function(ii, ee)
				{
					var lElement = jQuery('.' + leaderboardID).eq(i).find('.leader').eq(ii);
					//alert(lElement.html());
					if (lElement.html() != jQuery(this).html())
					{
						if (lElement.find('.leaderboard_cl_id:first').val() ==  jQuery(this).find('.leaderboard_cl_id:first').val())
						{

							var newPoints = lElement.find('.leaderboard_points:first').html();
							// just change the points
							var lPoints = jQuery(this).find('.leaderboard_points:first');
							if (newPoints != lPoints.html())
							{
								lPoints.hide('explode', 1000, function()
								{
									lPoints.html(newPoints);
	
									lPoints.fadeIn(1000);//('explode', 1000);
								});
							}
						}
						else
						{
							jQuery(this).hide('slide', {direction:'left'}, 500, function()
							{
								jQuery(this).html(lElement.html());
								jQuery(this).show('slide', {direction:'left'}, 500);
							});
						}
					}
				});
			});
			jQuery('.leaderboard_content .leaderboard_last_updated').not('.' + leaderboardID + '.leaderboard_content .leaderboard_last_updated').val(jQuery('.' + leaderboardID + ' .leaderboard_content .leaderboard_last_updated').val());
			LeaderBoardLastUpdated = jQuery('.leaderboard_content .leaderboard_last_updated').not('.' + leaderboardID + '.leaderboard_content .leaderboard_last_updated').val();

			//alert(jQuery('.leaderboard_content .leaderboard_last_updated').not('.' + leaderboardID + '.leaderboard_content .leaderboard_last_updated').val());
			newLeaderboard.oneTime(10000, function()
			{
				newLeaderboard.remove();
			});

		}
	}
	
	function NInitUpdatePoints(base_url, celeb_id)
	{
		//alert(jQuery('.leaderboard_content .leader').eq(2).html());
//		alert(jQuery('.leaderboard_content').find('.leader').size());
		var CelebIDString = '';
		if (celeb_id)
			CelebIDString = '/' + celeb_id;
		//alert('sd');
		if (jQuery('.leaderboard_content .leaderboard_type').size()) LeaderBoardType = jQuery('.leaderboard_content .leaderboard_type').val();
		
		var pobj = {leaderboard_last_updated: LeaderBoardLastUpdated, leaderboard_type: LeaderBoardType };
		
		if (jQuery('.items_all_maximum_id').size()) pobj.items_all_maximum_id = jQuery('.items_all_maximum_id').val();
		
		if (jQuery('.crew_online_global_panel').size()) pobj.crew_online_global_panel = 1;
		
		// search for f_items and get their unix date
		jQuery('.f_item_general').each(function()
		{
			if (!pobj.f_items) pobj.f_items = {};
			var FID = jQuery(this).attr('FID');
			var lUpdated = jQuery(this).attr('LastDateUpdated');
			pobj.f_items[FID] =lUpdated;
		});
		
		jQuery.post(base_url + 'nfan/ajx_status_update' + CelebIDString, pobj, function(data)
		{
			if (data && data.leaderboard_html)
			{
				
				NUpdateLeaderboard(data.leaderboard_html);
			}
			//else alert('no');
			
			if (data && data.user_points && data.user_points != '0')
			{
				var TotalPoints = parseInt(jQuery.trim(jQuery('.UserTotalPoints_raw_number').text()));
				var PointsAdded = 0;
				if (TotalPoints != data.user_points)
				{
					PointsAdded = parseInt(data.user_points) - parseInt(TotalPoints);
					NUpdatePointsEffect('.fantourage_body_bottom', '.UserTotalPoints', '.UserTotalPoints', PointsAdded, base_url);
				}
			}
						
			if ((data && data.user_coins) || (data && data.user_coins == '0'))
			{
				if (jQuery('.UserTotalCoinsContainer').is(':hidden') && data && data.user_coins != '0')
					jQuery('.UserTotalCoinsContainer').show('slow');
				var TotalCoins = parseInt(jQuery.trim(jQuery('.UserTotalCoins_raw_number').text()));
				var CoinsAdded = 0;
				if (TotalCoins != data.user_coins)
				{
					CoinsAdded = parseInt(data.user_coins) - parseInt(TotalCoins);
					NUpdatePointsEffect('.fantourage_body_bottom', '.UserTotalCoins', '.UserTotalCoins', CoinsAdded, base_url, {points_popup_text: '+' + CoinsAdded + ' coins', points_popup_icon_pic: 'f_icon_gold_coin f_icon_size'}); 
				}

			}
			//data.crew_number = 10;
			if (data && data.crew_number && data.crew_number != '0')
			{
				if (jQuery('.UserTotalCrewNumberWholeContainer').is(':hidden') && data && data.crew_number != '0')
					jQuery('.UserTotalCrewNumberWholeContainer').show('slow');
				var TotalCrewNumber = parseInt(jQuery.trim(jQuery('.UserTotalCrewNumber_raw_number').text()));
				var TotalCrewNumberAdded = 0;
				if (TotalCrewNumber != data.crew_number)
				{
					if (jQuery('.UserTotalCrewNumberContainer').is(':hidden'))
						jQuery('.UserTotalCrewNumberContainer').show('slow');
					TotalCrewNumberAdded = parseInt(data.crew_number) - parseInt(TotalCrewNumber); 
					NUpdatePointsEffect('.fantourage_body_bottom', '.UserTotalCrewNumber', '.UserTotalCrewNumber', TotalCrewNumberAdded, base_url, {points_popup_text: '+' + TotalCrewNumberAdded + ' crew member', points_popup_icon_pic: 'f_icon_crew_blue f_icon_size'}); 
				}
			}
			//data.crew_number_pending = 20;
			if ((data && data.crew_number_pending) || (data && data.crew_number_pending == '0'))
			{
				if (jQuery('.UserTotalCrewNumberWholeContainer').is(':hidden') && data && data.crew_number_pending != '0')
					jQuery('.UserTotalCrewNumberWholeContainer').show('slow');
				var TotalCrewNumber = parseInt(jQuery.trim(jQuery('.UserTotalInviteAlerts_raw_number').text()));
				//alert(TotalCrewNumber + ' and ' + data.crew_number_pending);
				var TotalCrewNumberAdded = 0;
				if (TotalCrewNumber != data.crew_number_pending)
				{
					if (jQuery('.UserTotalCrewNumberPendingContainer').is(':hidden'))
						jQuery('.UserTotalCrewNumberPendingContainer, .UserTotalCrew_Glow').show('slow');
					else if (!jQuery('.UserTotalCrewNumberPendingContainer').is(':hidden') && data && data.crew_number_pending == '0')
					{
						jQuery('.UserTotalCrewNumberPendingContainer, .UserTotalCrew_Glow').hide('slow');
						
					}

					TotalCrewNumberAdded = parseInt(data.crew_number_pending) - parseInt(TotalCrewNumber); 
					
					NUpdatePointsEffect('.fantourage_body_bottom', '.UserTotalInviteAlerts', '.UserTotalInviteAlerts', TotalCrewNumberAdded, base_url, {points_popup_text: '+' + TotalCrewNumberAdded + ' crew member', points_popup_icon_pic: 'f_icon_crew_purple f_icon_size'}); 
				}
			}
				
			
			if (data && data.user_placement && data.user_placement != '0')
				NUpdateRatingEffect('.UserTotalPointsPlacement', '(#' + number_format(data.user_placement) + ')', {ui_effect:'puff', ui_effect_speed: 1000});
				//NUpdatePointsEffect('.fantourage_body_bottom', '.UserTotalPoints', '.UserTotalPoints', 5, base_url);

			if (data && data.celeb_points && data.celeb_points != '0')
			{
				var TotalPoints = parseInt(jQuery.trim(jQuery('.UserTotalPointsCeleb_raw_number').text()));
				//alert(TotalPoints + ' and ' + data.celeb_points);
				var PointsAdded = 0;
				if (TotalPoints != data.celeb_points)
				{
					PointsAdded = parseInt(data.celeb_points) - parseInt(TotalPoints);
					//alert(PointsAdded);
					NUpdatePointsEffect('.fantourage_body_bottom', '.UserTotalPointsCeleb', '.UserTotalPointsCeleb', PointsAdded, base_url, {no_caching: true});
				}
			}
			

			
			if (data && data.celeb_placement && data.celeb_placement != '0')
				NUpdateRatingEffect('.UserTotalPointsPlacementCeleb', '(#' + number_format(data.celeb_placement) + ')', {ui_effect:'puff', ui_effect_speed: 1000});
			if (data && data.celeb_placement_text && data.celeb_placement_text != '0')
				NUpdateRatingEffect('.UserCelebRankingType', data.celeb_placement_text, {ui_effect:'fade', ui_effect_speed: 1000});
			
			// missions?
			if (data && data.mission_info) NMissionUpdate(data.mission_info, base_url);

				// f_items stuff
			if (data && data.f_items) NFItemsHandle(data.f_items);
			
			// refresh posts?
			if (data && data.new_stream_items && data.new_stream_items_max_id)
			{
				if (jQuery('.list_items_refresh_button_container').is(':hidden')) jQuery('.list_items_refresh_button_container').slideDown('slow');
				var numNewItems = parseInt(jQuery('.list_items_refresh_button .num_new_items').text()) + parseInt(data.new_stream_items);
				
				jQuery('.list_items_refresh_button .num_new_items').hide('slow', function() 
				{
					jQuery(this).text(numNewItems);
					jQuery(this).show('slow');
				});
				jQuery('.items_all_maximum_id').val(data.new_stream_items_max_id);
			}
			
			if (data && data.nchat_update_items) NChat.addStreamContent(data.nchat_update_items, base_url);
			if (data && data.fan_update_crew_online) NChat.makeOnlineInfo(data.fan_update_crew_online, base_url);
			
			jQuery('.fantourage_body_bottom').oneTime(10000, function()
			{
				NInitUpdatePoints(base_url, celeb_id);
			});
		}, 'json');
		
		
	}
	
	// check celebrity facebook like stuff
	//alert(celeb_fan_id);
	jQuery.post(base_url + 'nceleb/fb_check', {mode: 'fb_like', celeb_id: celeb_id, celeb_fan_id: celeb_fan_id}, function(data)
	{
		//alert(print_r(data));
		if (data && data.fb_like == '0' && jQuery('.celeb_fb_like_area').size())
		{
			jQuery('.celeb_fb_like_area').show('slow');
			jQuery('.celeb_fb_like_area').hover(function()
			{
				// check every two seconds on whether or not the person has liked the celeb
				if (!NInitIsFBLikeChecking)
				{
					
					jQuery('.celeb_fb_like_area').everyTime(2000, function()
					{
						if (!NInitIsFBLikeChecking)
						{
							NInitIsFBLikeChecking = true;
							jQuery.post(base_url + 'nceleb/fb_check', {mode: 'fb_like', celeb_id: celeb_id, celeb_fan_id: celeb_fan_id, wait:5, check_like: 1}, function(data)
							{
								NInitIsFBLikeChecking = false;
								if (data && data.fb_like == '1' && jQuery('.celeb_fb_like_area').size())
								{
									NInitIsFBLikeChecking = true;
									jQuery('.celeb_fb_like_area').stopTime();
									if (data.points_returned)
									{
										NUpdatePointsEffect('.celeb_fb_like_area', '.UserTotalPoints', '.UserTotalPoints', data.points_returned, base_url);
										NUpdatePointsEffect('.celeb_fb_like_area', '.UserTotalPointsCeleb', '.UserTotalPointsCeleb', data.points_returned, base_url, {no_chaching: true, points_after_animation: function() {jQuery('.celeb_fb_like_area').hide('slow');}});
									}
									else jQuery('.celeb_fb_like_area').hide('slow');
								}
							}, 'json');
						}
					});
				}
			}, function()
			{
				//jQuery('.celeb_fb_like_area').stopTime();
			});
		}
	}, 'json');
	
	var c_id = null;
	if (celeb_id)
		c_id = celeb_id;
	NInitUpdatePoints(base_url, c_id);
	
	NInitSearchBar(base_url);
};

var NInitMissionTimersStarted = false;
var NInitMissionTime = false;

function NMissionTimersStop()
{
	if (NInitMissionTimersStarted)
	{
		jQuery('.mission_timer_main_area').stopTime();
		//alert(jQuery('.mission_timer_main_area').size());
		NInitMissionTimersStarted = false;
		//NInitMissionTime = false;
		delete NInitMissionTime;
	}
}

function NInitMissionTimers(base_url, restart)
{
//	alert('hi ' + jQuery('.mission_timer_main_area').size());

	if (jQuery('.mission_timer_main_area').size() && !NInitMissionTimersStarted)
	{
//		alert('done');
		NInitMissionTimersStarted = true;
		
		if (!NInitMissionTime)
		{
			//alert(jQuery('.mission_timer_main_area').html());
			//alert(parseInt(jQuery('.mission_timer_main_area').children('.seconds').text()) + ' and ' + parseInt(jQuery('.mission_timer_main_area').children('.minutes').text()) + ' and ' +  parseInt(jQuery('.mission_timer_main_area').children('.hours').text()));
			NInitMissionTime = new timeObject(parseInt(jQuery('.mission_timer_main_area').children('.seconds').text(),10), parseInt(jQuery('.mission_timer_main_area').children('.minutes').text(),10), parseInt(jQuery('.mission_timer_main_area').children('.hours').text(),10), parseInt(jQuery('.mission_timer_main_area').children('.days').text(),10), 
			{
				zero_function: function(data)
				{
					//alert(jQuery('.mission_timer_main_mid').size());
					if (jQuery('.mission_timer_main_mid').size())
					{
						var mtid = jQuery('.mission_timer_main_mid').val();
						if (mtid)
							NMissionStop(base_url, mtid);
					}
					else if (jQuery('.mission_timer_main_update').size())
						NMissionLoadContent(base_url, base_url + 'nmission/ajx_Reload', {}, '.MissionNyroBox');
					jQuery('.mission_timer_main_area').stopTime();
					NInitMissionTimersStarted = false;
					
				}
			});
		}
		else if (restart)
		{
			// update from main area
			NInitMissionTime.set_time_opposite('.mission_timer_main_area .seconds', '.mission_timer_main_area .minutes', '.mission_timer_main_area .hours');
		}
		
		//alert(var_dump(numTime) + ' and ' + jQuery('.mission_timer_main_area').children('.seconds').text());
		jQuery('.mission_timer_main_area').everyTime(1000, function()
		{
			//alert(jQuery('.mission_timer_main_area').size());
			//return false;
			NInitMissionTime.dec_time();
			//alert(jQuery(this).html());
			NInitMissionTime.set_time('.mission_timer_main_area .seconds', '.mission_timer_main_area .minutes', '.mission_timer_main_area .hours', '.mission_timer_main_area .days');

			jQuery('.mission_timer_main_areas').html(jQuery(this).html());
			
			//alert(jQuery('.mission_timer_main_areas').size());
			
			// if we reach below 0s on all counts, well then
			
			
			
			//alert(jQuery('.mission_timer_main_area .seconds').text() + var_dump(numTime));
		});
	}
}

function timeObject(seconds, minutes, hours, days, obj)
{
	this.seconds = 0;
	this.minutes = 0;
	this.hours = 0;
	this.days = 0;
	this.options = obj;
	if (seconds) this.seconds = seconds;
	if (minutes) this.minutes = minutes;
	if (hours) this.hours = hours;
	if (days) this.days = days;
//	alert(seconds + ' and ' + minutes + ' and ' + hours);
}
timeObject.prototype.set_time_opposite = function(seconds, minutes, hours, days)
{
	if (seconds) this.seconds = parseInt(jQuery(seconds).text());
	if (minutes) this.minutes = parseInt(jQuery(minutes).text());
	if (hours) this.hours = parseInt(jQuery(hours).text());
	if (days) this.days = parseInt(jQuery(days).text());
}
timeObject.prototype.set_itime = function(seconds, minutes, hours, days)
{
	if (seconds) this.seconds = seconds;
	if (minutes) this.minutes = minutes;
	if (hours) this.hours = hours;
	if (days) this.days = days;
}
timeObject.prototype.set_time = function(seconds, minutes, hours, days)
{
	if (seconds) jQuery(seconds).text(this.seconds);
	if (minutes) jQuery(minutes).text(this.minutes);
	if (hours) jQuery(hours).text(this.hours);
	if (days) jQuery(days).text(this.days);

}
timeObject.prototype.dec_time = function()
{
//	alert(this.seconds + ' and ' + this.minutes + ' and ' + this.hours);
	this.seconds--;
	if (this.seconds < 0 && (this.minutes || this.hours || this.days))
	{
		this.seconds=59;
		this.minutes--;
	}
	if (this.minutes < 0 && (this.hours || this.days))
	{
		this.minutes=59;
		this.hours--;
	}
	if (this.hours<0 && this.days)
	{
		this.hours = 59;
		this.days--;
	}
	if (this.days < 0)// fine line
		this.days = this.seconds=this.minutes=this.hours;
		
	// all less than or equal to 0?
	if (this.seconds <= 0 && this.minutes <= 0 && this.hours <= 0 && this.days <= 0 && this.options && this.options.zero_function)
	{
		//alert(this.seconds + ' and ' + this.minutes + ' and ' + this.hours + ' and days: ' + this.days);
		this.options.zero_function();
	}
	//alert(this.seconds + ' and ' + this.minutes + ' and ' + this.hours + ' and days: ' + this.days);
	
	this.leading_zeros();
}
timeObject.prototype.leading_zeros = function()
{
	if (this.seconds <= 9) this.seconds = zeroPad(this.seconds,2); //this.seconds = '0' + this.seconds;
	if (this.minutes <= 9) this.minutes = zeroPad(this.minutes,2);//this.minutes = '0' + this.minutes;
	if (this.hours <= 9) this.hours = zeroPad(this.hours,2);// this.hours = '0' + this.hours;
	if (this.days <= 9) this.days = zeroPad(this.days,2);
}
function zeroPad(num,count)
{
	var numZeropad = num + '';
	while(numZeropad.length < count) {
	numZeropad = "0" + numZeropad;
	}
//	alert (numZeropad);
	return numZeropad;
}
//alert('test');


/*** YOUTUBE STUFF ***/
function onYouTubePlayerReady(playerId)
{
    IDSplit = playerId.split("ppp");
    var StreamID = IDSplit[1];
	var CelebID = IDSplit[2];

    ytplayer = document.getElementById("my" + playerId); 

    ytplayer.addEventListener("onStateChange", "onytplayerStateChange_" + StreamID);
	//alert('hi');
}

function NonytplayerStateChange(StreamID, newState, celeb_id, base_url, obj)
{
	//alert(StreamID + ' and ' + celeb_id);
	var NMode = false;
    if(newState == 1)
    {
        if(document.getElementById('VideoStarted_' + StreamID).value == "F")
        {
            document.getElementById('VideoStarted_' + StreamID).value = "T";

			NMode = 'watch_video';

        }
    }

    if(newState == 0)
    {
        if(document.getElementById('VideoFinished_' + StreamID).value == "F")
        {
            document.getElementById('VideoFinished_' + StreamID).value = "T";

            NMode = 'finish_video';
			if (obj && obj.func_finished && typeof obj.func_finished == 'function') obj.func_finished();
        }
    }
	
	if (NMode)
	{
            // Send 0 as celeb id - controller will do lookup from stream id
            jQuery.post(base_url + 'nceleb/nupdate_post', {item_mode: NMode, stream_id : StreamID},function(data)
			{
				// first update points
				if (data && data.points_returned)
				{
					NUpdatePointsEffect('.stream_item_videos_watched_placeholder_' + StreamID, '.UserTotalPoints', '.UserTotalPoints', data.points_returned, base_url);
					NUpdatePointsEffect('.stream_item_videos_watched_placeholder_' + StreamID, '.UserTotalPointsCeleb', '.UserTotalPointsCeleb', data.points_returned, base_url, {no_chaching: true});

				}
				if (data && data.video_times_started)
				{
					var Plural = '';
					if (data.video_times_started != '1')
						Plural = 's';
					NUpdateRatingEffect('.stream_item_video_times_watched_' + StreamID, 'Watched ' + data.video_times_started + ' time' + Plural);
				}
				
			},'json');
	}
    //alert(StreamID + " -- " + newState);
	
}

function NNyroRShow(id, base_url, options)
{
//	jQuery.nmTop().close();
	//alert(jQuery(id).html());
	
	var after_load = null;
	if (options && options.after_load && typeof options.after_load == 'function')
		after_load = options.after_load;

	var noptions = {
		closeButton: '<a href="#" class="nyroModalClose nyroModalCloseButton nmReposition position_relative" title="close">Close</a>',	// Close button HTML
			_setCont: function(html, selector) {
				if (selector) {
					var tmp = [],
						i = 0;
					// Looking for script to store them
					html = html
						.replace(/\r\n/gi, 'nyroModalLN')
						.replace(/<script(.|\s)*?\/script>/gi, function(x) {
								tmp[i] = x;
								return '<pre class=nyroModalScript rel="'+(i++)+'"></pre>';
							});
					var cur = $('<div>'+html+'</div>').find(selector);
					if (cur.length) {
						html = cur.html()
							.replace(/<pre class="?nyroModalScript"? rel="?(.?)"?><\/pre>/gi, function(x, y, z) { return tmp[y]; })
							.replace(/nyroModalLN/gi, "\r\n");
					} else {
						// selector not found
						this._error();
						return;
					}
				}
				this.elts.hidden
					.append(this._filterScripts(html))
					.prepend(this.header)
					.append(this.footer)
					.wrapInner('<div class="nyroModal'+ucfirst(this.loadFilter)+'" />');

				// Store the size of the element
				this.sizes.initW = this.sizes.w = this.elts.hidden.width();
				this.sizes.initH = this.sizes.h = this.elts.hidden.height() + 30;
				var outer = this.getInternal()._getOuter(this.elts.cont);
				this.sizes.hMargin = outer.h.total;
				this.sizes.wMargin = outer.w.total;
				this.size();

				this.loading = false;
				this._callFilters('filledContent');
				this._contentLoading();
				
				if (typeof html.html == 'function' && (this.elts.cont && html && this.elts.cont.html() && html.html() && this.elts.cont.html() != html.html() || !html.html()) && jQuery('#NyroModalSelOld').size())
				{
//						this.store.domEl.append(this.elts.cont.find('.nyroModalDom').contents());
					var oldObj = jQuery(jQuery('#NyroModalSelOld').attr('value'));
					if (!oldObj.html()) oldObj.append(this.elts.cont.find('.nyroModalDom').contents());
				}
				// store the selector in the background so we can repopulate it if needed
				if (!jQuery('#NyroModalSelOld').size()) jQuery('body').append('<span class="hidden" id="NyroModalSelOld" value="' + this.store.link.sel + '"></span>');
				jQuery('#NyroModalSelOld').attr('value', this.store.link.sel);
				//alert(this.store.link.sel + ' and ' + this.elts.cont.html());
			},

		zIndexStart: 99999,
		callbacks: {
			afterReposition: after_load
		}
	}
	
	if (options)
	{
		if (options.not_closable)
			noptions.close = function() {return false};
	}
	
	//noptions.resize = function() {return false};
//	if (options && options.nyro_data) jQuery.nmData(jQuery(id).html(), noptions);
//	else jQuery.nmManual(id, noptions);
	//jQuery.nmManual(id, noptions);
	
	//jQuery(id).nyroModal(noptions).trigger('nyroModal');
	//alert(jQuery('#NyroModalSelOld').attr('value'));
	if (!jQuery('#NyroModalSelOld').size() || jQuery('#NyroModalSelOld').attr('value') != id || !jQuery('.nyroModalBg').size())
		jQuery.nmManual(id, noptions);
	else if (after_load && typeof after_load == 'function')
		after_load();
}
/** Initial Search **/
function NSearchAction(base_url, divid, mode)
{
	if (jQuery(divid).size())
	{
		jQuery(divid).submit();
	}
}

function NInitSearchBar(base_url, divid, mode)
{
	if (!divid) divid = '#f_header .f_header_search';
	if (!mode) mode = 's';
	jQuery(divid).autocomplete(base_url + 'nsearch/' + mode, {
		minChars:		3,
		//delay:		2,
		width:			126,
		resultsClass:	'top_search_ac_results',
		matchContains:	true,
		dataType:		'json',
		//matchContains: true,
		autoFill:		false,
		max:			8,
		scrollHeight:	'auto',
		selectFirst:	false,
		parse:			function(data) {
			 var rows = new Array();
			 if (data)
			 {
				 for(var i=0; i<data.length; i++){
					 if (typeof data[i] != 'undefined' && typeof data[i].searchname != 'undefined')
						rows[i] = { data:data[i], value: data[i].searchname + ' ' + data[i].othername }
					else
						rows[i] = null;
				   }
			 }
			 $(divid).removeClass('working');
			 return rows;
		 },
		formatItem: function(row, i, max) {
			//$('.default_form .ajx_search_loading').hide('slow');
			var officialTag = '';
			if (row.is_official == "1")
				officialTag = "<img src='" + base_url + "images/nlayout/icons/tag_official.png' class='position_absolute pos_top0 pos_left0' width='45' />";

			var othername = '';
			if (row.othername && row.othername != '')
				othername = ' (' + row.othername + ')';
			var image_size = 50;
			var extra_string = '<td>&nbsp;</td>';
			if (row.create_celeb)
			{
				image_size = 75;
				extra_string = "<td>&nbsp;</td><td><center><h1 class='color_green'><img src='" + base_url + "images/blank.gif' class='f_icon_size_b f_icon_green_plus_b' /></h1></center></td><td>&nbsp;</td>";
			}

			
			return "<table><tr><td><div class='position_relative'><img src='" + row.image_url + "' width='" + image_size + "' align='absmiddle' /> " + officialTag + "</td>"+ extra_string + "<td>" + row.searchname + othername + "</div></td></tr></table>";
		},
		formatMatch: function(row, i, max) {
			return row.searchname + row.othername;
		}

	});	
	jQuery(divid).result(function(event, data, formatted){
		if (data)
			window.location.replace(data.result_url);
	});
	jQuery(divid).focus(function(){
		jQuery(this).val('');
		jQuery(this).addClass('working');
	});
	jQuery(divid).blur(function(){
		if (jQuery(this).val() == '')
			jQuery(this).val('Search...');
		$(divid).removeClass('working');
	});
}

function NMissionUpdate(mission_info, base_url, MF)
{
	if (mission_info && mission_info.is_multi)
	{
		for(var prop in mission_info) {
		if(prop != 'is_multi' && mission_info.hasOwnProperty(prop))
			NMissionUpdateN(mission_info[prop], base_url, MF);
			//alert(jj[prop] + ' and ' + prop);
		}

	}
	else
		NMissionUpdateN(mission_info, base_url, MF);
}

function NMissionUpdateN(mission_info, base_url, MF)
{
	var MissionFailed = false;
	if (MF) MissionFailed = true;
	
	//alert(var_dump(mission_info) + ' hey');
	if (mission_info.MissionStepsPercentages)
	{
		for(var key in mission_info.MissionStepsPercentages)
		{
			//alert(key + ' and ' + mission_info.MissionStepsPercentages[key]);
			jQuery('.mission_step_percentage_' + key).text(number_format(mission_info.MissionStepsPercentages[key],2));
			//alert(number_format(mission_info.MissionStepsPercentages[key],2));
		}
	}
//	alert('hmmm');
	if (mission_info.MissionStepComplete || MissionFailed)
	{
//		alert('ooo');
		NNyroRShow('#Missions_Box', base_url, {after_load: function()
		{
//			alert('fds');
			if (mission_info.MissionStepComplete)
			{
				if (mission_info.MissionStepsOverride)
				{
					jQuery('.MissionNyroBox .mission_step_go_button_general').hide(500);
					jQuery('.MissionNyroBox .mission_step_done').show(1000);
				}
				else
				{
					if (jQuery('.MissionNyroBox .mission_step_' + mission_info.MissionStepComplete).is(':hidden'))
						jQuery('.MissionNyroBox .mission_step_' + mission_info.MissionStepComplete).show(1000);
					jQuery('.MissionNyroBox .mission_step_go_button_' + mission_info.MissionStepComplete).hide();
					jQuery('.MissionNyroBox .mission_step_' + mission_info.MissionStepComplete + ' .mission_step_done').show(1000, function()
					{
						// add seconds if needed
						if (mission_info.MissionSecondsToAdd && mission_info.MissionSecondsToAddHTML)
						{
							//alert(mission_info.MissionSecondsToAdd + ' and ' + mission_info.MissionSecondsToAddHTML);
							NUpdateMissionTimer('.MissionNyroBox .mission_step_' + mission_info.MissionStepComplete + ' .mission_step_done', 1, base_url, {
								seconds_to_add: mission_info.MissionSecondsToAdd,
								seconds_to_add_html: mission_info.MissionSecondsToAddHTML
							});
						}
					});
				}
				if (mission_info.MissionStepToShow) jQuery('.MissionNyroBox .mission_step_' + mission_info.MissionStepToShow).show(1000);
			}
			
			if (mission_info.MissionComplete && mission_info.MissionTID)
			{
				if (mission_info.MissionFailed || MissionFailed)
				{
					jQuery('.mission_failed_tag_' + mission_info.MissionTID + ', .next_mission_button_' + mission_info.MissionTID).show(1000);
				}
				else
				{
					jQuery('.mission_accomplished_tag_' + mission_info.MissionTID + ', .next_mission_button_' + mission_info.MissionTID).show(1000);
					//alert('here');
				}
				jQuery('.mission_timer_main_area').stopTime();
				NInitMissionTimersStarted = false;					

			}

		}});
		
//		alert(jQuery('.MissionNyroBox .mission_step_' + mission_info.MissionStepComplete + ' .mission_step_done').size() + ' anmd ' + mission_info.MissionStepComplete);
	}
}

function NMissionLoadContentAnimation(base_url, rText)
{
	var newDate = new Date;
	var uniqID = newDate.getTime();
	if (!rText) rText = 'Loading...';
	jQuery('body').append('<div class="mission_loading_animation_' + uniqID + ' hidden"><center><h2>' + rText + '</h2><img src="' + base_url + 'images/nlayout/icons/icon_fantourage_ball.png" class="mission_ball"></center></div>');
	jQuery('.mission_loading_animation_' + uniqID).everyTime(500, function()
	{
		jQuery(this).find('.mission_ball').animate({rotate: '+=40deg'}, 490);
	});
	return jQuery('.mission_loading_animation_' + uniqID);

}

function NMissionLoadContent(base_url, url, obj, divid)
{
	var animationBall = NMissionLoadContentAnimation(base_url, 'Loading Mission...');
	var start = new Date().getTime();
	
	jQuery(divid).hide('slide', {direction: 'left'}, 500, function()
	{
		jQuery(divid).html('');
		jQuery(divid).append(animationBall);
		animationBall.removeClass('hidden');
		//jQuery(animationBall
		//alert(animationBall.size());
		//alert('dsfdsf' + jQuery(divid).size());
		jQuery(divid).show('slide', {direction: 'right'}, 500, function()
		{
			//alert(jQuery(divid).html());
		});
		//alert(jQuery(divid).size());
	});
	jQuery.post(url, obj, function(data)
	{
		if (data && data.html)
		{
			//jQuery(divid).queue(function(next)
			var elapsed = new Date().getTime() - start;
			//var end = 1000
			var jTimer = 1;
			if (elapsed < 1001) jTimer = 1001 - elapsed;
			jQuery(divid).oneTime(jTimer, function()
			{
				jQuery(this).hide('slide', {direction: 'left'}, 500, function()
				{
					animationBall.remove();
					jQuery(divid).html(data.html);
					jQuery(divid).show('slide', {direction: 'right'}, 500);
					jQuery('#f_footer_right').hide('slide', {direction: 'right'}, 500, function()
					{
						var newDate = new Date;
						var uniqID = newDate.getTime();
						jQuery('body').append('<div class="f_footer_right_main_content_' + uniqID + ' hidden"></div>');
						var nContent = jQuery('.f_footer_right_main_content_' + uniqID);
						var oldWidth = jQuery('#f_footer_right').width();
						var newWidth = nContent.width();
						
						if (data.html_mtimer)
						{
							NMissionTimersStop();
							nContent.html(data.html_mtimer);
							
							jQuery('#f_footer_right').html('').width(nContent.width()).append(nContent);
							nContent.removeClass('hidden');
							//nContent.remove();
							//alert('hi');
							jQuery('#f_footer_right').show('slide', {direction:'left'}, 500, function()
							{
								//alert(nContent.width() + ' and ' + nContent.text());
								//jQuery('#f_footer_right').animate({width: jQuery('.f_footer_right_main_content').outerWidth()}, 500);
								NAdjustFixedDiv('#f_footer_right', oldWidth, newWidth);
								NInitMissionTimers(base_url, true);
	
								
							});
	
						}
						
						//jQuery('#f_footer_right').html('').width(nContent.width()).append('<a href="javascript:;" onclick="NNyroRShow(\'#Missions_Box\', \'' + base_url+ '\');">' + nContent.html() + '</a>');
						//alert(jQuery('.f_footer_right_main_content').width() + jQuery('.f_footer_right_main_content').size());
	
					});
				});
				//if (data.html_footer)
				//	jQuery()
			});
			
		}
	}, 'json');
}


function NAdjustFixedDiv(divid, oldWidth, newWidth)
{
	var obj = jQuery(divid);
	
	//alert(obj.outerWidth() + ' and ' + oldWidth + ' and ' + newWidth);
	newWidth = obj.outerWidth();
	
	if (oldWidth > newWidth)
	{
		//alert('here');
		obj.animate({'left': obj.position().left + (oldWidth - newWidth) + 'px'}, {'duration': 'slow', 'easing': 'easeOutBounce'});
	}
	else
	{
		//alert('there');
		obj.animate({'left': obj.position().left - (newWidth - oldWidth) + 'px'}, {'duration': 'slow', 'easing': 'easeOutBounce'});
	}
}


/** NEW MISSION STUFF !! **/
function NMissionGo(base_url, MID, nBox, options)
{
//	NMissionLoadContent('<?=base_url()?>', '<?=base_url()?>nmission/ajx_LoadCurrentMission', {}, '.MissionNyroBox');
	//nBox = '.NNyroRContainer ' + nBox;
	var pObj = {MID: MID};
	if (options)
	{
		if (options.MTID)
			pObj.MTID = options.MTID;
		if (options.CelebID)
			pObj.CelebID = options.CelebID;
		if (options.DirectToPage)
			pObj.DirectToPage = options.DirectToPage;
	}
	
	
	return NMissionLoadContent(base_url, base_url + 'nmission/ajx_MakeMissionTransaction', pObj, nBox);
}

function NMissionStop(base_url, MTID)
{
	jQuery.post(base_url + 'nmission/ajx_EndMission', {MTID: MTID}, function(data)
	{
		var failed_mission = true;
		if (data && data.failed_mission && data.failed_mission == -1)
			failed_mission = false;
		//alert(failed_mission + ' and ');
		var tObj = { MissionTID: MTID, MissionComplete: 1};
		if (!failed_mission)
		{
			tObj.MissionStepComplete = 1;
			tObj.MissionStepsOverride = 1;
		}
		
		NMissionUpdate( tObj, base_url, failed_mission);
	}, 'json');
//	return NMissionLoadContent(base_url, base_url + 'nmission/ajx_NextMission', pObj, nBox);
//	return NMissionLoadContent(base_url, base_url + 'nmission/ajx_EndMission', {MTID: MTID}, '.MissionNyroBox');
}

function NMissionNext(base_url, MID, nBox, options)
{
//	NMissionLoadContent('<?=base_url()?>', '<?=base_url()?>nmission/ajx_LoadCurrentMission', {}, '.MissionNyroBox');
	var pObj = {MID: MID};
	if (options && options.MTID)
		pObj.MTID = options.MTID;
	
	return NMissionLoadContent(base_url, base_url + 'nmission/ajx_NextMission', pObj, nBox);
}


/** ITEM STUFF **/
function NMoveableItem(base_url, jobj)
{
	if (!jobj.hasClass('NItem_Draggable_HasClick'))
	{
		jobj.addClass('NItem_Draggable_HasClick');
		jobj.mousedown(function()
		{
			var FID = jobj.attr('FID');
			//alert(base_url + ' and ' + FID);
			jQuery.post(base_url + 'nfitem/ajx_FItemCheckControl', {FID: FID}, function(data)
			{
				/*if (data && data.can_control) jobj.draggable('enable');
				else if (data && data.error_response) alert(data.error_response);
				else alert('There was an error moving this!');*/
			}, 'json');
		});
	}
	if (!jobj.hasClass('NItem_Draggable'))
	{
		var FID = jobj.attr('FID');
		jobj.addClass('NItem_Draggable');
		jobj.draggable({
			stop:function(event,ui)
			{
				//alert(var_dump(event.type) + ' and ' + var_dump(event.which) );
				var x = window.prompt('Send a message?');
				//jobj.draggable('disable');
				jQuery.post(base_url + 'nfitem/ajx_FItemRecord', {FID: FID, x_coord:jobj.position().left, y_coord:jobj.position().top, message:x}, function(data)
				{
					if (data && data.last_updated)
					{
						jobj.attr('LastDateUpdated', data.last_updated);
						NFItemsSwitchMessage(jQuery('.f_item_id_' + FID + ' .fi_message'), x);
					}
					if (data && data.error_response)alert(data.error_response);
				}, 'json');
				
				//alert(jobj.position().left + ' and ' + jobj.position().top);
			},
			containment:jQuery('.main_content_area_relative:first')
		});
		//jobj.draggable('disable');
	}
	if (jobj.hasClass('NItem_Draggable') && jobj.hasClass('NItem_Draggable_HasClick')) jobj.removeAttr('onmouseover');
}
function NFItemsSwitchMessage(jobj, message)
{
	jobj.hide('bounce', {times: 3, distance:100}, 500, function()
	{
		jQuery(this).html(message);
		jQuery(this).show('bounce', {times: 3, distance:100}, 500);
	});	
}

function NFItemsHandle(f_items)
{
   for (var prop in f_items) {
		jQuery('.f_item_id_' + prop).animate({'left':f_items[prop].x_coord,'top': f_items[prop].y_coord}, 1000);
		if (f_items[prop].ControlledOnDate) jQuery('.f_item_id_' + prop).attr('LastDateUpdated', f_items[prop].ControlledOnDate);
		if (f_items[prop].FRecentInteraction && f_items[prop].FRecentInteraction.message && f_items[prop].FRecentInteraction.message != jQuery('.f_item_id_' + prop + ' .fi_message').html())
		{
			NFItemsSwitchMessage(jQuery('.f_item_id_' + prop + ' .fi_message'), f_items[prop].FRecentInteraction.message);
			
		}
		//alert(f_items[prop].x_coord + ' and ' + var_dump(f_items[prop]) );
   }	
}

// crew bar
function NUpdateCrewBarInfo(jobj,base_url,celeb_id)
{
	if (!jobj.hasClass('see_your_crew_global_button_clicked'))
	{
		jobj.addClass('see_your_crew_global_button_clicked');
		jobj.html('See<br />Invites');
		UpdateItemWithPost('.f_footer_pic_area', '.f_footer_pic_area', base_url, base_url + 'nchat/ajx_update_footer_pic', {celeb_id:celeb_id}, null);
	}
	else
	{
		jobj.removeClass('see_your_crew_global_button');
		jobj.html('See<br />Crew');
		UpdateItemWithPost('.f_footer_pic_area', '.f_footer_pic_area', base_url, base_url + 'nchat/ajx_update_footer_pic', {celeb_id:celeb_id}, null);
	}
}

var NChatP = (function()
{
	function NChatP() {return new NChatP.fn.init();}
	
	NChatP.fn = NChatP.prototype = {
		base_url: null,
		
		
		init: function() {return this;},
		
		preWrap: '<div class="nchat_window_container"><div class="nchat_window_inner"><div class="nchat_window_text_area"></div>',
		postWrap: '<center><table cellpadding="0" cellspacing="0"><tr><td valign="middle"><textarea rows="3" cols="20"></textarea></td><td>&nbsp;&nbsp;</td><td valign="middle"><a href="javascript:;" class="send_button button_s small green">Send</a></td></tr></table></center></div></div>', 
		
		test: function() {alert('test');},
		
		pinChat: function(jobj)
		{
			if (!jobj.hasClass('NChat_IsPinned'))
			{
				var jOuter = jobj.closest('.nchat_window_container_outer');
				jobj.addClass('NChat_IsPinned').text('Unpin');
				//alert(jOuter.position().top + ' and ' + jOuter.position().left + ' and ' + jQuery(window).scrollTop());
				jOuter.css({'top':jOuter.offset().top - jQuery(window).scrollTop(), 'left': jOuter.offset().left,'position':'fixed'});
			}
			else
			{
				var jOuter = jobj.closest('.nchat_window_container_outer');
				jobj.text('Pin').removeClass('NChat_IsPinned');
				jOuter.css({'top':jOuter.offset().top,'left':jOuter.offset().left,'position':'absolute'});
			}
		},
		
		pollFunction: function(base_url)
		{
			jQuery.ajax({
				url: base_url + 'nchat/poll_latest_chat',
				cache:false,
				dataType:'json',
				success:function(data)
				{
					if (data && data.nchat_update_items) NChat.addStreamContent(data.nchat_update_items, base_url);
					jQuery('.nchat_poller_div_only_one').oneTime(2000, function()
					{
						NChat.pollFunction(base_url);
					});
					//alert(var_dump(data));
				}
			});
		},
		
		createView: function(jobj, divID, base_url)
		{
			// if this is the first view we create, we need to set a timer for checks
			if (!jQuery('.nchat_poller_div_only_one').size())
			{
				jQuery('body').append('<div class="nchat_poller_div_only_one hidden"></div>');
				NChat.pollFunction(base_url);
			}
			if (!jQuery('.' + divID).size())
			{
				jQuery('body').append('<div class="' + divID + ' nchat_window_container_outer" base_url="' + base_url + '">' + this.preWrap + this.postWrap + '</div>');
				var jcurrent = jQuery('.' + divID);
				if (/*jobj.find('img').size() &&*/ jobj.attr('user_name')) jcurrent.find('.nchat_window_inner:first').prepend('<div class="cursor_move nchat_header position_relative" celeb_id="' + jobj.attr('celeb_id') + '" user_id="' + jobj.attr('user_id') + '" onmouseover="NChat.makeDraggable(jQuery(this));"><div class="float_right"><span class="button_s medium fpurp" onclick="NChat.pinChat(jQuery(this))">Pin</span><div style="position:absolute;top:-20px;right:-20px"><span class="button_s small red" onclick="NChat.closeChat(jQuery(this), \'' + divID + '\')">X</span></div></div><table class="float_left" cellpadding="0" cellspacing="0"><tr><td valign="middle">' + jobj.html() + '</td><td>&nbsp;&nbsp;</td><td valign="middle">' + jobj.attr('user_name') + '</td></tr></table><div class="clear"></div></div>');
				jcurrent.find('.send_button:first').click(function()
				{
					var tArea = jcurrent.find('textarea:first');
					if (jQuery.trim(tArea.val()) != '')
					{
						var nchatTextArea = jcurrent.find('.nchat_window_text_area:first');
						nchatTextArea.append('<b>Me</b>: ' + tArea.val() + '<br />');
						nchatTextArea.scrollTop(nchatTextArea[0].scrollHeight);
						
						jQuery.post(jcurrent.attr('base_url') + 'nchat/post_chat_message', {message:jQuery.trim(tArea.val()), to_user_id:jcurrent.find('.nchat_header:first').attr('user_id'), on_celeb_id:jcurrent.find('.nchat_header:first').attr('celeb_id')}, function() {});
						tArea.val('');
					}					
				});
				jcurrent.find('textarea:first').keypress(function(e)
				{
					var code = (e.keyCode ? e.keyCode : e.which);
					 if(code == 13) { //Enter keycode
						//alert(jobj.closest('.nchat_window_container_outer').attr('base_url'));
						jcurrent.find('.send_button:first').click();
					 }					

				});
			}

			var jcurrent = jQuery('.' + divID);
			//alert(jcurrent.outerHeight());
 
			jcurrent.css({'position':'absolute','top':jobj.offset().top - jobj.outerHeight() - jcurrent.outerHeight() ,'left':jobj.offset().left});
			jcurrent.find('textarea:first').focus();
		},
		
		closeChat:function(jobj, divID)
		{
			jQuery('.' + divID).hide('explode', {pieces:16}, 1000, function()
			{
				jQuery(this).remove();
			});
		},
		
		makeDraggable: function(jobj)
		{
			if (!jobj.hasClass('NChat_ItemDraggableDetect'))
			{
				jobj.addClass('NChat_ItemDraggableDetect');
				jobj.closest('.nchat_window_container_outer').draggable();
				jobj.hover(function() 
				{
					jobj.closest('.nchat_window_container_outer').draggable('enable');
				}, function()
				{
					jobj.closest('.nchat_window_container_outer').draggable('disable');
				});
			}
		},
		
		addStreamContent: function(nchat_items, base_url)
		{
			for(var prop in nchat_items) {
				if(nchat_items.hasOwnProperty(prop))
				{
					var message = nchat_items[prop].message;
					var user_id = nchat_items[prop].user_id;
					var display_name = nchat_items[prop].DisplayName;
					if (!jQuery('.nchat_view_button_' + nchat_items[prop].user_id).size())
					{
						jQuery('#f_footer').append('<a href="javascript:;" class="hiddens nchat_view_button_' + user_id + '" user_name="' + display_name + '" user_id = "' + user_id + '" onclick="NChat.createView(jQuery(this), \'nchat_view_' + user_id + '\', \'' + base_url + '\');"></a>');
						
						//onclick="NChat.createView(jQuery(this), 'nchat_view_<?=$User['user_id']?>', '<?=base_url()?>');" user_name="<?=HTML_Grab_User_Display_Name($User)?>" user_id="<?=$User['user_id']?>"><
						
					}
					var jobj = jQuery('.nchat_view_' + user_id);
					if (!jobj.size() || jobj.is(':hidden'))
					{
						jQuery('.nchat_view_button_' + user_id).click();
						var jobj = jQuery('.nchat_view_' + user_id);
					}
					if (jobj.size())
					{
						// add the content
						var nchatTextArea = jobj.find('.nchat_window_text_area:first');
						//alert(nchatTextArea.size() + ' and ' + jQuery('.nchat_view_' + user_id).size());
						nchatTextArea.append('<b>' + display_name + '</b>: ' + message + '<br />');
						nchatTextArea.scrollTop(nchatTextArea[0].scrollHeight);
					}

				}
			}
		},
			
		makeOnlineInfo: function(fan_update_crew_online, base_url)
		{
			for(var prop in fan_update_crew_online) {
				if(fan_update_crew_online.hasOwnProperty(prop))
				{
					// first find where this is located
					if (jQuery('.nchat_user_general_container_' + fan_update_crew_online[prop].user_id).size())
					{
						var jobj = jQuery('.nchat_user_general_container_' + fan_update_crew_online[prop].user_id);
						if (jobj.attr('isOnline') == '1' && fan_update_crew_online[prop].IsOnline == '0')
						{
							jobj.attr('isOnline', '0');
							jobj.find('.nchat_user_online_icon:first').removeClass('bcolor_fblue').addClass('bcolor_grey');
						}
						else if (jobj.attr('isOnline') == '0' && fan_update_crew_online[prop].IsOnline == '1')
						{
							jobj.attr('isOnline', '1');
							jobj.find('.nchat_user_online_icon:first').removeClass('bcolor_grey').addClass('bcolor_fblue');
						}
					}
				}
			}
		}
	};
    NChatP.fn.init.prototype = NChatP.fn;

    // Expose NChatP to the global object
    return (window.NChatP = window.$f = NChatP);
})();

//var NChat = NChatP.init();
var NChat = NChatP();
//alert(var_dump(NChat));
//NChat.test();
