/*************************************
 * @Jquery common behaviours 
**************************************/

/**
 * @Prevent a default click 
 */
$(function() {
	$('.prevent_default').css({ cursor: 'default' });
	$('.prevent_default').bind('click', function(e) {
		e.preventDefault();
	});				 
});

/**
 * @Css tricks 
 */
$(function() {
	$('._blank').attr({ target: '_blank' });			 
});

/**
 * Float order summeary
 */
$(function() {
	var $selector = $('#checkout_order_summary');
	if($selector.length && !isiPad() && !isiPhone()) {
		var width = $selector.width();
		var height = $selector.height();
		var ytop = $selector.offset().top;
		var csspos = $selector.css('position');
		var csstop = $selector.css('top');
		var cssleft = $selector.css('left');
		var cssright = $selector.css('right');
		var y;
		var winH;
		$(window).scroll(function(e) {
			y = $(this).scrollTop();
			winH = $(window).height();
			if (y > ytop && height < winH - 50) {
				$selector.css({
					position: 'fixed',
					width: width + 'px',
					top: '20px',
					zIndex: 1000
				});
			} else {
				$selector.css({
					position: csspos,
					top: csstop,
					zIndex: 1000
				});
			}
		});
	}
});

/**
 * Fancybox
 */
$(function() {
	if($('script#script_fancybox').length && $('link#link_fancybox').length) {
	$('a#fancyboxPicItem, a[rel=fancybox]').fancybox({
		'overlayShow'	: true,
		'transitionIn'	: 'elastic',
		'transitionOut'	: 'elastic',
		'titlePosition' 	: 'over',
		'titleFormat'		: function(title, currentArray, currentIndex, currentOpts) {
			return '<span id="fancybox-title-over">' + (title.length ? title : '') + '</span>';
		}
	});
	}
});

/**
 * Register change customer type
 */
$(function() {
	if($('#register_new_customer select#c_type').val() != 'private') { 
		$('#register_new_customer .tr_company').show(0); 
	} else {
		$('#register_new_customer .tr_company').hide(0);
	}
	$('#register_new_customer select#c_type').bind('change', function() {
		var $company = $('#register_new_customer .tr_company');
		if($(this).val() != 'private')
			$company.fadeIn(0);
		else
			$company.hide(0);
		});				 
});

/* HACKS */
$(function() {
	if ($('#search_box input#searchterm').val() == '')
		$('#search_box input#searchterm').val('søk i nettbutikken ..');					 
});

/**
 * Popup windows
 */
$(function() {
	var profiles = {

		window800: {
			height: $(window).height(),
			width: 800,
			status: 1,
			center: 1,
			resizable: 1,
			scrollbars: 1,
		},
		
		window600: {
			height: $(window).height(),
			width: 600,
			status: 1,
			center: 1,
			resizable: 1,
			scrollbars: 1
		},
		
		window1000: {
			height: $(window).height(),
			width: 1000,
			status: 1,
			center: 1,
			resizable: 1,
			scrollbars: 1
		}
	};
	
	$(".popupwindow").popupwindow(profiles);
});

/* Scroll to product details */
$(function() {
	$('a.more_about_product').bind('click', function(e) {
		e.preventDefault();
		$('html, body').animate({ scrollTop: $('.heading_prod_details').offset().top - 20 }, 1000);
	});				 
});

/** 
 * Autocomplete 
 * advanced search 
 * product number 
 */
$(function() {
	
	/* If selector exists */
	if($('#formAdvancedSearchProductNr #product_nr').length) {
		
		/* Append autocomplete css */
		$('<link />').attr({ rel: 'stylesheet', type: 'text/css', href: '/js/jQuery/css/ui-themes/base.css', id: 'jquery-ui-autocomplete-link',  }).appendTo('head');
		$('#formAdvancedSearchProductNr #product_nr').autocomplete({
			source: function( request, response ) {
				$.ajax({
					type: "POST",
					url: "/ajax/ajax.process.php",
					dataType: "json",
					data: {
						'submit': 'autocomplete_product_nr',
						'q': request.term
					},
					success: function( data ) {
						return response(data);
					}
				});
			},
			minLenth: 1,
			delay: 0
		});
	
	} /* endif */
	
});

/** 
 * Nivo slider 
 * Header ads 
 */
$(function() {
	
	/* Check for selector */
	if($('#header_ads_wrapper_id').length) {
		
		/* Append nivo slider plugin */
		$('<link />').attr({ rel: 'stylesheet', type: 'text/css', href: '/js/jQuery/plugins/nivo-slider/themes/default/default.css' }).appendTo('head');
		$('<link />').attr({ rel: 'stylesheet', type: 'text/css', href: '/js/jQuery/plugins/nivo-slider/nivo-slider.css' }).appendTo('head');
		$('<script />').attr({ type: 'text/javascript', src: '/js/jQuery/plugins/nivo-slider/jquery.nivo.slider.pack.js' }).appendTo('head');
		
		$('#header_ads_wrapper_id').nivoSlider({
			effect: "fade",
			slices: 15,
			boxCols: 8,
			boxRows: 4,
			animSpeed: 1500,
			pauseTime: 4500,
			startSlide: 0,
			randomStart: false,
			directionNav: false,
			directionNavHide: true,
			controlNav: false,
			controlNavThumbs: false,
			controlNavThumbsFromRel: false,
			controlNavThumbsSearch: '.jpg',
			controlNavThumbsReplace: '_thumb.jpg',
			keyboardNav: true,
			pauseOnHover: true,
			manualAdvance: false,
			captionOpacity: 0.8,
			prevText: 'Forrige',
			nextText: 'Neste',
			beforeChange: function(){},
			afterChange: function(){},
			slideshowEnd: function(){},
			lastSlide: function(){},
			afterLoad: function(){}
		});
	
	}
					 
});

/* --------------------------------- */
/* =========== FUNCTIONS =========== */
/* --------------------------------- */

/* Klarna header */
function klarna_header($selector, $method, $append) {
	
	var $selector = typeof($selector) != 'undefined' ? $selector : 'klarna_header';
	var $method = typeof($method) != 'undefined' ? $method : 'prepend';
	var $append = typeof($appendto) != 'undefined' ? $append : 'container';
	
	var $is_klarna = 1;
	var $klarna_img = '<img id="klarna_header_img" src="/images.vendor/klarna/klarna_header.png" alt="Klarna, betal trygdt p&aring; nett" />';
	if($is_klarna == 1) {
		$('body #' + $append)[$method]('<div id="'+ $selector +'"><a target="_blank" href="http://www.klarna.com" title="Klarna, betal trygdt p&aring; nett">' + $klarna_img + '</a></div>');
		$('#klarna_header_img').error(function() {
			$('#klarna_header_img').parent().parent().remove();																				 
		});
	}
}
/*************************************
 * @Tell a friend behaviours 
**************************************/

/**
 * @Tell a friend box 
 */
$(function() {
	$('.shareservice_tellfriend').hide();
	/* Define vars */
	var winW = $(window).width();
	var winH = $(window).height();
	var boxW = 400;
	var boxW2 = boxW/2;
	var pleft = winW/2 - boxW2;
		
	$('.shareservice_tellfriend')
		.css({
		display: 'none',
		width: boxW +'px',
		left: pleft +'px'
	})
	
	/* on click */
	$('#tellafriendicon').click(function(e) {
		e.preventDefault();
		$('.shareservice_tellfriend').hide().fadeIn();	
	});
	
	/* on click */
	$('.shareservice_tellfriend h2 a, .canceltellfriend').click(function(e) {
		e.preventDefault();
		$('.shareservice_tellfriend').fadeOut();	
		$('.pemail_submit span').hide();
		$('input#friendsemail').val('');
		$('input#youremail').val('');
		$('textarea#friendscomment').val('');
	});
});

/**
 * @Tell a friend ajax
 */
$(function() {
	$('#submittellfriend').click(function(e) {
		e.preventDefault();
		
		/* Get input fields */
		var strData = {
				'productID':  $('input#tellfriendproductID').val(),
				'femail':  $('input#friendsemail').val(),
				'yemail':  $('input#youremail').val(),
				'fcomment':  $('textarea#friendscomment').val(),
				'submit': $(this).attr('id')
		};
		
		
		/* do ajax -- */
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.tellafriend.php",
			dataType : 'json',
			data : strData,
			beforeSend: function() {
				$('.pemail_submit span').hide();
				$('.pemail_submit .loading').hide().fadeIn();
				$('#submittellfriend').attr({ disabled: true });
			},
			success: function(data) {
				if(data.error === true) {
					$('.pemail_submit span').hide();
					$('.pemail_submit .tellfriend_msgnok').html(data.msg).hide().fadeIn();
					$('#submittellfriend').attr({ disabled: false });
				} else {
					$('.pemail_submit span').hide();
					$('.pemail_submit .tellfriend_msgok').html(data.msg).hide().fadeIn();
					$('input#friendsemail').val('');
					$('input#youremail').val('');
					$('textarea#friendscomment').val('');
					$('#submittellfriend').attr({ disabled: false });
				}
			}
		});
		/* end ajax -- */
		
	});
});
/*************************************
 * @Add to cart behaviours
**************************************/

/**
 * @Add to cart with ajax
 */
$(function() {
	$('form.prodForm_Ajax').bind('submit', function(e) {
		e.preventDefault();	
		
		var $this = $(this);
		var $id = $this.find('input.addToCart_Item_Id').val();
		var $btnclick = $this.find('input.addToCart_Ajax');
		
		var isItemPageClick = ( $btnclick.hasClass('addToCart_Item_Page') ) ? true : false;
		
		/* Get fields */
		var strData = {
				'product_id':  $this.find('input[name=product_id]').val(),
				'redirect':  $this.find('input[name=redirect]').val(),
				'continueShop':  $this.find('input[name=continueShop]').val(),
				'addToCart': 'addToCart_Ajax'
		};
		
		/* Get attributes */
		var attributes = {};
		$this.find('.attributes_Ajax').each(function(i) {
			var $key = $(this).attr('name');
			var $val = $(this).val();
			attributes[$key] = $val;
		});
		
		/* Add attributes to string data */
		$.extend(strData, attributes);
		
		
		/* do ajax -- */
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.addtocart.php",
			data : strData,
			dataType: 'json',
			beforeSend: function() {
				$btnclick.attr({ disabled: 'disabled' }).css({ opacity: 0.4, cursor: 'default' });
			},
			success: function(data) {
				var animateselector = $this.find('.img_box img:first');
				if(window.position_cart_display_load) {
					position_cart_display_load();	
				}
				add_to_cart_animate(animateselector);
				setTimeout(function() {
					cart_display_load();	
					$btnclick.removeAttr('disabled').css({ opacity: 1, cursor: 'pointer' });
				}, 1000);
			}
		});
		/* end ajax -- */
	});				 
});

/**
 * @Load cart display
 */
function cart_display_load() {
	/* do ajax -- */
	$.ajax({
		type: "POST",
		url: "/ajax/ajax.addtocart.php",
		dataType : "html",
		data : { jqsubmit: 'update_cart_display' },
		beforeSend: function() { },
		success: function(data) {
			$('#cart_display').html('');
			$('#cart_display').html(data).effect('pulsate', { times: 2 }, 500);
		}
	});
		/* end ajax -- */
}

/**
 * @Add to cart animate
 */
function add_to_cart_animate(selector) {
	
	var dropW = 100;
	var dropH = 100;
	
	var selectorW = selector.width();
	var selectorH = selector.height();
	
	var top = selector.offset().top;
	var left = selector.offset().left;
	
	var targetWidth = $('#cart_display').width();
	var targetHeight = $('#cart_display').height();
	var targetTop = $('#cart_display').offset().top + (targetHeight - dropH)/2;
	var targetLeft = $('#cart_display').offset().left;
	
	$('<p />').attr({ 'class': 'addtocart_floatingBox' })
	.html('&nbsp;')
	.css({
		position: 'absolute',
		top: top + 'px',
		left: left + 'px',
		width: selectorW + 'px',
		height: selectorH + 'px',
		border: '0px solid #999999',
		background: '#dddddd url("' + selector.attr('src') + '") center center no-repeat',
		opacity: 1,
		overflow: 'auto',
		zIndex: 10000
	})
	.insertAfter(selector)
	.animate({ top: targetTop + 'px', left: targetLeft + 'px', width: dropW + 'px', height: dropH + 'px', opacity: 0 }, 1000);
	setTimeout(function() {
		$('.addtocart_floatingBox').remove();										
	}, 1000);
}
/*************************************
 * @Cart actions
**************************************/

/**
 * @Show cart
 */
$(function() {
	$('.showcart_Ajax').live('click', function(e) {
		e.preventDefault();	
		
		var divW = 900;
		var winW = $(window).width();
		var winH = $(window).height();
		var left = winW/2 - divW/2;
		var bgc = $('body').css('background-color');
		var height;
		
		$('<div />')
		.attr({ id: 'maincart_Ajax_Mask' })
		.css({ opacity: .1 })
		.fadeIn('fast')
		.appendTo('body');
		
		$('<div />')
		.attr({ id: 'maincart_Ajax' })
		.css({ left: left + 'px' })
		.fadeIn()
		.prependTo('body');
		
		$('<div />')
		.attr({ id: 'maincart_Ajax_Inner' })
		.css({ height: 'auto' })
		.html('<p class="loading">Laster inn handlevogn ...</p>')
		.appendTo('#maincart_Ajax');
		
		$('<h3 />')
		.attr({ id: 'maincart_Ajax_Title'})
		.html('<a href="#" class="prevent_default maincart_Ajax_Close" title="Lukk">&times;</a>&mdash; <span class="maincart_Ajax_Close">Handlevogn</span> &mdash;')
		.prependTo('#maincart_Ajax');
		
		/* Load cart */
		load_ajax_cart('#maincart_Ajax #maincart_Ajax_Inner');
		
		/* Scroll to top */
		$('html, body').animate({ scrollTop: $('body').offset().top }, 1000);
		
	});
	
	/* close main cart */
	exit_cart('#maincart_Ajax .maincart_Ajax_Close');
	if($('#checkout_page').length) {
		exit_cart('#maincart_Ajax input#checkOut');
	}
	if(! $('#checkout_page').length) {
		exit_cart('#maincart_Ajax input#continueShop_fromCart');
	}
	
});

/* close main cart */
function exit_cart(selector) {
	$(selector).live('click', function(e) {
		e.preventDefault();	
		$('#maincart_Ajax').fadeOut(300, function() { setTimeout(function() { $(this).remove() }, 500); });
		$('#maincart_Ajax_Mask').remove();
	});
}

/**
 * Remove cart item
 */
$(function() {
	$('#maincart_Ajax .cart_drop_item_Ajax').live('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		var $id = parseInt($this.attr('rel'));
		
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.cartactions.php",
			data : { submit: 'removeItemFromCart', removeFromCart: $id },
			dataType: 'html',
			beforeSend: function() {
				$this.parent().parent().css({ opacity: 0.2 });	
			},
			success: function(data) {
				$this.parent().parent().hide(0);
				setTimeout(function() {
					load_ajax_cart('#maincart_Ajax #maincart_Ajax_Inner');
					cart_display_load();
					load_order_summary();
					load_klarna_partpayment_options();
				}, 100);
			}
		});
		
	});			 
}); 

/**
 * Remove cart items all
 */
$(function() {
	$('#maincart_Ajax .cart_drop_items_all_Ajax').live('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		
		var $confirm = confirm('Handlevogn: Ta bort alle?');
		if($confirm) {
			$.ajax({
				type: "POST",
				url: "/ajax/ajax.cartactions.php",
				data : { emptyCart: 'emptyCart' },
				dataType: 'html',
				beforeSend: function() {
					$this.parent().parent().siblings('.table_cart_content').css({ opacity: 0.2 });	
				},
				success: function(data) {
					$this.parent().parent().siblings('.table_cart_content').hide(0);
					setTimeout(function() {
						load_ajax_cart('#maincart_Ajax #maincart_Ajax_Inner');
						cart_display_load();
						load_order_summary();
						load_klarna_partpayment_options();
					}, 100);
				}
			});
		}
	});			 
}); 

/**
 * Update cart item amount
 */
$(function() {
	$('#maincart_Ajax input.cart_amount_Ajax').live('keydown', function(e) {
		
		if (e.which == 13 || e.keyCode == 13) {
			e.preventDefault();
			var $this = $(this);
			var $amount = $this.val();
			var $cartID = parseInt($this.attr('id'));
			var $id = $this.attr('name');
			var $split = $id.split('[');
			$id = $split[1];
			$id = $id.replace(']', '');
			$id = parseInt($id);
			
			$.ajax({
				type: "POST",
				url: "/ajax/ajax.cartactions.php",
				data : { updateCartAmount: 'update', cartID: $id, itemAmount: $amount },
				dataType: 'html',
				beforeSend: function() {
					$this.effect('pulsate', { times: 20 }, 200);	
				},
				success: function(data) {
					load_ajax_cart('#maincart_Ajax #maincart_Ajax_Inner');
					cart_display_load();
					load_order_summary();
					load_klarna_partpayment_options();
				}
			});
		
		}
	});
	
	$('#maincart_Ajax input.cart_amount_Ajax').live('mouseover mouseout', function(e) {
		if (e.type == 'mouseover') {
			$(this).attr({ title: 'Angi antall og deretter Enter/Return' });
		} else {
			$(this).attr({ title: '' });
		}																															 																																		 
	});
	
});

/**
 * Submit coupon code
 */
$(function() {
	$('#maincart_Ajax .submitCouponCode_Ajax').live('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		var $coupon_code = $('#maincart_Ajax #coupon_code').val();
		
		if($coupon_code != '') {
			$.ajax({
				type: "POST",
				url: "/ajax/ajax.cartactions.php",
				data : { submitCouponCode: 'submitCouponCode', coupon_code: $coupon_code, coupon_code_redirect: true },
				dataType: 'html',
				beforeSend: function() {
					$this.parent().parent().effect('pulsate', { times: 20 }, 200);	
				},
				success: function(data) {
					$this.hide().fadeIn(300);
					load_ajax_cart('#maincart_Ajax #maincart_Ajax_Inner');
					cart_display_load();
					load_order_summary();
					load_klarna_partpayment_options();
				}
			});
		} else {
			$this.siblings('select').effect('pulsate', { times: 4 }, 200)
		}
		
	});			 
}); 
 
/**
 * Load ajax cart
 */
function load_ajax_cart(selector) {
	$.ajax({
		type: "POST",
		url: "/ajax/ajax.cartactions.php",
		data : { get: 'maincart' },
		dataType: 'html',
		beforeSend: function() {},
		success: function(data) {
			var $cart = (data != '') ? data : '<h4 class="noitems">Ingen varer i handlevognen.</h4>';
			$(selector).html($cart);
			adjust_cart_height('#maincart_Ajax');
			if(data == '') {
				if($('#checkout_page').length) {
					location.reload();
				}
				$('#maincart_Ajax').css({ height: '200px' });
				setTimeout(function() {
					$('#maincart_Ajax').fadeOut();
					$('#maincart_Ajax_Mask').fadeOut();
					
				}, 2000);
				setTimeout(function() {
					$('#maincart_Ajax').remove();
					$('#maincart_Ajax_Mask').remove();
				}, 3000);
			}
		}
	});
}

/**
 * Adjust cart height
 */
function adjust_cart_height(selector) {
	var cartH = $(selector).height();
	var winH = $(window).height(winH);
	var sTop = $(selector).css('top');
			sTop = parseInt(sTop.replace('px', ''));
	var h = winH - sTop;
	if( cartH > h ) {
		$(selector).css({ position: 'absolute' });	
	} else {
		$(selector).css({ position: 'fixed' });
	}
}

/**
 * Prevent some defaults
 */
$(function() {
	$('#maincart_Ajax input.cart_btns').live('click', function(e) {
		e.preventDefault();
	});
});
/*************************************
 * @Send inquiry 
**************************************/

/**
 * @Send inquery
 */
$(function() {
	$('input.send_inquiry').bind('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		var $id = $this.siblings('input.inquiry_product_id').val();
		var $pname = $this.siblings('input.inquiry_product_name').val();
		
		$('<div/>').attr({ id: 'send_inquiry_mask' })
		.css({
			position: 'fixed',
			top: '0px',
			left: '0px',
			right : '0px',
			bottom: '0px',
			width: 'auto',
			background: '#000000',
			zIndex: 2000,
			opacity: .4
		})
		.appendTo('body');
		
		$('<div/>').attr({ id: 'send_inquiry_wrapper' })
		.css({
			position: 'fixed',
			top: '100px',
			left: $(window).width()/2 - 600/2 + 'px',
			width: '600px',
			height: 'auto',
			background: '#fafafa',
			zIndex: 2001
		})
		.load('/includes/html/item/sendinquiry_form.tpl', function() {
			
			$('input#inq_firstname').focus();
			
			/* pname */
			$('#pname').html($pname);
			
			/* exit */
			$('#send_inquiry_wrapper a.exit').bind('click', function(e) {
				e.preventDefault();
				$('#send_inquiry_wrapper').fadeOut().remove();
				$('#send_inquiry_mask').fadeOut().remove();
			});
			
			/* send */
			$('#sbt_Send_Inquiry').bind('click', function(e) {
				e.preventDefault();
				
				$this = $(this);
				
				/* Get fields */
				var strData = {
						'product_id':  $id,
						'product_name':  $pname,
						'firstname': $('input#inq_firstname').val(),
						'lastname': $('input#inq_lastname').val(),
						'email': $('input#inq_email').val(),
						'phone': $('input#inq_phone').val(),
						'message': $('textarea#inq_message').val(),
						'submit': 'send_inquiry'
				};
				
				/* do ajax -- */
				$.ajax({
					type: "POST",
					url: "/ajax/ajax.sendinquiry.php",
					data : strData,
					dataType: 'json',
					beforeSend: function() {
						$this.attr({ disabled: 'disabled' }).css({ opacity: 0.4, cursor: 'default' });
						$this.parent().css({ backgroundImage: 'url(/images.forlovelsesringer.no/loading.gif)'});
					},
					success: function(data) {
						$this.removeAttr('disabled').css({ opacity: 1, cursor: 'pointer' });
						$this.parent().css({ backgroundImage: 'none'});
						if(data.error === false) {
							$('tr.inq_response td em').html(data.msg).addClass('ok');
							$('input#inq_firstname').val('');
							$('input#inq_lastname').val('');
							$('input#inq_email').val('');
							$('input#inq_phone').val('');
							$('textarea#inq_message').val('');
							setTimeout(function() {
								$('tr.inq_response td em').html('Må fylles ut *').removeClass('nok').removeClass('ok');	
								$('#send_inquiry_wrapper').fadeOut().remove();
								$('#send_inquiry_mask').fadeOut().remove();
							}, 500000);
						} else {
							$('tr.inq_response td em').html(data.msg).addClass('nok').removeClass('ok');
						}
					}
				});
				/* end ajax -- */
		
			});
			
		})
		.fadeIn()
		.appendTo('body');
		
	});
});
/*************************************
 * @Checkout
**************************************/

/**
 * Load initial checkout suboptions
 */
$(function() {
	/* Load order summary */
	load_order_summary();
	/* Load klarna part payment */
	load_klarna_partpayment_options();	
	/* Load cc options */
	load_cc_options();	
	/* Load pnr block */
	load_pnr_options();
});

/**
 * Select checkout options
 */
$(function() {
	/* select payment method */
	select_checkout_core_options('#checkout_page .select_payment_method', 'payment_method');
	/* select shipment method */
	select_checkout_core_options('#checkout_page .select_shipment_method', 'shipment_method');
	/* select shipment mode */
	select_checkout_core_options('#checkout_page .select_shipment_mode', 'shipment_mode');
}); 

/**
 * Select payment suboptions
 */
$(function() {
	/* Select klarna part payment */
	select_method_suboption('#checkout_page .klarna_part_payment_options', 'payment_klarna_partpayment', '.payment_method_klarna_part');
	/* Select cc vendor */
	select_method_suboption('#checkout_page .credit_card_options', 'payment_cc_vendor', '.payment_method_cc');			 
});

/**
 * @Function
 * Select checkout core options
 * @param $selector
 * @param $get
 */
function select_checkout_core_options($selector, $get) {
	$($selector).bind('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		var $param = $this.attr('rel');
		var $radio = $this.parent().parent().children('.radio').children('a').children('img').attr('src');
		var $src_on = $radio.replace('off.png', 'on.png');
		var $src_off = $radio.replace('on.png', 'off.png');
		
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.checkout.php",
			data : { get: $get, param: $param },
			dataType: 'json',
			beforeSend: function() {
				$this.parent().parent().children('.radio').children('a').hide();
				$this.parent().parent().children('.radio').children('.loading').hide().fadeIn();
			},
			success: function(data) {
				$this.parent().parent().children('.radio').children('a').hide().fadeIn();
				$this.parent().parent().children('.radio').children('.loading').hide();
				$this.parent().parent().children('.radio').children('a').children('img').attr({ src: $src_on });
				$this.parent().parent().siblings('tr').children('.radio').children('a').children('img').attr({ src: $src_off });
				
				if($get == 'payment_method') {
					$this.parent().parent().children('.logo').children('a').children('img').addClass('img_selected');
					$this.parent().parent().siblings('tr').children('.logo').children('a').children('img').removeClass('img_selected');	
				}
				
				$this.parent().parent().parent().parent().siblings('.checkout_errors').hide(0);
				$this.parent().parent().siblings('.tr_errors').hide(0);
				
				/* Responses */
				switch($get) {
					case 'payment_method':
						$('#chck_inp_pmethod').val(data.payment);
						$('#chck_inp_pclass').val('');
						$('#chck_inp_cc').val('');
				
						if(data.pclass)
							$('#chck_inp_pclass').val(data.pclass);
				
						if(data.cc)
							$('#chck_inp_cc').val(data.cc);
							
						/* xqc */
						var $xqc = $('#chk_inp_xqc');
						if($xqc.val() == 1) {
							if(data.payment == 'klarna_invoice' || data.payment == 'klarna_partpayment') {
								$('#checkout_guest_checkout').show(0);	
							} else {
								$('#checkout_guest_checkout').hide(0);	
							}
						}
						
						/* 
						if(data.payment != 'klarna_invoice' && data.payment != 'klarna_partpayment')
							$('#checkout_personal_number').hide();
						else 
							$('#checkout_personal_number').fadeIn();
						*/
						
					break;
					case 'shipment_method':
						$('#chck_inp_smethod').val(data.shipping); break;
					case 'shipment_mode':
						$('#chck_inp_smode').val(data.shipping_mode); break;
				}
				
				load_order_summary();
				load_klarna_partpayment_options();
				load_cc_options();
				load_pnr_options();
				switch_sbmbtn(data.payment, $get);
			}
		});
	});			 
}

/**
 * @Function
 * Select checkout suboptions
 * @param $selector
 * @param $get
 * @param $selector2
 */
function select_method_suboption($selector, $get, $selector2) {
	$($selector).live('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		var $param = $this.attr('rel');
		var $radio = $this.children('img').attr('src');
		var $src_on = $radio.replace('off.png', 'on.png');
		var $src_off = $radio.replace('on.png', 'off.png');
		
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.checkout.php",
			data : { get: $get, param: $param },
			dataType: 'json',
			beforeSend: function() {
				$this.children('img').hide();
				$this.parent().children('.loading').hide().fadeIn();
			},
			success: function(data) {
				$this.parent().children('.loading').hide();
				$this.children('img').attr({ src: $src_on }).hide().fadeIn();
				$this.parent().siblings('p').children('a').children('img').attr({ src: $src_off });
				$('#checkout_payment_method .radio a img').attr({ src: $src_off });
				$('#checkout_payment_method .logo a img').removeClass('img_selected');
				$('#checkout_payment_method '+ $selector2 +' .radio a img').attr({ src: $src_on });
				$('#checkout_payment_method '+ $selector2 +' .logo a img').addClass('img_selected');
				
				$this.parent().parent().parent().parent().siblings('.tr_errors').hide(0);
				$this.parent().parent().parent().parent().parent().siblings('.tr_errors').hide(0);
				
				/* Responses */
				$('#chck_inp_pmethod').val(data.payment);
				$('#chck_inp_pclass').val('');
				$('#chck_inp_cc').val('');
				
				if(data.pclass)
					$('#chck_inp_pclass').val(data.pclass);
				
				if(data.cc)
					$('#chck_inp_cc').val(data.cc);
				
				/*
				if(data.payment != 'klarna_invoice' && data.payment != 'klarna_partpayment')
					$('#checkout_personal_number').hide();
				else 
					$('#checkout_personal_number').fadeIn();
				*/
				
				/* xqc */
				var $xqc = $('#chk_inp_xqc');
				if($xqc.val() == 1) {
					if(data.payment == 'klarna_invoice' || data.payment == 'klarna_partpayment') {
						$('#checkout_guest_checkout').show(0);	
					} else {
						$('#checkout_guest_checkout').hide(0);	
					}
				}
				
				load_order_summary();
				load_klarna_partpayment_options();
				load_cc_options();
				load_pnr_options();
				switch_sbmbtn(data.payment, $get);
			}
		});
	});			 
}

/**
 * @Function
 * Load order summary
 */
function load_order_summary() {
	load_checkout_suboptions('#checkout_order_summary_load', 'order_summary');;		 
};

/**
 * @Function
 * Load klarna part
 */
function load_klarna_partpayment_options() {
	load_checkout_suboptions('#checkout_klarna_partpayment_options', 'klarna_partpayment_options');	
}

/**
 * @Function
 * Load pnr block
 */
function load_pnr_options() {
	load_checkout_suboptions('#checkout_pnr_load', 'pnr_options');	
}

/**
 * @Function
 * Load cc vendor
 */
function load_cc_options() {
	load_checkout_suboptions('#checkout_cc_options', 'cc_options');
}

/**
 * @Function
 * Load initial suboptions
 * @param $selector
 * @param $get
 */
function load_checkout_suboptions($selector, $get) {
	if($($selector).length) {
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.checkout.php",
			data : { get: $get },
			dataType: 'html',
			beforeSend: function() {
			},
			success: function(data) {
				$($selector).html(data);
				if($get == 'order_summary') {
					$($selector +' .enhance td span').effect('pulsate', { times: 2 }, 400);	
				}
				
				/* Positioning account_Ajax */
				positioning('#account_Ajax');
				
				/* Account Ajax accordion */
				/*if($('#account_Ajax').length) {
					$('#account_Ajax form:not(:first)').hide();
				}*/
				
			}
		});	
	}
}

/********
 * Hover
 */
$(function() {
	$('#checkout_page .select_payment_method').hover(function(e) {
		$(this).parent().parent().children('.logo').children('a').children('img').addClass('img_hover');
	}, function() {
		$(this).parent().parent().children('.logo').children('a').children('img').removeClass('img_hover');	
	});
});

/********
 * Validate order
 */
$(function() {
	var $form = $('#doPayment_checkout');
	var $payment = $('#chck_inp_pmethod');
	var $shipping = $('#chck_inp_smethod');
	var $shipping_mode = $('#chck_inp_smode');
	var $pclass = $('#chck_inp_pclass');
	var $cc = $('#chck_inp_cc');
	var $add_address = $('#chk_inp_add_address');
	var $pnr = $('#chk_inp_pnr');
	var $xqc = $('#chk_inp_xqc');
	var $toc = $('#chk_inp_accept_toc');
	
	/*
	if($payment.val() != 'klarna_invoice' && $payment.val() != 'klarna_partpayment') {
		$('#checkout_personal_number').hide();
	} else {
		if($pnr.val() != 1) {
			$('#checkout_personal_number').fadeIn();
		} else {
			$('#checkout_personal_number').hide();	
		}
	}
	*/
	
	$($form).removeAttr("onsubmit");
	$($form).removeAttr("target");
	$($form).attr({ action: '' });
	
	$form.submit(function() {
		if(validatePayment() & validateShipping() & validateShippingMode() & validatePclass() & validateCc() & validateAddAddress() & validatePnr() & validateToc()) {
			if($cc.length && $payment.val() == 'credit_card' && $cc.val() == 'dibs_flexwin') {
				$(this).attr({
					action: $('#dibs_action').val(),
					target: '_blank'
				});
			} else {
				$(this).attr({
					action: '',
					target: '_parent'
				});
			}
			return true;
		} else {
			return false;
		}
	});
	
	function validatePayment() {
		if($payment.val() == '') {
			$('#errors_payment').hide(0).fadeIn();
			return false;	
		} else {
			$('#errors_payment').hide();
			return true;	
		}
	}
	
	function validateShipping() {
		if($shipping.val() == '') {
			$('#errors_shipping').hide(0).fadeIn();
			return false;	
		} else {
			$('#errors_shipping').hide();
			return true;	
		}
	}
	
	function validateShippingMode() {
		if($shipping_mode.val() == '') {
			$('#errors_shipping_mode').hide(0).fadeIn();
			return false;	
		} else {
			$('#errors_shipping_mode').hide();
			return true;	
		}
	}
	
	function validatePclass() {
		if($pclass.length && $payment.val() == 'klarna_partpayment' && $pclass.val() == '') {
			$('#errors_pclass').hide(0).fadeIn();
			return false;	
		} else {
			$('#errors_pclass').hide();
			return true;	
		}
	}
	
	function validateCc() {
		if($cc.length && $payment.val() == 'credit_card' && $cc.val() == '') {
			$('#errors_cc').hide(0).fadeIn();
			return false;	
		} else {
			$('#errors_cc').hide();
			return true;	
		}
	}
	
	function validateAddAddress() {
		if($add_address.val() == 0) {
			if($xqc.val() == 0 || ($payment.val() == 'klarna_invoice' || $payment.val() == 'klarna_partpayment')) {
				$('#errors_add_address').hide(0).fadeIn();
				return false;
			} else {
				return true;	
			}
		} else {
			$('#errors_add_address').hide();
			return true;	
		}
	}
	
	function validatePnr() {
		var $patern = '^[0-9]{11}$';
		if( $('input#pnr').length && $pnr.val() == 0 && !$('input#pnr').val().match($patern) && $add_address.val() == 1 ) {
			$('#errors_pnr').hide(0).fadeIn();
			return false;	
		} else {
			$('#errors_pnr').hide();
			return true;	
		}
	}
	
	function validateToc() {
		if(!$toc.is(':checked')) {
			$('#errors_accept_toc').hide(0).fadeIn();
			return false;	
		} else {
			$('#errors_accept_toc').hide();
			return true;	
		}
	}
	
});

/****** 
 * Toggle accept toc error on checked/unchecked 
 */
$(function() {
	$('#chk_inp_accept_toc').bind('click', function() {
		if($(this).is(':checked')) {
			$('#errors_accept_toc').hide();
		} else {
			$('#errors_accept_toc').hide(0).fadeIn();	
		}																						
	});	 
});

/*******
 * Switch checkout button
 */
function switch_sbmbtn($select, $get) {
	var $sbmbtn = $('#doPayment');
	if($get == 'payment_method' || $get == 'payment_klarna_partpayment' || $get == 'payment_cc_vendor') {
		if($select == 'credit_card') {
			$sbmbtn.val('Betal og fullfør ordre').fadeIn('fast');
			$sbmbtn.siblings().addClass('showlock').fadeIn('fast');
		} else {
			$sbmbtn.val('Fullfør ordre').hide().fadeIn('fast');	
			$sbmbtn.siblings().removeClass('showlock').fadeOut('fast');
		}	
	}
}

/*******
 * Add address
 */
$(function() {
	$('#checkout_page .checkout_order_add_address').live('click', function(e) {
		e.preventDefault();
		
		var divW = 600;
		var winW = $(window).width();
		var winH = $(window).height();
		var left = winW/2 - divW/2;
				left = $('#checkout_page').offset().left + 16;
		var bgc = $('body').css('background-color');
		var height;
		
		$('<div />')
		.attr({ id: 'addaddress_Ajax_Mask', 'class': 'document_Mask' })
		.css({ opacity: .1 })
		.fadeIn('fast')
		.appendTo('body');
		
		$('<div />')
		.attr({ id: 'addaddress_Ajax', 'class': 'modal_Ajax' })
		.css({ left: left + 'px', width: divW +'px' })
		.fadeIn()
		.prependTo('body');
		
		$('<div />')
		.attr({ id: 'addaddress_Ajax_Inner', 'class': 'modal_Ajax_Inner' })
		.css({ height: 'auto' })
		.html('<p class="loading">Laster inn skjema ...</p>')
		.appendTo('#addaddress_Ajax');
		
		$('<h3 />')
		.attr({ id: 'addaddress_Ajax_Title', 'class': 'modal_Ajax_Title' })
		.html('<a href="#" class="prevent_default modal_Ajax_Close" title="Lukk">&times;</a>&mdash; <span>Legg til leveringsadresse</span> &mdash;')
		.prependTo('#addaddress_Ajax');
		
		/* Scroll to top */
		/* $('html, body').animate({ scrollTop: $('body').offset().top }, 1000); */
		
		/* Load form */
		$('#addaddress_Ajax #addaddress_Ajax_Inner')
		.load('/includes/html/checkout/addaddress_form.tpl', function() {
																																													
			var $payment = $('#chck_inp_pmethod').val();
			var $pnr = $('#addaddress_Ajax .tr_personalnr');
			var $company = $('#addaddress_Ajax .tr_company');
				$company.hide();
			
			/* Populate customer types */
			$.ajax({
				type: "POST",
				url: "/ajax/ajax.checkout.php",
				data : { get: 'populate_customer_types' },
				dataType: 'html',
				beforeSend: function() {
					$('#addaddress_Ajax select#chkinp_type').css({ background: 'url("/images.forlovelsesringer.no/loading.gif") 5px center no-repeat' });
				},
				success: function(data) {
					$('#addaddress_Ajax select#chkinp_type').css({ background: 'none' });
					$('#addaddress_Ajax select#chkinp_type').html('').append(data);
					/* If no private type then show company info */
					if($('#addaddress_Ajax select#chkinp_type').val() != 'private') {
						$('#addaddress_Ajax .tr_company').show(0);	
					} else {
						$('#addaddress_Ajax .tr_company').hide(0);	
					}
					
					/* Klarna part not available for companies */
					/*
					if($payment == 'klarna_partpayment') {
						//$('#addaddress_Ajax select#chkinp_type option#option_corporate').remove();
						//$('#addaddress_Ajax select#chkinp_type option#option_institutional').remove();
					}
					*/
					
				}
			});
			
			/* Populate countries */
			$.ajax({
				type: "POST",
				url: "/ajax/ajax.checkout.php",
				data : { get: 'populate_countries' },
				dataType: 'html',
				beforeSend: function() {
				},
				success: function(data) {
					$('#addaddress_Ajax select#chkinp_country').children('#option_separate').after().remove();
					$('#addaddress_Ajax select#chkinp_country').append(data);
				}
			});
			
			/* Get corporate customer approve settings */
			corporate_chkinp_account();
			
			/* Hacks */
			if($payment != 'klarna_invoice' && $payment != 'klarna_partpayment') {
				$pnr.remove();
			} else {
				$('#addaddress_Ajax .btm td p:first').remove();
				$('#addaddress_Ajax .btm td').prepend('<p>Personnummer er p&aring;budt dersom du betaler via Klarna.</p>');	
			}
			
			// Change customer type
			$('#addaddress_Ajax select#chkinp_type').live('change', function() {
				/* Get corporate customer approve settings */
				corporate_chkinp_account();
				
				if($(this).val() != 'private') {
					$company.fadeIn(0);
				} else {
					$company.hide(0);
					$('#addaddress_Ajax input#chkinp_company_name').val('');
					$('#addaddress_Ajax input#chkinp_company_orgnr').val('');
				}
			});
		
			
			/* Positioning */
			var $selector = $('#addaddress_Ajax');
			if($selector.length) {
				var height = $selector.height();
				var winH = $(window).height();
				if(height > winH - 50) {
					$selector.css({
						position: 'absolute'
					});
					$('html, body').animate({ scrollTop: $('body').offset().top }, 1000);
				} else {
					$selector.css({
						position: 'fixed'
					});
				}
			}
			
		});
		
		/* Account guest toggle */
		$('#addaddress_Ajax input#chkinp_account').live('click', function() {
			$('#addaddress_Ajax .tr_pass').toggle(0);
		});
		
		/* Close */
		$('.modal_Ajax_Close').live('click', function(e) {
			e.preventDefault();	
			$('#addaddress_Ajax, .modal_Ajax').fadeOut(300, function() { 
				setTimeout(function() { 
					$(this).remove();
					$('#addaddress_Ajax input#chkinp_account').die('click');
				}, 500); 
			});
			$('.document_Mask, #addaddress_Ajax_Mask').remove();
		});
		
	});				 
});

/*******
 * Add pnr
 */
$(function() {
	$('#checkout_personal_number input#pnr').live('keyup', function(e) {
		var $this = $(this);
		var $val = $this.val();
		$this.css({ color: 'inherit' });
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.checkout.php",
			data : { submit: 'chksbm_Pnr', pnr: $val },
			dataType: 'json',
			beforeSend: function() {
			},
			success: function(data) {
				if(data.error === false) {
					$this.css({ borderColor: 'green', color: '#666666', background: 'url("/images.forlovelsesringer.no/b_tick.png") 135px center no-repeat' })
					.blur();
					load_order_summary();
					$('<input class="button" type="button" id="pnr_ok_hide" value="Ok" />').insertAfter($this);
					
					$('#checkout_personal_number input#pnr_ok_hide').live('click', function(e) {
						e.preventDefault();
						load_pnr_options();																																	
					});
					
				} else {
					$this.css({ borderColor: '#cd2b3a', background: 'none' });
				}
			}
		});	
		
	});
});

/*******
 * Add address
 */
$(function() {
	instant_login();
	instant_register();
	instant_login_fetch();
	
	/* Prevent enter or return */
	/*$('#addaddress_Ajax input.txt').live('keypress keydown', function(e) {
		var $this = $(this);
		if (e.which == 13 || e.keyCode == 13) {
			return false;
		}
	});*/
});

/*******
 * Add address - Instant login
 */
function instant_login() {
	$('#addaddress_Ajax #chksbm_Login').live('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		
		/* Get inputs */
		var strData = { 
			'submit': 'chksbm_Login', 
			'chkinp_username': $('input#chkinp_username').val(), 
			'chkinp_password': $('input#chkinp_password').val() 
		};
		/*$('#addaddress_Ajax input.login').each(function(i) {
			var $id = $(this).attr('id');
			var $val = $(this).val();
			strData[$id] = $val;
		});*/
		
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.checkout.php",
			data : strData,
			dataType: 'json',
			beforeSend: function() {
				$this.parent().addClass('loading');
				$this.attr({ disabled: 'disabled' }).css({ opacity: .3 });
			},
			success: function(data) {
				$this.parent().removeClass('loading');
				$this.removeAttr('disabled').css({ opacity: 1 });
				
				if(data.error === false) {
					$('.login_response').html(data.msg);
					load_order_summary();
					load_pnr_options();
					$('#addaddress_Ajax, .modal_Ajax').remove();
					$('#addaddress_Ajax_Mask, .document_Ajax').remove();
					$('#checkout_guest_checkout').remove();
					$('#chk_inp_add_address').val('1');
					$('#errors_add_address').hide();
					$('.loginbtn_Ajax').html('Logg ut').attr({ href: data.loginhref })
					.parent('li').addClass('logout_btn');
					
					/* If custom payment methods then reload */
					if(data.reload_redirect) {
						$(location).attr('href', data.reload_redirect);	
					}
					
				} else {
					$('.login_response').html(data.msg).addClass('login_response_fail');
					$('.login_Ajax input.login').addClass('txt_fail').effect('pulsate', { times: 3 }, 100);
					setTimeout(function() {
						$('.login_Ajax input.login').removeClass('txt_fail');
						$('.login_response').html('Innlogging').removeClass('login_response_fail');
					}, 15000);
				}
			}
		});	
		
	});	
}

/*******
 * Add address - Fetch pass
 */
function instant_login_fetch() {
	$('#addaddress_Ajax #chksbm_Login_Fetch').live('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		
		/* Get inputs */
		var strData = { 
			'submit': 'chksbm_Login_Fetch', 
			'chkinp_eml_fetchpass': $('input#chkinp_eml_fetchpass').val()
		};
		
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.checkout.php",
			data : strData,
			dataType: 'json',
			beforeSend: function() {
				$('input#chkinp_eml_fetchpass').css({ background: 'url("/images.forlovelsesringer.no/loading.gif") right center no-repeat' });
			},
			success: function(data) {
				$('input#chkinp_eml_fetchpass').css({ background: 'none' });
				if(data.error === false) {
					$('.login_Ajax #login_Ajax_Fetch').append('<p class="passfetch_Ok">'+ data.msg +'</p>');
					$('.login_Ajax input.passfetch').val('');
					$('.login_Ajax .fetchpass_Toggle').click();
					setTimeout(function() {
						$('.login_Ajax .passfetch_Ok').remove();
					}, 7000);
				} else {
					$this.siblings('label').html(data.msg).addClass('login_response_fail');
					$('.login_Ajax input.passfetch').addClass('txt_fail').effect('pulsate', { times: 3 }, 100).focus();
					setTimeout(function() {
						$('.login_Ajax input.passfetch').removeClass('txt_fail');
						$this.siblings('label').html('Din e-postadresse').removeClass('login_response_fail');
					}, 15000);
				}
			}
		});	
		
	});	
}

$(function() {
	$('#addaddress_Ajax .fetchpass_Toggle').live('click', function(e) {
		var $this = $(this);
		$this.next('p').toggleClass('fetchpass_Hide');
		$('.login_Ajax input.passfetch').val('');
	});
});

/*******
 * Add address - Instant register
 */
function instant_register() {
	$('#addaddress_Ajax #chksbm_Register').live('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		
		/* Get inputs */
		var strData = { 
			'submit': 'chksbm_Register', 
			'chkinp_type': $('select#chkinp_type').val(),
			'chkinp_company_name': $('input#chkinp_company_name').val(),
			'chkinp_company_orgnr': $('input#chkinp_company_orgnr').val(),
			'chkinp_firstname': $('input#chkinp_firstname').val(), 
			'chkinp_lastname': $('input#chkinp_lastname').val(), 
			'chkinp_email': $('input#chkinp_email').val(),
			'chkinp_pass': $('input#chkinp_pass').val(),
			'chkinp_phone': $('input#chkinp_phone').val(),  
			'chkinp_address1': $('input#chkinp_address1').val(), 
			'chkinp_pbox': $('input#chkinp_pbox').val(), 
			'chkinp_zip': $('input#chkinp_zip').val(), 
			'chkinp_city': $('input#chkinp_city').val(),
			'chkinp_country': $('select#chkinp_country').val(),
		};
		
		/* Extend account */
		if($('#chkinp_account').is(':checked')) {
			var strAcc = {
				'chkinp_account': true,	
			};
			$.extend(strData, strAcc);
		}
		
		/* Extend pnr */
		if($('input#chkinp_pnr').length) {
			var strPnr = {
				'chkinp_pnr': $('input#chkinp_pnr').val()	
			};
			$.extend(strData, strPnr);
		}
		
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.checkout.php",
			data : strData,
			dataType: 'json',
			beforeSend: function() {
				$this.parent().addClass('loading');
				$this.attr({ disabled: 'disabled' }).css({ opacity: .3 });
			},
			success: function(data) {
				
				$this.parent().removeClass('loading');
				$this.removeAttr('disabled').css({ opacity: 1 });
				
				$('#addaddress_Ajax input.register').removeClass('txt_fail').removeClass('txt_fail2');
				$('#addaddress_Ajax .reg_response td span:first').remove();
				
				if(data.error === false) {
					
					if(data.corporate_redirect) {
						 $(location).attr('href', data.corporate_redirect);
					}
					
					$('#addaddress_Ajax .reg_response td').prepend('<span style="color: green;">' + data.msg + '</span>');
					load_order_summary();
					load_pnr_options();
					$('#addaddress_Ajax, .modal_Ajax').remove();
					$('#addaddress_Ajax_Mask, .document_Ajax').remove();
					$('#checkout_guest_checkout').remove();
					$('#chk_inp_add_address').val('1');
					$('#errors_add_address').hide();
					
					if(data.loginhref) {
						$('.loginbtn_Ajax').html('Logg ut').attr({ href: data.loginhref })
						.parent('li').addClass('logout_btn');	
					}
					
					/* If custom payment methods then reload */
					if(data.reload_redirect) {
						$(location).attr('href', data.reload_redirect);	
					}
					
				} else {
					
					var blanks = data.blanks;
					if(blanks.length > 0) {
						$.each(blanks, function(i, selector) {
							$('#addaddress_Ajax input#'+ selector).addClass('txt_fail');
							if(selector == 'chkinp_address1' || selector == 'chkinp_pbox') {
								$('#addaddress_Ajax input#'+ selector).addClass('txt_fail2');
							}
						});
						$('#addaddress_Ajax #'+ blanks[0]).focus();
					}
					
					if(data.custom_error) {
						$('#addaddress_Ajax #'+ data.custom_error).addClass('txt_fail').focus();
						if(data.custom_error == 'chkinp_address1' || data.custom_error == 'chkinp_pbox') {
						$('#addaddress_Ajax #'+ data.custom_error).addClass('txt_fail2').focus();
						}
					}
					
					$('#addaddress_Ajax .reg_response td').prepend('<span>' + data.msg + '</span>');
					
				}
			}
		});	
		
	});	
}

/*******
 * Update customer data
 */
$(function() {
	$('#checkout_page .showaccount_Ajax').live('click', function(e) {
		e.preventDefault();
		
		var divW = 600;
		var winW = $(window).width();
		var winH = $(window).height();
		var left = winW/2 - divW/2;
				left = $('#checkout_page').offset().left + 16;
		var bgc = $('body').css('background-color');
		var height;
		
		$('<div />')
		.attr({ id: 'account_Ajax_Mask', 'class': 'document_Mask' })
		.css({ opacity: .1 })
		.fadeIn(0)
		.appendTo('body');
		
		$('<div />')
		.attr({ id: 'account_Ajax', 'class': 'modal_Ajax' })
		.css({ left: left + 'px', width: divW +'px', position: 'absolute' })
		.fadeIn()
		.prependTo('body');
		
		$('<div />')
		.attr({ id: 'account_Ajax_Inner', 'class': 'modal_Ajax_Inner' })
		.css({ height: 'auto' })
		.html('<p class="loading">Laster inn skjema ...</p>')
		.appendTo('#account_Ajax');
		
		$('<h3 />')
		.attr({ id: 'account_Ajax_Title', 'class': 'modal_Ajax_Title' })
		.html('<a href="#" class="prevent_default modal_Ajax_Close" title="Lukk">&times;</a>&mdash; <span>Mine personalia</span> &mdash;')
		.prependTo('#account_Ajax');
		
		/* Scroll to top */
		/* $('html, body').animate({ scrollTop: $('body').offset().top }, 1000); */
		
		/* Load form */
		load_checkout_suboptions('#account_Ajax #account_Ajax_Inner', 'account_options');
		
		/* Slide Toggle */
		$('#account_Ajax .h_headers').live('click', function(e) {
			e.preventDefault();
			var $this = $(this);
			var $next = $(this).next('form');
			
			$this.css({ backgroundImage: 'url("/images.forlovelsesringer.no/loading.gif")', backgroundPosition: divW-50 +'px center', backgroundRepeat: 'no-repeat' });
			$this.siblings('.h_headers').children().html('&rarr;');
			$this.children('span').html('&darr;');
			
			if($next.is(':visible'))
				$this.children('span').html('&rarr;');
				
			$next.slideToggle('slow', function() {
					$this.css({ backgroundImage: 'none' });	
			})
			.siblings('form:visible')
			.slideUp('slow', function() {
				$this.css({ backgroundImage: 'none' });
			});	
		});
		
		
		/* Close */
		$('.modal_Ajax_Close').live('click', function(e) {
			e.preventDefault();	
			$('#account_Ajax, .modal_Ajax')
			.fadeOut(300, function() { 
				setTimeout(function() { 
					$(this).remove(); 
					$('#account_Ajax .h_headers').die('click');
				}, 500); 
			});
			$('.document_Mask, #account_Ajax_Mask').remove();
		});
		
		/* Animate scroll */
		$('html, body').animate({ scrollTop: $('body').offset().top }, 1000);
		
	});	
});

/**
 * @Update phone
 */
$(function() {
	$('input#acc_Update_Phone').live('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		var strData = {
			'submit': $this.attr('id'),
			'phone': $('input#acc_phone').val()
		};
		
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.checkout.php",
			data: strData,
			dataType: 'json',
			beforeSend: function() {
				$this.attr({ disabled: 'disabled' });
				$this.parent().siblings().children('.loading').hide().fadeIn();
			},
			success: function(data) {
				$this.removeAttr('disabled');
				$this.parent().siblings().children('.loading').hide();
				if(data.error === false) {
					$this.next('.msg_response').html(data.msg).addClass('msg_response_ok').hide().fadeIn();	
					$('#td_acc_phone').html(data.phone);
					$('input#acc_phone').val('').blur();
					load_order_summary();
				} else {
					$this.next('.msg_response').html(data.msg).removeClass('msg_response_ok')
					.hide().fadeIn();	
				}
				
				setTimeout(function() {
					$this.next('.msg_response').html('');										
				}, 7000);	
			}
		});
	});
});

/**
 * @Update company info
 */
$(function() {
	$('input#acc_Update_Company').live('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		var strData = {
			'submit': $this.attr('id'),
			'type': $('select#acc_type').val(),
			'company_name': $('input#acc_company_name').val(),
			'company_orgnr': $('input#acc_company_orgnr').val()
		};
		
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.checkout.php",
			data: strData,
			dataType: 'json',
			beforeSend: function() {
				$this.attr({ disabled: 'disabled' });
				$this.parent().siblings().children('.loading').hide().fadeIn();
			},
			success: function(data) {
				$this.removeAttr('disabled');
				$this.parent().siblings().children('.loading').hide();
				if(data.error === false) {
					$this.next('.msg_response').html(data.msg).addClass('msg_response_ok').hide().fadeIn();	
					$('#td_acc_type').html(data.type);
					$('input#acc_company_name').val(data.company_name).blur();
					$('input#acc_company_orgnr').val(data.company_orgnr).blur();
					load_order_summary();
					
					/* Redirect to register page if corporate approve */
					if(data.corporate_redirect && data.c_type != 'private') {
						$(location).attr('href', data.corporate_redirect);	
					}
					
					/* If custom payment methods then reload */
					if(data.reload_redirect) {
						$(location).attr('href', data.reload_redirect);	
					}
					
				} else {
					$this.next('.msg_response').html(data.msg).removeClass('msg_response_ok')
					.hide().fadeIn();	
				}
				
				setTimeout(function() {
					$this.next('.msg_response').html('');										
				}, 7000);	
			}
		});
	});
});

/**
 * @Update pnr
 */
$(function() {
	$('input#acc_Update_Pnr').live('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		var strData = {
			'submit': $this.attr('id'),
			'pnr': $('input#acc_personalnr').val()
		};
		
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.checkout.php",
			data: strData,
			dataType: 'json',
			beforeSend: function() {
				$this.attr({ disabled: 'disabled' });
				$this.parent().siblings().children('.loading').hide().fadeIn();
			},
			success: function(data) {
				$this.removeAttr('disabled');
				$this.parent().siblings().children('.loading').hide();
				if(data.error === false) {
					$this.next('.msg_response').html(data.msg).addClass('msg_response_ok').hide().fadeIn();	
					$('#td_acc_personalnr').html(data.pnr);
					$('input#acc_personalnr').val('').blur();
					load_order_summary();
					load_pnr_options();
				} else {
					$this.next('.msg_response').html(data.msg).removeClass('msg_response_ok')
					.hide().fadeIn();	
				}
				
				setTimeout(function() {
					$this.next('.msg_response').html('');										
				}, 7000);	
			}
		});
	});
});

/**
 * @Update pass
 */
$(function() {
	$('input#acc_Update_Pass').live('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		var strData = {
			'submit': $this.attr('id'),
			'newpass': $('input#acc_pass').val(),
			'oldpass': $('input#acc_old_pass').length ? $('input#acc_old_pass').val() : ''
		};
		
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.checkout.php",
			data: strData,
			dataType: 'json',
			beforeSend: function() {
				$this.attr({ disabled: 'disabled' });
				$this.parent().siblings().children('.loading').hide().fadeIn();
			},
			success: function(data) {
				$this.removeAttr('disabled');
				$this.parent().siblings().children('.loading').hide();
				if(data.error === false) {
					$this.next('.msg_response').html(data.msg).addClass('msg_response_ok').hide().fadeIn();
					$('input#acc_pass').val('').blur();
					$('input#acc_old_pass').val('').blur();
					load_order_summary();
				} else {
					$this.next('.msg_response').html(data.msg).removeClass('msg_response_ok')
					.hide().fadeIn();	
				}
				
				setTimeout(function() {
					$this.next('.msg_response').html('');										
				}, 7000);	
			}
		});
	});
});

/**
 * @Update pass
 */
$(function() {
	$('input#acc_Update_Email').live('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		var strData = {
			'submit': $this.attr('id'),
			'email': $('input#acc_useremail').val(),
			'pass': $('input#acc_pass_eml').val()
		};
		
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.checkout.php",
			data: strData,
			dataType: 'json',
			beforeSend: function() {
				$this.attr({ disabled: 'disabled' });
				$this.parent().siblings().children('.loading').hide().fadeIn();
			},
			success: function(data) {
				$this.removeAttr('disabled');
				$this.parent().siblings().children('.loading').hide();
				if(data.error === false) {
					$this.next('.msg_response').html(data.msg).addClass('msg_response_ok').hide().fadeIn();
					$('#td_acc_useremail').html(data.email);
					$('input#acc_useremail').val('').blur();
					$('input#acc_pass_eml').val('').blur();
					load_order_summary();
				} else {
					$this.next('.msg_response').html(data.msg).removeClass('msg_response_ok')
					.hide().fadeIn();	
				}
				
				setTimeout(function() {
					$this.next('.msg_response').html('');										
				}, 7000);	
			}
		});
	});
});

/**
 * @Update delivery address
 */
$(function() {
	$('input#acc_Update_Daddress').live('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		var strData = {
			'submit': $this.attr('id'),
			'firstname': $('input#acc_firstname').val(),
			'lastname': $('input#acc_lastname').val(),
			'address1': $('input#acc_alter_address1').val(),
			'address2': $('input#acc_alter_address2').val(),
			'pbox': $('input#acc_alter_pbox').val(),
			'zip': $('input#acc_alter_zip').val(),
			'city': $('input#acc_alter_city').val(),
			'country': $('select#acc_alter_country').val()
		};
		
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.checkout.php",
			data: strData,
			dataType: 'json',
			beforeSend: function() {
				$this.attr({ disabled: 'disabled' });
				$this.parent().siblings().children('.loading').hide().fadeIn();
			},
			success: function(data) {
				$this.removeAttr('disabled');
				$this.parent().siblings().children('.loading').hide();
				if(data.error === false) {
					$this.next('.msg_response').html(data.msg).addClass('msg_response_ok').hide().fadeIn();
					load_order_summary();
				} else {
					$this.next('.msg_response').html(data.msg).removeClass('msg_response_ok')
					.hide().fadeIn();	
				}
				
				setTimeout(function() {
					$this.next('.msg_response').html('');										
				}, 7000);	
			}
		});
	});
});

/**
 * @Update invoice address
 */
$(function() {
	$('input#acc_Update_Iaddress').live('click', function(e) {
		e.preventDefault();
		
		var $this = $(this);
		var strData = {
			'submit': $this.attr('id'),
			'address1': $('input#acc_address1').val(),
			'address2': $('input#acc_address2').val(),
			'pbox': $('input#acc_pbox').val(),
			'zip': $('input#acc_zip').val(),
			'city': $('input#acc_city').val(),
			'country': $('select#acc_country').val()
		};
		
		$.ajax({
			type: "POST",
			url: "/ajax/ajax.checkout.php",
			data: strData,
			dataType: 'json',
			beforeSend: function() {
				$this.attr({ disabled: 'disabled' });
				$this.parent().siblings().children('.loading').hide().fadeIn();
			},
			success: function(data) {
				$this.removeAttr('disabled');
				$this.parent().siblings().children('.loading').hide();
				if(data.error === false) {
					$this.next('.msg_response').html(data.msg).addClass('msg_response_ok').hide().fadeIn();
					load_order_summary();
				} else {
					$this.next('.msg_response').html(data.msg).removeClass('msg_response_ok')
					.hide().fadeIn();	
				}
				
				setTimeout(function() {
					$this.next('.msg_response').html('');										
				}, 7000);	
			}
		});
	});
});

/**
 * @Hide errors
 */
$(function() {
	$('#checkout_page .checkout_errors_top').bind('click', function(e) {
		$(this).fadeOut();
	});
});

/**
 * @Positioning div
 */
function positioning($sel) {
	if($sel.length) {
		var $sel = $('#account_Ajax');
		var height = $sel.height();
		var ytop = $sel.offset().top;
		var csspos = $sel.css('position');
		var csstop = $sel.css('top');
		$(window).scroll(function(e) {
			var y = $(this).scrollTop();
			var winH = $(window).height();
			if (y >= ytop && height < winH - 50) {
				$sel.css({
					position: 'fixed'
				});
			} else {
				$sel.css({
					position: 'absolute'
				});
			}
		});
	}
}

/**
 * Disable check account checkbox
 * on corporate approve settings
 */
function corporate_chkinp_account() {
	/* Get corporate customer approve settings */
	$.ajax({
		type: "POST",
		url: "/ajax/ajax.checkout.php",
		data : { get: 'corporate_approve' },
		dataType: 'json',
		beforeSend: function() {
		},
		success: function(data) {
			
			/* Will return true or false */
			if(data.approve === true && $('#addaddress_Ajax select#chkinp_type').val().length && $('#addaddress_Ajax select#chkinp_type').val() != 'private') {
				$('#addaddress_Ajax input#chkinp_account').attr({ disabled: 'disabled', checked: 'checked' });
				
				/* Append baloon */
				$('#addaddress_Ajax #addaddress_Ajax_corporate_approve_baloon').remove();
				$('<div />').attr({ id: 'addaddress_Ajax_corporate_approve_baloon' })
				/*.css({ position: 'absolute', top: '212px', left: '320px', background: '#ffff99', padding: '20px', width: '200px', border: 'solid 1px #dddddd' })*/
				.html(data.msg)
				.fadeIn()
				.appendTo('#addaddress_Ajax');
				
				$('#addaddress_Ajax #addaddress_Ajax_corporate_approve_baloon a').live('click', function(e) {
					e.preventDefault();
					$('#addaddress_Ajax #addaddress_Ajax_corporate_approve_baloon').remove();																																												
				});
				
			} else {
				$('#addaddress_Ajax input#chkinp_account').attr({ disabled: false });
				$('#addaddress_Ajax #addaddress_Ajax_corporate_approve_baloon').remove();
			}
		}
	});
}/*************************************
 * @Jquery custom behaviour 
 * @Forlovelsesringer.no
**************************************/
   
/**
 * @Position cart display
 * @On load prepare
*/
function position_cart_display() {
	$('#cart_display').hide().fadeIn(500);
	var $selector = $('#cart_display');	
	if($selector.length) {
		var width = $selector.width();
		var ytop = $selector.offset().top;
		var csspos = $selector.css('position');
		var csstop = $selector.css('top');
		var cssleft = $selector.css('left');
		var cssright = $selector.css('right');
		$(window).scroll(function(e) {
			var y = $(this).scrollTop();
			if (y > ytop) {
				$selector.css({
					position: 'fixed',
					width: width + 'px',
					top: '20px',
					zIndex: 1000,
					opacity: .9
				}).addClass('cart_display_float');
				
			} else {
				$selector.css({
					position: csspos,
					top: csstop,
					zIndex: 1000,
					opacity: 1
				}).removeClass('cart_display_float');
			}
		});	
	}
}

/**
 * @Position cart display
 * @On load run
*/
$(function() {
	if(window.position_cart_display) {
		position_cart_display();	
	}				 
});

/**
 * @Position cart display
 * @On add to cart run
*/
function position_cart_display_load() {
	return false;
}
  

/* Site hacks */
$(function() {
					 
	/* Scroll to content on window load */
	if(!$('#homepage').length) {
		$('html, body').animate({ scrollTop: $('#contentwrapper').offset().top }, 500);
	} 
	/*
	else {
		if($('#klarna_header').length)
			$('html, body').animate({ scrollTop: $('#container').offset().top - 30 }, 500);
	}
	*/
	
	/* Append site search link to main menu links */
	$('#menulinks_main ul').prepend('<li id="mainlink_search_li"><a id="mainlink_search" href="#"><span>Søk</span></a></li>');
	
	/* Remove customer service from main links */
	$('#menulinks_main ul li.mainlink_customer_service_li').remove();
	
	/* Show searchbox */
	$('#mainlink_search').bind('click', function(e) {
		e.preventDefault();
		$this = $(this);
		var $boxw = $('#search_box').width();
		var $winw = $(window).width();
		var $left = ($winw - $boxw) / 2;
		var $boxh = $('#search_box').height();
		var $winh = $(window).height();
		var $top = ($winh - $boxh) / 2;
		$('#search_box')
		.css({ left: $left + 'px', top: $top + 'px' })
		.slideToggle();
		
		/* Focus */
		$('#search_box input#searchterm').focus();
		
		/* Remove search input default value */
		if ($('#search_box input#searchterm').val() == '' || $('#search_box input#searchterm').val() == 'søk i nettbutikken ..')
			$('#search_box input#searchterm').val('');
			
		/* Mask background */
		$('#search_box_mask').remove();
		$('<div/>').attr({ id: 'search_box_mask' })
			.css({  
				opacity: .6
			}).appendTo('body');
			
			/* Append close button */
			$('#search_box h3 a').remove();
			$('#search_box h3').prepend('<a href="#" title="Lukk">&times;</a>');
			
			/* Hide search box */
			$('#search_box h3 a, #search_box_mask').bind('click', function(e) {
				e.preventDefault();
				$('#search_box').slideUp('fast', function() { $('#search_box_mask').remove() });																	 
			});
		
	});
	
	/* Prepend to menu_group_2 a */
	$('#sidebar #sidebarinner .menu_group_2 a').prepend('&rsaquo; &nbsp; ');
	
	/* Customer greeting append text */
	if($('#customer_greeting').length)
		$('<em>. Du er n&aring; innlogget.</em>').insertAfter('#customer_greeting span');
		
	/* Style product lists */
	$('#content #product_list .p_box_row:last, #content .item_dump .p_box_row:last').addClass('p_box_row_odd');
	$('#content #product_list .p_box_row:last, #content .item_dump .p_box_row:last').addClass('p_box_row_last');
	
	/* Pagination */
	if(!$('#reviews_id').length) {
		$('#pagination').css({ opacity: .9 });
		$('#pagination').hover(function() {
			$(this).css({ opacity: 1 });																
		}, function() {
			$(this).css({ opacity: .9 });
		});
	}
	
	/* Position pagination bar */ 
	var $selector = $('#pagination');	
	if($selector.length && !$('#reviews_id').length) {
		var $winw = $(window).width();
		var $container = parseInt($('#container').css('width').replace('px', ''));
		var x = ($winw - $container) / 2 + 30;
		var y = $('#content').offset().top;
		$('#pagination').clone().css({ position: 'absolute', top: y + 'px', right: x + 'px', width: 'auto' }).prependTo('#content');
	}
	
	/* Facebook follow */
	var $fbh = $('#facebook_follow').height();
	var $fbwinh = $(window).height();
	var $top = ($fbwinh - $fbh) / 2;
	$('#facebook_follow')
	.attr({ target: '_blank' })
	.css({ top: $top + 'px' });
	
	/* Content hack */
	$('<div />').css({ clear: 'both' }).html(' ').appendTo('#contentwrapper');
	
	
	/* Item corner */
	if($('#content #item'))
		$('<img src="/images.forlovelsesringer.no/b_corner_item.png" style="position: absolute; top: -13px; right: 0px;" />').appendTo('#content #item .item_buy_btns');
	
	$('#cart_display').hover(function() {
			$(this).css({ opacity: 1 });																
		}, function() {
			var $position = $(this).css('position');
			if($position == 'fixed') 
				$(this).css({ opacity: .9 });
			else
				$(this).css({ opacity: 1 });
	});
	
	/* Klarna header */
	if($('#klarna_header_img').length) {
		$('#klarna_header_img').error(function() {
			$('#klarna_header_img').parent().parent().remove();																				 
		}).css({ opacity: .4 }).hover(function() {
			$(this).css({ opacity: 1 });																
		}, function() {
			$(this).css({ opacity: .4 });
		});
	}
	
});
