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_set : 1,
    chatmodels_count : null,
    refresh_timer : null,
    auto_refresh : false,
    auto_refresh_seconds : 120,
    ret_vals : null,
	ajax_pending: false,
	alerts_onclose_callback : null
}

Members.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;
	}
}

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

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

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

            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 oNewColStatus = oNewRow.insertCell(3);
                oNewColStatus.innerHTML = shows_list[x++].status;
                oNewColStatus.className = "acctset_table_cell_data";
            }
        }

        if ( Members.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>";
        }
    }
}


Members.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;
	}
}

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

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

        if ( typeof Members.ret_vals.history != "undefined" )
        {
            var oTable = document.getElementById( "mbr_tickethistory" );
            var history_list = Members.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 ( Members.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>";
        }
    }
}

Members.get_chatmodels = function ( set_to, label_text )
{
	if ( !Members.ajax_pending )
	{
	    Members.cancel_refresh_timer();
	    document.getElementById( "id_chatmodels_div" ).style.visibility = "hidden";
	    document.getElementById( "id_chatmodels_div" ).style.display = "none";
	    document.getElementById( "id_loadingmodels" ).style.visibility = "visible";
	    document.getElementById( "id_loadingmodels" ).style.display = "block";

	    if ( set_to == 0 )
	    {
	        document.getElementById( "id_refreshlabel" ).innerHTML = "Refreshing Models ...";
	    }
	    else
	    {
	        document.getElementById( "id_refreshlabel" ).innerHTML = "Loading Models ...";
	    }

	    var load_set = Number(Members.chatmodels_set)+Number(set_to);
	    Members.chatmodels_set = load_set;
	    var ajax = new oAjax("http://"+location.host+"/members/ajax/chatmodels.php", Members.put_chatmodels );
	    var params = "set="+load_set;
	    ajax.update( params, "GET" );
		Members.ajax_pending = true;
	}
}

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

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

        if ( typeof Members.ret_vals.online_models != "undefined" )
        {
            var online_models = Members.ret_vals.online_models;
            x = 0;

            for ( var model_data in online_models )
            {
                with ( document )
                {
                    getElementById( ("id_model_action_url_"+x) ).href = online_models[x].action_url;
                    var tmp_image = new Image();
                    tmp_image.src = online_models[x].thumb_url;
                    getElementById( ("id_model_photo_"+x) ).src = tmp_image.src;
                    getElementById( ("id_model_photo_"+x) ).title = online_models[x].action_title;
                    getElementById( ("id_model_username_"+x) ).innerHTML = online_models[x].username;
                    getElementById( ("id_model_username_"+x) ).title = online_models[x].action_title;

                    if ( online_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";
                    }
                }

                x++;
            }
        }

        document.getElementById( "id_loadingmodels" ).style.visibility = "hidden";
        document.getElementById( "id_loadingmodels" ).style.display = "none";
        document.getElementById( "id_chatmodels_div" ).style.visibility = "visible";
        document.getElementById( "id_chatmodels_div" ).style.display = "block";

        if ( Members.ret_vals.show_prev_page )
        {
            document.getElementById( "id_chatlist_left" ).style.visibility = "visible";
            document.getElementById( "id_chatlist_left" ).style.display = "block";
        }
        else
        {
            document.getElementById( "id_chatlist_left" ).style.visibility = "hidden";
            document.getElementById( "id_chatlist_left" ).style.display = "none";
        }

        if ( Members.ret_vals.show_next_page )
        {
            document.getElementById( "id_chatlist_right" ).style.visibility = "visible";
            document.getElementById( "id_chatlist_right" ).style.display = "block";
        }
        else
        {
            document.getElementById( "id_chatlist_right" ).style.visibility = "hidden";
            document.getElementById( "id_chatlist_right" ).style.display = "none";
        }

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

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

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

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

Members.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;
	}
}

Members.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;
	}
}

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

Members.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;
	}
}

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

Members.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;
	}
}

Members.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;
	}
}

Members.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;
		}
	}

}

Members.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;
	}
}

Members.close_new_alert = function()
{
	$("screen").attr("cursor","default");

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

Members.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;
	}
}

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