/*
 * jQuery Pokerstars Confirmation plugin
 * Copyright 2009 www.rakebacknation.com
 */
(function($){
  
  // global settings
  var g = {
    uri_root: 'http://members.rakebacknation.com'
  };
  
  $.fn.pokerstars_form = function(){
    var self = this;
    var $this = $(self);
    var $f = $this.find('form');
    var $button = $this.find('.submit a');
    var $dialog = $('#pokerstars_form_dialog').dialog({autoOpen: false});
    var idle = true;
    
    // set request_url
    $('#pokerstars_confirmation_request_url').val(window.location);
    
    // placeholder plugin
    $this.find('input.placeholder').placeholder();
    
    // ajax callback
    var response = function(response){
      if(response.ok){
        var output = '<span class="ui-icon ui-icon-circle-check"></span>'+response.messages[0];
      }
      else {
        var output = '<span class="ui-icon ui-icon-alert"></span>'+response.errors[0];
      }
      $dialog.find('p').html(output);
      $dialog.dialog('open');
      idle = true;
    };
    
    // ajax request
    $f.submit(function(){
      if(idle){
        idle = false;
        $.ajax({
          dataType: 'jsonp',
          data: $f.serialize(),
          url: g.uri_root + '/pokerstars_confirmation/ajax_submit',
          success: $.pokerstars_form.delegate(response, self)
        });
      }
      return false;
    });
    
    // button listener
    $button.click(function(){
      $f.trigger('submit');
      return false;
    });
      
    return this;
  };
  
  $.pokerstars_form = {
    delegate: function(fn, scope){
      return function(){
        fn.apply(scope, arguments)
      };
    }
  };
  
  
  $(document).ready(function(){
    $('#pokerstars_form').pokerstars_form();
  });

})(jQuery);