var JSON_TIMES          = 1;
var JSON_CHECK          = 2;
var JSON_SAVE           = 3;

var JSONhandler = new Class({ 
  model: false,
  
  url: false,
 
  initialize: function ( model ) { 
    this.model = model;
    
    this.url = new Array();
    this.url[JSON_TIMES]          = "/book/json/front/times.html";
    this.url[JSON_CHECK]          = "/book/json/front/check.html";
    this.url[JSON_SAVE]           = "/book/json/front/save.html";
  },

  JSONRequest: function( type, callbackFunction )
  {
    var me = this;
    var callback = false;
    var url = this.url[type];
    
    switch( type ){
      case JSON_TIMES:
        if (arguments.length <= 2) return false;
        var date = arguments[2];
        var loading = false;
        var sendVars = {'date': date};
      break;
      
      case JSON_CHECK:
        if (arguments.length <= 4) return false;
        var date = arguments[2];
        var time = arguments[3];
        var persons = arguments[4];
        var loading = false;
        var sendVars = {'date': date, 'time': time, 'persons': persons};
      break;

      case JSON_SAVE:
        if (arguments.length <= 5) return false;
        var date = arguments[2];
        var time = arguments[3];
        var persons = arguments[4];
        var information = arguments[5];        
        var loading = false;
        var sendVars = {'date': date, 'time': time, 'persons': persons, 'info': information};
      break;
    };

    if (!callback) {
      callback = function ( data ) {
        var parentMe = me;
        var timeout = ( bs.model.settings.css == "touchscreen") ? 0 : 400;
        if (loading) {
          bs.view["popup"].contentElement = (data)?message+' complete!':message+' failed!';
          bs.view["popup"].repaint();
          setTimeout( function(){
            bs.control["popup"].fade_popup.chain( callbackFunction(data) );
            bs.control["popup"].fade(1,0)
          } , timeout );
        } else {
          callbackFunction(data);
        }
      }
    }    
    
    var json = new Json.Remote( url, { onComplete: callback, method: 'POST' });
    json.send( sendVars );
  }
  
});
