$(document).ready(function() {
	
	/**
	1. SHOPPING CART
	*/
	/*$("div#voucher_and_bonus_box").hide();
	
	$("a#open_voucher_bonus_box").toggle(
		function(){
			$("a#open_voucher_bonus_box").text("Gutschein oder Bonuspunkte - X");
			$("div#voucher_and_bonus_box").slideDown();
		},
		function(){
			$("div#voucher_and_bonus_box").slideUp();
			$("a#open_voucher_bonus_box").text("Gutschein oder Bonuspunkte?");
		}
	);*/
	
	$("a#redeem_credit").click(function(){
		$.get(
			"/ajaxCheckout.php",
			{
				action: "toggle_credit"
			},
		  	function(data) {
				if(data.cot_gv == '1')
					$("span#redeem_credit_info").html('Guthaben wird mit Bestellung verrechnet.');
				else
					$("span#redeem_credit_info").html('Guthaben wird <strong>nicht</strong> mit Bestellung verrechnet.');
		  	},
			'json'
		);
	});

	/**
	2. ADDRESS
	*/
	
	//BILLING ADDRESS
	$("input#firstname").addClass("validate[required]");
	$("input#lastname").addClass("validate[required]");
	$("input#street").addClass("validate[required]");
	$("input#zip").addClass("validate[required]");
	$("input#city").addClass("validate[required]");
	$("input#email").addClass("validate[custom[email],ajax[ajaxEmail]]");
	$("input#telephone_number").addClass("validate[custom[telephone]]");
	
	$("input#conditions").addClass("validate[required] checkbox");
	
	//ALTERNATIVE SHIPPING ADDRESS
	function hideAlternativeShippingAddress() {
		$("div#container_alternative_shipping_address").slideUp();
		
		$("input#alternative_shipping_address").parent().css('background-color', '#ffffff');
		$("input#non_alternative_shipping_address").parent().css('background-color', '#eeeeee');
		
		$("input#shipping_firstname").removeClass("validate[required]");
		$("input#shipping_lastname").removeClass("validate[required]");
		$("input#shipping_street").removeClass("validate[required]");
		$("input#shipping_zip").removeClass("validate[required]");
		$("input#shipping_city").removeClass("validate[required]");
		
		$("input#non_alternative_shipping_address").attr('checked','checked');
	}
	
	function showAlternativeShippingAddress() {
		$("div#container_alternative_shipping_address").slideDown();
		
		$("input#non_alternative_shipping_address").parent().css('background-color', '#ffffff');
		$("input#alternative_shipping_address").parent().css('background-color', '#eeeeee');
		
		$("input#shipping_firstname").addClass("validate[required]");
		$("input#shipping_lastname").addClass("validate[required]");
		$("input#shipping_street").addClass("validate[required]");
		$("input#shipping_zip").addClass("validate[required]");
		$("input#shipping_city").addClass("validate[required]");
		
		$("form#address").validationEngine();
		
		$("input#alternative_shipping_address").attr('checked','checked');
	}
	
	/*initial*/
	$("input#non_alternative_shipping_address:checked").parent().css('background-color', '#eeeeee');
	$("div#container_alternative_shipping_address").hide();
	
	$("form#address").validationEngine();
	
	/*actions*/
	$("input#non_alternative_shipping_address").parent().click(function(){
		hideAlternativeShippingAddress();
	});
	
	$("input#alternative_shipping_address").parent().click(function(){
		showAlternativeShippingAddress();
	});
	
	
	
	$("input#alternative_shipping_address").click(function(){
		showAlternativeShippingAddress();
		/*$("div#container_alternative_shipping_address").slideDown();
		
		$("input#non_alternative_shipping_address").parent().css('background-color', '#ffffff');
		$(this).parent().css('background-color', '#eeeeee');
		
		$("input#shipping_firstname").addClass("validate[required]");
		$("input#shipping_lastname").addClass("validate[required]");
		$("input#shipping_street").addClass("validate[required]");
		$("input#shipping_zip").addClass("validate[required]");
		$("input#shipping_city").addClass("validate[required]");
		
		$("form#address").validationEngine();*/
	});
	
	$("input#non_alternative_shipping_address").click(function(){
		hideAlternativeShippingAddress();
		/*$("div#container_alternative_shipping_address").slideUp();
		
		$("input#alternative_shipping_address").parent().css('background-color', '#ffffff');
		$(this).parent().css('background-color', '#eeeeee');
		
		$("input#shipping_firstname").removeClass("validate[required]");
		$("input#shipping_lastname").removeClass("validate[required]");
		$("input#shipping_street").removeClass("validate[required]");
		$("input#shipping_zip").removeClass("validate[required]");
		$("input#shipping_city").removeClass("validate[required]");*/
	});
	
	$("label[for='subscribe_newsletter']").click(function(){
		var checked = $("input[name=subscribe_newsletter]").attr('checked');
		
		if(checked)
			$("input[name=subscribe_newsletter]").attr('checked', '');
		else
			$("input[name=subscribe_newsletter]").attr('checked', 'checked');
	});
	
	$("label[for='conditions']").click(function(){
		var checked = $("input[name=conditions]").attr('checked');
		
		if(checked)
			$("input[name=conditions]").attr('checked', '');
		else
			$("input[name=conditions]").attr('checked', 'checked');
	});
	
	/**
	3. PAYMENT
	*/
	
	//KREDITOR-KARNA
	function checkDOB() {
		$("#update_dob_form").dialog({
			autoOpen: false,
			height: 200,
			width: 400,
			modal: true,
			buttons:
			{
				"Abbrechen": function() {
					$(this).dialog("close");
				},
				"Speichern": function() {
					$.get(
						"/ajaxCheckout.php",
						{
							action: "updateDOB",
							day: $('select[name="birthday_Day"]').val(),
							month: $('select[name="birthday_Month"]').val(),
							year: $('select[name="birthday_Year"]').val()
						},
					  	function(data) {
					  	},
						'json'
					);
					
					$(this).dialog("close");
				}
			}
		});
		
		$.get(
			"/ajaxCheckout.php",
			{
				action: "checkDOB",
				selectedMethod: $(this).val()
			},
			function(data) {
				if(data.hasDOB == "0") {
					$("#update_dob_form").dialog("open");
				}
			},
			'json'
		);
	}
	
	if($('input#payment:checked').val() == 'kreditor_de')
	{
		checkDOB();
	}
	
	$('input#payment[value="kreditor_de"]').click(function(){
		checkDOB();
	});
	
	//COMMENT BOX
	$("div#comment_box").hide();
	
	$("a#open_comment_box").toggle(
		function(){
			$("div#comment_box").slideDown();
			$("a#open_comment_box").text("Anmerkung zur Bestellung - X");
		},
		function(){
			$("div#comment_box textarea").val("");
			$("div#comment_box").slideUp();
			$("a#open_comment_box").text("Anmerkung zur Bestellung?");
		}
	);
	
	//PAYMENT METHOD
	$("input[name=payment]:checked").parent().css('background-color', '#eeeeee');
	
	$("div.paymentMethod").click(function(){
		$(this).find('input').attr('checked', 'checked');
		
		$("div.paymentMethod").each(function(){
			$(this).css('background-color', '#ffffff');
		});
		
		$(this).css('background-color', '#eeeeee');
		
		if($(this).find('input').val() == 'ipayment') {
			$("div#ipaymentAdditional").slideDown();
			prepareIPaymentForm();
		} else {
			$("div#ipaymentAdditional").hide();
			disableIPaymentForm();
		}
	});
	
	$("input[name=payment]").click(function(){
		$("input[name=payment]").each(function(){
			$(this).parent().css('background-color', '#ffffff');
		});
		
		$(this).parent().css('background-color', '#eeeeee');
	});
	
	$("input[name=payment]").parent().hover(
		function(){
			$(this).css('background-color', '#eeeeee');
		},
		function(){
			$(this).css('background-color', '#ffffff');
			$("input[name=payment]:checked").parent().css('background-color', '#eeeeee');
		}
	);
	
	if($("input[name=payment]:checked").val() == "ipayment") {
		$("div#ipaymentAdditional").find("input").each(function(){
			$(this).attr("class", "validate[required]");
			$(this).attr("id", $(this).attr("name"));
		});
		$("div#ipaymentAdditional").slideDown();
	} else {
		$("div#ipaymentAdditional").hide();
	}
	
	$("form#payment input[name=payment]").click(function() {
		$.get(
			"/ajaxCheckout.php",
			{
				action: "payment",
				selectedMethod: $(this).val()
			},
			function(data) {
				updateItem('payment', data);
				updateItem('total', data);
				//updateAll();
			},
			'json'
		);
	});
	
	$("input[name=payment]").click(function() {
		if($(this).val() == "ipayment") {
			$("div#ipaymentAdditional").find("input").each(function(){
				$(this).attr("class", "validate[required]");
				$(this).attr("id", $(this).attr("name"));
			});
			$("div#ipaymentAdditional").slideDown();
		} else {
			$("div#ipaymentAdditional").find("input").each(function(){
				$(this).removeAttr("class");
				linkTofield = $(this).attr("id") + "formError";
				linkTofield = linkTofield.replace("[",""); linkTofield = linkTofield.replace("]","");

				closingPrompt = "."+linkTofield;

				$(closingPrompt).fadeTo("fast",0,function(){
					$(closingPrompt).remove();
				});
			});
			$("div#ipaymentAdditional").hide();
			
			disableIPaymentForm();
		}
	});
	
	//IPAYMENT
	if($('input[name="payment"]:checked').val()=='ipayment') {
		prepareIPaymentForm();
	}
	
	$('input[name="payment"][value="ipayment"]').click(function(){
		prepareIPaymentForm();
	});
	
	function prepareIPaymentForm() {
		$.get(
			"/ajaxCheckout.php",
			{
				action: "getIpaymentData"
			},
			function(data) {
				
				//SET SERVICE URL
				$('form#payment').attr('action', data.serviceUrl);
				
				//SET HIDDEN PARAMS
				$('form#payment').append($('<input id="silent" type="hidden" name="silent" />').attr('value', data.silent));
				$('form#payment').append($('<input id="trx_paymenttyp" type="hidden" name="trx_paymenttyp" />').attr('value', data.trx_paymenttyp));
				$('form#payment').append($('<input id="trxuser_id" type="hidden" name="trxuser_id" />').attr('value', data.trxuser_id));
				$('form#payment').append($('<input id="trxpassword" type="hidden" name="trxpassword" />').attr('value', data.trxpassword));
				$('form#payment').append($('<input id="item_name" type="hidden" name="item_name" />').attr('value', data.item_name));
				$('form#payment').append($('<input id="trx_currency" type="hidden" name="trx_currency" />').attr('value', data.trx_currency));
				$('form#payment').append($('<input id="trx_amount" type="hidden" name="trx_amount" />').attr('value', data.trx_amount));
				$('form#payment').append($('<input id="conditions_cc" type="hidden" name="conditions_cc" />').attr('value', data.conditions_cc));
				$('form#payment').append($('<input id="addr_email" type="hidden" name="addr_email" />').attr('value', data.addr_email));
				$('form#payment').append($('<input id="redirect_url" type="hidden" name="redirect_url" />').attr('value', data.redirect_url));
				$('form#payment').append($('<input id="silent_error_url" type="hidden" name="silent_error_url" />').attr('value', data.silent_error_url));
				$('form#payment').append($('<input id="trx_securityhash" type="hidden" name="trx_securityhash" />').attr('value', data.trx_securityhash));
				
			},
			'json'
		);
	}
	
	function disableIPaymentForm() {
		$.get(
			"/ajaxCheckout.php",
			{
				action: "getCheckoutUrl"
			},
			function(data) {
				
				//SET SERVICE URL
				$('form#payment').attr('action', data.url);
				
				//REMOVE HIDDEN PARAMS
				$('form#payment input#silent').remove();
				$('form#payment input#trx_paymenttyp').remove();
				$('form#payment input#trxuser_id').remove();
				$('form#payment input#trxpassword').remove();
				$('form#payment input#item_name').remove();
				$('form#payment input#trx_currency').remove();
				$('form#payment input#trx_amount').remove();
				$('form#payment input#conditions_cc').remove();
				$('form#payment input#addr_email').remove();
				$('form#payment input#redirect_url').remove();
				$('form#payment input#silent_error_url').remove();
				$('form#payment input#trx_securityhash').remove();
			},
			'json'
		);
	}
	
	$("form#payment").validationEngine();
	
	/**
	X. MISC
	*/
	
	//HELPERS
	function updateItem(item, data) {
		switch(item) {
			case 'payment':
				$("input[name=hiddenPayment]").val(data.paymentFee);
				$("strong#paymentTotal").text(data.paymentFeeFormated);
				$("strong#totalPayment").text(data.paymentFeeFormated);
			case 'shipping':
				$("input[name=hiddenShipping]").val(data.shippingFee);
				$("strong#shippingTotal").text(data.shippingFeeFormated);
				$("strong#totalShipping").text(data.shippingFeeFormated);
			break;
			case 'gv':
				$("strong#totalGvTotal").text(data.gvFormated);
			break;
			case 'total':
				$("strong#overallTotal").text(data.total);
			break;
		}
	}
	
	//UPDATE SHIPPING
	$("form#checkout input[name=shipping]").click(function() {
		$.get(
			"/ajaxCheckout.php",
			{
				action: "shipping",
				selectedMethod: $(this).val()
			},
		  	function(data) {
		    	if(data != '') {
					updateItem('shipping', data);
					updateItem('total', data);
					//updateAll();
				}
		  	},
			'json'
		);
	});
	
	//UPDATE PAYMENT
	
	
	//IPAYMENT CC
	
	
	//GUEST ACCOUNT
	if($("input#use_different_shipping_address").attr("checked"))
	{
		$("div#additionalShippingAddress").find("input").each(function(){
			$(this).attr("class", "validate[required]");
		});
		$("div#additionalShippingAddress").show();
	} else {
		$("div#additionalShippingAddress").find("input").each(function(){
			$(this).removeAttr("class");
			linkTofield = $(this).attr("id") + "formError";
			linkTofield = linkTofield.replace("[",""); linkTofield = linkTofield.replace("]","");

			closingPrompt = "."+linkTofield;

			$(closingPrompt).fadeTo("fast",0,function(){
				$(closingPrompt).remove();
			});
		});
		$("div#additionalShippingAddress").hide();
	}
	
	$("input#use_different_shipping_address").click(function(){
		if($(this).attr("checked"))
		{
			$("div#additionalShippingAddress").find("input").each(function(){
				$(this).attr("class", "validate[required]");
			});
			$("div#additionalShippingAddress").slideDown();
		} else {
			$("div#additionalShippingAddress").find("input").each(function(){
				$(this).removeAttr("class");
				linkTofield = $(this).attr("id") + "formError";
				linkTofield = linkTofield.replace("[",""); linkTofield = linkTofield.replace("]","");

				closingPrompt = "."+linkTofield;

				$(closingPrompt).fadeTo("fast",0,function(){
					$(closingPrompt).remove();
				});
			});
			$("div#additionalShippingAddress").slideUp();
		}
	});
	
	$("span#totalGv").hide();
	$("input#cot_gv").click(function(){
		if($(this).attr("checked")) {
			$.get(
				"/ajaxCheckout.php",
				{
					action: "gv",
					gv: 	1, 
				},
				function(data) {
					updateItem('gv', data);
					updateItem('total', data);
				},
				'json'
			);
			$("span#totalGv").show();
		} else {
			$.get(
				"/ajaxCheckout.php",
				{
					action: "gv",
					gv: 	0, 
				},
				function(data) {
					updateItem('gv', data);
					updateItem('total', data);
				},
				'json'
			);
			$("span#totalGv").hide();
		}
	});
	
	//SHIPPINGTIME
	$("div#productOptions select").change(function(){
	});
});


