// JavaScript Document

//var booking_url = 'http://localhost:8000';
var booking_url = "http://"+document.domain;

jQuery.urlParam = function(name){
	var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
	if (results === null) { return results; }
	return results[1] || 0;
};

function is_empty(val) {
  return val.replace(/\s*/g, '') == '';	
}

function filter_empty(sel) {
  return sel.filter(function() { 
	  return is_empty( jQuery(this).val() ); 
  });
}

jQuery(document).ready(function($) {
  var randomnumber=Math.floor(Math.random()*1100);
  $('#donor_widget').load(booking_url+'/filestore/donor_content.html', function() {
		
    if(typeof forced_reason != "undefined") {
      if ( !is_empty(forced_reason)) {
        $("#reason_span").html("<div class=\"forced_reason\">"+forced_reason+"</div><input type=\"hidden\" id=\"reason\" value=\""+forced_reason+"\"/>");
      }
    }
    
    var root = jQuery("#wizard").scrollable( {size:1,clickable:false} );																					 
		var api = root.scrollable(), drawer = $("#drawer");
		
		if($.urlParam('responseCode') == 'OK' || $.urlParam('responseCode') == '99') { 
		  api.setPage(2);
		  $("#status li").removeClass("active").eq(2).addClass("active");
		  if($.urlParam('responseCode') == 'OK') {
			  $('#thankyou_content_success').show();
		  } else {
			  $('#thankyou_content_failed').show();
		  }
		  
		  $.getJSON('/scripts/authorize.groovy', {'responseCode':$.urlParam('responseCode'),'transactionId':$.urlParam('transactionId')}, function(data){
				var old_html= $('#thankyou_content_success').html();
        if(data.resultcode == 'OK') {
				  $('#thankyou_content_success').html(old_html+data.resultmsg);
        } else {
				  $('#thankyou_content_success').html("<p>Betaling feilet, vennligst kontakt din kortusteder.</p>"+data.resultmsg);
        }
		  });
			return;
		}
		
		$('#tryagain').click(function(){
		  api.setPage(0);							  
		});
		
		$('#paymentform').change(function() {
      var payvalue = $(this).val();
		  var go_on = false;
		  var inputs = $('#wizard').find(':input').filter('.required').removeClass("error"); 
		  if (payvalue == 'cc') {
		    go_on = true;
		    if ( $('#giro_form').is(':visible') ) {
		      $('#giro_form').slideUp();
		    }
      } else if (payvalue == 'giro') {
			  $('#giro_form').slideDown();
			  if ( $('#cc_form').is(':visible') ) {
			    $('#cc_form').slideUp();
			  }
		  }
		  $('#paymentform').removeClass('error');
	  });				
		
		$('#finalize_button').click(function(){
		  var payform = $('#paymentform').val();
      $('#page_2_buttons').html("<div style=\"text-align:center\">Sender deg videre n&aring;... Vennligst vent.<br/><img src=\"/filestore/ajax-loader.gif\"></div>");
		  
		  if( payform == 'cc') {
			  $.getJSON('/scripts/register.groovy',{'amount':$('#donation').val(),'returl':window.location.href}, function(data) {
			    window.location = data.url;											  
			  });
		    
		  } else if (payform == 'giro') {
        $.ajax({ 
          url: "/scripts/giro.groovy", 
          data: ({
            'amount':$('#donation').val(),
            'name': $('#donate_name').val(),
            'addr':$('#donate_address').val(),
            'postcode':$('#donate_postcode').val(),
            'postplace':$('#donate_postplace').val()
          }), error: function(data) {
          },success: function(data){
            console.log(data);
            $("#thankyou_content_success").html("<p>Vi har registrert ditt &oslash;nske om &aring; f&aring; tilsendt giro s&aring; denne vil komme om et par dager til din registrerte addresse.</p><p>Vi ser frem til din donasjon.</p>");
            $("#thankyou_content_success").show();
		        //api.setPage(2);
		        jQuery(".items").attr("style","left:-1153px");
          }
        });
      }									 
	  });
		
		api.onBeforeSeek(function(event, i) {
		  if (api.getIndex() < i) {
			  var page = root.find(".page").eq(api.getIndex());
				
				if (i==1) {
					var inputs = $('#wizard').find(':input').filter('.required').removeClass("error"); 
					var empty = filter_empty(inputs);
					var payform = $('#paymentform');
					var donation = $('#donation');
					empty.addClass('error');
	
					var donate_text='<p>Du har valgt &aring; donere ' + 
						$('#donation').val() + ' kroner og &oslash;nsker at dette skal brukes til ' + 
						$('#reason').val()+'.</p>';
						
					var drawer_error = "";
					if(payform.val() == 'cc') {
					  if( is_empty(donation.val()) ) {
						drawer_error = "Du m&aring; sette et bel&oslash;p du &oslash;nsker &aring; gi.";
					  } else {
						$('#confirm_content_msg').html(donate_text);
					    $('#confirm_cc').show();
					  }
					} else if(payform.val() == 'giro') {
						if(empty.length > 0) {
							drawer_error = "Du m&aring; fylle inn alle markerte felter f&aring;r du kan g&aring; videre.";
						} else {
						  var comma='';
						  if($('#donate_address').val() != "") { comma = ', ';}

						  var add_text = '<p>Ettersom du &oslash;nsker &aring;' + 
						    ' betale med giro har vi registrert f&oslash;lgende informasjon.</p>' +
						    '<p>Navn: ' + $('#donate_name').val() + '<br/>'+
						    'Addresse: ' + $('#donate_address').val() + comma + 
						    $('#donate_postcode').val() + ' ' + $('#donate_postplace').val() +
							'</p>';
						  $('#confirm_content_msg').html(donate_text + add_text);
						  $('#confirm_cc').hide();
						}
					} else {
						drawer_error='Du m&aring; velge betalingsm&aring;te f&oslash;r det er mulig &aring; g&aring; videre.';
						return false;
					}
					if(drawer_error != "") {
						drawer.html(drawer_error);
						drawer.slideDown(function() {
							setTimeout(function() { drawer.slideUp(); }, 5000);						  
						});
						return false;
					}
				
				} else if(i == 2) {
					var t = 2;
				} 
				
			} else {
			  // We are moving backwards
			}
			$("#status li").removeClass("active").eq(i).addClass("active");
		});
		
		
	});
});