/*
* Javascript
* @project agof
* @autor Axel Wahlen <wahlen@papaya-cms.com>
* @framework jQuery
*/

function trim (zeichenkette) {
  return zeichenkette.replace (/^\s+/, '').replace (/\s+$/, '');
}

function sprintf() {
  if( sprintf.arguments.length < 2 ) {
    return;
  }

  var data = sprintf.arguments[0];
  for( var k = 1;k < sprintf.arguments.length;k++) {
    switch( typeof( sprintf.arguments[k] ) )
    {
      case 'string':
        data = data.replace( /%s/, sprintf.arguments[k] );
        break;
      case 'number':
        data = data.replace( /%d/, sprintf.arguments[k] );
        break;
      case 'boolean':
        data = data.replace( /%b/, sprintf.arguments[k] ? 'true' : 'false' );
        break;
      default:
        /// function | object | undefined
        break;
    }
  }
  return data;
}

$('document').ready(function() {
  $('form#calculateForm').submit(function() {
    return false;
  });

  $('#submit').click(function() {
    // read in PI value
    var pi = trim($('#PIperMonth').attr('value'));
    if(pi == '') {
     $('#AjaxError').html(papayaDynamicData.calculator.errorPiEmpty).fadeIn('slow');
     $('#PIperMonth').attr('value', '').focus();
     return false;
    } else {
      // replace all comma with dot for a correct float value
      pi = pi.replace(/\,/g, ".");
      pi = parseFloat(pi);
      if(!(pi > 0.0)) {
        $('#AjaxError').html(papayaDynamicData.calculator.errorPiOutOfRange).fadeIn('slow');
        $('#PIperMonth').attr('value', '').focus();
        return false;
      }
    }

    $('#AjaxError').fadeOut('slow');
    $.ajax({
      type: "GET",
      url: $('form#calculateForm').attr('action'),
      async: true,
      cache: false,
      data: $('#paramName').attr('value') + "[PageImpressions]=" + pi,
      dataType: 'xml',
      beforeSend: function(XMLHttpRequest) {
        $('#AjaxLoad').css('visibility', 'visible');
        $('#submit').attr('disabled', 'disabled');
        $('#submit').addClass('disabled');
      },
      success: function(xml, status) {
        $(xml).find('xmlrpc').each(function() {
          var tC, fC, vC, sC = 0;
          tC = $(this).find('tech-costs').text() + ' &#8364;';
          fC = $(this).find('fixed-costs').text() + ' &#8364;';
          vC = $(this).find('var-costs').text() + ' &#8364;';
          sC = $(this).find('sum-costs').text() + ' &#8364;';

          $('#techCosts').html(tC);
          $('#fixedCosts').html(fC);
          $('#varCosts').html(vC);
          $('#sumCosts').html(sC);
        });
      },
      error: function (XMLHttpRequest, textStatus, errorThrown) {
      },
      complete: function(XMLHttpRequest, textStatus) {
        $('#AjaxLoad').css('visibility', 'hidden');
        $('#submit').removeAttr('disabled');
        $('#submit').removeClass('disabled');
      }
    });
  });
});
