var Members = {
    images_url : null,
    wait_gif : new Image(),
    ajax_url : "http://"+location.host+"/members/ajax",
    shows_count : null,
    shows_set : 1,
    tickets_count : null,
    tickets_set : 1,
    chatmodels_total_pages : 1,
	chatmodels_page_no : 1,
	chatmodels_nextpage : 2,
	chatmodels_prevpage : 1,
	recentshows_page_no : 1,
	resentshows_total_pages : 1,
	recentshows_nextpage : 2,
	recentshows_prevpage : 1,
    refresh_timer : null,
    auto_refresh : false,
    auto_refresh_seconds : 500,
	ajax_pending: false,
	alerts_onclose_callback : null,
	models : null,
	recent_shows : null,
    recentshows_visible : false,
    recentshows_sorted : false,
    update_chat_model : null,
    guest_upgrade_show : false,
    guest_upgrade_photo_url : null,
    guest_upgrade_img : null,
    close_fan_club_callback : null,
    join_fan_club_callback : null,

	res_dummy : function (r,s,p)
	{
		Members.ajax_pending = false;
	},

	get_showhistory : function ()
	{
		if ( !Members.ajax_pending )
		{
		    var o = document.getElementById( "url_get_more_shows" );
		    o.innerHTML = "<img src='"+Members.wait_gif.src+"' width='15' height='15' border='0' />&nbsp;Retrieving Shows ...";
		    var ajax = new oAjax("http://"+location.host+"/members/ajax/showhistory.php", Members.put_showhistory );
		    var params = "show_set="+Members.shows_set;
		    ajax.update(params, "GET");
			Members.ajax_pending = true;
		}
	},

	put_showhistory : function ( r, s )
	{
	   	Members.ajax_pending = false;

	    if ( s == 200 )
	    {
	        ret_vals = $P.unserialize( $P.base64_decode( r ) );

	        if ( typeof ret_vals.shows != "undefined" )
	        {
	            var oTable = document.getElementById( "mbr_showhistory" );
	            var shows_list = ret_vals.shows;
	            x = 0;

				models_list = "";

	            for ( var show_data in shows_list )
	            {
	                var NumRows = oTable.rows.length;
	                var oNewRow = oTable.insertRow(NumRows);
	                
	                var oNewColModelName = oNewRow.insertCell(0);
	                oNewColModelName.innerHTML = shows_list[x].model_username;
	                oNewColModelName.className = "acctset_table_cell_data";

	                var oNewColShowName = oNewRow.insertCell(1);
	                oNewColShowName.innerHTML = shows_list[x].show_date;
	                oNewColShowName.className = "acctset_table_cell_data";

	                var oNewColCreditsSpent = oNewRow.insertCell(2);
	                oNewColCreditsSpent.innerHTML = shows_list[x].credits_spent;
	                oNewColCreditsSpent.className =  "acctset_table_cell_data";

	                var new_col_tip = oNewRow.insertCell(3);
	                if ( shows_list[x].tip_data )
	                	new_col_tip.innerHTML = shows_list[x].tip_data.amount;
	                else
	                	new_col_tip.innerHTML = "n/a";

	                new_col_tip.className =  "acctset_table_cell_data";

	                var new_col_total = oNewRow.insertCell(4);
	                new_col_total.innerHTML = shows_list[x].total;
	                new_col_total.className =  "acctset_table_cell_data";

	                var oNewColStatus = oNewRow.insertCell(5);
	                oNewColStatus.innerHTML = shows_list[x].status;
	                oNewColStatus.className = "acctset_table_cell_data";

					x++;
	            }

//				alert(models_list);
	        }

	        if ( ret_vals.more_shows )
	        {
	            var o = document.getElementById( "url_get_more_shows" );
	            o.innerHTML = "<span onclick='Members.get_showhistory();' class='l2'>Next 5 Shows <img src='"+Members.images_url+"/members/down-arrow.gif' border='0' /></span>";
	            Members.shows_set ++;
	        }
	        else
	        {
	            document.getElementById( "url_get_more_shows" ).innerHTML = "<span>Displaying All " + Members.shows_count + " Shows!</span>";
	        }

			ret_vals = null;
	    }
	},

	get_tickethistory : function ()
	{
		if ( !Members.ajax_pending)
		{
		    var o = document.getElementById( "url_get_more_tickets" );
		    o.innerHTML = "<img src='"+Members.wait_gif.src+"' width='15' height='15' border='0' />&nbsp;Retrieving Tickets ...";
		    var ajax = new oAjax("http://"+location.host+"/members/ajax/ticketshistory.php", Members.put_tickethistory );
		    var params = "show_set="+Members.tickets_set;
		    ajax.update( params, "GET" );
			Members.ajax_pending = true;
		}
	},

	put_tickethistory : function ( r, s )
	{
	   	Members.ajax_pending = false;

	    if ( s == 200 )
	    {
	        ret_vals = $P.unserialize( $P.base64_decode( r ) );

	        if ( typeof ret_vals.history != "undefined" )
	        {
	            var oTable = document.getElementById( "mbr_tickethistory" );
	            var history_list = ret_vals.history;
	            x = 0;

	            for ( var ticket_data in history_list )
	            {
	                var NumRows = oTable.rows.length;
	                var oNewRow = oTable.insertRow(NumRows);

	                var oNewColPurchaseDate = oNewRow.insertCell(0);
	                oNewColPurchaseDate.innerHTML = history_list[x].purchaseDateFmt;
	                oNewColPurchaseDate.className = "acctset_table_cell_data";

	                var oNewColTransID = oNewRow.insertCell(1);
	                oNewColTransID.innerHTML = history_list[x].txnID;
	                oNewColTransID.className = "acctset_table_cell_data";

	                var oNewColAmount = oNewRow.insertCell(2);
	                oNewColAmount.innerHTML = history_list[x].price;
	                oNewColAmount.className =  "acctset_table_cell_data";

	                var oNewColUsed = oNewRow.insertCell(3);
	                oNewColUsed.innerHTML = history_list[x++].usedFmt;
	                oNewColUsed.className = "acctset_table_cell_data";
	            }
	        }

	        if ( ret_vals.more_tickets )
	        {
	            var o = document.getElementById( "url_get_more_tickets" );
	            o.innerHTML = "<span onclick='Members.get_tickethistory();' class='l2'>Next 5 Tickets <img src='"+Members.images_url+"/members/down-arrow.gif' border='0' /></span>";
	            Members.tickets_set ++;
	        }
	        else
	        {
	            document.getElementById( "url_get_more_tickets" ).innerHTML = "<span>Displaying All " + Members.tickets_count + " Tickets!</span>";
	        }

			ret_vals = null;
	    }
	},

	get_chatmodels : function (page_no)
	{
		if ( !Members.ajax_pending )
		{
		    Members.cancel_refresh_timer();
		    $("#id_chatmodels_div").hide();
		    $("#id_loadingmodels").show();

		    if (page_no == 0)
		    {
		        document.getElementById( "id_refreshlabel" ).innerHTML = "Refreshing Models ...";
				var load_page = Members.chatmodels_page_no;
		    }
		    else
		    {
		    	var load_page = Members.chatmodels_page_no + page_no;
		        document.getElementById( "id_refreshlabel" ).innerHTML = "Loading Models ...";
		    }

		    var ajax = new oAjax("/members/ajax/chatmodels.php", Members.put_chatmodels );
		    var params = "page="+load_page;
		    ajax.update(params, "GET");
			Members.ajax_pending = true;
		}
	},

	put_chatmodels : function ( r, s, t )
	{
		Members.ajax_pending = false;

	    if ( s == 200 )
	    {
	        ret_vals = $P.unserialize( $P.base64_decode( r ) );
			Members.set_auto_refresh(ret_vals.auto_refresh, ret_vals.auto_refresh_seconds);
			Members.models = eval(ret_vals.models);
            Members.chatmodels_prevpage = Number(ret_vals.chatmodels_prevpage);
            Members.chatmodels_nextpage = Number(ret_vals.chatmodels_nextpage);
            Members.chatmodels_page_no = Number(ret_vals.chatmodels_page_no);
			Members.chatmodels_total_pages = Number(ret_vals.chatmodels_total_pages);

			for ( var x = 0; x < Members.models.length; x++ )
			{
			    with ( document )
			    {
			    	try
					{
				        var tmp_image = new Image();
				        tmp_image.src = Members.models[x].thumb_url;
						Members.models[x].img_load_count = 1;
				        getElementById( ("id_model_photo_"+x) ).src = tmp_image.src;
				        getElementById( ("id_model_photo_"+x) ).title = Members.models[x].action_title;

				        getElementById( ("id_model_username_"+x) ).innerHTML = Members.models[x].username_cell;
				        getElementById( ("id_model_username_"+x) ).title = Members.models[x].action_title;

				        if ( Members.models[x].hd != 0 )
				        {
				            getElementById( ("id_model_hd_"+x) ).style.visibility = "visible";
				            getElementById( ("id_model_hd_"+x) ).style.display = "block";
				        }
				        else
				        {
				            getElementById( ("id_model_hd_"+x) ).style.visibility = "hidden";
				            getElementById( ("id_model_hd_"+x) ).style.display = "none";
				        }
					}
					catch(e)
					{}
			    }
			}

	        $("#id_loadingmodels" ).hide();
	        $("#id_chatmodels_div" ).show();

	        if (Members.chatmodels_page_no > 1)
	        {
	            $("#id_chatlist_left").show();
	        }
	        else
	        {
	            $("#id_chatlist_left").hide();
	        }

	        if (Members.chatmodels_page_no != Members.chatmodels_total_pages)
	        {
	            $("#id_chatlist_right").show();
	        }
	        else
	        {
	            $("#id_chatlist_right").hide();;
	        }

	        if ( Members.auto_refresh )
	        {
	            Members.start_refresh_timer();
	        }
	    }
	},

	set_auto_refresh : function (state, seconds)
	{
		Members.auto_refresh = ((state == "true") ? true : false);
		Members.auto_refresh_seconds = Number(seconds);

		if (!Members.auto_refresh)
		{
			Members.cancel_refresh_timer();
		}
	},

	start_refresh_timer : function ()
	{
	    if ( Members.auto_refresh && Members.refresh_timer == null )
	    {
	        Members.refresh_timer = setTimeout( "Members.get_chatmodels(0);", (Members.auto_refresh_seconds*1000) );
	    }
	},

	cancel_refresh_timer : function ()
	{
	    if ( Members.refresh_timer != null )
	    {
	        clearTimeout( Members.refresh_timer );
			Members.refresh_timer = null;
	    }
	},

	account_status_results : function ( r , s )
	{
		Members.ajax_pending = false;

	    if ( s == 200 )
	    {
	        var res = $P.unserialize( $P.base64_decode( r ) );
	        $("#asr_message").html(res.message);
	        $("#asr_notes").html(res.notes);
	        $("#account_status_response").show("slow");
	        $("screen").attr("cursor", "default");

			if ( res.member_timezone )
			{
				$("#current_member_timezone").html(res.member_timezone);
			}
	    }

	    $("#div_chgpwd").hide("slow");
	    $("#span_chgpwd_label").html("change");
	    $("#div_managealerts").hide("slow");
	    $("#span_managealerts_label").html("manage");
		$("#div_timezone").hide("slow");
		$("#span_timezone_label").html("change");
	},

	change_password : function ()
	{
		if ( !Members.ajax_pending)
		{
		    $("screen").attr("cursor", "pointer");
		    var ajax = new oAjax( "http://"+location.host+"/members/ajax/chgpwd.php", Members.account_status_results );
		    var params = "curpwd="+$("#current_password").val()+"&new_pwd="+$("#new_password").val()+"&confirm_pwd="+$("#confirm_password").val();
		    ajax.update( params, "GET" );
			Members.ajax_pending = true;
		}
	},

	change_cellphone : function ()
	{
		if ( !Members.ajax_pending )
		{
		    $("screen").attr("cursor", "pointer");
		    var ajax = new oAjax( "http://"+location.host+"/members/ajax/cellphone.php", Members.cellphone_results );
		    var params = "member_cellphone="+$("#member_cellphone").val()+"&member_dial_prefix="+$("#member_dial_prefix").val()+"&verification_code="+$("#verification_code").val();
		    ajax.update( params, "GET" );
			Members.ajax_pending = true;
		}
	},

	cellphone_results : function ( r , s )
	{
		Members.ajax_pending = false;

	    if ( s == 200 )
	    {
	        var res = $P.unserialize( $P.base64_decode( r ) );
	        $("#asr_message").html(res.message);
	        $("#asr_notes").html(res.notes);
	        $("#account_status_response").show("slow");
	        $("screen").attr("cursor", "default");
	    }

		if ( res.changed )
		{
		   	$("#current_member_cellphone").html("");
			$("#member_verify_code").hide();

			if ( res.cellphone )
			{
		    	$("#current_member_cellphone").html("+"+res.prefix+" "+res.cellphone);
				$("#member_verify_code").show();
			}

			if (typeof res.cellphone != "undefined" && res.cellphone != "false" && res.cellphone != false )
			{
				$("#member_cellphone").val(res.cellphone);
			}

			if ( typeof res.code != "undefined" )
			{
				$("#verification_code").val(res.code);
			}
		}

		if (res.updated)
		{
			$("#ckbx_cellalerts_yes").attr("checked", true);
			$("#ckbx_cellphone_offers_yes").attr("checked", true);
		}

	    $("#div_cellphone").hide("show");
	    $("#span_cellphone_label").html("change");
	    $("#div_chgpwd").hide("slow");
	    $("#span_chgpwd_label").html("change");
	    $("#div_managealerts").hide("slow");
	    $("#span_managealerts_label").html("manage");
		$("#div_timezone").hide("slow");
		$("#span_timezone_label").html("change");
	},

	manage_alert_schedule : function ()
	{
		if ( !Members.ajax_pending )
		{
		    $("screen").attr("cursor", "pointer");
		    var ajax = new oAjax( "http://"+location.host+"/members/ajax/mngalerts.php", Members.account_status_results );
		    var params = "act=schedule";

			if ( $("#member_alert_always:checked").val() == "on" )
			{
				params += "&alert_type=always";
			}
			else
			{
				params += "&alert_type=schedule";
				params += "&alert_start_time="+$("#member_alert_start_time").val();
				params += "&alert_end_time="+$("#member_alert_end_time").val();
			}

			if ( $("#member_loggedin_alerts:checked").val() == "on" )
			{
		    	params += "&loggedin_alert=1";
			}
			else
			{
				params += "&loggedin_alert=0";
			}

		    ajax.update( params, "GET" );
			Members.ajax_pending = true;
		}
	},

	manage_alerts : function ()
	{
	    $("screen").attr("cursor", "pointer");

	    var input_checkboxes = document.getElementsByTagName( "input" );

	    if ( input_checkboxes.length > 0 )
	    {
	        alert_ids = "";

	        for ( i = 0; i < input_checkboxes.length; i++ )
	        {
	            if ( input_checkboxes[i].type == "checkbox" && input_checkboxes[i].checked && $P.substr(input_checkboxes[i].id, 0, 6) == "alert_" )
	            {
	                var parts = $P.explode( "_", input_checkboxes[i].id );
	                alert_ids += "&alert_ids[]="+parts[1];
	            }
	        }
	    }

	    if ( alert_ids != "" )
	    {
	    	if ( !Members.ajax_pending )
			{
		        var ajax = new oAjax( "http://"+location.host+"/members/ajax/mngalerts.php", Members.account_status_results );
		        var params = "act=del"+alert_ids;
		        ajax.update( params, "GET" );
				Members.ajax_pending = true;
			}
	    }
	    else
	    {
	        $("#asr_message").html("Manage Alerts ...");
	        $("#asr_notes").html("Please select a model that you wish to remove the alert on; then click the submit button!");
	        $("#account_status_response").show("slow");
	        $("screen").attr("cursor", "default");
	    }
	},

	optout : function ( setting_type, setting )
	{
		if (!Members.ajax_pending)
		{
		    $("screen").attr("cursor", "pointer");
		    var ajax = new oAjax( "http://"+location.host+"/members/ajax/mngalerts.php", Members.account_status_results );
		    var params = "act=email&type="+setting_type+"&setting="+setting;
		    ajax.update( params, "GET" );
			Members.ajax_pending = true;
		}
	},

	change_timezone : function ( )
	{
		if ( !Members.ajax_pending )
		{
		    $("screen").attr("cursor", "pointer");
		    var ajax = new oAjax( "http://"+location.host+"/members/ajax/timezone.php", Members.account_status_results );
		    var params = "member_timezone="+$("#member_timezone").val();
		    ajax.update( params, "GET" );
			Members.ajax_pending = true;
		}
	},

	request_new_code : function ()
	{
		if ( $("#member_cellphone").val() == "" )
		{
	        $("#asr_message").html("Manage Cellphone ...");
	        $("#asr_notes").html("Please enter a valid cellphone first then click submit!");
	        $("#account_status_response").show("slow");
	        $("screen").attr("cursor", "default");
			$("#member_cellphone").focus()
		}
		else if ( $("#member_dial_prefix").val() == 0 )
		{
	        $("#asr_message").html("Manage Cellphone ...");
	        $("#asr_notes").html("Please select your dial prefix first then click submit!");
	        $("#account_status_response").show("slow");
	        $("screen").attr("cursor", "default");
			$("#member_dial_prefix").focus()
		}
		else
		{
			if ( !Members.ajax_pending )
			{
			    $("screen").attr("cursor", "pointer");
			    var ajax = new oAjax( "http://"+location.host+"/members/ajax/cellphone.php", Members.account_status_results );
			    var params = "new_code=1";
			    ajax.update( params, "GET" );
				Members.ajax_pending = true;
			}
		}

	},

	load_new_alert : function ( model_id, model_username, onclose_callback )
	{
		if ( !Members.ajax_pending )
		{
			if ( onclose_callback != null )
			{
	        	Members.alerts_onclose_callback = onclose_callback;
			}

		    $("screen").attr("cursor", "pointer");
		    var ajax = new oAjax( "http://"+location.host+"/members/ajax/addalert.php", Members.alert_html );
		    var params = "load=1&model_id="+model_id+"&model_username="+model_username;
		    ajax.update( params, "GET" );
			Members.ajax_pending = true;
		}
	},

	close_new_alert : function()
	{
		if ($("#new_alert").is(":visible"))
		{
			$("screen").attr("cursor","default");

			if ( Members.alerts_onclose_callback != null )
			{
				$("#new_alert").toggle("fast", Members.alerts_onclose_callback(true) );
			}
			else
			{
				$("#new_alert").toggle("fast");
			}
		}
	},

	add_alert_action : function ( model_id, model_username, mode, send_new_code )
	{
		if ( !Members.ajax_pending )
		{
		    $("screen").attr("cursor", "pointer");
			$("#confirm_button").hide();
			$("#img_processing").attr("src", Members.wait_gif.src );
			$("#confirm_processing").show();
		    var ajax = new oAjax( "http://"+location.host+"/members/ajax/addalert.php", Members.alert_html );
		    var params = mode+"=1&model_id="+model_id+"&model_username="+model_username;

			if ( $("#member_dial_prefix").length )
			{
				params += "&member_dial_prefix="+$("#member_dial_prefix").val();
			}

			if ( $("#member_cellphone").length )
			{
				params += "&member_cellphone="+$("#member_cellphone").val();
			}

			if ( $("#verification_code").length )
			{
		    	params += "&verification_code="+$("#verification_code").val();
			}

			if ( send_new_code )
			{
		    	params += "&new_code=1";
			}

		    ajax.update( params, "GET" );
			Members.ajax_pending = true;
		}
	},

	alert_html : function( r, s )
	{
		Members.ajax_pending = false;
		if ( s == 200 )
		{
	    	$("#alert_html").html(r);
	 		$("#new_alert").fadeIn("slow");
		}
	},

	update_chat : function (model)
	{
		Members.update_chat_model = model;
		
		// refresh the page if the guest upgrade is visible
		swf_ele = document.getElementById( "chat_swf" );
		if ( swf_ele.className == "hidden" )
		{
			document.location = model.publicchat_url;
			return;
		}
		
		var ajax = new oAjax( "/members/ajax/gul.php", Members.gul );
		params = "model_id=" + model.id;
		ajax.update( params, "POST" );
		
		return true;
	},
	
	gul : function( r, s, p )
	{
		if ( s != 200 )
			return;
		
		explode = explodeParamStr( r );
		res = explode[ "res" ];
		
		if ( res == "1" )
		{
			document.location = Members.update_chat_model.publicchat_url;
			return;
		}
		
		var ajax = new oAjax( "/members/ajax/chat_limits.php", Members.chat_limits );
		ajax.update( null, "POST" );
	},
	
	chat_limits : function( r, s, p )
	{
		if ( s != 200 )
			return;

		explode = explodeParamStr( r );		
		url = urldecode( explode[ "url" ] );
		
		// if we got a negative result we have a URL to redirect them to
		if ( url != "" )
		{
			document.location = url;
			return;
		}
		
		// otherwise, we got a positive result and need to load the model into the swf and inject the recent info
		model = Members.update_chat_model;
		membersLoadNewModel(Number(model.id), model.username, Number(model.fake), model.sessionID, model.premiumchat_url, model.voyeurchat_url, model.premiumchat_full_url, model.addtofavorites_url);
		try
		{
			$("#id_public_chat_model").html(model.username);
			$("#id_public_chat_model_stuff").html(model.username);
			$("#id_send_message").attr("href", model.sendmsg_url);
			$("#id_send_message_img").attr("href", model.sendmsg_url);
			$("#id_recorded_shows").attr("href", model.recordedshows_url);
			$("#id_recorded_shows_img").attr("href", model.recordedshows_url);
			$("#id_photo_gallery").attr("href", model.photogallery_url);
			$("#id_photo_gallery_img").attr("href", model.photogallery_url);
			$("#id_model_profile").attr("href", model.profile_url);
			$("#id_model_profile_img").attr("href", model.profile_url);
	       	$("#id_model_add_alert").html(model.username);
			Members.close_new_alert();
		    var ajax = new oAjax("/members/ajax/resentshows.php", Members.chat_updated );
		    var params = "visited="+model.id+"&model="+model.id;
		    ajax.update( params, "GET" );
			Members.ajax_pending = true;
		}
		catch (e){alert(e);}		
	},

	chat_updated : function (r,s,p)
	{
		Members.ajax_pending = false;

    	if (s==200)
		{
			if (r == "success")
			{
				if (Members.recentshows_visible)
				{
		        	Members.get_recentshows(0, false);
				}
			}
			else
			{}
		}
	},

	update_roulette_model : function (model_id)
	{
		if (!Members.ajax_pending)
		{
			Members.ajax_pending = true;
		    var ajax = new oAjax( "http://"+location.host+"/members/ajax/chatmodels.php", Members.roulette_model_handler );
		    var params = "roulette_update=1&model_id="+model_id;
			ajax.update(params, "GET");
		}

		return (true);
	},

	roulette_model_handler : function (r, s, p)
	{
		Members.ajax_pending = false;

		if (s == 200)
		{
        	var model = eval($P.base64_decode(r));
			$("#id_public_chat_model").html(model.username);
			$("#id_public_chat_model_stuff").html(model.username);
			$("#id_send_message").attr("href", model.sendmsg_url);
			$("#id_send_message_img").attr("href", model.sendmsg_url);
			$("#id_recorded_shows").attr("href", model.recordedshows_url);
			$("#id_recorded_shows_img").attr("href", model.recordedshows_url);
			$("#id_photo_gallery").attr("href", model.photogallery_url);
			$("#id_photo_gallery_img").attr("href", model.photogallery_url);
			$("#id_model_profile").attr("href", model.profile_url);
			$("#id_model_profile_img").attr("href", model.profile_url);
	       	$("#id_model_add_alert").html(model.username);
			Members.close_new_alert();
		}
	},

	add_event : function ( obj, event, func )
	{
		if ( obj.addEventListener )
	    {
			return ( obj.addEventListener(event, func, false) );
		}
	    else if ( obj.attachEvent )
	    {
			return ( obj.attachEvent( 'on'+event, func ) )
		}
	    else
	    {
			return false
		}
	},

	reload_model_img : function (model_ptr)
	{
		var pattern = /showpic.php\?image=/g;
		if (Members.models[model_ptr].img_load_count < 512 && Members.models[model_ptr].thumb_url.match(pattern) != null)
		{
	        var tmp_image = new Image();
	        tmp_image.src = Members.models[model_ptr].thumb_url;
	        document.getElementById("id_model_photo_"+model_ptr).src = tmp_image.src;
			Members.models[model_ptr].img_load_count = Members.models[model_ptr].img_load_count + 1;
		}
		else
		{
        	Members.get_chatmodels(0);
		}
	},

	reload_recentshows_img : function (model_ptr)
	{
		var pattern = /showpic.php\?image=/g;
		if (Members.recent_shows[model_ptr].img_load_count < 512 && Members.recent_shows[model_ptr].thumb_url.match(pattern) != null)
		{
	        var tmp_image = new Image();
	        tmp_image.src = Members.recent_shows[model_ptr].thumb_url;
	        document.getElementById("id_model_photo_"+model_ptr).src = tmp_image.src;
			Members.recent_shows[model_ptr].img_load_count = Members.recent_shows[model_ptr].img_load_count + 1;
		}
		else
		{
			Members.get_recentshows(0);
		}
	},

	get_recentshows : function (page_no, use_cache, clear_list)
	{
		if ( !Members.ajax_pending )
		{
			if (page_no == null)
			{
				page_no = 0;
			}

			if (use_cache == null)
			{
				use_cache = true;
			}

			if (clear_list == null)
			{
				clear_list = false;
			}
			
			if ($("#id_sort_recentshows:checked").val())
			{
				Members.recentshows_sorted = true;
			}
			else
			{
				Members.recentshows_sorted = false;
			}

			if (clear_list)
			{
				if (confirm("Are you sure you want to clear the Recently Visited Models list?"))
				{
					use_cache = false;
					Members.recentshows_page_no = 1;
					page_no = 0;
				}
				else
				{
					clear_list = false;
				}
			}
			
			$("#id_recentshows_close_flag").show();
			$("#id_recentshows_main").show();
			$("#id_recentshows_open_flag").hide();
			$("#id_sort_recentlyvisited").show();
            Members.recentshows_visible = true;

		    $("#id_recentshows_div" ).hide();
		    $("#id_loading_recentshows").show();
            $("#id_recentshows_left").hide();
            $("#id_recentshows_right").hide();

		    if (page_no == 0)
		    {
		        document.getElementById( "id_refresh_recentshows" ).innerHTML = "Refreshing Recent Shows ...";
		    	var load_page = Members.recentshows_page_no;
		    }
		    else
		    {
		        document.getElementById( "id_refresh_recentshows" ).innerHTML = "Loading Recent Shows ...";
		    	var load_page = Members.recentshows_page_no + page_no;
		    }

		    var ajax = new oAjax("/members/ajax/resentshows.php", Members.put_recentshows );
		    var params = "page="+load_page;

			if (!use_cache)
			{
				params += "&nocache=1";
			}

			if (clear_list)
			{
				params += "&clear=1";
			}

			if (Members.recentshows_sorted)
			{
				params += "&sorted=1";
			}
			
		    ajax.update( params, "GET" );
			Members.ajax_pending = true;
		}
	},

	put_recentshows : function ( r, s, t )
	{
		Members.ajax_pending = false;

	    if ( s == 200 )
	    {
	        var ret_vals = $P.unserialize( $P.base64_decode( r ) );
			Members.ret_vals = ret_vals;
			Members.set_auto_refresh(ret_vals.auto_refresh, ret_vals.auto_refresh_seconds);
			Members.recent_shows = eval(ret_vals.recent_shows);
			Members.recentshows_page_no = Number(ret_vals.recentshows_page_no);
			Members.recentshows_prevpage = Number(ret_vals.recentshows_prevpage);
			Members.recentshows_nextpage = Number(ret_vals.recentshows_nextpage);
			Members.recentshows_total_pages = Number(ret_vals.recentshows_total_pages);

	        $("#id_loading_recentshows").hide();
	        $("#id_recentshows_div").show().html(ret_vals.recent_shows_html);

	        if (Members.recentshows_total_pages > 1)
	        {
		        if (Members.recentshows_page_no > 1)
		        {
		            $( "#id_recentshows_left" ).show();
		        }
		        else
		        {
		            $( "#id_recentshows_left" ).hide();
		        }

		        if (Members.recentshows_page_no < Members.recentshows_total_pages)
		        {
		            $( "#id_recentshows_right" ).show();
		        }
		        else
		        {
		            $( "#id_recentshows_right" ).hide();
		        }
	        }
        
	    }
	},

	hide_recentshows : function ()
	{
	    var ajax = new oAjax("http://"+location.host+"/members/ajax/resentshows.php", Members.res_dummy );
	    var params = "hide=1";
	    ajax.update( params, "GET" );
		Members.ajax_pending = true;
		$("#id_recentshows_close_flag").hide();
		$("#id_recentshows_main").hide();
		$("#id_recentshows_open_flag").show();
		$("#id_sort_recentlyvisited").show();
		Members.recentshows_visible = false;
	},
	
	toggle_guest_upgrade : function( show, photo_url )	
	{
		Members.guest_upgrade_show = show;
		Members.guest_upgrade_photo_url = photo_url;
		Members.guest_upgrade_img = new Image();		
		Members.guest_upgrade_img.onload = Members.guest_upgrade_photo_loaded;
		Members.guest_upgrade_img.onerror = Members.guest_upgrade_photo_loaded;
		Members.guest_upgrade_img.src = photo_url;
	},
	
	guest_upgrade_photo_loaded : function()
	{
		img_ele = document.getElementById( "guest_upgrade_photo" );
		img_ele.src = Members.guest_upgrade_img.src;
		
		swf_ele = document.getElementById( "chat_swf" );
		upgrade_ele = document.getElementById( "guest_upgrade" );
		
		swf_ele.className = ( Members.guest_upgrade_show ) ? ( "hidden" ) : ( "visible" );
		upgrade_ele.className = ( Members.guest_upgrade_show ) ? ( "visible" ) : ( "hidden" );		
	},
	
	load_fan_club_form : function( model_id, model_username, callback )
	{
	    $("screen").attr("cursor", "pointer");
	    Members.close_fan_club_callback = callback;
	    var ajax = new oAjax( "http://"+location.host+"/members/ajax/fan_club_fetch_form.php", Members.load_fan_club_result );
	    var params = "model_id="+model_id+"&model_username="+model_username;
	    ajax.update( params, "GET" );
	},
	
	load_fan_club_result : function( response, status )
	{
		if ( status == 200 )
		{
	    	$("#fan_club_html").html( response );
	 		$("#fan_club").fadeIn( "slow" );
		}		
	},
	
	close_new_fan_club : function()
	{
		if ($("#fan_club").is(":visible"))
		{
			$("screen").attr("cursor","default");
			$("#fan_club").toggle("fast", Members.close_fan_club_callback);
		}		
	},
	
	join_fan_club : function( model_id, callback )
	{
		Members.join_fan_club_callback = callback;
		
	    $("screen").attr("cursor", "pointer");
	    var ajax = new oAjax( "http://"+location.host+"/members/ajax/fan_club_join.php", Members.join_fan_club_result );
	    var params = "model_id=" + model_id;
	    ajax.update( params, "GET" );
	},
	
	join_fan_club_result : function( response, status )
	{
		e = explodeParamStr( response );
		html = urldecode( e[ "html" ] );
		fan_count = e[ "fan_count" ];
		res = e[ "res" ];
		model_id = e[ "model_id" ];
		model_username = e[ "model_username" ];
		
		$("#fan_count").html( fan_count );
		$("#join_fan_club_result").html( html );
		
		if ( Members.join_fan_club_callback != null )
		{
			eval( Members.join_fan_club_callback + "( " + res + "," + model_id + ",'" + model_username + "'" + ");" );
		}
	},
	
	join_fan_club_def_callback : function( res, model_id, model_username )
	{
		msg = "";
		if ( res )
			msg = "You have joined " + model_username + "'s fan club!";
		else
			msg = "You're already a fan of " + model_username + ".";

		alert( msg );		
	}
}