/* omega.js -- door Omega Webdesign */
/* www.omega-webdesign.nl */
/* maakt gebruik van JQuery */

var DDH = function() {
	return {

		// functie die verplichte velden van contactformulier valideert
		// in document header functie binden aan submit van formulier
		validateContactForm : function() {
			var err = 0;
			try {
				$(".verplicht").each(function() {
					var err_id = $(this).attr("rel");
					// if value is leeg -> error tonen, anders -> error verbergen
					if(!$(this).val()) {
						$("#" + err_id).show();
						err++;
						throw true;
					} else {
						$("#" + err_id).hide();
					}
				});
			} catch(e) {}
			
			if(err > 0) {
				return false;
			} else {
				return true;
			}
		},
		
		validateOrderBevestigen : function(form) {
			var err = 0;
			// kies bank
			if($('#kies_bank').val() === '') {
				$('#geen_bank_error').show();
				err++;
			} else {
				$('#geen_bank_error').hide();
			}
			// accepteer voorwaarden
			if($('#accepteer_voorwaarden').attr('checked') === false) {
				$('#voorwaarden_error').show();
				err++;
			} else {
				$('#voorwaarden_error').hide();
			}
			
			if(err === 0) {
				return true;
			} else {
				return false;
			}
		},
		
		validateContactFormMetCaptcha : function() {
			var err = 0;
			try {
				$(".verplicht").each(function() {
					var err_id = $(this).attr("rel");
					// if value is leeg -> error tonen, anders -> error verbergen
					if(!$(this).val()) {
						$("#" + err_id).show();
						err++;
						throw true;
					} else {
						$("#" + err_id).hide();
					}
				});
			} catch(e) {}
			
			if(err === 0) {
				var ccode = $("#captcha_code").val();
				$.ajax({
					type: "POST",
					url: "/captcha/checkCaptcha.php",
					async: false,
					data: ({
						captcha_code: ccode,
						src: "web"
					}), 
					success: function(data){
						if(data == "goed") {
							// niets doen, captcha klopt
						} else {
							$('#captchaerr').show();
							err++;
						}
					}
				});
			}
			
			if(err > 0) {
				return false;
			} else {
				return true;
			}
		},
		
		validateTellAFriendForm : function() {
			var err = 0;
			try {
				$(".verplicht").each(function() {
					var err_id = $(this).attr("rel");
					// if value is leeg -> error tonen, anders -> error verbergen
					if(!$(this).val()) {
						$("#" + err_id).show();
						err++;
						throw true;
					} else {
						$("#" + err_id).hide();
					}
				});
			} catch(e) {}
			
			if(err === 0) {
				var ccode = $("#captcha_code").val();
				$.ajax({
					type: "POST",
					url: "/captcha/checkCaptcha.php",
					async: false,
					data: ({
						captcha_code: ccode,
						src: "web"
					}), 
					success: function(data){
						if(data == "goed") {
							// niets doen, captcha klopt
						} else {
							$('#captchaerr').show();
							err++;
						}
					}
				});
			} 
			
			if(err > 0) {
				return false;
			} else {
				return true;
			}
			
		},
		
		// voor kies-aantallen pagina
		setCartDelConfirm : function() {
			$(".delform", $("#carttable")).submit(function() {
				if(confirm("Weet je zeker dat je dit product wilt verwijderen?")) {
					return true;
				} else {
					return false;
				}
			});
		},
		
		updateProdMaten : function(e) {
			try {
				var kid = $(e).val();
				var afb = $('#updateMaatImg');
				afb.attr('src', '/templates/imgs/wait.gif');
			
				$.ajax({
					type: "POST",
					url: '/ajax.php',
					data: { 
						actie: "laad_prod_maten",
						kid: kid
					},
					timeout: 5000,
					dataType: 'json',
					success: function(data) {
						if(data.result == 'ok') {
							$('#kiesmaat').html(data.str);
							$('#prodmaaterr').hide();
						} else {
							$('#prodmaaterr').show();
						}
						$(afb).attr('src', '/templates/imgs/transparant.gif');
					},
					error: function() {
						$('#prodmaaterr').show();
						$(afb).attr('src', '/templates/imgs/transparant.gif');
					}
				});
			
			} catch(e) {
				$('#prodmaaterr').show();
				if(afb) { $(afb).attr('src', '/templates/imgs/transparant.gif'); }
			}
		},
		
		// voor maak-persoonlijk pagina
		xxsetPersonalisatie : function() {
			try {
				$('#personaliseer .deloptieform').bind('submit', function() {
					DDH.delProdOptie(this); 
					return false;
				});
				
				$('#footer').append("<div id='persdialog'><img src='/templates/imgs/wait.gif' alt='' /></div>");
						
				$("#persdialog").dialog({
					resizable: false,
					autoOpen: false, 
					draggable: false,
					width: 600,
					height: 600,
					modal: true,
					position: ['center',100],
					title: 'Voeg een optie toe',
					overlay: {
						backgroundColor: '#000',
						opacity: 0.5
					},
					
					//buttons: {
					//	'Sluiten': function() {
					//		$(this).dialog('close');
					//	}
					//},
					close: function(ev,ui) {
						$(this).data("title.dialog", "").html(''); //.dialog('option', 'height', 315); 
					}
				});
				
				$('#personaliseer .add_optie_button').bind('click', function() {
					DDH.openAddOptieScherm(this); 
					return false;
				});
				
			} catch(e) {}
		},
		
		xxopenAddOptieScherm : function(b) {
			try {
				//var cid = $(b).attr("value");
				// omweg om kl*te IE7 bug te omzeilen, zie: http://stackoverflow.com/questions/487056/retrieve-button-value-with-jquery
				var label = $(b).html(); 
				$(b).html('');
				var cid = $(b).val();
				$(b).html(label);
				
				//alert(cid);
				$.ajax({
					type: "POST",
					//url: urladr,
					data: { 
						act: "open_add_optie",
						cid: cid
					},
					timeout: 5000,
					//dataType: 'json',
					success: function(data) {
						$('#persdialog').html(data);
						
						/*if(act == 'edit') {
							$("#dialog").data("title.dialog", "Product bewerken"); //.dialog('option', 'height', 'auto'); 
						} else {
							$("#dialog").data("title.dialog", "Product toevoegen");
						}*/
						$('#persdialog').dialog('open').show();
						
						$('.addoptiescherm .gallerydiv .kaartjes div')
							.bind("mouseenter", function(e) {
								var box = $(this);
								if(!box.hasClass('selected')) {
									box.css({borderColor: '#4A2000'});
								}
							})
							.bind("mouseleave", function(e) {
								var box = $(this);
								if(!box.hasClass('selected')) {
									box.css({borderColor: '#DED3CE'});
								}
							})
							.bind("click", function(e) {
								var box = $(this);
								$('div', box.parent()).removeClass('selected');
								box.addClass('selected'); //.css({borderColor: '#4A2000'});
							});
						
						$('.addoptiescherm .custom_button').bind('click', function(e) {
							DDH.saveAddOptie(this);
							return false;
						});
						
						$('#persdialog #add_optie_ga_verder_button').bind('click', function(e) {
							$('#persdialog').dialog('close');
							return false;
						});
						
					},
					error: function() {
						//alert('an error: ' + arguments[0].responseText + ', ' + arguments[1]);
						/*var e = new Object();
						e.message = '';
						if(arguments[0].responseText) e.message += arguments[0].responseText + ', '; // arguments[0].statusText + ', ' + 
						e.message += arguments[1];
						e.usermsg = "Er is een fout opgetreden bij het opslaan van de geselecteerde opties.";
						e.code = 'KL09B';
						DDHKAT.reportError(e);*/
					}
				});
			
			} catch(e) {}
		},
		
		xxsaveAddOptie : function(e) {
			try {
				var type = 'dropdown';
				var container = $(e).parent();
				if(container.hasClass('gallerydiv')) {
					type = 'gallery';
				}
				
				var err = 0;
				var vals = '';
				var tekst = '';
				if(type == 'dropdown') {
					vals = $('select', container).val();
				} else {
					if($('.kaartjes div.selected', container).length === 0) {
						$('.nokaarterr', container).show();
						err++;
					} else {
						$('.nokaarterr', container).hide();
						vals = $('.kaartjes div.selected', container).attr('rel');
					}
					if($('textarea', container).val() === '') {
						$('.noteksterr', container).show();
						err++;
					} else {
						$('.noteksterr', container).hide();
						tekst = $('textarea', container).val();
					}
				}
				
				if(err === 0) {
					//var url = window.location;
					
					$.ajax({
						type: "POST",
						//url: url,
						data: { 
							act: "save_add_optie",
							type: type,
							vals: vals,
							tekst: tekst
						},
						timeout: 5000,
						dataType: 'json',
						success: function(data) {
							if(data.result == 'ok') {
								if($('#persdialog .addoptiescherm').length > 1) {
									$(container).parent().hide('blind', { direction: 'vertical'}).remove();
								} else {
									$('#persdialog').dialog('close');
								}
								DDH.updateCadeauOpties(vals);
																
							} else {
								$('#persdialog').html(data.result);
							}
						},
						error: function() {
							/*var e = new Object();
							e.message = '';
							if(arguments[0].responseText) e.message += arguments[0].responseText + ', '; // arguments[0].statusText + ', ' + 
							e.message += arguments[1];
							e.usermsg = "Er is een fout opgetreden bij het opslaan van de geselecteerde opties.";
							e.code = 'KL09B';
							DDHKAT.reportError(e);*/
						}
					});
				}
				
			} catch(er) {}
		},
		
		xxupdateCadeauOpties : function() {
			if(arguments[0] !== '') {
				var cid = arguments[0].split("_")[0];
				var par = $("#personaliseer #persinner #prod div#cid_" + cid);
				
				// forms verwijderen
				$('form', par).remove();
				
				// wait img toevoegen
				$('h4', par).after("<img class='laadimg' src='templates/imgs/wait.gif' alt='laden' />");
				
				$.ajax({
					type: "POST",
					//url: url,
					data: { 
						act: "update_cadeau_opties",
						id: cid
					},
					timeout: 5000,
					//dataType: 'json',
					success: function(data) {
						
						par = $(par);
						
						$('.laadimg', par).replaceWith(data);
						
						$('.deloptieform', par).bind('submit', function() {
							DDH.delProdOptie(this); 
							return false;
						});
						
						if($('.deloptieform', par).length >= 3) {
							$('p.addbutton', par).hide();
						}
						$('.nosel', par).hide();
						
					},
					error: function() {
						/*var e = new Object();
						e.message = '';
						if(arguments[0].responseText) e.message += arguments[0].responseText + ', '; // arguments[0].statusText + ', ' + 
						e.message += arguments[1];
						e.usermsg = "Er is een fout opgetreden bij het opslaan van de geselecteerde opties.";
						e.code = 'KL09B';
						DDHKAT.reportError(e);*/
					}
				});
					
			}
		},
				
		xxdelProdOptie : function(f) {
			try {
				if(confirm('Weet u zeker dat u deze optie wilt verwijderen?')) {
					var sel = $('input[name="vals"]', f).val();
					
					//var url = window.location;
					
					$.ajax({
						type: "POST",
						//url: url,
						data: { 
							act: "del_ajax",
							sel: sel
						},
						timeout: 5000,
						dataType: 'json',
						success: function(data) {
							if(data.result == 'ok') {
								var container = $(f).parent();
								
								// item verwijderen
								$(f).remove();
								
								if($('.deloptieform', container).length === 0) {
									$('p.nosel', container).show();
								}
								
								// toevoegen knop tonen
								$('p.addbutton', container).show();
								
							} else {
								alert('uh oh');
							}
						},
						error: function() {
							/*var e = new Object();
							e.message = '';
							if(arguments[0].responseText) e.message += arguments[0].responseText + ', '; // arguments[0].statusText + ', ' + 
							e.message += arguments[1];
							e.usermsg = "Er is een fout opgetreden bij het opslaan van de geselecteerde opties.";
							e.code = 'KL09B';
							DDHKAT.reportError(e);*/
						}
					});
				}
			} catch(e) {}
		},
		
		toonCarouselFoto : function(img2) {
			var adres = '/templates/imgs/carousel/' + $(img2).attr('rel');
			
			// http://jqueryfordesigners.com/image-loading/
			var img = new Image();
			$(img)
				.load(function() {
					$(this).hide();
					
					$('#car_foto').removeClass('loading');
					var car = $('#car_foto img');
					if(car.length > 0) {
						$(car).replaceWith(this);
					} else {
						$('#car_foto').append(this);
					}
					
					$(this).fadeIn();
				})
				
				.attr('src', adres);
		},
		
		toonCarouselFotoNr1 : function(pic) {
			var adres = '/templates/imgs/carousel/' + pic;
			
			// http://jqueryfordesigners.com/image-loading/
			var img = new Image();
			$(img)
				.load(function() {
					$(this).hide();
					
					$('#car_foto').removeClass('loading');
					var car = $('#car_foto img');
					if(car.length > 0) {
						$(car).replaceWith(this);
					} else {
						$('#car_foto').append(this);
					}
					
					$(this).fadeIn();
				})
				
				.attr('src', adres);
		}
		
	};
}();

DDH.Cookie = {									//http://www.quirksmode.org/js/cookies.html
	create : function(name,value,days) {		// example:: DDH.Cookie.create('ppkcookie','testcookie',7)
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	},
	
	read : function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	},
	
	destroy : function(name) {
		DDH.Cookie.create(name,"",-1);
	}
}
