var base_url = 'http://www.interwheel.se/';

function cache()
{
	window.$cache = {
		headerImgContainer : $('#headerImgContainer'),
		bannerImgContainer : $('#bannerImgContainer'),
		dimmer : $('#dimmer'),
		dimmerInner : $('#dimmerInner'),
		searchform : $('#searchformContainer'),
		searchformSubmit : $('.searchformSubmit'),
		search_dack_dimension : $('#search_dack_dimension'),
		search_dack_dimension_ajaxContainer : $('#search_dack_dimension_ajaxContainer'),
		search_dack_typ : $('#search_dack_typ'),
		search_dack_fabrikat : $('#search_dack_fabrikat'),
		search_falg_diameter : $('#search_falg_diameter'),
		search_falg_bultcirkel : $('#search_falg_bultcirkel'),
		search_falg_nav : $('#search_falg_nav'),
		search_komplettaContainer_form : $('#search_komplettaContainer form'),
		search_kompletta_iwnummer : $('#search_kompletta_iwnummer'),
		search_kompletta_marke : $('#search_kompletta_marke:first'),
		search_kompletta_modell : $('#search_kompletta_modell:first'),
		search_kompletta_typ : $('#search_kompletta_typ:first'),
		sidebar_kontoWrapper : $('#sidebar_kontoWrapper')
	};
}

$(function(){
	cache();
	$cache.dimmer.hide();
	$cache.dimmerInner.hide();
	headerCarousel();
	bannerCarousel();
	bindElements();
	styleSearchform();
});

function styleSearchform()
{
	$cache.search_dack_typ.add($cache.search_dack_fabrikat)
		.add($cache.search_falg_diameter).add($cache.search_falg_bultcirkel).add($cache.search_falg_nav)
		.add($cache.search_kompletta_marke).add($cache.search_kompletta_modell).add($cache.search_kompletta_typ)
			.each(function(){
				$('option:odd', this).css('backgroundColor', '#eee');
			});
}

function headerCarousel()
{
	if ($cache.headerImgContainer.length > 0)
	{
		var i = 0;
		$cache.headerImgContainer.append('<img src="'+base_url+'system/application/images/headerimages/'+imgs[i]+'" width="710" height="215" />');
		i++;
		var imgs_length = imgs.length;
		function loop()
		{
			$cache.headerImgContainer
				.append('<img src="'+base_url+'system/application/images/headerimages/'+imgs[i]+'" width="710" height="215" />')
				.find('img:last')
				.hide();
			i++;
			if (imgs_length <= i)
			{
				i = 0;
			}
			timer(5000, function(){
				$cache.headerImgContainer
					.find('img:last')
					.fadeIn(1000, function(){
						$cache.headerImgContainer
							.find('img:first')
							.remove();
						loop();
					});
			});
		}
		loop();
	}
}

function bannerCarousel()
{
	var i = 0;
	$cache.bannerImgContainer.append('<img src="'+base_url+'system/application/images/banners/'+banners[i]+'" />');
	var banners_length = banners.length;
	if (banners_length > 2) {
	i = 2;
	function loop()
	{
			$cache.bannerImgContainer
				.append('<img src="'+base_url+'system/application/images/banners/'+banners[i]+'" />')
				.find('img:last')
				.hide();
			i = i + 2;
			if (banners_length <= i)
			{
				i = 0;
			}
			timer(10000, function(){
				$cache.bannerImgContainer
					.find('img:last')
					.fadeIn(1000, function(){
						$cache.bannerImgContainer
							.find('img:first')
							.remove();
						loop();
					});
			});
		}
		loop();
	}
}

function product_info(tagg)
{
	if (browserComp === true) {
		$.post(
			base_url + "produkter/info",
			{ tagg: tagg },
			function(response){
				if (response !== '')
				{
					displayDimmer(response);
				}
			}
		);
	}
}

function displayDimmer(content)
{
	$cache.dimmerInner
		.centerX(840)
		.html(content);
	$cache.dimmer.height($(document).height());
	
	$cache.dimmer
		.show()
		.css('opacity', '0')
		.animate({opacity: 0.8}, 750);
	$cache.dimmerInner.fadeIn(750);
	$cache.dimmer.add($cache.dimmerInner).bind('click', function(){
		$cache.dimmer.fadeOut(250);
		$cache.dimmerInner.fadeOut(250);
	});
}

function bindElements()
{
	$cache.search_dack_dimension
		.bind('focus', function(){
			if ($(this).val() == 'Dimension')
			{
				$(this).val('');
			}
		})
		.bind('blur', function(){
			if ($(this).val() == '')
			{
				$(this).val('Dimension');
			}
		})
		.bind('focus keyup', function(){
			if (browserComp === true) {
				var dimension = $(this).val();
				if (dimension.length >= 3) /* Minimum number of characters required */
				{
					$.post(
						base_url + 'sok/dack_ajax',
						{ dimension: dimension },
						function(response){
							if (response !== '')
							{
								$cache.search_dack_dimension_ajaxContainer.html(response);
								$('#search_dack_dimension_ajaxContainer ul li:odd').addClass('odd');
								$('#search_dack_dimension_ajaxContainer ul li').bind('click', function(){
									$cache.search_dack_dimension.val($(this).text());
								});
								$cache.search_dack_dimension_ajaxContainer
									.slideDown(200)
									.bind('click', function(){
										$cache.search_dack_dimension_ajaxContainer.fadeOut(400);
									});
							}
							else
							{
								$cache.search_dack_dimension_ajaxContainer.fadeOut(400);
							}
						}
					);
				}
				else
				{
					$cache.search_dack_dimension_ajaxContainer.fadeOut(400);
				}
			}
		});
	$cache.search_falg_diameter
		.bind('change', function(){
			var diameter = $(this).val();
			$.post(
				base_url + 'sok/falg_ajax_getbultcirkel',
				{ diameter: diameter },
				function(response){
					$cache.search_falg_bultcirkel.html(response);
					$cache.search_falg_nav.html('<option disabled="disabled" value="Nav" selected="selected">Nav</option>');
					styleSearchform();
				}
			);
		});
	$cache.search_falg_bultcirkel
		.bind('change', function(){
			var diameter = $cache.search_falg_diameter.val();
			var bultcirkel = $(this).val();
			$.post(
				base_url + 'sok/falg_ajax_getnav',
				{ diameter: diameter, bultcirkel: bultcirkel },
				function(response){
					$cache.search_falg_nav.html(response);
					styleSearchform();
				}
			);
		});
	$cache.search_kompletta_marke
		.bind('change', function(){
			var marke = $(this).val();
			$.post(
				base_url + 'sok/kompletta_ajax_getmodell',
				{ marke: marke },
				function(response){
					$cache.search_kompletta_modell.html(response + '<option disabled="disabled">F&ouml;r &auml;ldre modeller ring 054-555640</option>');
					styleSearchform();
				}
			);
		});
	$cache.search_kompletta_marke.add($cache.search_kompletta_modell).add($cache.search_kompletta_typ)
		.bind('click', function(){
			$cache.search_kompletta_iwnummer.val('');
		});
}

function glomt_losenord()
{
	var epost = $('#konto_epost').val();
	var losenord = $('#konto_losenord').val();
	if (losenord == $('#konto_losenord_bekrafta').val())
	{
		$.post(
			base_url + "konto/glomt_losenord_spara",
			{ epost: epost, losenord: losenord },
			function(response){
				alert('Du har nu fått en aktiveringslänk!');
			}
		);
	}
	else
	{
		alert('Lösenorden matchar inte varandra, vänligen försök igen!');
	}
	$('#konto_epost').val('');
	$('#konto_losenord').val('');
	$('#konto_losenord_bekrafta').val('');
}

function aktivera_konto()
{
	var key = $('#konto_key').val();
	var losenord = $('#konto_losenord').val();
	if (losenord == $('#konto_losenord_bekrafta').val())
	{
		$.post(
			base_url + "konto/aktivera_konto",
			{ key: key, losenord: losenord },
			function(response){
				alert('Du kan nu logga in med formuläret till vänster');
			}
		);
	}
	else
	{
		alert('Lösenorden matchar inte varandra, vänligen försök igen!');
	}
}

function searchIw2Bil(marke, modell) {
	$cache.search_kompletta_iwnummer.val('');
	$cache.search_kompletta_marke.val(marke);
	$cache.search_kompletta_modell.append('<option value="'+modell+'">'+modell+'</option>');
	$cache.search_kompletta_modell.val(modell);
	$cache.search_komplettaContainer_form.submit();
}

function searchformToggle(status)
{
	var status = status || 'toggle';
	if (status == 'toggle')
	{
		if ($('#searchformContainer:hidden').length == 1)
		{
			searchformToggle_showFx();
		}
		else
		{
			searchformToggle_hideFx();
		}
	}
	else if (status == 'show')
	{
		searchformToggle_showFx();
	}
	else if (status == 'hide')
	{
		searchformToggle_hideFx();
	}
	
	function searchformToggle_showFx()
	{
		$cache.searchform.animate({
			opacity: 'show',
			height: 'show'
		}, 500);
		$cache.searchformSubmit.fadeTo(500, 1);
	}
	function searchformToggle_hideFx()
	{
		$cache.searchformSubmit.fadeTo(150, 0);
		$cache.searchform.animate({
			opacity: 'hide',
			height: 'hide'
		}, 500);
	}
}

(function($){
	$.fn.centerX = function(width) {
		var width = width || $(this).width();
		var pixels = ($(window).width()/2-width/2);
		$(this).css("left", pixels+"px");
		return this.each(function() {});
	};
})(jQuery);

function timer(interval, callback) {
	var interval = interval || 100;
	if (!callback) {
		return false;
	}
	internalCallback = function() {
		callback(self);
	};
	setTimeout(internalCallback, interval);
}