//------------------------------------------------------------------------------
/** @author Бреславский А.В. (Hi-tech Research Group) */
//------------------------------------------------------------------------------
function Cart(){
  //----------------------------------------------------------------------------
  $HTTP = new HTTP();
  //----------------------------------------------------------------------------
  if(!$HTTP.Resource){
    //--------------------------------------------------------------------------
    alert('Не удалось создать HTTP соединение');
    //--------------------------------------------------------------------------
    return false;
  }
  //----------------------------------------------------------------------------
  $HTTP.onResponse = function($Response){
    //--------------------------------------------------------------------------
    switch($Response.Status){
      case 'Error':
        ShowAlert($Response.Error.String,'Warning');
      break;
      case 'Exception':
        ShowAlert(eStack($Response.Exception),'Warning');
      break;
      case 'Ok':
        $('#Cart').html($Response.Result);
      break;
      default:
        alert('Не известный ответ');
    }
  };
  //----------------------------------------------------------------------------
  if(!$HTTP.Send('/API/Cart',{Simple:'yes'})){
    //--------------------------------------------------------------------------
    alert('Не удалось отправить запрос на сервер');
    //--------------------------------------------------------------------------
    return false;
  }
}
//------------------------------------------------------------------------------
function ToCart($ProductID,$Amount,$ElementID){
  //----------------------------------------------------------------------------
  $HTTP = new HTTP();
  //----------------------------------------------------------------------------
  if(!$HTTP.Resource){
    //--------------------------------------------------------------------------
    alert('Не удалось создать HTTP соединение');
    //--------------------------------------------------------------------------
    return false;
  }
  //----------------------------------------------------------------------------
  $HTTP.onLoaded = function(){
    //--------------------------------------------------------------------------
    HideProgress();
  }
  //----------------------------------------------------------------------------
  $HTTP.onResponse = function($Response){
    //--------------------------------------------------------------------------
    switch($Response.Status){
      case 'Error':
        ShowAlert($Response.Error.String,'Warning');
      break;
      case 'Exception':
        ShowAlert(eStack($Response.Exception),'Warning');
      break;
      case 'Ok':
        //----------------------------------------------------------------------
        $(sprintf('#%s',$ElementID)).effect('transfer',{to:$('#Cart'),className:'ui-effects-transfer'},2000);
        //----------------------------------------------------------------------
        var Div = $('#dConfirm');
        //----------------------------------------------------------------------
        if(Div.length < 1){          //--------------------------------------------------------------------
          var Div = document.createElement('DIV');
          $(Div).attr('id','dConfirm');
          $(Div).css({position:'absolute',zIndex:10});
          //--------------------------------------------------------------------
          var Input = document.createElement('INPUT');
          $(Input).attr('type','button');
          $(Input).attr('value','В корзину');
          $(Input).bind('click',function(){ $.colorbox({href:'/Cart',iframe:true,innerWidth:800,innerHeight:500}); });
          $(Input).css('padding','5px');
          $(Input).button();
          $(Div).append(Input);
          //--------------------------------------------------------------------
          var Span = document.createElement('SPAN');
          $(Span).html(' | ');
          $(Div).append(Span);
          //--------------------------------------------------------------------
          var Input = document.createElement('INPUT');
          $(Input).attr('type','button');
          $(Input).attr('value','Продолжить');
          $(Input).bind('click',function(){ $(Div).hide(); });
          $(Input).css('padding','5px');
          $(Input).button();
          $(Div).append(Input);
          //--------------------------------------------------------------------
          document.body.appendChild(Div);
          //--------------------------------------------------------------------
          var Div = $('#dConfirm');
        }
        //----------------------------------------------------------------------
        $(Div).show();
        //----------------------------------------------------------------------
        var Offset = $(sprintf('#%s',$ElementID)).offset();
        Offset.top += 40;
        //----------------------------------------------------------------------
        $(Div).offset(Offset);
        //----------------------------------------------------------------------
        Cart();
      break;
      default:
        alert('Не известный ответ');
    }
  };
  //----------------------------------------------------------------------------
  var $Args = {ProductID:$ProductID,Amount:$Amount};
  //----------------------------------------------------------------------------
  if(!$HTTP.Send('/API/ToCart',$Args)){
    //--------------------------------------------------------------------------
    alert('Не удалось отправить запрос на сервер');
    //--------------------------------------------------------------------------
    return false;
  }
  //----------------------------------------------------------------------------
  ShowProgress('Добавление в корзину');
}
//------------------------------------------------------------------------------
function Order(){  //----------------------------------------------------------------------------
  var $Form = document.forms['CartEditForm'];
  //----------------------------------------------------------------------------
  $HTTP = new HTTP();
  //----------------------------------------------------------------------------
  if(!$HTTP.Resource){
    //--------------------------------------------------------------------------
    alert('Не удалось создать HTTP соединение');
    //--------------------------------------------------------------------------
    return false;
  }
  //----------------------------------------------------------------------------
  $HTTP.onLoaded = function(){
    //--------------------------------------------------------------------------
    HideProgress();
  }
  //----------------------------------------------------------------------------
  $HTTP.onResponse = function($Response){
    //--------------------------------------------------------------------------
    switch($Response.Status){
      case 'Error':
        ShowAlert($Response.Error.String,'Warning');
      break;
      case 'Exception':
        ShowAlert(eStack($Response.Exception),'Warning');
      break;
      case 'Errors':
        //----------------------------------------------------------------------
        var $Errors = $Response.Errors;
        //----------------------------------------------------------------------
        for(var $i=0;$i<$Errors.length;$i++)
          $($Form[$Errors[$i].Field]).bt($Errors[$i].Message).btOn();
        //----------------------------------------------------------------------
        ShowTick('Форма содержит ошибки');
      break;
      case 'Ok':
        parent.document.location = sprintf('/Chase?UniqID=%s&Protect=%s',$Response.UniqID,$Response.Protect);
      break;
      default:
        alert('Не известный ответ');
    }
  };
  //----------------------------------------------------------------------------
  if(!$HTTP.Send('/API/Order',GetForm($Form))){
    //--------------------------------------------------------------------------
    alert('Не удалось отправить запрос на сервер');
    //--------------------------------------------------------------------------
    return false;
  }
  //----------------------------------------------------------------------------
  ShowProgress('Осуществление заказа');
}
//------------------------------------------------------------------------------
function Calculate(){
  //----------------------------------------------------------------------------
  var $Form = document.forms['CartEditForm'];
  //----------------------------------------------------------------------------
  $HTTP = new HTTP();
  //----------------------------------------------------------------------------
  if(!$HTTP.Resource){
    //--------------------------------------------------------------------------
    alert('Не удалось создать HTTP соединение');
    //--------------------------------------------------------------------------
    return false;
  }
  //----------------------------------------------------------------------------
  $HTTP.onLoaded = function(){
    //--------------------------------------------------------------------------
    HideProgress();
  }
  //----------------------------------------------------------------------------
  $HTTP.onResponse = function($Response){
    //--------------------------------------------------------------------------
    switch($Response.Status){
      case 'Error':
        ShowAlert($Response.Error.String,'Warning');
      break;
      case 'Exception':
        ShowAlert(eStack($Response.Exception),'Warning');
      break;
      case 'Empty':
        //----------------------------------------------------------------------
        parent.Cart();
        //----------------------------------------------------------------------
        GetURL(document.location);
      break;
      case 'Ok':
        //----------------------------------------------------------------------
        $('#Products').html($Response.Result);
        //----------------------------------------------------------------------
        $('.Amount').spinner({min:1,max:1000});
        //----------------------------------------------------------------------
        parent.Cart();
      break;
      default:
        alert('Не известный ответ');
    }
  };
  //----------------------------------------------------------------------------
  ShowProgress();
  //----------------------------------------------------------------------------
  if(!$HTTP.Send('/Cart',GetForm($Form))){
    //--------------------------------------------------------------------------
    alert('Не удалось отправить запрос на сервер');
    //--------------------------------------------------------------------------
    return false;
  }
}
