String.prototype.trim = function () {
  return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1");
};

function InitHandlers()
{
				
								
				function checkDate(fieldname )
				{  
									
									function DateError(){
										$('select[name='+ fieldname + '1]').addClass('errorform');
		   							$('select[name='+ fieldname + '2]').addClass('errorform');
		   							$('select[name='+ fieldname + '0]').addClass('errorform');
									}	
									
									function DateNoError(){
										$('select[name='+ fieldname + '1]').removeClass('errorform');
		   							$('select[name='+ fieldname + '2]').removeClass('errorform');
		   							$('select[name='+ fieldname + '0]').removeClass('errorform');
									}
													
	   							var month =  $('select[name='+ fieldname + '1]').val();
	   							var day = $('select[name='+ fieldname + '2]').val();
	   							var year = $('select[name='+ fieldname + '0]').val();
	   							
	   							var sDate = day + '/' + month + '/' + year; 
	   							
								  var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/
								   if (re.test(sDate)) 
								   {
								      var dArr = sDate.split("/");
								      var d = new Date();
								      var now_plus2 = new Date();
								      now_plus2.setDate(now_plus2.getDate() + 2); 
								      d.setFullYear(year,month - 1,day);
								      if(d.getMonth() + 1 == month && d.getDate() == day && d.getFullYear() == year && d >= now_plus2)
								      {
								      	DateNoError();
								      	return true;
								      }
  							   }
								  DateError();
	   							return false;
			}
			
			$('.droptrigger').click(function(event){
				event.preventDefault();
				//get target
				var id = $(this).attr('id');
				var targetid = 'droppable' + id;
				$('#'+targetid).slideToggle('fast');
				
			});
			
			$('#fastorder_cancel').click(function(event){
				event.preventDefault();
				var targetid = 'droppablefastorder';
				$('#'+targetid).slideToggle('fast');
				
			});
			
			$('#registerform').submit(function() {

 								if($("input[name='passwordenc']").size())
 								{
		 								$("input[name='passwordenc']").val(hex_md5($("input[name='password']").val()));
		 								$("input[name='password']").val("");
		 								$("input[name='passwordconfenc']").val(hex_md5($("input[name='passwordconf']").val()));
		 								$("input[name='passwordconf']").val("");
 								}
 							  return true;
				});
						
 				//only submit searchform if searchfield not empty
 				$('#searchsubmit').click(function(event){
 					//event.preventDefault();
 					var value = $('#textfield').val().trim();
 					if(value == '')
 					{
  							return false;
 					}
 					
 					//var gotoURL = $('#searchform').attr('action') + '?list=search&value=' + encodeURIComponent(value);
 					//location.href = gotoURL;
 					return true;
 				});
 				
 				$('.search #textfield').focus(function(event){
 					$(this).val('').attr('class','searchfield_text');
 					
 				});
 				
 				$('#vraaginput,#emailinput').focus(function(event){
 					$(this).val('');
 					
 				});
 				
 				$('.curlink').click(function(){
 					var curid = $(this).attr('id');
 					shoppingcart.currency = parseInt(curid.replace('cur',''));
 					shoppingcart.saveCookie();
 				});
 				
 				$('select[class^="send_date"]').change(function(){
 					$($('input[name=send_date_choice]')[1]).attr('checked',true);
 				});
 				
 				$('input[name=send_date_choice]').change(function(){
 					if($(this).val() == 'zsm')
 					{
 							var d = new Date();
							//d.setFullYear(year,month - 1,day);
								      
 							$('select[name=send_date0]').val($('input[name=send_date_choice_year]').val());
 							$('select[name=send_date1]').val($('input[name=send_date_choice_month]').val());
 							$('select[name=send_date2]').val($('input[name=send_date_choice_day]').val());
 					}
 				});
 				
 				
 				$('.nextbut').live('click',function(evt){
 				
 						
 						//evt.preventDefault();
 						if($('textarea[name=comment]').size()){
 							
 								shoppingcart.comment = $('textarea[name=comment]').val();
 								shoppingcart.shippingmethod = $('#shippingmethod').val();
 								shoppingcart.saveCookie();
 						}
 						
 						if($('select[class^="send_date"]').size())
 						{
 								//alert($('select[class=send_date]').size());
 								if(!checkDate('send_date'))
 								{
 										shoppingcart.send_date = '';
							 			
 										$('select[class=send_date]').addClass('errorform');
 										
 										shoppingcart.saveCookie();
 										return false;
 								}	
 								
 								$('select[class=send_date]').removeClass('errorform');
 								shoppingcart.send_date = $('select[name=send_date0]').val() + '-' + $('select[name=send_date1]').val() + '-' + $('select[name=send_date2]').val() + ' ' +  '00:00:00';
 								
 								shoppingcart.comment = $('textarea[name=comment]').val();
 								shoppingcart.shippingmethod = $('#shippingmethod').val();
 								shoppingcart.saveCookie();
 						}
 							
						//do payment form if it exists
 						if($('input[name=betaalwijze]').size())
 						{
 								var betaalwijze = $('input[name=betaalwijze]:checked').fieldValue();

								
 								if(betaalwijze == '')
 								{
 										$('input[name=betaalwijze]').addClass('errorform');
 										return false;
 								}
 								$('input[name=betaalwijze]').removeClass('errorform');
 								
 								if(typeof betaalwijze == 'object')
 									betaalwijze = betaalwijze[0];
 								
 							  shoppingcart.paymentmethod = betaalwijze;
 							  
 							  if(betaalwijze == 'sisow')
 							  {
 							  	 var issuerid = $('#issuerid').val();
 							  	 if(issuerid == '')
 							  	 {
 							  	 	 $('#issuerid').addClass('errorform');
 							  	 	 return false;
 							  	 }
 							  	 else
 							  	 {	
 							  	 	shoppingcart.idealbankcode = issuerid;
 							  	 	shoppingcart.idealbankname = $('#issuerid option:selected').html();
 							  	 
 							  	 	$('#issuerid').removeClass('errorform');
 							  	 }
 							  	 
 							  }
 							  else if(betaalwijze == 'klarna')
 							  {
 							  	 //check klarna restrictions on user
 							  	 var errormsg = '';
 							  	 var gourl = baseurl + '/cart/validateklarna.php?' + uniqid();
	 									var result = false;
	 									$("body").css("cursor", "progress");
	     							$.ajax({
										   type: "POST",
										   url: gourl,
										   data: {},
										   async: false,
										   timeout: 20000,
										   success: function(msg){
										   						$("body").css("cursor", "auto");
								     							if(empty(msg))
																	{
																		result = false;
																	}
																	else if(msg == 'valid')	
																	{
															
																 		result = true;
																 	}
																 	else //error
																 	{
																 		errormsg = msg;
																 		result = false;
																 	}
								   		 },
								   		 error:  function(msg){
								   		 		$("body").css("cursor", "auto");
														result = false;
								   		 }
								 		});
								 		
								 							 		
								 		if(!result)
								 		{
								 			
								 			if(!empty(errormsg))
								 			{
								 				if($('#klarnaerror').size())
								 					$('#klarnaerror').replaceWith('<span class="error" id="klarnaerror">&nbsp;&nbsp;'+ errormsg +'</span>');
								 				else
								 					$('input[value=klarna]').parent().append('<span class="error" id="klarnaerror">&nbsp;&nbsp;'+ errormsg +'</span>');
								 			}
								 			return false;
								 		}
								 		else
								 		{
								 			$('#klarnaerror').remove();
								 			
								 		}
 							  	  shoppingcart.idealbankcode = '';
 							  	  shoppingcart.idealbankname = '';
 							  }	
 							  else
 							  {
 							  	shoppingcart.idealbankcode = '';
 							  	shoppingcart.idealbankname = '';
								}
								
								if(betaalwijze == 'rembours')
 							  {
 							  	 shoppingcart.shippingmethod = 'rembours';
 							  }	
 							  //alert(shoppingcart.paymentmethod);	
 							  
 							  
 							  var val = $('input[name=couponcode]').val();
 							  
 								if(!empty(val))
 								{
 								
 									var gourl = baseurl + '/cart/validatecoupon.php?couponcode=' + val + '&' + uniqid();
 									var result = false;
 									
 									$("body").css("cursor", "progress");
     							$.ajax({
									   type: "POST",
									   url: gourl,
									   data: {},
									   async: false,
									   timeout: 20000,
									   success: function(msg){
									   	
							     							if(empty(msg))
																{
																	result = false;
																}
																else if(msg == 'valid')	
																{
														
															 		result = true;
															 	}
															 	$("body").css("cursor", "auto");
							   		 },
							   		 error:  function(msg){
							   		 			$("body").css("cursor", "auto");
													result = false;
							   		 }
							 		});
							 		
							 		if(!result)
							 		{
							 			$('input[name=couponcode]').addClass('errorform');
							 			shoppingcart.couponcode = '';
							 			shoppingcart.saveCookie();
							 			return false;
							 		}
							 		else
							 		{
							 				$('input[name=couponcode]').removeClass('errorform');
											shoppingcart.couponcode = $('input[name=couponcode]').val();
											shoppingcart.saveCookie();
											return true;
							 		}
								
								}
								
								shoppingcart.couponcode = '';
								shoppingcart.saveCookie();
 						}
 						else if($('input[name=couponcode]').size())
 						{
 								$('input[name=couponcode]').removeClass('errorform');
								shoppingcart.couponcode = $('input[name=couponcode]').val();
								shoppingcart.saveCookie();
 						}
 						
 						//update shipping info if exists
 						if($('p#shippinginfo').size())
 						{
 							  shoppingcart.shippinginitials = $("input[name='initials']").val();
 								shoppingcart.shippingpreposition = $("input[name='preposition']").val();
 								shoppingcart.shippingname = $("input[name='name']").val();
 								shoppingcart.shippingstreet = $("input[name='street']").val();
 								shoppingcart.shippinghouse = $("input[name='house']").val();
 								shoppingcart.shippingzipcode = $("input[name='zipcode']").val();
 								shoppingcart.shippingcity = $("input[name='city']").val();
 								shoppingcart.shippingcountry = $("input[name='country']").val();
 								shoppingcart.saveCookie();
 						}
 							
 						$('#checkoutform').submit(function() {
 							
 								if($("input[name='passwordenc']").size())
 								{
		 								$("input[name='passwordenc']").val(hex_md5($("input[name='password']").val()));
		 								$("input[name='password']").val("");
		 								$("input[name='passwordconfenc']").val(hex_md5($("input[name='passwordconf']").val()));
		 								$("input[name='passwordconf']").val("");
 								}
 								
 								if($(this).attr('name') == 'changeshipping')
 								{
 									  shoppingcart.shippinginitials = $("input[name='initials']").val();
 										shoppingcart.shippingpreposition = $("input[name='preposition']").val();
 										shoppingcart.shippingname = $("input[name='name']").val();
 										shoppingcart.shippingstreet = $("input[name='street']").val();
 										shoppingcart.shippinghouse = $("input[name='house']").val();
 										shoppingcart.shippingzipcode = $("input[name='zipcode']").val();
 										shoppingcart.shippingcity = $("input[name='city']").val();
 										shoppingcart.shippingcountry = $("select[name='country']").val();
 										shoppingcart.saveCookie();
 								}
 								
 									
							  return true;
						});
						
						
 						$('#checkoutform').submit();
		
						if($('#checkoutform').size())
 							return false;
							
 					}
 				);
 				
 				
 				
 				//set up sort filter event
				$("#sort").change(function() {
						var gotoURL = $("#sort").val();
						location.href = gotoURL;
				}); 
				
				//set up sort filter event
				$("#eco").change(function() {
						var gotoURL = $("#eco").val();
						location.href = gotoURL;
				});
				
				//set up sort filter event
				$("#itemsperpage").change(function() {
					var now = new Date();
						   var cookieoptions = {
							 domain: cookiedomain,
							 path: "/",
						   expiresAt: new Date(now.getFullYear() + 1,now.getMonth(),now.getDate())
				  	}
				  	
				  	$.cookies.set('itemsperpage',$("#itemsperpage").val(),cookieoptions);						
						location.reload();
				});
				
				//set up outlet filter event
				$("#outletonly").click(function() {
						var gotoURL = $("#outletonly").val();
						location.href = gotoURL;
				}); 
				
								
				//$(document).overlay();
				$("#login_forgotpw").click(function() {
					  //show forgotpwform in overlay
					  $("body").overlay({contenturl:  baseurl + '/overlay/forgotpw/'});
				});	
				
				$("#logoutlink").click(function() {
					  //submit logout form
					  $("#logoutform").submit();
				});
				
				$('#logoutlink,#fastorder_cancel').hover(function() {
					$(this).css('cursor','pointer');
					}, function() {

					$(this).css('cursor','auto');
				});
				
				$('#shippingmethod').change(function(){
						shoppingcart.shippingmethod = $(this).val();
						
						if(shoppingcart.shippingmethod == 'rembours')
							shoppingcart.paymentmethod = 'rembours';
						else if(shoppingcart.paymentmethod == 'rembours')
							shoppingcart.paymentmethod = 'ideal';
							
						shoppingcart.saveCookie();
						
				});
				

				
				$('.addcart_button,.btn_order,.addcart_fastorder').hover(function() {
					$(this).css('cursor','pointer');
					}, function() {

					$(this).css('cursor','auto');
				});
				
				
}
