var iconDisabled = '<img src="images/template/icon-disabled.gif" alt="" />';
var iconOK = '<img src="images/template/icon-ok.gif" alt="" />';
var iconError = '<img src="images/template/icon-error.gif" alt="" />';

$(document).ready(function(){
	clearInput();
	fadeMenuBar();
	initSelectbox();
	productHover();
	addFilter();
	slider();
	initSlideshow();
	sortArtikelen();
	winkelwagen();
	validateRegister();
	initSIFR();
	showWachtwoordVergeten();
	wachtwoordVergeten();
	nieuwsbrief();
	otherAddress();
});

$(window).load(function(){
	hoverDetailImage();
	centerBrand();
});

function validateRegister(){
	$('span.icon, span.icon-select').html(iconDisabled);
	$('#register-form, #contact-form, #afsprakenplanner-form').validate({
		rules: {
			sEmail: {
				required: true,
				email: true,
				remote: sDomain+'inc/checkemail.inc.php'
			},
			sEmail2: {
				required: true,
				email: true
			},
			sNaam: 'required',
			sBedrijfsnaam: 'required',
			sAdres: 'required',
			sPostcode: 'required',
			sVestigingsplaats: 'required',
			sTelefoon: 'required',
			sDatum: {
				required: true,
				date: true
			},
			sTijd: 'required'
		},
		messages: {
			sEmail: {
				required: 'U heeft geen e-mailadres opgegeven.',
				email: 'Dit is geen geldig e-mailadres.',
				remote: 'Dit e-mailadres is reeds in gebruik.'
			},
			sEmail2: {
				required: 'U heeft geen e-mailadres opgegeven.',
				email: 'Dit is geen geldig e-mailadres.'
			},
			sBedrijfsnaam: 'U heeft geen bedrijfsnaam opgegeven.',
			sNaam: 'U heeft geen naam opgegeven.',
			sAdres: 'U heeft geen adres opgegeven.',
			sPostcode: 'U heeft geen postcode opgegeven.',
			sVestigingsplaats: 'U heeft geen vestigingsplaats opgegeven.',
			sTelefoon: 'U heeft geen telefoonnummer opgegeven.',
			sNaamOther: 'U heeft geen naam opgegeven.',
			sStraatOther: 'U heeft geen straat opgegeven.',
			sPostcodeOther: 'U heeft geen postcode opgegeven.',
			sWoonplaatsOther: 'U heeft geen woonplaats opgegeven.',
			sDatum: {
				required: 'U heeft geen voorkeursdatum opgegeven.',
				date: 'Vul een geldige datum in. (dd/mm/yyyy)'
			},
			sTijd: 'U heeft geen voorkeurstijd opgegeven.'
		},
		errorPlacement: function(error, element){
			error.insertAfter(element.next('span')).slideDown(300);
			element.next('span.icon').html(iconError);
		},
		submitHandler: function(form) {
			form.submit();
		},
		success: function(label){
			label.prev('span.icon').html(iconOK);
			label.remove();
		}
	});	
}
function nieuwsbrief(){
	$('#news-letter-form').validate({
		rules: {
			v_email: {
				required: true,
				email: true
			}
		},
		messages: {
			v_email: {
				required: 'U heeft geen e-mailadres opgegeven.',
				email: 'Dit is geen geldig e-mailadres.'
			}
		},
		errorPlacement: function(error, element){
			error.insertAfter(element.next()).slideDown(300);
		},
		submitHandler: function(form) {
			form.submit();
			/*var options = {
				url: sDomain+'inc/nieuwsbrief.inc.php',
				type: 'POST',
				success: function(response) {
					if(response == '1'){
						var sTitel = 'Gegevens verzonden';
						var sMelding = 'Uw inschrijving is voltooid.';
						$(form).clearForm();
						$('#news-letter').fadeIn(500,function(){
							$(this).html('<h2>'+sTitel+'</h2><p>'+sMelding+'</p>');
							initSIFR();
						});
					}
				}
			}
			$(form).ajaxSubmit(options);
			return false;*/
		},
		success: function(label){
			label.remove();
		}
	});	
}
function slider() {
	$('#slider > ul').tabs({fx:{opacity: 'toggle'}}).tabs('rotate', 6000, true);
}
function initSelectbox(){
	$('select').selectbox();	
}
function fadeMenuBar(){
	$('#menu-bar').animate({opacity:0.2},0);
}
function clearInput(){
	$('.text').each(function() {
		$(this).focus(function() {
			if(this.value == this.defaultValue) {
				this.value = '';
			}
		}).blur(function() {
			if(!this.value.length) {
				this.value = this.defaultValue;
			}
		});
	});
}
function productHover(){
	$('.product').hover(function(){
		$(this).toggleClass('hover');
	},function(){
		$(this).toggleClass('hover');
	});
}
function hoverDetailImage(){
	var nHeight = $('#product-details .image a img').height() - 76;
	var nWidth = $('#product-details .image a img').width() - 76;
	var nTop = nHeight / 2;
	var nLeft = nWidth / 2;
	$('#product-details .hover').css('top',nTop).css('left',nLeft);
	$('#product-details .image').hover(function(){
		if($.browser.msie) $('.hover').show();	
		else $('.hover').fadeIn(300);
		
	},function(){
		if($.browser.msie) $('.hover').hide();	
		else $('.hover').fadeOut(300);
	});
}
function centerBrand(){
	/*
		div.brand = 206 x 175
	*/
	var nHeight = 0;
	var nWidth = 0;
	var nTop = 0;
	var nLeft = 0;
	
	$('.brand img, .link img').each(function(){
		
		nHeight = $(this).height();
		nWidth = $(this).width();
		nTop = (175 - nHeight) / 2;
		nLeft = (206 - nWidth) / 2;
		
		$(this).css('margin-top',nTop).css('margin-left',nLeft);
	});
}
function initSlideshow(){
	
	var bPause = false;
	var sPlay = '<img src="'+sDomain+'images/template/play.png" alt="Hervatten" />';
	var sPause = '<img src="'+sDomain+'images/template/pause.png" alt="Pauzeren" />';
	
	$('#slideshow #pause').html(sPause);
	
	$('#slideshow .images img, #slideshow #pause').hover(function(){
		$('#pause').show();	
	},function(){
		$('#pause').hide();
	});
	
	$('#slideshow .images').cycle({ 
		fx:     'scrollHorz',
		//fx:		'fade',
		speed:  500, 
		timeout: 2500, 
		next:   '#next', 
		prev:   '#prev'
	});
	
	$('#slideshow #pause').click(function(){
		if(bPause == false){
			bPause = true;
			$('#slideshow #pause').html(sPlay);
			$('#slideshow .images').cycle('pause');
		} else {
			bPause = false;
			$('#slideshow #pause').html(sPause);
			$('#slideshow .images').cycle('resume');	
		}
	});
}
function addFilter(){
	$('#filter ul li').click(function(){
		$(this).toggleClass('active');
		
		var sFilter = $(this).text();
		
		if( $(this).hasClass('active') ){
			loadArtikelen('filter=' + sFilter);
		} else {
			loadArtikelen('verwijderfilter=' + sFilter);
		}
	});
}
function sortArtikelen(){
	$('.pager .select .selectbox-wrapper ul li').click(function(){
		var nValue = $(this).attr('id');
		loadArtikelen('sorteren=' + nValue);
	});
}
function loadArtikelen(p_sData){
	$.ajax({
		type: 'POST',
		url: sDomain+'inc/artikelen.inc.php',
		data: p_sData,
		success: function(result){
			$('#section-left').html(result);
			initSelectbox();
			clearInput();
			sortArtikelen();
			initSIFR();
			productHover();
		}
	});	
}
function winkelwagen() {
	$('.amount input').change(function(){
		var nArtikelnummer = $(this).next('.refresh').children('img').attr('id').replace('refresh_','');
		var nAantal = $(this).attr('value');		
		loadWinkelwagen('artikelnummer=' + nArtikelnummer + '&updateaantal=' + nAantal);
	});
	$('.refresh img').click(function(){
		var nArtikelnummer = $(this).attr('id').replace('refresh_', '');
		var nAantal = $(this).parent().prev('input#nAmount').attr('value');	
		loadWinkelwagen('artikelnummer=' + nArtikelnummer + '&updateaantal=' + nAantal);
	});	
	$('.delete img').click(function(){
		var nArtikelnummer = $(this).attr('id').replace('delete_', '');
		loadWinkelwagen('artikelnummer=' + nArtikelnummer + '&updateaantal=0');
	});
}
function loadWinkelwagen(p_sData) {
	$.ajax({
		type: 'POST',
		url: sDomain+'inc/winkelwagen.inc.php',
		data: p_sData,
		success: function(result){
			$('#section-left').html(result);
			
			var nTotalItems = 0;
			$('.amount input').each(function(){
				nTotalItems += parseInt($(this).val());								 
			});
			var sArtikelen = '';
			if(nTotalItems > 1) {
				sArtikelen = ' artikelen';	
			} else {
				sArtikelen = ' artikel';	
			}
			$('#winkelmandje').text(nTotalItems + sArtikelen);
			
			winkelwagen();
			initSIFR();
		}
	});
}
function initSIFR(){
	sIFR.replace(mittelschrift, {
	selector: '#section-left h2'
	,css: [
	  '.sIFR-root { color: #e9419b; display: block; font-weight: bold; line-height: 23px; font-size: 23px; padding: 0; }'
	],
	wmode: 'transparent'
	});
	sIFR.replace(mittelschrift, {
	selector: '#section-right h2'
	,css: [
	  '.sIFR-root { color: #e9419b; display: block; font-weight: bold; line-height: 20px; font-size: 20px; padding: 0; }'
	],
	wmode: 'transparent'
	});
	sIFR.replace(mittelschrift, {
	selector: '#columns h3'
	,css: [
	  '.sIFR-root { color: #e9419b; display: block; font-weight: bold; line-height: 15px; font-size: 15px; padding: 0; }'
	],
	wmode: 'transparent'
	});
	sIFR.replace(mittelschrift, {
	selector: '#tekst h3'
	,css: [
	  '.sIFR-root { color: #e9419b; display: block; font-weight: bold; line-height: 17px; font-size: 17px; padding: 0; }'
	],
	wmode: 'transparent'
	});	
}
function showWachtwoordVergeten(){
	$('#vergeten-link').click(function(){
		if( $('#nog-geen-klant').is(':visible') ){
			$('#nog-geen-klant').fadeOut(300, function(){
				$('#wachtwoord-vergeten').fadeIn(300);	
				initSIFR();
			});		
		} else {
			$('#wachtwoord-vergeten').fadeOut(300, function(){
				$('#nog-geen-klant').fadeIn(300);											
				initSIFR();
			});	
		}
	});
}
function wachtwoordVergeten(){
	$('#wachtwoordVergetenForm').validate({
		rules: {
			sEmail_vergeten: {
				required: true,
				email: true,
				remote: sDomain+'inc/wachtwoordvergeten.inc.php?check=ja'
			}
		},
		messages: {
			sEmail_vergeten: {
				required: 'Geen geldig e-mailadres!',
				email: 'Geen geldig e-mailadres!',
				remote: 'Onbekend e-mailadres!'
			}
		},
		errorPlacement: function(error, element){
			error.insertAfter(element.next()).slideDown(300);
		},
		submitHandler: function(form) { 
			var sMelding = '';
			var options = {
				url: sDomain+'inc/wachtwoordvergeten.inc.php',
				type: 'POST',
				success: function(response) {
					if(response == '1'){
						var sTitel = 'Gegevens verzonden';
						sMelding = 'Uw wachtwoord is naar uw mail verzonden.';
						$(form).clearForm();
						$('#wachtwoord-vergeten').fadeIn(500,function(){
							$(this).html('<h2>'+sTitel+'</h2><p>'+sMelding+'</p>');
							initSIFR();
						});
					}
				}
			}
			$(form).ajaxSubmit(options);
			return false;
		},
		success: function(label){
			label.remove();
		}
	});	
}
function otherAddress(){
	if( $('#other-address').is(':checked') ) {
		$('#other-address-form').show();
		$('#other-address-form input:text').addClass('required');
	}
	$('#other-address, #afhalen').click(function(){
		if( $('#other-address').is(':checked') ) {
			$('#other-address-form input:text').addClass('required');
			$('#other-address-form').slideDown(300);
		} else {
			$('#other-address-form').slideUp(300);
			$('#other-address-form input:text').removeClass('required');
		}
  });	
}