/*
   Profile `de Fietsspecialist`
   Javascripts
   07-05-2007 i-Aspect B.V.
*/




   function ChangeLocation() {
      document.location = this.value;
   }

   function ChangeModel() {
      var str_url = document.location.toString();
      var str_pos = str_url.indexOf('product');
      if(str_pos > 0) {
         str_url = str_url.substring(0,str_pos);
         document.location = str_url+'product/'+this.value+FormToString();
      } else {
         document.location = str_url+'/product/'+this.value+FormToString();
      }
   }

   function FormToString() {
      var str="";
      if(parseInt(document.getElementById('brand').value) > 0)
         str+= "&s-product|assortiment_brand_ID="+document.getElementById('brand').value;
      if(parseInt(document.getElementById('price').value) > 0)
         str+= "&s-price="+document.getElementById('price').value;
      return str;
   }

   function ShowProductList() {
      return internShowProduct('List', this);
   }
   function ShowProduct() {
      return internShowProduct('', this);
   }
   function internShowProduct(type, obj) {
      var opt = {
          method: 'post',
          encoding: 'iso-8859-1',
          postBody: FormToString(),
          onSuccess: function(t) {
              response_element.innerHTML = t.responseText;
              if(document.getElementById('btnnext'))
                  document.getElementById('btnnext').onclick = ShowProduct;
              if(document.getElementById('btnprev'))
                  document.getElementById('btnprev').onclick = ShowProduct;
              if(document.getElementById('list-btnnext'))
                  document.getElementById('list-btnnext').onclick = ShowProductList;
              if(document.getElementById('list-btnprev'))
                  document.getElementById('list-btnprev').onclick = ShowProductList;
              if (type == 'List') {
                    document.getElementById('brand').onchange = ShowProductList;
                    document.getElementById('price').onchange = ShowProductList;
              } else {
                    document.getElementById('brand').onchange = ShowProduct;
                    document.getElementById('price').onchange = ShowProduct;
              }
              document.getElementById('modelname').onchange = ChangeModel


               sIFR.redraw();
              /* sIFR kopjes activeren */
//              sIFR.replaceElement("h2.detailtitel", named({sFlashSrc: "/flash/pdf/myriad.swf", sColor: "#FFFFFF", sWmode: "transparent"}));
  //            sIFR.replaceElement("td.pricebig>h4", named({sFlashSrc: "/flash/pdf/priceblue.swf", sColor: "#3983ba", sWmode: "transparent"}));
    //          sIFR.replaceElement(".prijs>h4", named({sFlashSrc: "/flash/pdf/priceblue.swf", sColor: "#3983ba", sWmode: "transparent"}));
		//			 sIFR.replaceElement(".productenOnderdeelBg>h3", named({sFlashSrc: "/flash/pdf/myriad.swf", sColor: "#FFFFFF", sWmode: "transparent", sFlashVars:"offsetTop=1"}));
          },
          on404: function(t) {
              alert('Error 404: location "' + t.statusText + '" was not found.');
          },
          onFailure: function(t) {
              alert('Error ' + t.status + ' -- ' + t.statusText);
          }
      }

      var str_url = obj.href;
      if(!str_url)
         str_url = document.location.toString();

      str_pos = str_url.indexOf('collectie');
      if(str_pos > 0)  {
         str_url = str_url.substring(str_pos+9);
         ajax_url = '/ajaxhandler/product'+type+'/'+str_url;
         response_element = document.getElementById('product_holder');
         response_element.innerHTML ='<div style="margin-top:50px;height:100px;text-align:center;"><img src="/images/loading.gif"/><br/><br/>Een ogenblik geduld ..</div>';
         new Ajax.Request(ajax_url, opt);
      } else {
         alert('Er is fout opgetreden met het laden van het product. Stuur een mail naar support@i-aspect.com om dit probleem te melden.');
      }
      return false;
   }


   /* events used for catalog products */
   function SetCatalogNavigation() {
      if(document.getElementById('btnprev'))
        document.getElementById('btnprev').onclick = ShowProduct;
      if(document.getElementById('btnnext'))
         document.getElementById('btnnext').onclick = ShowProduct;
      if(document.getElementById('list-btnprev'))
        document.getElementById('list-btnprev').onclick = ShowProductList;
      if(document.getElementById('list-btnnext'))
         document.getElementById('list-btnnext').onclick = ShowProductList;
 
   }

   function ShowAccessoryProductList() {
      return internShowAccessoryProduct('List', this);
   }
   function ShowAccessoryProduct() {
      return internShowAccessoryProduct('', this);
   }
   function internShowAccessoryProduct(type, obj) {
      var opt = {
          method: 'post',
          encoding: 'iso-8859-1',
          postBody: FormToString(),
          onSuccess: function(t) {
              response_element.innerHTML = t.responseText;
              if(document.getElementById('btnnext'))
                  document.getElementById('btnnext').onclick = ShowAccessoryProduct;
              if(document.getElementById('btnprev'))
                  document.getElementById('btnprev').onclick = ShowAccessoryProduct;
              if(document.getElementById('list-btnnext'))
                  document.getElementById('list-btnnext').onclick = ShowAccessoryProductList;
              if(document.getElementById('list-btnprev'))
                  document.getElementById('list-btnprev').onclick = ShowAccessoryProductList;
              if (type == 'List') {
                    document.getElementById('brand').onchange = ShowAccessoryProductList;
                    document.getElementById('price').onchange = ShowAccessoryProductList;
              } else {
                    document.getElementById('brand').onchange = ShowAccessoryProduct;
                    document.getElementById('price').onchange = ShowAccessoryProduct;
              }
              document.getElementById('modelname').onchange = ChangeModel
 
              /* sIFR kopjes activeren */


               sIFR.redraw();
//              sIFR.replaceElement("h2.detailtitel", named({sFlashSrc: "/flash/pdf/myriad.swf", sColor: "#FFFFFF", sWmode: "transparent"}));
//              sIFR.replaceElement("td.pricebig>h4", named({sFlashSrc: "/flash/pdf/priceblue.swf", sColor: "#3983ba", sWmode: "transparent"}));
//				    sIFR.replaceElement(".prijs>h4", named({sFlashSrc: "/flash/pdf/priceblue.swf", sColor: "#3983ba", sWmode: "transparent"}));
//					 sIFR.replaceElement(".productenOnderdeelBg>h3", named({sFlashSrc: "/flash/pdf/myriad.swf", sColor: "#FFFFFF", sWmode: "transparent", sFlashVars:"offsetTop=1"}));
              //location.hash='product_holder';
          },
          on404: function(t) {
              alert('Error 404: location "' + t.statusText + '" was not found.');
          },
          onFailure: function(t) {
              alert('Error ' + t.status + ' -- ' + t.statusText);
          }
      }

      var opt2 = {
          method: 'post',
          encoding: 'iso-8859-1',
          postBody: FormToString(),
          onSuccess: function(t) {
              response_element2.innerHTML = t.responseText;
              var links = response_element2.getElementsByTagName('a');
              for(var i=0;i<links.length;i++){
                 links[i].onclick=ShowAccessoryProduct;
              }
          },
          on404: function(t) {
              alert('Error 404: location "' + t.statusText + '" was not found.');
          },
          onFailure: function(t) {
              alert('Error ' + t.status + ' -- ' + t.statusText);
          }
      }

      var str_url = obj.href;
      if(!str_url)
         str_url = document.location.toString();

      str_pos = str_url.indexOf('collectie');
      if(str_pos > 0)  {
         str_url = str_url.substring(str_pos+9);
         ajax_url = '/ajaxhandler/productaccessoires'+type+'/'+str_url;
         response_element = document.getElementById('product_holder');
         response_element.innerHTML ='<div style="margin-top:50px;height:100px;text-align:center;"><img src="/images/loading.gif"/><br/><br/>Een ogenblik geduld ..</div>';
         new Ajax.Request(ajax_url, opt);
      } else {
         alert('Error 409: Ongeldige URL! Stuur een mail naar profile@i-aspect.net om dit probleem te melden.');
      }

      return false;
   }


   /* events used for accessory products */
   function SetAccessoryNavigation(){
      if($('btnprev'))
        $('btnprev').onclick = ShowAccessoryProduct;
      if($('btnnext'))
         $('btnnext').onclick = ShowAccessoryProduct;
      if($('list-btnprev'))
        $('list-btnprev').onclick = ShowAccessoryProductList;
      if($('list-btnnext'))
         $('list-btnnext').onclick = ShowAccessoryProductList;
 
   }


/* event adding by quirksmode */
   function addEventSimple(obj,evt,fn) {
      if (obj.addEventListener)
         obj.addEventListener(evt,fn,false);
      else if (obj.attachEvent)
         obj.attachEvent('on'+evt,fn);
   }

   function checkSearchBoxes(){
      var stores = $('headerZoekWinkels');
      var collection = $('headerZoekCollectie');

      if(stores && collection){

         stores.onsubmit=function(){
            if(this.waarde.value)
              return true;
            else{
               this.waarde.focus();
            }
            return false;
         }
         collection.onsubmit=function(){
            if(this.search.value)
              return true;
            else{
               this.search.focus();
            }
            return false;
         }
      }
   }
   addEventSimple(window,'load',checkSearchBoxes);

   // - this function can be removed after Rutger changed it to an other
   //   email validation function 
   // - Rutger decided not to...
   function validateEmailv2(email)
   {
   // a very simple email validation checking.
   // you can add more complex email checking if it helps
       if(email.length <= 0)
      {
        return false;
      }
       var splitted = email.match("^(.+)@(.+)$");
       if(splitted == null) return false;
       if(splitted[1] != null )
       {
         var regexp_user=/^\"?[\w-_\.]*\"?$/;
         if(splitted[1].match(regexp_user) == null) return false;
       }
       if(splitted[2] != null)
       {
         var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
         if(splitted[2].match(regexp_domain) == null)
         {
          var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
          if(splitted[2].match(regexp_ip) == null) return false;
         }// if
         return true;
       }
      return false;
   }

   function subscribeNewsletter() {
      var emailaddress = $('nbemailadres');
      var response = $('nbrespel');
      if(!emailaddress || !response)return;
      if(emailaddress.value && validateEmailv2(emailaddress.value)){

         var opt = {
             method: 'post',
             postBody: 'email='+emailaddress.value,
             onSuccess: function(t) {
                 response.update("<p>Er is een email verzonden naar uw emailadres. Met deze email moet u uw aanmelding bevestigen.</p>");
             },
             on404: function(t) {
                 alert('Error 404: location "' + t.statusText + '" was not found.');
             },
             onFailure: function(t) {
                 alert('Error ' + t.status + ' -- ' + t.statusText);
             }
         }
         response.update('<p><strong>Een ogenblik geduld...</strong> <br/><br/>U wordt aangemeld...</p>');
         ajax_url = '/ajaxhandler/subscribenewsletter';
         new Ajax.Request('/ajaxhandler/subscribenewsletter', opt);
         return false;
      } else{

         alert('Ongeldig email adres.');
         emailaddress.focus();
         return false;
      }
      return false;
}


   function popitup(url) {
      newwindow=window.open(url,'name','height=300,width=440,scrollbars=yes');
      if (window.focus) {newwindow.focus()}
      return false;
   }

   function initPopupLinks(){
      var x = document.getElementsByTagName('a');
      for (var i=0;i<x.length;i++) {
         if (x[i].getAttribute('type') == 'popup') {
            x[i].onclick = function () {
               return popitup(this.href)
            }
            x[i].title += ' (Popup)';
         }
      }
   }

   addEventSimple(window,'load',initPopupLinks);


   function initShopSearch(){

      if($('winkelzoeken')){

         var land = $('s-Country');
         var provincie = $('s-Province');
         var plaats = $('s-City');

         if($F(land)=='0'){
            provincie.disable();
         }
         if($F(provincie)=='0'){
            plaats.disable();
         }

         Event.observe('s-Country','change',function(){
            provincie.enable();

         });
         Event.observe('s-Province','change',function(){
            plaats.enable();

         });

      }

   }
//      addEventSimple(window,'load',initShopSearch);


   function initSearchBlocks(){

      if($('headerblok')){




         var collectieknop = $('btn_collectie');
         var winkelknop = $('btn_winkel');

         Event.observe(collectieknop,'click',function(node){
            createCookie('searchOption', 'collection', 0);

																
				$('headerZoekCollectie').show();
				$('headerZoekWinkels').hide();
				collectieknop.addClassName('active');
				winkelknop.removeClassName('active');
            $$('#headerZoekCollectie input')[0].focus();
				
         });
			
			Event.observe(winkelknop,'click',function(node){
            createCookie('searchOption', 'winkel', 0);
				$('headerZoekCollectie').hide();
				$('headerZoekWinkels').show();
				collectieknop.removeClassName('active');
				winkelknop.addClassName('active');
			
            $$('#headerZoekWinkels input')[0].focus();
         });
      }

      //Set last clicked option as selected


      var searchOption = readCookie('searchOption')
      if (searchOption=='collection') {
         $('headerZoekCollectie').show();
         $('headerZoekWinkels').hide();
         collectieknop.addClassName('active');
         winkelknop.removeClassName('active');
         $$('#headerZoekCollectie input')[0].focus();
      } else if (searchOption=='winkel') {
         $('headerZoekCollectie').hide();
         $('headerZoekWinkels').show();
         collectieknop.removeClassName('active');
         winkelknop.addClassName('active');
      
         $$('#headerZoekWinkels input')[0].focus();
      }

      new AutoComplete('shopautocomplete', 'ajaxhandler/autocompleteshop&m=text&s=', { delay: 0.25, cssClass: 'autocompleteshop', resultFormat: AutoComplete.Options.RESULT_FORMAT_TEXT });   

   }
   addEventSimple(window,'load',initSearchBlocks);



//FIXME Maybe put this on a more appropiate spot
   function createCookie(name,value,days) {
     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=/";
   }

   function readCookie(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;
   }

   function eraseCookie(name) {
     createCookie(name,"",-1);
   }

