$.preferences = {
    
    add_rule: function()
    {
        var html = ''+
            '<h2>Add Game Type</h2>'+
            '<div id="add_message" style="display: none"></div>'+
    		'<div class="prompt_loader" id="add_loader" style="display:none"></div>'+
    		'<form action="/account/preferences/" onsubmit="return $.preferences.post_add_rule();" method="post" accept-charset="utf-8">'+
    		'	<p>'+
    		'		<label for="rule_name">Name:</label><br />'+
    		'		<span class="txt"><input type="text" maxlength="64" name="rule_name" value="" id="rule_name" /></span>'+
    		'	</p>'+
    		'	<p class="submit">'+
    		'		<input type="hidden" name="type" value="add_rule" />'+
    		'		<input type="submit" id="add_submit" value="add" />'+
    		'	</p>'+
    		'	<div style="clear:both"></div>'+
    		'</form>';
		
        $.prompt(html, {
              callback: function(v,m,f) {},
              buttons: {}
        });    
    },
    
    post_add_rule: function()
    {
        $('#add_message').slideUp(500);
        $('#add_submit').attr("disabled", "true");
        var rule_name = $('#rule_name').val();
        
        $('#add_loader').slideDown(500, function() {
            $.post('/account/preferences/', {rule_name:rule_name, type:'add_rule'}, function(data) {
                if(data.id != 0) {
                    $('#rule_list').append( '<li id="rule_'+data.id+'">'+
                            				'	<a href="javascript:;" onclick="$.preferences.delete_rule('+data.id+');"><img src="'+SETTING_STATIC_DOMAIN+'/graphics/against.gif" title="Delete Game Type" alt="Delete Game Type" /></a>'+
                            				'	<a href="javascript:;" onclick="$.preferences.edit_rule('+data.id+');"><img src="'+SETTING_STATIC_DOMAIN+'/graphics/edit.gif" title="Edit Game Type" alt="Edit Game Type" /></a>'+
                            				'	'+data.name+
                            				'</li>');
                    $('#add_loader').slideUp(500, function() {
                        $.prompt.close();
                    });
                } else {
                    $('#add_submit').attr("disabled", "");
                    $('#add_loader').slideUp(500, function() {
                        $('#add_message').html('<p class="error">'+data.name+'</p>').slideDown(500);
                    });
                }
            }, 'json');
        });
        
        return false;
    },

    delete_rule: function(id)
    {
        $.prompt(   '<h2>Delete?</h2>'+
                    '<p>Are you sure want to delete this game type?</p>' +
                    '<p>Any assosiated limit and session wil be removed?</p>' +
                    '<p><b>This cannot be undone!</b></p>'
                    ,{ callback: function(v,m,f) {
            if(v == true) {
                $.post('/account/preferences/', {rule_id:id, type:'delete_rule'}, function(data) {
                    for(x in data.removed) {
                        $('#type_'+data.removed[x]).slideUp(500);
                    }
                    $('#rule_'+id).slideUp(500);
                }, 'json');
            }
        }, buttons: {'Cancel': false, 'Delete': true} });
    },
    
    edit_rule: function(id)
    {
        var html = ''+
            '<h2>Edit Game Type</h2>'+
            '<div id="edit_message" style="display: none"></div>'+
    		'<div class="prompt_loader" id="edit_loader"></div>'+
    		'<form action="/account/preferences/" onsubmit="return $.preferences.post_edit_rule();" method="post" accept-charset="utf-8" style="display: none" id="edit_rule_form">'+
    		'	<p>'+
    		'		<label for="rule_name">Name:</label><br />'+
    		'		<span class="txt"><input type="text" maxlength="64" name="rule_name" value="" id="rule_name" /></span>'+
    		'	</p>'+
    		'	<p class="submit">'+
    		'       <input type="hidden" name="rule_id" id="rule_id" value="'+id+'" />'+
    		'		<input type="hidden" name="type" value="edit_rule" />'+
    		'		<input type="submit" id="edit_submit" value="save" />'+
    		'	</p>'+
    		'	<div style="clear:both"></div>'+
    		'</form>';
		
        $.prompt(html, {
              callback: function(v,m,f) {},
              buttons: {}
        });
        
        $.post('/account/preferences/', {type:'get_rule', rule_id:id}, function(data) {
            $('#rule_name').val(data.name);
            $('#edit_loader').slideUp(500, function() {
                $('#edit_rule_form').slideDown(500);
            });
        }, 'json');
    },
    
    post_edit_rule: function()
    {
        $('#edit_message').slideUp(500);
        $('#edit_submit').attr("disabled", "true");
        var rule_name = $('#rule_name').val();
        var rule_id = $('#rule_id').val();
        
        $('#edit_loader').slideDown(500, function() {
            $.post('/account/preferences/', {rule_name:rule_name, type:'edit_rule', rule_id:rule_id}, function(data) {
                if(data.id != 0) {
                    $('#rule_'+data.id).html(   ' <a href="javascript:;" onclick="$.preferences.delete_rule('+data.id+');"><img src="'+SETTING_STATIC_DOMAIN+'/graphics/against.gif" title="Delete Game Type" alt="Delete Game Type" /></a>'+
                            				    ' <a href="javascript:;" onclick="$.preferences.edit_rule('+data.id+');"><img src="'+SETTING_STATIC_DOMAIN+'/graphics/edit.gif" title="Edit Game Type" alt="Edit Game Type" /></a>'+
                            				    ' '+data.name);
                    $('#edit_loader').slideUp(500, function() {
                        $.prompt.close();
                    });
                } else {
                    $('#edit_submit').attr("disabled", "");
                    $('#edit_loader').slideUp(500, function() {
                        $('#edit_message').html('<p class="error">'+data.name+'</p>').slideDown(500);
                    });
                }
            }, 'json');
        });
        
        return false;
    },
    
    add_type: function()
    {
        var html = ''+
            '<h2>Add Limit</h2>'+
            '<div id="add_message" style="display: none"></div>'+
    		'<div class="prompt_loader" id="add_loader"></div>'+
    		'<div id="form_placeholder" style="display:none"></div>';
    		
        $.prompt(html, {
              callback: function(v,m,f) {},
              buttons: {}
        });
        
        $.post('/account/preferences/', {type:'get_type_form'}, function(data) {
            $('#form_placeholder').html(data);
            $('#add_loader').slideUp(500, function() {
                $('#form_placeholder').slideDown(500);
            });
        }, 'html');
    },

    post_add_type: function()
    {
        $('#add_submit').attr("disabled", "true");
        var type_sb = $('#type_sb').val();
        var type_bb = $('#type_bb').val();
        var type_rule = $('#type_rule').val();
        var type_limit = $('#type_limit').val();

        $('#add_message').slideUp(500, function() {
            $('#add_loader').slideDown(500, function() {
                $.post('/account/preferences/', {type_sb:type_sb, type_bb:type_bb, type_rule:type_rule, type_limit:type_limit, type:'add_type'}, function(data) {
                    $('#add_loader').slideUp(500, function() {
                        if(data.id == 0) {
                            $('#add_submit').attr("disabled", "");
                            $('#add_message').html('<p class="error">'+data.name+'</p>').slideDown(500);
                        } else {
                            $('#type_list').append( '<li id="type_'+data.id+'">'+
                                    				'	<a href="javascript:;" onclick="$.preferences.delete_type('+data.id+');"><img src="'+SETTING_STATIC_DOMAIN+'/graphics/against.gif" title="Delete Limit" alt="Delete Limit" /></a>'+
                                    				'	<a href="javascript:;" onclick="$.preferences.edit_type('+data.id+');"><img src="'+SETTING_STATIC_DOMAIN+'/graphics/edit.gif" title="Edit Limit" alt="Edit Limit" /></a>'+
                                    				'	'+data.name+
                                    				'</li>');
                            $.prompt.close();
                        }
                    })
                }, 'json');
            });
        });
        
        return false;
    },
    
    delete_type: function(id)
    {
        $.prompt(   '<h2>Delete?</h2>'+
                    '<p>Are you sure want to delete this limit?</p>' +
                    '<p>Any assosiated session wil be removed?</p>' +
                    '<p><b>This cannot be undone!</b></p>'
                    ,{ callback: function(v,m,f) {
            if(v == true) {
                $.post('/account/preferences/', {type_id:id, type:'delete_type'});
                $('#type_'+id).slideUp(500);
            }
        }, buttons: {'Cancel': false, 'Delete': true} });
    },
    
    edit_type: function(id)
    {
        var html = ''+
            '<h2>Edit Limit</h2>'+
            '<div id="edit_message" style="display: none"></div>'+
    		'<div class="prompt_loader" id="edit_loader"></div>'+
    		'<div id="form_placeholder" style="display:none"></div>';
    		
        $.prompt(html, {
              callback: function(v,m,f) {},
              buttons: {}
        });
        
        $.post('/account/preferences/', {type:'get_typeedit_form', type_id:id}, function(data) {
            $('#form_placeholder').html(data);
            $('#edit_loader').slideUp(500, function() {
                $('#form_placeholder').slideDown(500);
            });
        }, 'html');
    },
    
    post_edit_type: function()
    {
        $('#edit_submit').attr("disabled", "true");
        var type_sb = $('#type_sb').val();
        var type_bb = $('#type_bb').val();
        var type_rule = $('#type_rule').val();
        var type_limit = $('#type_limit').val();
        var type_id = $('#type_id').val();

        $('#edit_message').slideUp(500, function() {
            $('#edit_loader').slideDown(500, function() {
                $.post('/account/preferences/', {type_sb:type_sb, type_bb:type_bb, type_rule:type_rule, type_limit:type_limit, type:'edit_type', type_id:type_id}, function(data) {
                    $('#edit_loader').slideUp(500, function() {
                        if(data.id == 0) {
                            $('#edit_submit').attr("disabled", "");
                            $('#edit_message').html('<p class="error">'+data.name+'</p>').slideDown(500);
                        } else {
                            $('#type_'+data.id).html(   ' <a href="javascript:;" onclick="$.preferences.delete_type('+data.id+');"><img src="'+SETTING_STATIC_DOMAIN+'/graphics/against.gif" title="Delete Limit" alt="Delete Limit" /></a>'+
                                    				    ' <a href="javascript:;" onclick="$.preferences.edit_type('+data.id+');"><img src="'+SETTING_STATIC_DOMAIN+'/graphics/edit.gif" title="Edit Limit" alt="Edit Limit" /></a>'+
                                    				    ' '+data.name);
                            $.prompt.close();
                        }
                    })
                }, 'json');
            });
        });
        
        return false;
    },
    
    add_session: function() {
        var html = ''+
            '<h2>Add Session</h2>'+
            '<div id="add_message" style="display: none"></div>'+
    		'<div class="prompt_loader" id="add_loader"></div>'+
    		'<div id="form_placeholder" style="display:none"></div>';
    		
        $.prompt(html, {prefix:'wide_prompt',
              callback: function(v,m,f) {},
              buttons: {}
        });
        
        $.post('/account/sessions/', {type:'get_session_select'}, function(data) {
            $('#form_placeholder').html(data);
            $('#add_loader').slideUp(500, function() {
                $('#form_placeholder').slideDown(500);
            });
        }, 'html');
    },
    
    add_session_rg: function() {
        $('#form_placeholder').slideUp(500, function() {
            $('#add_loader').slideDown(500, function() {
                 $.post('/account/sessions/', {type:'get_session_form'}, function(data) {
                        $('#form_placeholder').html(data);
                        $('#add_loader').slideUp(500, function() {
                            $('#form_placeholder').slideDown(500);
                        });
                }, 'html');
            });
        });
    },
    
    add_session_tour: function() {
        $('#form_placeholder').slideUp(500, function() {
            $('#add_loader').slideDown(500, function() {
                 $.post('/account/sessions/', {type:'get_session_tour_form'}, function(data) {
                        $('#form_placeholder').html(data);
                        $('#add_loader').slideUp(500, function() {
                            $('#form_placeholder').slideDown(500);
                        });
                }, 'html');
            });
        });
    },
    
    post_add_session: function() {
        $('#add_submit').attr("disabled", "true");
        var is_tournament = $('#session_is_tour').val();
        
        var session_type = $('#session_type').val();
        var session_online = $('#session_online').val();
        var session_hours = $('#session_hours').val();
        
        var session_type = is_tournament == '0' ? $('#session_type').val() : 0;
        var session_rule = is_tournament == '0' ? 0 : $('#session_rule').val();
        var session_result = is_tournament == '0' ? $('#session_result').val() : 0;
        var session_won = is_tournament == '0' ? 0 : $('#session_won').val();
        var session_buyin = is_tournament == '0' ? 0 : $('#session_buyin').val();
        
        var session_note = $('#session_note').val();
        var session_currency = $('#session_currency').val();
        var session_date = $.datepicker.formatDate('yy-mm-dd', $("#datepicker").datepicker('getDate'));
        
        $('#add_message').slideUp(500, function() {
            $('#add_loader').slideDown(500, function() {
                $.post('/account/sessions/', {session_type:session_type, session_note:session_note, session_online:session_online, session_hours:session_hours, session_result:session_result, session_won:session_won, session_buyin:session_buyin, is_tournament:is_tournament, session_rule:session_rule, session_currency:session_currency, session_date:session_date, type:'add_session'}, function(data) {
                    $('#add_loader').slideUp(500, function() {
                        if(data.id == 0) {
                            // Error
                            $('#add_submit').attr("disabled", "");
                            $('#add_message').html('<p class="error">'+data.name+'</p>').slideDown(500);
                        } else {
                            // Success
                            if($('#sessions_table').length == 1) {
                                $('#sessions_table tr:first').after('<tr style="color:#318199"> '+data.html+'</tr>');
                            } else if($('#stat_table_here').length ==1) {
                                $('#stat_table_here').fadeTo(500, 0.2, function() {
                                    $.get('/account/statistics/get_month_table/'+CURRENT_VIEW+'/', {}, function(data) {
                                        $('#stat_table_here').html(data).fadeTo(500, 1.0);
                                    });
                                });
                            }
                            $.prompt.close();
                        }
                    });
                }, 'json');
            });
        });
        
        return false;
    },
    
    edit_session: function(id) {
        var html = ''+
            '<h2>Edit Session</h2>'+
            '<div id="edit_message" style="display: none"></div>'+
    		'<div class="prompt_loader" id="edit_loader"></div>'+
    		'<div id="form_placeholder" style="display:none"></div>';
    		
        $.prompt(html, {prefix:'wide_prompt',
              callback: function(v,m,f) {},
              buttons: {}
        });
        
        $.post('/account/sessions/', {type:'get_session_edit_form', session_id:id}, function(data) {
            $('#form_placeholder').html(data);
            $('#edit_loader').slideUp(500, function() {
                $('#form_placeholder').slideDown(500);
            });
        }, 'html');
    },
    
    post_edit_session: function() {
        $('#edit_submit').attr("disabled", "true");
        var is_tournament = $('#session_is_tour').val();
        
        var session_type = $('#session_type').val();
        var session_online = $('#session_online').val();
        var session_hours = $('#session_hours').val();
        
        var session_type = is_tournament == '0' ? $('#session_type').val() : 0;
        var session_rule = is_tournament == '0' ? 0 : $('#session_rule').val();
        var session_result = is_tournament == '0' ? $('#session_result').val() : 0;
        var session_won = is_tournament == '0' ? 0 : $('#session_won').val();
        var session_buyin = is_tournament == '0' ? 0 : $('#session_buyin').val();
        
        var session_note = $('#session_note').val();
        var session_currency = $('#session_currency').val();
        var session_date = $.datepicker.formatDate('yy-mm-dd', $("#datepicker").datepicker('getDate'));
        
        var session_id = $('#session_id').val();
        
        $('#edit_message').slideUp(500, function() {
            $('#edit_loader').slideDown(500, function() {
                $.post('/account/sessions/', {session_type:session_type, session_note:session_note, session_online:session_online, session_hours:session_hours, session_result:session_result, session_won:session_won, session_buyin:session_buyin, is_tournament:is_tournament, session_rule:session_rule, session_currency:session_currency, session_date:session_date, session_id:session_id, type:'edit_session'}, function(data) {
                    $('#edit_loader').slideUp(500, function() {
                        if(data.id == 0) {
                            // Error
                            $('#edit_submit').attr("disabled", "");
                            $('#edit_message').html('<p class="error">'+data.name+'</p>').slideDown(500);
                        } else {
                            // Success
                            $.prompt.close();
                            $('#session_'+data.id).fadeTo(500, 0.01, function() {
                                $('#session_'+data.id).html(data.html).fadeTo(500, 1.0);
                            });
                        }
                    });
                }, 'json');
            });
        });
        
        return false;
    },
    
    delete_session: function(id)
    {
        $.prompt(   '<h2>Delete?</h2>'+
                    '<p>Are you sure want to delete this session?</p>' +
                    '<p><b>This cannot be undone!</b></p>'
                    ,{ callback: function(v,m,f) {
            if(v == true) {
                $.post('/account/sessions/', {session_id:id, type:'delete_session'}, function(data) {
                    $('#session_'+id).fadeOut(500);
                });
            }
        }, buttons: {'Cancel': false, 'Delete': true} });
    },
    
    note_session: function(id)
    {
        var html = ''+
            '<h2>Session Note</h2>'+
    		'<div class="prompt_loader" id="note_loader"></div>'+
    		'<div id="info_placeholder" style="display:none"></div>';
    		
        $.prompt(html, {
              callback: function(v,m,f) {},
              buttons: {}
        });
        
        $.post('/account/sessions/', {type:'get_session_note', session_id:id}, function(data) {
            $('#info_placeholder').html(data);
            $('#note_loader').slideUp(500, function() {
                $('#info_placeholder').slideDown(500);
            });
        }, 'html');
    },
    
    expand_day: function(day) {
        $('#expand_'+day).fadeOut(200, function() {
            $('#collapse_'+day).fadeIn(200);
        });
        $('#day_'+day).slideDown(200);
    },
    
    collapse_day: function(day) {
        $('#collapse_'+day).fadeOut(200, function() {
            $('#expand_'+day).fadeIn(200);
        });
        $('#day_'+day).slideUp(200);
    },
    
    show_filter: function() {
        $('#filter_btn').fadeTo(300, 0.01, function() {
            $('#filter_btn').html('<a href="javascript:;" onclick="$.preferences.hide_filter();">hide filters</a>').fadeTo(300, 1.00);
        });
        $('#filter').slideDown(500);
    },
    
    hide_filter: function() {
        $('#filter_btn').fadeTo(300, 0.01, function() {
            $('#filter_btn').html('<a href="javascript:;" onclick="$.preferences.show_filter();">show filters</a>').fadeTo(300, 1.00);
        });
        $('#filter').slideUp(500);
    },
    
    expand_all: function() {
        for(i=1;i<=31;i++) {
            $.preferences.expand_day(i);
        }
        
        $('#change_all').fadeTo(300, 0.01, function() {
            $('#change_all').html('<a href="javascript:;" onclick="$.preferences.collapse_all();"><img src="'+SETTING_STATIC_DOMAIN+'/graphics/stop.gif" title="Collapse All" alt="Collapse All" /></a>').fadeTo(300, 1.0);
        });
    },
    
    collapse_all: function() {
        for(i=1;i<=31;i++) {
            $.preferences.collapse_day(i);
        }
        
        $('#change_all').fadeTo(300, 0.01, function() {
            $('#change_all').html('<a href="javascript:;" onclick="$.preferences.expand_all();"><img src="'+SETTING_STATIC_DOMAIN+'/graphics/move.gif" title="Expand All" alt="Expand All" /></a>').fadeTo(300, 1.0);
        });
    },
    
    set_radio_on: function(ident) {
        $(ident).attr('src', SETTING_STATIC_DOMAIN+'/graphics/icon-radio-on.gif');
    },
    set_radio_off: function(ident) {
        $(ident).attr('src', SETTING_STATIC_DOMAIN+'/graphics/icon-radio-off.gif');
    },
    
    set_theme: function(theme) {
        $.preferences.set_radio_off('.cs_imgs');
        
        $('#cs_img_'+theme).fadeTo(250, 0.01, function() {
            $('#cs_img_'+theme).attr('src', SETTING_STATIC_DOMAIN+'/graphics/ajax-icon.gif');
            $('#cs_img_'+theme).fadeTo(250, 1.00, function() {
                $.post('/account/preferences/', {type:'set_theme', theme:theme}, function(data) {
                    $('#cs_img_'+theme).fadeTo(250, 0.01, function() {
                        $.preferences.set_radio_on('#cs_img_'+theme);
                        $('#cs_img_'+theme).fadeTo(250, 1.00);
                    });
                }, 'html');
            });    
        });
    },
    
    set_number_format: function(format) {
        $.preferences.set_radio_off('.nf_imgs');
        
        $('#nf_img_'+format).fadeTo(250, 0.01, function() {
            $('#nf_img_'+format).attr('src', SETTING_STATIC_DOMAIN+'/graphics/ajax-icon.gif');
            $('#nf_img_'+format).fadeTo(250, 1.00, function() {
                $.post('/account/preferences/', {type:'set_number_format', format:format}, function(data) {
                    $('#nf_img_'+format).fadeTo(250, 0.01, function() {
                        $.preferences.set_radio_on('#nf_img_'+format);
                        $('#nf_img_'+format).fadeTo(250, 1.00);
                    });
                }, 'html');
            });    
        });
    },
    
    set_default_currency: function(cur) {
        $.preferences.set_radio_off('.dc_imgs');
        
        $('#dc_img_'+cur).fadeTo(250, 0.01, function() {
            $('#dc_img_'+cur).attr('src', SETTING_STATIC_DOMAIN+'/graphics/ajax-icon.gif');
            $('#dc_img_'+cur).fadeTo(250, 1.00, function() {
                $.post('/account/preferences/', {type:'set_default_currency', cur:cur}, function(data) {
                    $('#dc_img_'+cur).fadeTo(250, 0.01, function() {
                        $.preferences.set_radio_on('#dc_img_'+cur);
                        $('#dc_img_'+cur).fadeTo(250, 1.00);
                    });
                }, 'html');
            });    
        });
    },
    
    hide_inactive: function() {
        $('#act_button').fadeTo(250, 0.01, function() {
            $('#act_button').html('<img src="'+SETTING_STATIC_DOMAIN+'/graphics/ajax-icon.gif" alt="" />').fadeTo(250, 1.00, function() {
                $.post('/account/preferences/', {type:'set_only_active', state:'1'}, function(data) {
                    $('.inactive').fadeOut(250, function() { $.preferences.tweak_colors(); });
                    $('#act_button').fadeTo(250, 0.01, function() {
                        $('#act_button').html('<a href="javascript:;" onclick="$.preferences.show_inactive();"><img src="'+SETTING_STATIC_DOMAIN+'/graphics/icon-view-full.gif" title="Show All Days" alt="Show All Days" /></a>').fadeTo(250, 1.00);
                    });
                }, 'html');
            });
        });
    },
    
    show_inactive: function() {
        $('#act_button').fadeTo(250, 0.01, function() {
            $('#act_button').html('<img src="'+SETTING_STATIC_DOMAIN+'/graphics/ajax-icon.gif" alt="" />').fadeTo(250, 1.00, function() {
                $.post('/account/preferences/', {type:'set_only_active', state:'0'}, function(data) {
                    $('.inactive').fadeIn(250, function() { $.preferences.tweak_colors(); });
                    $('#act_button').fadeTo(250, 0.01, function() {
                        $('#act_button').html('<a href="javascript:;" onclick="$.preferences.hide_inactive();"><img src="'+SETTING_STATIC_DOMAIN+'/graphics/icon-view-sparse.gif" title="Hide Inactive Days" alt="Hide Inactive Days" /></a>').fadeTo(250, 1.00);
                    });
                }, 'html');
            });
        });
    },
    
    tweak_colors: function() {
        $('table tr').removeClass('even');
        $('table tr').removeClass('odd');
        $('table tr:visible.full_data:odd').addClass('even');
		$('table tr:visible.full_data:even').addClass('odd');
		$('table tr:visible.full_normal:odd').addClass('even');
		$('table tr:visible.full_normal:even').addClass('odd');
    }
}

$.ajaxSetup({cache:false});