function hintNewUser()
{
  $("#frmfrm-isNewUser").attr('checked', true);
  $("#registeredUser").removeClass('checked');
  $("#newUser").addClass('checked');
}

$(document).ready(function() {

  /****** Hover hints ******/
  var hint = $( '#hint-wrap' );
   
  $('.hashint').mouseenter(function(e){    
    
    // Set position to cursor's
    hint.css( 'left', e.pageX - 50 );
    hint.css( 'top', e.pageY - 70 );
    
    // animated append
    hint.css( 'opacity', 0.2 );
    hint.show();
    hint.animate( {'opacity' : 1}, 100 );
    
    // set text
    $( "#hint" , hint).html( $( '#' + $(this).attr( 'id' ) + '-hint' ).html() ); 
  
  });
  
  $('.hashint').mouseleave(function(){
    $( hint ).bind( 'mouseleave', function(){hint.fadeOut( 200 );} )    
  });
	
	var lang = $("#qtranslate-chooser li.active span").text().toLowerCase();
	var prefix = "#frmfrm-";
  var err = "#errorMsg";
	
	/*** Checkbox isNewUser ***/
	var newUser = $("#newUser");
	var registeredUser = $("#registeredUser");
  var isNewUser = $(prefix+"isNewUser");

  var refnumber = $( prefix + 'refnumber' );
  var username = $( prefix + 'username' );
  var email = $( prefix + 'email' );
  var validUsername = false;
  var validRefnumber = false;
  var discount = 0;
  
  var totalpricenumber = $("#totalpricenumber");
	var deliveryinputs = $( ".deliveryoptions input" ); 
  var paymentpriceinputs = $( ".paymentoptions input" );


  function showError(msg)
  {
    var create = true;
    $(err + " p").each(function(index){
      if($(this).text() == msg)
        create = false;
    });

    if(create)
      $(err).append('<p>'+msg+'</p>');
    
    $(err).show();
  }

  function hideError(msg)
  {
    $(err + " p").each(function(index){
      if($(this).text() == msg)
        $(this).remove();
    });
    
    if($(err+" p").length == 0)
      $(err).hide();
  }
  
  function enableInputs()
  {
    $(prefix+"address").removeAttr("disabled");
    $(prefix+"street_n1").removeAttr("disabled");
    $(prefix+"street_n2").removeAttr("disabled");
    $(prefix+"city").removeAttr("disabled");
    $(prefix+"state").removeAttr("disabled");
    $(prefix+"postalcode").removeAttr("disabled");
    $(prefix+"yourname").removeAttr("disabled");
    $(prefix+"surname").removeAttr("disabled"); 
  }
  
  function disableInputs()
  {
    $(prefix+"address").attr("disabled", true);
    $(prefix+"street_n1").attr("disabled", true);
    $(prefix+"street_n2").attr("disabled", true);
    $(prefix+"city").attr("disabled", true);
    $(prefix+"state").attr("disabled", true);
    $(prefix+"postalcode").attr("disabled", true);
    $(prefix+"yourname").attr("disabled", true);
    $(prefix+"surname").attr("disabled", true);  
  }

	$("div#top-image").hover(function() {		
		var thumbOver = $(this).find("img").attr("src");		
		$(this).find("div.thumb").css({'background' : 'url(' + thumbOver + ') no-repeat center bottom'});			
		$(this).find("span").stop().fadeTo(2000, 0 , function() {
			$(this).hide()
		});
	} , function() {
		$(this).find("span").stop().fadeTo(5000, 1).show();
	});

	function newUserClicked()
	{
    isNewUser.attr('checked', true);

    $(newUser).addClass('checked');
    $(registeredUser).removeClass('checked');

    hideError('Nieprawidłowa nazwa użytkownika lub adres e-mail');
    hideError('Invalid Username or e-mail address');

    $('.order_data_box').hide();
    $('#frmfrm-order').addClass('registration');

    enableInputs();
    checkUsername();
  }
	
	if(window.location.hash == 'registration' || window.location.hash == '#registration')
  {
    newUserClicked();
  }
	
	$(registeredUser).click(function(){
    isNewUser.attr('checked', false);
    $(registeredUser).addClass('checked');
    $(newUser).removeClass('checked');
    
    hideError('Ta NAZWA UŻYTKOWNIKA już istnieje. Proszę wybrać nową NAZWĘ UŻYTKOWNIKA.');
    hideError('This USERNAME already exists. Please select new USERNAME.');
    
    $('.order_data_box').show();
    $('#frmfrm-order').removeClass('registration');
    
    checkUsername();
  });
  
  $(newUser).click(function(){
    newUserClicked();
  });
	
	/****** Order form ******/
  
	deliveryinputs.click(recountPrice);
  
  paymentpriceinputs.click(recountPrice);
  
  paymentpriceinputs.click(function(){
    if($(this).val() == 'Przelewem bankowym' || $(this).val() == 'Bank Transfer')
      $('.account-number').css('visibility', 'visible');
    else
      $('.account-number').css('visibility', 'hidden');
  });

  // Product pieces
  var bb250price = parseFloat( $( "#bb250price" ).html() );
  var bb105price = parseFloat( $( "#bb105price" ).html() );
  var bb30price = parseFloat( $( "#bb30price" ).html() );
  
  var inputBb250pieces = $( "input"+prefix+"pieces_bb250" );
  var inputBb105pieces = $( "input"+prefix+"pieces_bb105" );
  var inputBb30pieces = $( "input"+prefix+"pieces_bb30" );
  
  var withoutdiscount = $( 'input#pricewithoutdiscount' ); // Price before discount

  $( inputBb250pieces ).keyup(function(){
    if( isNaN(parseInt(inputBb250pieces.val())))
      inputBb250pieces.val('0');
  });
  
  $( inputBb105pieces ).keyup(function(){
    if( isNaN(parseInt(inputBb105pieces.val())))
      inputBb105pieces.val('0');
  });
  
  $( inputBb30pieces ).keyup(function(){
    if( isNaN(parseInt(inputBb30pieces.val())))
      inputBb30pieces.val('0');
  });

	// BB250
  $( inputBb250pieces ).change(recountPrice);

  
	// BB105
  $( inputBb105pieces ).change(recountPrice);
    
  
	// BB30
  $( inputBb30pieces ).change(recountPrice);
      
  /* Discount */
  $( withoutdiscount ).change(recountPrice);
  
  $( refnumber ).change(function(){
  
    if(refnumber.val() != '')
    {
      $.ajax({
        type: 'POST',
        url: "/wp-admin/admin-ajax.php",
        data: {action: 'validateRefnumber', refnumber: refnumber.val()},
        success: function(data){
          if(data.valid == 1)
          {
            validRefnumber = true;
            discount = parseInt(data.discount);
  
            if(lang == 'pl')
              hideError('Nieprawidłowy numer referencyjny.');
            else
              hideError('Invalid Reference Number.');
          } 
          else
          {
            validRefnumber = false;
            discount = 0;
            
            if(lang == 'pl')
              showError('Nieprawidłowy numer referencyjny.');
            else
              showError('Invalid Reference Number.');
          }
          recountPrice();
        },
        dataType: 'json'
      });
    }
    else
    {
      hideError('Nieprawidłowy numer referencyjny.');
      hideError('Invalid Reference Number.');
      validRefnumber = false;
      recountPrice();
    }

    
  });
  
  $( username ).change(function(){
    checkUsername(); 
  });
  
  $( email ).change(function(){
    checkUsername(); 
  });
  
  // Recount and reset
  if(isNewUser.is(':checked'))
  {
    $(newUser).addClass('checked');
    $(registeredUser).removeClass('checked');
  }
  else
  {
    $(registeredUser).addClass('checked');
    $(newUser).removeClass('checked');  
  }
  withoutdiscount.val( '0' );
  recountPrice();
  checkUsername()

  $('input.paymentoptions').click(function(){
    if($(this).val() == 'Dotpay')
    {
      $("#dotpayRadio").show();
      $("#pad-dotpay").show();
    }
    else
    {
      $("#dotpayRadio").hide();
      $("#pad-dotpay").hide();
    }
  });

  function checkUsername()
  {
    if(!isNewUser.is(':checked') && username.val() != '' && email.val().indexOf('@') != -1)
    {
      $.getJSON("/validusername.php?username="+username.val()+"&email="+email.val(), function(data) {
        if(data.valid == 1)
        {
          enableInputs();
          $(prefix+"address").val(data.address);
          $(prefix+"street_n1").val(data.street_n1);
          $(prefix+"street_n2").val(data.street_n2);
          $(prefix+"city").val(data.city);
          $(prefix+"state").val(data.state);
          $(prefix+"postalcode").val(data.postalcode);
          $(prefix+"yourname").val(data.yourname);
          $(prefix+"surname").val(data.surname);

          hideError('Nieprawidłowa nazwa użytkownika lub adres e-mail');
          hideError('Invalid Username or e-mail address');
        }
        else
        {
          if(lang == 'pl')
            showError('Nieprawidłowa nazwa użytkownika lub adres e-mail');
          else
            showError('Invalid Username or e-mail address');
        
          disableInputs();
        }
      });
    }
    else if(!isNewUser.is(':checked') && username.val() != '' && email.val() != '')
    {
      if(lang == 'pl')
        showError('Nieprawidłowa nazwa użytkownika lub adres e-mail');
      else
        showError('Invalid Username or e-mail address');
        
      disableInputs();
    }
    else if(isNewUser.is(':checked') && username.val())
    {
      $.getJSON("/validusername.php?isRegisteredUsername=1&username="+username.val(), function(username) {
        if(username.free == 1)
        {
          hideError('Ta NAZWA UŻYTKOWNIKA już istnieje. Proszę wybrać nową NAZWĘ UŻYTKOWNIKA.');
          hideError('This USERNAME already exists. Please select new USERNAME.');
        }
        else
        {
          if(lang == 'pl')
            showError('Ta NAZWA UŻYTKOWNIKA już istnieje. Proszę wybrać nową NAZWĘ UŻYTKOWNIKA.');
          else
            showError('This USERNAME already exists. Please select new USERNAME.');
        }
        
        hideError('Nieprawidłowa nazwa użytkownika lub adres e-mail');
        hideError('Invalid Username or e-mail address');
      });
      
      enableInputs();
    }
    else if(isNewUser.is(':checked'))
    {
      enableInputs();
    }
    else if(!isNewUser.is(':checked'))
    {
      disableInputs();
    }
    
    if(username.val() != '' && email.val().indexOf('@') != -1)
      validUsername = true;
    else
      validUsername = false;
    recountPrice();
  }

  function recountPrice()
  {
    //set pieces to zero
    var bb250 = 0;
    var bb105 = 0;
    var bb30 = 0;
    var price = 0;

    if(!isNaN(parseInt($(inputBb250pieces).val())))
      bb250 = parseInt($(inputBb250pieces).val());

    if(!isNaN(parseInt($(inputBb105pieces).val())))
      bb105 = parseInt($(inputBb105pieces).val());

    if(!isNaN(parseInt($(inputBb30pieces).val())))
      bb30 = parseInt($(inputBb30pieces).val());

    price = (bb250 * bb250price) + (bb105 * bb105price) + (bb30 * bb30price);

    if ( $("input[name='paymentoptions']:checked" ).val() == 'Gotówką przy doręczeniu' || $("input[name='paymentoptions']:checked" ).val() == 'Cash on delivery' )
      price += 0;//9;

    if ( $("input[name='deliveryoptions']:checked" ).val() == 'Courier' || $("input[name='deliveryoptions']:checked" ).val() == 'Kurier'  )
      price += 0;//29;

    //if( validUsername )
      //price = price - ( ( price / 100 ) * 10 ); // 10 is discount in percents

    if( validRefnumber )
      price = price - ( price / 100 * discount ); // discount is discount in percents

    totalpricenumber.html( Math.abs(price.toFixed(2)) );
  }  			
});

/**
 * JNLFV - jQuery Nette Live Form Validator
 *
 * @copyright  Copyright (c) 2006, 2010 Patrik VotoÄek
 * @license    New BSD
 * @link       addons.nette.org/cs/jquery-nette-live-form-validator
 * @package    Nette
 * @version    1.2 
 */
var nette = nette || { };

nette.validateEntity = function(el) {
	var form = $(el).parents('form');
	if (nette.forms != null && nette.forms[form.attr('id')]) {
		if (nette.forms[form.attr('id')].validators[$(el).attr('name')]){
			var message = nette.forms[form.attr('id')].validators[$(el).attr('name')](form[0])
			if (message) {
				$(el).after('<p class="error">'+message+'</p>');
				return false;
			}
		}
	}
	return true;
}

$(document).ready(function() {
	$('form input, form select, form textarea').live('blur', function() {
		$(this).next('.error').remove();
		nette.validateEntity(this);
	});
	$('form').attr('onSubmit', null).submit(function() {
		if (nette.forms == null || (nette.forms != null && nette.forms[$(this).attr('id')] == null))
			return true;

		var el = null;
		$(this).find('.error').remove();
		$(this).find('input, select, textarea').each(function() {
			res = nette.validateEntity(this);
			if (res == false && el == null) el = this;
		});
		if (el != null) {
			$(el).focus();
			return false;
		} else {
			return true;
		}
	});
});
