var Members = {
    site_version : "wcc1",
    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,
	more_chatmodels_img : null,
	less_chatmodels_img : null,
	chatmodels_flag : null,
    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,
    add_alert_from_swf : false,
    billing_type : null,
    watch_show_width : 680,
    watch_show_height: 550,
    calls_count : null,
    calls_set : null,
    refresh_online_timer : null,
    auto_refresh_onlinegirls : null,
    model_id : null,
    rendering_profile : false,

	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";
	                oNewColModelName.style.width = "20%";

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

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

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

	                new_col_tip.className =  "acctset_table_cell_data";
	                new_col_tip.style.width = "10%";

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

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

	                var video_col = oNewRow.insertCell( 6 );
	                video_col.innerHTML = shows_list[ x ].video_html;
	                video_col.className = "acctset_table_cell_data";
	                video_col.style.width = "20%";
	               
					x++;
	            }
	        }

	        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_p2pcallhistory : 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 Calls ...";
		    var ajax = new oAjax("http://"+location.host+"/members/ajax/p2pcallhistory.php", Members.put_p2pcallhistory );
		    var params = "calls_set="+Members.calls_set;
		    ajax.update(params, "GET");
			Members.ajax_pending = true;
		}
	},

	put_p2pcallhistory : 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_p2phistory" );
	            var calls_list = ret_vals.history;
	            x = 0;

	            for ( var call_data in calls_list )
	            {
	                var NumRows = oTable.rows.length;
	                var oNewRow = oTable.insertRow(NumRows);

	                var oNewColstart_time = oNewRow.insertCell(0);
	                oNewColstart_time.innerHTML = calls_list[x].start_time;
	                oNewColstart_time.className = "acctset_table_cell_data";
	                oNewColstart_time.style.width = "120px";
                    oNewColstart_time.style.whiteSpace = "nowrap";

	                var oNewColto = oNewRow.insertCell(1);
	                oNewColto.innerHTML = calls_list[x].to;
	                oNewColto.className = "acctset_table_cell_data";
	                oNewColto.style.width = "110px";
                    oNewColto.style.whiteSpace = "nowrap";

	                var oNewColmodel_username = oNewRow.insertCell(2);
	                oNewColmodel_username.innerHTML = calls_list[x].model_username;
	                oNewColmodel_username.className =  "acctset_table_cell_data";
	                oNewColmodel_username.style.width = "195px";
                    oNewColmodel_username.style.whiteSpace = "nowrap";

	                var new_colrate = oNewRow.insertCell(3);
	                new_colrate.innerHTML = calls_list[x].rate;
	                new_colrate.className =  "acctset_table_cell_data";
	                new_colrate.style.width = "40px";
                    new_colrate.style.whiteSpace = "nowrap";

	                var new_colminutesElapsed = oNewRow.insertCell(4);
	                new_colminutesElapsed.innerHTML = calls_list[x].minutesElapsed;
	                new_colminutesElapsed.className =  "acctset_table_cell_data";
	                new_colminutesElapsed.style.width = "40px";
                    new_colminutesElapsed.style.whiteSpace = "nowrap";

	                var oNewColamount = oNewRow.insertCell(5);
	                oNewColamount.innerHTML = calls_list[x].amount;
	                oNewColamount.className = "acctset_table_cell_data";
	                oNewColamount.style.width = "40px";
                    oNewColamount.style.whiteSpace = "nowrap";

					x++;
	            }
	        }

	        if ( ret_vals.more_calls )
	        {
	            var o = document.getElementById( "url_get_more_calls" );
	            o.innerHTML = "<span onclick='Members.get_p2pcallhistory();' class='l2'>Next 5 Calls <img src='"+Members.images_url+"/members/down-arrow.gif' border='0' /></span>";
	            Members.calls_set ++;
	        }
	        else
	        {
	            document.getElementById( "url_get_more_calls" ).innerHTML = "<span>Displaying All " + Members.calls_count + " Calls!</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);

			$("#id_chatmodels_div").html( ret_vals.html );
			
	        $("#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;
		}
	},

    lowCreditAlert : function ( 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=lowCreditAlert&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, from_chat_swf )
	{
		if ( from_chat_swf == null || typeof from_chat_swf == "undefined" )
			from_chat_swf = false;

		Members.add_alert_from_swf = from_chat_swf;

		if ( !Members.ajax_pending )
		{
			if ( onclose_callback != null )
			{
	        	Members.alerts_onclose_callback = onclose_callback;
			}

			if ( Members.add_alert_from_swf )
			{
				$("#alert_html_bg").removeClass("hidden").addClass("visible").addClass("swf_cell_alert_bg");
				$("#new_alert").removeClass("hidden").addClass("visible").addClass("swf_cell_alert");
			    $("#alert_html").attr("z-index", "5005");
			}

		    $("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");
			}

			if ( Members.add_alert_from_swf )
			{
				$("#alert_html_bg").removeClass("visible").addClass("hidden");
				$("#new_alert").removeClass("visible").addClass("hidden");
			}
		}
	},

	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").show();

            if (Members.site_version == "wcc2")
                $("#member_dial_prefix").dropdown({width:235,displayedItems:10});
		}
	},
	
	// called from javascript
	js_load_model : function( model_id )
	{
		var ajax = new oAjax( "/members/ajax/load_model_info.php", Members.js_load_model_result );
		params = "model_id=" + model_id;
		ajax.update( params, "POST" );		
	},
	
	js_load_model_result : function( r, s, p )
	{
		if ( s != 200 )
			return;
		
		model = explodeParamStr( r );
		model.js_load_model = true;
		model.document = parent.document;
		
		membersLoadNewModel( model.id, model.username, null, null, null, null, null, null, model.document );
		
		Members.update_chat( model );
	},

	// can be called directly from a swf or from js_load_model
	update_chat : function (model)
	{
		if ( !model.document )
			model.document = document;
		
		Members.update_chat_model = model;

        if ( Members.site_version == "wcc2" )
        {
            Members.render_chat_model_info();
        }

		doc_window = ( "defaultView" in model.document ) ? model.document.defaultView : model.document.parentWindow;
		doc_window.cur_model_id = model.id;
        Members.model_id = model.id;
		doc_window.cur_model_username = model.username;

		// refresh the page if the guest upgrade is visible
		swf_ele = model.document.getElementById( "chat_swf" );
		if ( swf_ele.className == "hidden" )
		{
			model.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" )
		{
			Members.update_chat_model.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 != "" )
		{
			Members.update_chat_model.document.location = url;
			return;
		}

		model = Members.update_chat_model;

		try
		{
			if ( Members.update_chat_model.document.getElementById( "id_public_chat_model_stuff" ) )
			{
				Members.update_chat_model.document.getElementById( "id_public_chat_model_stuff" ).innerHTML = urldecode( model.username );
				Members.update_chat_model.document.getElementById( "id_send_message" ).href = urldecode( model.sendmsg_url );
				Members.update_chat_model.document.getElementById( "id_send_message_img" ).href = urldecode( model.sendmsg_url );
				
				if ( Members.update_chat_model.document.getElementById( "id_recorded_shows" ) )
				{
					Members.update_chat_model.document.getElementById( "id_recorded_shows" ).href = urldecode( model.recordedshows_url );
					Members.update_chat_model.document.getElementById( "id_recorded_shows_img" ).href = urldecode( model.recordedshows_url );
				}
				
				Members.update_chat_model.document.getElementById( "id_photo_gallery" ).href = urldecode( model.photogallery_url );
				Members.update_chat_model.document.getElementById( "id_photo_gallery_img" ).href = urldecode( model.photogallery_url );
				Members.update_chat_model.document.getElementById( "id_model_profile" ).href = urldecode( model.profile_url );
				Members.update_chat_model.document.getElementById( "id_model_profile_img" ).href = urldecode( model.profile_url );
				Members.update_chat_model.document.getElementById( "id_model_status_updates" ).href = urldecode( model.status_updates_url );
				Members.update_chat_model.document.getElementById( "id_model_status_updates_img" ).href = urldecode( model.status_updates_url );

				if ( Members.update_chat_model.document.getElementById( "id_model_add_alert" ) )
					Members.update_chat_model.document.getElementById( "id_model_add_alert" ).innerHTML = urldecode( 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
			{}
		}
	},

    render_chat_model_info : function ()
    {
        if ( !Members.ajax_pending )
        {
    	    var ajax = new oAjax("/members/ajax/chat_model_profile_info.php", Members.show_chat_model_info );
    	    var params = "model_id="+Members.update_chat_model.id;
    	    ajax.update( params, "GET" );
    		Members.ajax_pending = true;
        }
        else
        {
            setTimeout("Members.render_chat_model_info();", 250);
        }
    },

    show_chat_model_info : function ( r, s, p )
    {
        if ( s == 200 )
        {
            Members.ajax_pending = false;
            Members.update_chat_model.document.getElementById( "cmp_model_profile_info" ).innerHTML = r;
        }
    },

	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
		}
	},
	
	hide_private_stuff : function()
	{
		ele = document.getElementById( "private_stuff" );
		ele.className = "hidden";
	},

	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.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 );
	},

	more_chatmodels : function ()
	{
 		if ( !Members.ajax_pending )
		{
		    Members.cancel_refresh_timer();

			if (Members.chatmodels_flag == "more")
			{
				Members.chatmodels_flag = "less";
			}
			else
			{
				Members.chatmodels_flag = "more";
			}

			var params = "resize=1&render="+Members.chatmodels_flag+"&browserClientWidth="+browserClientWidth();
    		var ajax = new oAjax(location.protocol+"//"+location.hostname+"/members/ajax/chatmodels.php", Members.render_chatmodels, null, "application/x-www-form-urlencoded")
			ajax.update(params, "GET");
			Members.ajax_pending = true;
		}
	},

	render_chatmodels : function (r,s)
	{
		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);

			if (Members.chatmodels_flag == "more")
			{
				document.getElementById("id_moremodels_text").innerHTML = "Less Models";
				document.getElementById("id_moremodels_img").src = Members.less_chatmodels_img.src;
				document.getElementById("id_more_chatmodels").style.height= "415px";
				document.getElementById("id_chatmodels_container").style.height= "410px";
				document.getElementById("id_chatmodels_div").style.height= "410px";
				document.getElementById("id_chatmodels_main_table").style.width = ret_vals.chatmodels_main_table_width+"px";
				document.getElementById("id_loadingmodels").style.paddingTop = "145px";
				document.getElementById("id_loadingmodels").style.paddingBottom = "117px";
			}
			else
			{
				document.getElementById("id_moremodels_text").innerHTML = "More Models";
				document.getElementById("id_moremodels_img").src = Members.more_chatmodels_img.src;
				document.getElementById("id_more_chatmodels").style.height= "300px";
				document.getElementById("id_chatmodels_container").style.height= "295px";
				document.getElementById("id_chatmodels_div").style.height= "295px";
				document.getElementById("id_chatmodels_main_table").style.width = "768px";
				document.getElementById("id_loadingmodels").style.paddingTop = "200px";
				document.getElementById("id_loadingmodels").style.paddingBottom = "190px";
			}

			document.getElementById("id_more_chatmodels").innerHTML = ret_vals.html;

	        if ( Members.auto_refresh )
	        {
	            Members.get_chatmodels(0);
	        }
		}
	},
	
	guest_join_popup : function( open, is_default, join_page_url, model_id )
	{
	    if (Members.site_version == "wcc2")
        {
            Members.popup_offer_open(model_id);
            return;
        }
		// redirect to non default join page if specified
		if ( !is_default )
		{
			window.location = join_page_url;
			return;
		}

		// we are closing the popup
		if ( !open )
		{
			document.getElementById( "guest_join_popup_bg" ).className = "guest_join_popup_bg hidden";
			document.getElementById( "guest_join_popup" ).className = "guest_join_popup hidden";

			getMovieName( "movie" ).guest_join_popup_reset();

			return;
		}

   		// we are opening the default popup
   		var params = "model_id=" + model_id;
   		var ajax = new oAjax( location.protocol+"//"+location.hostname+"/members/ajax/guest_join_popup.php", Members.guest_join_popup_callback, null, "application/x-www-form-urlencoded" )
   		ajax.update( params, "GET" );
	},

	guest_join_popup_callback : function( response, code )
	{
		gjp = document.getElementById( "guest_join_popup" );
		gjp.innerHTML = response;

		document.getElementById( "guest_join_popup_bg" ).className = "guest_join_popup_bg visible";
		gjp.className = "guest_join_popup visible";

		div = document.getElementById( "guest_join_popup_div" );
		viewport = get_viewport();

		popup_width = parseInt( div.style.width );
		popup_height = parseInt( div.style.height );
		popup_x = parseInt( ( viewport[ "width" ] - popup_width ) / 2 );
		popup_y = parseInt( ( viewport[ "height" ] - popup_height ) / 2 ) - 75;

		gjp.style.left = popup_x + "px";
		gjp.style.top = popup_y + "px";

		site_images = location.protocol+"//"+location.hostname + "/images/wcc1";

		if ( Members.site_version == "wcc2" )
        {
			site_images = location.protocol+"//"+location.hostname+"/images/wcc2/global";
		    wccJoin.initialize(site_images+"/icons/checking.gif", site_images+"/icons/tick.png", site_images+"/icons/cross.png", site_images+"/wait.gif", 3000, false, false);
		    wccJoin.add_element( { column_name : "Username" , input_id : "id_uname" , validate_message : "checking availability ..."    , value: "" } );
		  	wccJoin.add_element( { column_name : "Password" , input_id : "id_pwd"   , validate_message : "validating password ..."      , value: "" } );
		    wccJoin.add_element( { column_name : "Email"    , input_id : "id_email" , validate_message : "validating email address ..." , value: "" } );
			$("#id_birthday_Month").dropdown(  { width: 115, displayedItems: 10 } );
			$("#id_birthday_Day").dropdown( { width: 70, displayedItems: 10 } );
			$("#id_birthday_Year").dropdown( { width: 80, displayedItems: 10  });
			$("#id_country").dropdown( { width: 280, displayedItems: 10 } );
        }
        else
        {
       		Members.guest_join_popup_interval = setInterval( "Members.guest_join_popup_find_photo();", 250 );
       		site_images = location.protocol+"//"+location.hostname+"/images/wcc1";
    		wccJoin.initialize( site_images+"/checking.gif", site_images+"/valid.png", site_images+"/invalid.png", site_images+"/site/misc/wait.gif" );
    		wccJoin.add_element( { column_name : "Username" ,       input_id : "uname" ,   label_id : "lbl_uname" ,   message_id : "msg_uname" ,   image_id : "img_uname" ,   message : "Username can only contain letters and numbers", update_message : "checking availability ..."     , msg_row : "msg_row_new_username" } );
    		wccJoin.add_element( { column_name : "Password" ,       input_id : "pwd" ,     label_id : "lbl_pwd" ,     message_id : "msg_pwd" ,     image_id : "img_pwd" ,     message : "",                                              update_message : "validating password ..."       , msg_row : "msg_row_new_pwd" } );
    		wccJoin.add_element( { column_name : "Email" ,          input_id : "email" ,   label_id : "lbl_email" ,   message_id : "msg_email" ,   image_id : "img_email" ,   message : "A valid email is required to login",            update_message : "validating email address ..."  , msg_row : "msg_row_email"  } );
    		wccJoin.add_element( { column_name : "Confirm email" ,  input_id : "cemail" ,  label_id : "lbl_cemail" ,  message_id : "msg_cemail" ,  image_id : "img_cemail" ,  message : "Type your Email again to confirm",              update_message : "comparing email addresses ..." , msg_row : "msg_row_cemail"  } );
    		wccJoin.add_element( { column_name : "Country" ,        input_id : "country" , label_id : "lbl_country" , message_id : "msg_country" , image_id : "img_country" , message : "",                                              update_message : ""                              , msg_row : "msg_row_country"  } );
        }
	},

	guest_join_popup_find_photo : function()
	{
		ele = document.getElementById( "guest_popup_photo" );
		if ( ele && ele.complete )
		{
			clearInterval( Members.guest_join_popup_interval );

			if( window.addEventListener )
				addInstant();
			else
				addIEInstant();
		}
	},
	
	free_popup : function( open, model_id )
	{
		if ( !open )
		{
			document.getElementById( "free_popup_bg" ).className = "free_popup_bg hidden";
			document.getElementById( "free_popup" ).className = "free_popup hidden";
			
			getMovieName( "movie" ).free_popup_reset();

			return;
		}

		var params = "model_id=" + model_id;
		var ajax = new oAjax( location.protocol+"//"+location.hostname+"/members/ajax/free_popup.php", Members.free_popup_callback, null, "application/x-www-form-urlencoded" )
		ajax.update( params, "GET" );		
	},
	
	free_popup_callback : function( response, code )
	{
		fp = document.getElementById( "free_popup" );
		fp.innerHTML = response;
		
		popup_width = parseInt( document.getElementById( "free_popup_div" ).style.width );
		popup_height = parseInt( document.getElementById( "free_popup_div" ).style.height );
		
		viewport = get_viewport();
		
		popup_x = parseInt( ( viewport[ "width" ] - popup_width ) / 2 );
		popup_y = parseInt( ( viewport[ "height" ] - popup_height ) / 2 );
		
		document.getElementById( "free_popup_bg" ).className = "free_popup_bg visible";
		fp.className = "free_popup_" + Members.billing_type + " visible";
		fp.style.left = popup_x + "px";
		fp.style.top = popup_y + "px";
		
		Members.free_popup_interval = setInterval( "Members.free_popup_find_photo();", 250 );
	},
	
	free_popup_find_photo : function()
	{
		ele = document.getElementById( "free_popup_photo" );
		if ( ele && ele.complete )
		{
			clearInterval( Members.free_popup_interval );
			
			if( window.addEventListener )
				addInstant();
			else
				addIEInstant();
		}
	},
	
	ccjPop : function ( from_swf )
	{
		ccjReg( true );
	},
	
	open_purchase_show_interface : function( show_id )
	{
		var params = "show_id=" + show_id;
		var ajax = new oAjax( location.protocol+"//"+location.hostname+"/members/ajax/purchase_show_interface.php", Members.open_purchase_show_interface_callback, null, "application/x-www-form-urlencoded" )
		ajax.update( params, "GET" );
	},
	
	open_purchase_show_interface_callback : function( response, code )
	{
		doc_ele = document.getElementById( "purchase_show_interface" );
		doc_ele.innerHTML = response;
		doc_ele.className = "visible purchase_show_interface";
		
		ele = document.getElementById( "purchase_show_interface_div" );
		popup_width = parseInt( ele.style.width );
		popup_height = parseInt( ele.style.height );
		
		viewport = get_viewport();
		
		popup_x = parseInt( ( viewport[ "width" ] - popup_width ) / 2 );
		popup_y = parseInt( ( viewport[ "height" ] - popup_height ) / 2 );
		
		document.getElementById( "purchase_show_interface_bg" ).className = "visible darken";
		doc_ele.style.left = popup_x + "px";
		doc_ele.style.top = popup_y + "px";
	},
	
	close_purchase_show_interface : function()
	{
		document.getElementById( "purchase_show_interface_bg" ).className = "hidden";
		document.getElementById( "purchase_show_interface" ).className = "hidden";
	},
	
	purchase_show : function( show_id, purchase_type, div_suffix, from )
	{
		var msg = "Click OK to purchase.";
		var res = confirm( msg );
		if ( !res )
			return;

		if ( div_suffix == null )
			div_suffix = "";
		
		document.getElementById( "purchase_show_success" + div_suffix ).className = "hidden";
		document.getElementById( "purchase_show_failure" + div_suffix ).className = "hidden";
		document.getElementById( "purchase_show_options" + div_suffix ).className = "hidden";
		document.getElementById( "purchase_show_processing" + div_suffix ).className = "visible";
		
		var params = "show_id=" + show_id + "&purchase_type=" + purchase_type + "&div_suffix=" + div_suffix + "&from=" + from;
		var ajax = new oAjax( "/members/ajax/purchase_show.php", Members.purchase_show_callback )
		ajax.update( params, "POST" );			
	},
	
	purchase_show_callback : function( response, code )
	{
		res = $P.json_decode( response );
		div_suffix = res[ "div_suffix" ];
		success = res[ "res" ];
		
		document.getElementById( "purchase_show_processing" + div_suffix ).className = "hidden";
		if ( success )
		{
			document.getElementById( "purchase_show_success" + div_suffix ).className = "visible";
			purchased_div = document.getElementById( "purchased_show_watch_div" + div_suffix );
			if ( purchased_div )
				purchased_div.innerHTML = "<a href=\"#\" onClick=\"OpenPopup( '" + res[ "popup_url" ] + "', Members.watch_show_width, Members.watch_show_height ); return false;\" class=\"l2\">click here</a>";
		}
		else
		{
			failure_div = document.getElementById( "purchase_show_failure" + div_suffix );
			failure_div.innerHTML = "<font style='color: #ff0000; font-family: tahoma; font-size: 12px;'>Your purchase has failed.  Please review the following error message and try again.<br><br><b>Error Message:</b> " + res[ "error_msg" ] + "</font>";
			failure_div.className = "visible";
			
			document.getElementById( "purchase_show_options" + div_suffix ).className = "visible";
		}
	},
	
	watch_show : function( url, video_id )
	{
		name = "myvideo" + video_id;
		OpenWindow( url, name, Members.watch_show_width, Members.watch_show_height, true, null );
	},
	
	open_popover_unbought_shows : function()
	{
		var params = "";
		var ajax = new oAjax( location.protocol+"//"+location.hostname+"/members/ajax/popover_unbought_shows.php", Members.open_popover_unbought_shows_callback, null, "application/x-www-form-urlencoded" )
		
		ajax_queue.add( ajax, params, "GET" );
	},

	open_popover_unbought_shows_callback : function( response, code )
	{
		if ( code != 200 )
			return;
		
		vars = explodeParamStr( response );
		res = vars[ "res" ];
		error_code = vars[ "error_code" ];
		
		if ( res == "0" )
			return;
		
		html = urldecode( vars[ "html_encoded" ] );
		
		ele = document.getElementById( "popover" );
		ele.innerHTML = html;
		
		ele_div = document.getElementById( "popover_unbought_shows_div" );
		width = parseInt( ele_div.style.width );
		height = parseInt( ele_div.style.height );
		
		viewport = get_viewport();
		
		x = ( viewport[ "width" ] - width ) / 2;
		y = 54;
		
		ele.style.left = x + "px";
		ele.style.top = y + "px";
		ele.className = "popover visible";
		
		bg_ele = document.getElementById( "popover_bg" );
		bg_ele.className = "darken visible";
	},

	close_popover_unbought_shows : function()
	{
		ele = document.getElementById( "popover" );
		bg_ele = document.getElementById( "popover_bg" );
		
		ele.className = "hidden";
		bg_ele.className = "hidden";
	},
	
	open_popover : function()
	{
		var params = "";
		var ajax = new oAjax( location.protocol+"//"+location.hostname+"/members/ajax/popover.php", Members.open_popover_callback, null, "application/x-www-form-urlencoded" );
		
		ajax_queue.add( ajax, params, "GET" );
	},

	open_popover_callback : function( response, code )
	{
		if ( code != 200 )
			return;
		
		vars = explodeParamStr( response );
		res = vars[ "res" ];
		error_code = vars[ "error_code" ];
		
		if ( res == "0" )
			return;
		
		html = urldecode( vars[ "html_encoded" ] );
		
		ele = document.getElementById( "popover" );
		ele.innerHTML = html;

		ele_div = document.getElementById( "popover_div" );
		width = parseInt( ele_div.style.width );
		height = parseInt( ele_div.style.height );
		
		viewport = get_viewport();
		
		x = ( viewport[ "width" ] - width ) / 2;
		y = ( viewport[ "height" ] - height ) / 2;
		
		ele.style.left = x + "px";
		ele.style.top = y + "px";
		ele.className = "popover visible";
		
		bg_ele = document.getElementById( "popover_bg" );
		bg_ele.className = "darken visible";
	},

	close_popover : function()
	{
		ele = document.getElementById( "popover" );
		bg_ele = document.getElementById( "popover_bg" );
		
		ele.className = "hidden";
		bg_ele.className = "hidden";
	},

    refresh_online : function ()
    {
        if ( Members.refresh_online_timer != null )
        {
            clearTimeout( Members.refresh_online_timer );
            Members.refresh_online_timer = null;
        }

        var params = $P.base64_encode( "ajax=1" );
        var ajax = new oAjax( "/index.php", Members.refresh_online_handler );
        ajax.update( params, "GET" );
    },

    refresh_online_handler : function ( html, status, p )
    {
        if ( status == 200 )
        {
            document.getElementById( "modelsgrid" ).innerHTML = html;
            Members.refresh_online_timer = setTimeout( "Members.refresh_online();", Members.auto_refresh_onlinegirls );
        }
    },

	popup_offer_open : function( model_id )
	{
		if (document.getElementById( "popup_offer" ) == null && document.getElementById( "popup_offer_bg" ) == null)
        {
            if ( model_id == null )
                model_id = Members.model_id;

       		// we are opening the default popup
            var params = "";
            if ( model_id != null )
           		var params = "model_id=" + model_id;

       		var ajax = new oAjax( location.protocol+"//"+location.hostname+"/members/ajax/popup_offer.php", Members.popup_offer_handler, null, "application/x-www-form-urlencoded" )
       		ajax.update( params, "GET" );
        }
	},

    popup_offer_close : function ()
    {
        if (typeof popupTextFlasher != "undefined" && typeof popupTextFlasher != null)
            popupTextFlasher.flashOff();

		po = document.getElementById( "popup_offer" );
        if (po != null)
        {
            po.className = "hidden";
            po.innerHTML = "";
            window.parent.document.getElementById("popup_offer").parentNode.removeChild(window.parent.document.getElementById("popup_offer"));
        }
		pobg = document.getElementById( "popup_offer_bg" );
        if (pobg != null)
        {
            pobg.className = "hidden";
            window.parent.document.getElementById("popup_offer_bg").parentNode.removeChild(window.parent.document.getElementById("popup_offer_bg"));
        }

        try
        {
			getMovieName( "movie" ).guest_join_popup_reset();
        } catch(e){}

		return;
    },

	popup_offer_handler : function( html, status )
	{
	    pjobg = document.createElement("div");
        pjobg.setAttribute("id", "popup_offer_bg");
        document.body.appendChild(pjobg);

	    pjo = document.createElement("div");
        pjo.setAttribute("id", "popup_offer");
        pjo.innerHTML = html;
        document.body.appendChild(pjo);

		viewport = get_viewport();
		pjo.style.left = parseInt( ( viewport[ "width" ] - parseInt( $("#popup_offer_div").width() ) ) / 2 ) + "px";
		pjo.style.top = parseInt( ( viewport[ "height" ] - parseInt( $("#popup_offer_div").height() ) ) / 2 ) + "px";

		site_images = location.protocol+"//"+location.hostname+"/images/wcc2/global";
	    wccJoin.initialize(site_images+"/icons/checking.gif", site_images+"/icons/tick.png", site_images+"/icons/cross.png", site_images+"/wait.gif", 3000, false, false);
	    wccJoin.add_element( { column_name : "Username" , input_id : "id_uname" , validate_message : "checking availability ..."    , value: "" } );
	  	wccJoin.add_element( { column_name : "Password" , input_id : "id_pwd"   , validate_message : "validating password ..."      , value: "" } );
	    wccJoin.add_element( { column_name : "Email"    , input_id : "id_email" , validate_message : "validating email address ..." , value: "" } );
		$("#id_birthday_Month").dropdown(  { width: 115, displayedItems: 10 } );
		$("#id_birthday_Day").dropdown( { width: 70, displayedItems: 10 } );
		$("#id_birthday_Year").dropdown( { width: 80, displayedItems: 10  });
		$("#id_country").dropdown( { width: 280, displayedItems: 10 } );
        findPopUps();
	},

    model_profile : function ( label, page_id )
    {
        $("#profile_bar_label").html(label);

   		// we are opening the default popup
   		var params = "model_id=" + Members.model_id;
   		params += "&page_id=" + page_id;

   		var ajax = new oAjax( location.protocol+"//"+location.hostname+"/members/ajax/model_profile.php", Members.model_profile_handler, null, "application/x-www-form-urlencoded" )
   		ajax.update( params, "GET" );
        Members.rendering_profile = true;
    },

    model_profile_handler : function ( html, status )
    {
        if ( status == 200 )
        {
            $("#cmp_pinfo").html(html);
            setTimeout( "Members.rendering_profile = false;", 10000 );
        }
    },

    scrollToElem : function ( elem )
    {
    	pos = get_ele_position( elem );
       	window.scrollTo( 0, pos[ 1 ] );
    }
}
