$(document).ready(function() {
    WinkelwagenOverzicht();
    
    Shadowbox.init({
        overlayColor: '#FFFFFF',
        overlayOpacity: '0.4'
    });    

    // Submenu
    $("#menu ul li").mouseover(function() {
        $(this).addClass("actief");
        var breedte = parseInt($(this).css("width"));
        var breedte_pijl = (breedte / 2) - 25;
        $("img", this).css("margin-left", breedte_pijl + "px");
    }).mouseout(function() {
        $(this).removeClass("actief");
    });
    
   // Returnknop werkend maken als bezoeker in zoekveld zit      
   if($("input[name='zoeken']").keypress(function(e){
      if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {  
         Zoeken();
      }      
   }));
   
   // Slider
   var t = setInterval("auto_slider()",5000);
   
   $("#homepage_header_links a").mouseover(function() {
      var rel = this.rel;
      home_slide(rel);
      
      clearInterval(t);
      t = setInterval("auto_slider()",5000);
   });    
});

function CheckEmail(p_sEmail) {
   var sReg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if(sReg.test(p_sEmail) == false) {
      return false;
   } else {
      return true;
   }
}

function BlurVeld(p_sInhoud, p_sVeldid) {
   if($("#" + p_sVeldid).val()=="") {
      $("#" + p_sVeldid).val(p_sInhoud);
   }
} 

function FocusVeld(p_sInhoud, p_sVeldid) {
   if($("#" + p_sVeldid).val()==p_sInhoud) {
      $("#" + p_sVeldid).val("");
   }
} 

/**
 * Toont of verbergd de loader
 * 
 * @param   boolean  tonen    Tonen of verbergen  
 */ 
function loader(tonen) {
   if(tonen==1) {
      var achtergrond = '<div id="modal_achtergrond"></div>';
      var inhoud = '<div id="modal_inhoud"><img id="loader_img" src="/images/loader.gif" alt="" /></div>';
      
      $("body").append(achtergrond);
      $("body").append(inhoud); 
      
      // CSS
   	$("#modal_achtergrond").css({
   		position: 'absolute',
   		zIndex: 99999,
   		padding: 0,
   		margin: 0,
   		top: '0px',
   		left: '0px',
   		width: '100%',
         background: '#FFFFFF',
         opacity: 0.4,
   		height: $(document).height()
   	});
   	
   	$("#modal_inhoud").css({
   		padding: '20px',
   		background: 'white',
   		border: '5px solid #000000',
   		width: "25px",
   		height: "25px"
   	});
   	
      // Inhoud positie berekenen
   	var top = (($(window).height() / 2) - ($("#modal_inhoud").outerHeight() / 2));
   	var left = (($(window).width() / 2) - ($("#modal_inhoud").outerWidth() / 2));

   	if( top < 0 ) top = 0;
   	if( left < 0 ) left = 0;
   	
   	// IE6 fix
   	if( $.browser.msie && parseInt($.browser.version) <= 6 ) top = top + $(window).scrollTop();
   	
   	// Modal box positioneren in midden van scherm
   	$("#modal_inhoud").css({
   	   position: 'absolute',
   	   zIndex: 999999,
   		top: top + 'px',   
   		left: left + 'px'
   	});               			   
   } else {
      $("#modal_achtergrond").remove();
      $("#modal_inhoud").remove();
      $("img#loader_img").remove();
   }
}

/**
 * Kijkt het verborgen veld "anderadres" na en vervangt dit met de tegenovergestelde waarde.
 * Is er een ander adres worden de velden getoond, anders verborgen  
 */ 
function verander_afleveradres() {
   var huidig = $("input[name='anderadres']").val();
   var nieuw = 1;
   
   if(huidig==1) {
      var nieuw = 0;
   }
   
   $("input[name='anderadres']").val(nieuw);
   
   if(nieuw==1) {
      $("#anderafleveradres").show();
   } else {
      $("#anderafleveradres").hide();   
   }
}

/**
 * Homepage slider
 */ 
function home_slide(nummer) {
    var margin = 0;
    if(nummer == 2) {
        margin = 969;
    } else if(nummer == 3) {
        margin = 1938; 
    } else if(nummer == 4) {
        margin = 2907; 
    } else if(nummer == 5) {
        margin = 3876; 
    }
    
    $("#homepage_header_slider ul").stop().animate({marginLeft:'-' + margin + 'px'},1000);
    $("#homepage_header_links a").removeClass("actief");
    $("#home_link_img_" + nummer).addClass("actief");
}

/**
 * Auto Homepage slider
 */ 
function auto_slider() {
   var rel_actief = parseInt($("#homepage_header_links a.actief").attr('rel'));
   
   var nieuwe_slide = 1; 
   if(rel_actief < 5 ) {
      nieuwe_slide = rel_actief + 1;   
   }
   
   home_slide(nieuwe_slide);
}


/**
 * Veranderd het overzicht van de winkelwagen
 */ 
function WinkelwagenOverzicht() {
   $.post("/ajax/WinkelwagenKort", {}, function(aAntwoord) {
      $("span#winkelwagenkort_aantal").html(aAntwoord['aantal']);
      $("span#winkelwagenkort_bedrag").html(aAntwoord['bedrag']);
   }, "json");
}

/**
 * Haalt het aantal van een bepaalde maat op
 * 
 * @param   integer  p_iId          ID Artikel
 * @param   integer  p_iMaatId      Maat ID    
 * @param   boolean  p_bKassa       Kassapagina ja/nee 
 */ 
function MaatStock(p_iId, p_iMaatId, p_bKassa) {      
   if(p_iMaatId>0) {
      // Toonloader();
      
      var aVelden = {};
      aVelden['id_artikel'] = p_iId;
      aVelden['id_maat'] = p_iMaatId;   
      
      $.post("/ajax/ArtikelStock", aVelden, function(aAntwoord) {
         if(aAntwoord['success']==0) {
            alert(aAntwoord['bericht']);
         } else {
            if(aAntwoord['aantal']==0) {
               alert(aTalen['winkelwagen_geen_stock'][iTaalid]);
            } else {
               if(p_bKassa==0) {
                  var sSelector = "select#aantal";
                  var sTekst = "Selecteer aantal:"; 
               } else {
                  var sSelector = "select#kassa_" + p_iId;
                  var sTekst = "Selecteer aantal:";
               }
               
               $(sSelector).empty();
               $(sSelector).append('<option value="0">' + sTekst + '</option>');
               for(i=1; i<=aAntwoord['aantal']; i++) {
                  $(sSelector).append('<option value="' + i + '">' + i + '</option>');   
               }
               
               $(sSelector + " option[value=1]").attr("selected", "selected");
            }
         }
         // Verbergloader();
      }, "json");
   } else {
      $("select#aantal").empty();
      $("select#aantal").append('<option value="0">Kies uw aantal</option>');   
   }
}

/**
 * Artikel toevoegen aan winkelwagen
 * 
 * @param   integer  p_iId          ID artikel
 * @param   integer  p_iMaatId      ID maat 
 * @param   integer  p_iAantal      Aantal 
 * @param   boolean  p_bAfrekenen   True=redirect
 * @param   string   p_sUrl         Naar van de winkelwagen URL pagina   
 */ 
function ToevoegenWinkelwagen(p_iId, p_iMaatId, p_iAantal, p_bAfrekenen, p_sUrl) {
   if(p_iAantal==0 || p_iAantal=="") {
      jAlert(aTalen['geen_aantal'][taal_id]);
   } else {
      loader(1);
      
      var aVelden = {};
      aVelden['id_artikel'] = p_iId;
      aVelden['aantal'] = p_iAantal;
      aVelden['maat'] = p_iMaatId;
      
      $.post("/ajax/ToevoegenWinkelwagen", aVelden, function(aAntwoord) {
         if(aAntwoord['success']==1) {
            WinkelwagenOverzicht();
            
            if(p_bAfrekenen==1) {
               window.location = "/" + p_sUrl;
            }
         } else {
            jAlert(aAntwoord['bericht']);
         }
         loader(0);
      }, "json");
   }
}

/**
 * Voegt een lid toe aan de nieuwsbrief
 * 
 * @param   string   p_sUrl      Bedanktpagina URL  
 */ 
function NieuwsbriefToevoegen(p_sUrl) {
   var sEmail = $("input[name='nieuwsbrief_email']").val();
   var sVoornaam = $("input[name='nieuwsbrief_voornaam']").val();
   var sNaam = $("input[name='nieuwsbrief_naam']").val();

   if(!sEmail) {
      jAlert("U heeft niets ingegeven");
   } else {
      if(!CheckEmail(sEmail)) {
         jAlert("U heeft geen geldig e-mail adres ingegeven");
      } else {
         loader(1);
         
         var aVelden = {};
         aVelden['naam'] = sNaam;
         aVelden['voornaam'] = sVoornaam;
         aVelden['email'] = sEmail;
         
         $.post("/ajax/NieuwsbriefInschrijven", aVelden, function(aAntwoord) {
            loader(0);
            if(aAntwoord['success']==1) {
               parent.window.location = "/" + p_sUrl;
               // parent.Shadowbox.close();                        
            } else {
               if(aAntwoord['bericht']!="") {
                  jAlert(aAntwoord['bericht']);
               }
            }
         }, "json");      
      }
   }
}

/**
 * Veranderd de maat van een artikel
 * 
 * @param   integer  p_iId             Artikel ID
 * @param   integer  p_iMaatId         Maat ID
 * @param   integer  p_iNieuweMaatId   ID van de nieuwe maat (naar waar het item aangepast moet worden)
 * @param   integer  p_iAantal         Aantal   
 */ 
function WinkelwagenVeranderMaat(p_iId, p_iMaatId, p_iNieuweMaatId, p_iAantal) {
   loader(1);
   
   var aVelden = {};
   aVelden['artikelid'] = p_iId;
   aVelden['maatid'] = p_iMaatId;
   aVelden['nieuwemaat'] = p_iNieuweMaatId;
   aVelden['aantal'] = "+" + p_iAantal;
   
   $.post("/ajax/WinkelwagenAanpassenMaat", aVelden, function(aAntwoord) {
      if(aAntwoord['success']==1) {
         $("#winkelwagen_ajax").load("/winkelwagen/WinkelwagenInhoud", function() {
            WinkelwagenOverzicht();
            loader(0);
         });
      } else {
         alert(aAntwoord['bericht']);
         loader(0);
      }
   }, "json");
}

/**
 * Veranderd het aantal van een winkelwagne item
 * 
 * @param   integer  p_iId          Artikel ID
 * @param   integer  p_iMaatId      Maat ID
 * @param   integer  p_iAantal      Aantal 
 */
function WinkelwagenAanpassen(p_iId, p_iMaatId, p_iAantal) {
   loader(1);
   
   var aVelden = {};
   aVelden['artikelid'] = p_iId;
   aVelden['maatid'] = p_iMaatId;
   aVelden['aantal'] = p_iAantal;
   
   $.post("/ajax/WinkelwagenAanpassen", aVelden, function(aAntwoord) {
      if(aAntwoord['success']==1) {
         $("#winkelwagen_ajax").load("/winkelwagen/WinkelwagenInhoud", function() {
            WinkelwagenOverzicht();
            loader(0);
         });
      } else {
         jAlert(aAntwoord['bericht']);
         loader(0);
      }
   }, "json");
}

/**
 * Verwijderd een item uit de winkelwagen
 * 
 * @param   integer  p_iId       Artikel ID
 * @param   integer  p_iMaatId   Maat ID  
 */
function WinkelwagenVerwijderen(p_iId, p_iMaatId) {
   loader(1);
   
   var aVelden = {};
   aVelden['artikelid'] = p_iId;
   aVelden['maatid'] = p_iMaatId;
   
   $.post("/ajax/WinkelwagenVerwijderen", aVelden, function(aAntwoord) {
      if(aAntwoord['success']==1) {
         $("#winkelwagen_ajax").load("/winkelwagen/WinkelwagenInhoud", function() {
            WinkelwagenOverzicht();
         });
         
         loader(0);
      } else {
         jAlert(aAntwoord['bericht']);
         loader(0);
      }
   }, "json");
}

/**
 * Voegt een kortingscode toe
 */ 
function KortingsCodeToevoegen() {
   var sCode = $("input[name='kortingscode']").val();

   if(sCode=="") {
      KortingscodeVerwijderen();
   } else {
      loader(1);
   
      $.post("/ajax/KortingscodeToevoegen", {code: sCode}, function(aAntwoord) {
         if(aAntwoord['success']==1) {
            $("#winkelwagen_ajax").load("/winkelwagen/WinkelwagenInhoud", function() {
               WinkelwagenOverzicht();
               loader(0);
            });
         } else {
            if(aAntwoord['bericht']!="") {
               jAlert(aAntwoord['bericht']);
            } else {
               jAlert("U heeft een ongeldige kortingscode ingegeven, of een kortingscode die niet van toepassing is op uw bestelling");
               $("input[name='kortingscode']").val("");
            }
            loader(0);
         }
      }, "json");
   }
}

/**
 * Voegt een kortingscode toe
 */ 
function KortingscodeVerwijderen() {
   loader(1);

   $.post("/ajax/KortingscodeVerwijderen", {}, function(aAntwoord) {
      $("#winkelwagen_ajax").load("/winkelwagen/WinkelwagenInhoud", function() {
         WinkelwagenOverzicht();
         loader(0);
      });
   }, "json");
}

/**
 * Kijkt na of de bezoeker naar stap 2 mag gaan
 * 
 * @param   string   p_sUrl      Winkelwagen URL  
 */
function NaarStap1(p_sUrl) {
   loader(1);
   $.post("/ajax/NaarStap1", {}, function(iAntwoord) {
      if(iAntwoord==1) {
         window.location = "/" + p_sUrl;
      } else {
         loader(0);
         jAlert("U heeft niets in uw winkelwagen!");
      }
   });
}

/**
 * Stuurt de bezoeker naar stap 2 indien dit mag (lees: alle nodige sessions bestaan).
 * Indien de klant op een andere pagina dan stap 1 zit (zie parameters) zal enkel
 * gechecked worden of alle nodige sessions bestaan. Start de gebruiker deze functie
 * op de pagina stap 1 zullen alle velden opgehaald worden en doorgestuurd worden naar
 * de PHP functie die alles in een session zet.
 * 
 * @param   boolean     p_bInStap1     Gebruiker zit op de stap 1 pagina ja/nee      
 * @param   string      p_sUrl         Stap 2 url 
 */
function NaarStap2(p_bInStap1, p_sUrl) {
   if(p_bInStap1==1) {
      var aGegevens = {};
      
      aGegevens['nieuwsbrief'] = $("input[name='nieuwsbrief']").is(":checked");
      aGegevens['onthouden'] = $("input[name='onthouden']").is(":checked");
      aGegevens['voorwaarden'] = $("input[name='voorwaarden']").is(":checked");
      
      // Checkboxen omzetten naar numerieke boolean
      if(aGegevens['nieuwsbrief']) { aGegevens['nieuwsbrief'] = 1; } else { aGegevens['nieuwsbrief'] = 0; }
      if(aGegevens['onthouden']) { aGegevens['onthouden'] = 1; } else { aGegevens['onthouden'] = 0; }
      if(aGegevens['voorwaarden']) { aGegevens['voorwaarden'] = 1; } else { aGegevens['voorwaarden'] = 0; }
      
      aGegevens['onthouden'] = 1;
      // aGegevens['voorwaarden'] = 1;      
      
      // Klantgegevens
      aGegevens['voornaam'] = $("input[name='voornaam']").val();
      aGegevens['achternaam'] = $("input[name='achternaam']").val();
      aGegevens['adres'] = $("input[name='adres']").val();
      aGegevens['postcode'] = $("input[name='postcode']").val();
      aGegevens['plaats'] = $("input[name='plaats']").val();
      aGegevens['land'] = $("select[name='land']").val();
      aGegevens['telefoon'] = $("input[name='telefoon']").val();
      aGegevens['email'] = $("input[name='email']").val();
      aGegevens['anderadres'] = $("input[name='anderadres']").val();
      aGegevens['opmerking'] = $("textarea[name='opmerking']").val();

      // Verzendgegevens
      aGegevens['voornaam2'] = $("input[name='voornaam2']").val();
      aGegevens['achternaam2'] = $("input[name='achternaam2']").val();
      aGegevens['adres2'] = $("input[name='adres2']").val();
      aGegevens['postcode2'] = $("input[name='postcode2']").val();
      aGegevens['plaats2'] = $("input[name='plaats2']").val();
      aGegevens['land2'] = $("select[name='land2']").val();

      if(aGegevens['voorwaarden']==0) {
         jAlert(aTalen['algemene_voorwaarden'][taal_id]);
      } else {
         if(!aGegevens['voornaam'] || !aGegevens['achternaam'] || !aGegevens['adres'] || !aGegevens['postcode'] || !aGegevens['plaats'] || !aGegevens['land'] || !aGegevens['email']) {
            jAlert(aTalen['alle_velden'][taal_id]);
         } else {
            if(CheckEmail(aGegevens['email'])==false) {
               jAlert(aTalen['geen_geldig_email'][taal_id]);
            } else {
               if(aGegevens['anderadres']==1 && (!aGegevens['voornaam2'] || !aGegevens['achternaam2'] || !aGegevens['adres2'] || !aGegevens['postcode2'] || !aGegevens['plaats2'] || !aGegevens['land2'])) {
                  jAlert(aTalen['alle_velden_verzend'][taal_id]);
               } else {
                  loader(1);         
                  $.post("/ajax/NaarStap2", aGegevens, function(aAntwoord) {
                     if(aAntwoord['success']==0) {
                        jAlert(aAntwoord['bericht']);
                        loader(0);
                     } else {
                        if(aAntwoord['success']==1) {
                           window.location = "/" + p_sUrl;
                        } else {
                           window.location = "/" + p_sUrl;
                        }
                     }
                  }, "json");
               }  
            }       
         }
      }
   } else {
      loader(1),
      $.post("/ajax/CheckStap2Status", {}, function(aAntwoord) {
         if(aAntwoord['success']==0) {
            jAlert(aTalen['alle_verplichte_velden_klantgegevens'][iTaalid]);
            loader(0);
         } else {
            window.location = "/stap2";
         }
      }, "json");   
   }
} 

/**
 * Plaatst een bestelling
 * 
 * @param   string   p_sUrl      URL voor stap 3  
 */ 
function PlaatsBestelling(p_sUrl) {
   jAlert(aTalen['bestelling_plaatsen_js'][taal_id], '', function() {
      loader(1); 
      $.post("/ajax/BestellingPlaatsen", {}, function(aAntwoord) {
         if(aAntwoord['bericht']!="") {
            jAlert(aAntwoord['bericht']);
            loader(0);
         } else {
            window.location = "/" + p_sUrl;
         }
      }, "json");
   });   
}

/**
 * Stuurt de klant door naar de betaalpagina van MSP
 * 
 * @param   string   p_sGateway     Gateway code   
 */ 
function BetaalMsp(p_sGateway) {
   loader(1);

   $.post("/ajax/BetaalMsp", {gateway: p_sGateway}, function(aAntwoord) {
      if(aAntwoord['bericht']!="") {
         loader(0);
         jAlert(aAntwoord['bericht']);
      } else {
         window.location = aAntwoord['url'];
      }
   }, "json");
}

/**
 * Annuleert een order
 * 
 * @param   string   p_iId      Order ID   
 */ 
function OrderAnnuleren(p_iId) {
   jConfirm(aTalen['zeker_annuleren'][taal_id], "", function(bReturn) {
      if(bReturn==true) {
         loader(1);
         $.post("/ajax/OrderAnnuleren", {id: p_iId}, function(aAntwoord) {
            if(aAntwoord['success']==1) {
               window.location = "/" + aAntwoord['redirect'];
            } else {
               jAlert(aAntwoord['bericht']);
            }
            
            Loader(0);      
         }, "json");
      }
   });
}

function Zoeken() {
   var sString = $("input[name='zoeken']").val();
   
   $.post("/ajax/Zoeken", {zoeken: sString}, function(sAntwoord) {
      window.location = "/zoeken/" + sAntwoord;      
   });
}

function artikel_volgorde(soort, redirect) {
   loader(1);
   $.post("/ajax/VeranderSorteren", {sorteren: soort}, function(aAntwoord) {
      window.location = redirect;
   }, "json");
}

function change_brand(groep, merk, redirect) {
   loader(1);
   $.post("/ajax/filter_merk", {groep: groep, merk: merk}, function(aAntwoord) {
      window.location = redirect;
   }, "json");
}

function change_group(groep, merk, subgroep, redirect) {
   loader(1);
   $.post("/ajax/filter_groep", {groep: groep, merk: merk, subgroep: subgroep}, function(aAntwoord) {
      window.location = redirect;
   }, "json");
}
