(function($) {

$.fn.randomize = function(childElem) {
  return this.each(function() {
      var $this = $(this);
      var elems = $this.children(childElem);

      elems.sort(function() { return (Math.round(Math.random())-0.5); });  

      $this.remove(childElem);  

      for(var i=0; i < elems.length; i++)
        $this.append(elems[i]);

  });    
}
})(jQuery);



// Extend jQuery with serializeJSON.
(function($)
 {
  $.fn.serializeJSON = function()
   {
    var objJSON = {};
    
    jQuery.map($(this).serializeArray(), function(aryName, intIndex)
     {
      objJSON[aryName["name"]] = aryName["value"];
     });

    return objJSON;
   };
 })(jQuery);

 window.time = new Date().getTime();

 window.intRow = 0;
 window.blnPause = false;
 window.bufferclone;


 function slideImage(objImage, blnForce)
  {
   if (objImage)
    {
     clearTimeout(window.intSlideshow);

     if (window.blnPause)
      {
       return false;
      }
     //console.log($("#sliderimage .image:first-child").attr("id") + " ... " + objImage.attr("id"));

     objCurrent = $("#sliderimage .image:first-child");

     if (objImage.attr("id") == objCurrent.attr("id"))
      {
       slideImage();

       return false;
      }

     var objClone = objImage.clone();
     var strID    = objImage.attr("id");
     
     if (strID == objCurrent.attr("id"))
      {
       slideImage();
       
       return;
      }

     objImage.attr("old-id", strID);
     objImage.attr("id", "");
     objClone.attr("id", strID);

     objImage.remove();

     objCurrent.after(objClone);
     objCurrent.next().attr("style", objCurrent.next().attr("data-background"));

     objCurrent.animate({width: 0}, function()
      {
       window.blnPause = true;
       $("#slider .maintitle").attr("data-force", "false");

       if (objImage.attr("old-id"))
        {
         var elmElement = $(".subset a[data-image=" + parseInt(objImage.attr("old-id").substr(12)) + "]").parents(".subset").next();
        }
       else
        {
         var elmElement = $(this).next();
        }

       elmElement.attr("data-force", "true");

       var objFirst = $(this);
       var objClone = objFirst.clone();

       objClone.attr("id", objFirst.attr("id"));
       objClone.width(850);

       objFirst.remove();
       $("#sliderimage").append(objClone);
       objClone.attr("style", objClone.attr("data-background"));


       window.intSlideshow = setTimeout('slideImage();', 5000);
       window.time = new Date().getTime();
       window.blnPause = false;
      });
    }
   else
    {
     if (!blnForce)
      {
       if ((new Date().getTime()-window.time) < 5000)
        {
         clearTimeout(window.intSlideshow);

         window.intSlideshow = setTimeout('slideImage();', 5000-(new Date().getTime()-window.time));

         return;
        }
      }      

/*      if (!window.objImage || !window.objImage.next)
      {
       window.objImage = $(".image:first-child");
      }
     else
      {  */
       var intRandom = Math.random();
       var strID     = $(".image:first-child").attr("id");

       if (!window.strCurrID)
        {
         window.strCurrID = strID;
        }

       window.objImage = undefined;

       for (var intI = 0; intI < window.aryImage.length; intI++)
        {
         if (window.aryImage[intI].priority < intRandom && strID != window.aryImage[intI].id && window.strCurrID != window.aryImage[intI].id)
          {
           var intCount = 0;

           if (window.aryImage[intI+1] && window.aryImage[intI+1].priority == window.aryImage[intI].priority)
            {
             for (var intItem = intI; intItem < window.aryImage.length; intItem++)
              {
               if (window.aryImage[intI].priority == window.aryImage[intItem].priority)
                {
                 intCount++;
                }
               else
                {
                 break;
                }
              }
            }

           intI = intI + Math.round(Math.random() * (intCount-1));
           var intL = 0;

           while (!window.aryImage[intI])
            {
             intI--;
             intL++;

             if (intL > 5)
              {
               intI = 0;
              }

             if (intL > 6)
              {
               intI = 0;
               break;
              }
            }

           //if (!document.all){console.log(intRandom + " p: " + window.aryImage[intI].priority + " c:" + intCount + " i:" + intI + " dt:" + (new Date().getTime()-window.time));}

           clearTimeout(window.intSlideshow);

           window.objImage = $("#" + window.aryImage[intI].id);

           slideImage(window.objImage);

           break;
        }
      }
     
     clearTimeout(window.intSlideshow);
     
     if (!window.objImage || !window.objImage[0])
      {
       slideImage();
       return;
      }             
     //console.log(window.objImage);
    }
  }

 window.blnDisable = false;

 function slideUpMenu(intIndex)
  {
   if (window.aryHold[intIndex] == "slide")
    {
     var objMenu    = $(".casemain > li");

     var objItem = $(objMenu[intIndex]);

     $(".maintitle", objItem).attr("data-active", "false");
     $(".subset", objItem).slideUp("fast");
     $(".subset > li", objItem).attr("data-active", "false");
     $(".case", objItem).attr("data-active", "false").slideUp("fast");
     
     $(".casemain > li", objItem).attr("data-active", "false");
     
     $(objItem).attr("data-active", "false");
    }
   else
    {
     window.aryHold[intIndex] = false;
    }
  }

var byProperty = function(prop) {
    return function(a,b) {
        if (typeof a[prop] == "number") {
            return (a[prop] - b[prop]);
        } else {
            return ((a[prop] < b[prop]) ? -1 : ((a[prop] > b[prop]) ? 1 : 0));
        }
    };
};

 $(window).load(function()
  {
   if ($("#slidercontainer")[0])
    {
     window.strCurrID = $(".image:first-child").attr("id");

     $("#sliderimage").randomize("#sliderimage .image");

     var objImage = $(".image");
     
     window.aryImage = [];

     intItem = 0;

     for (var intI = 0; intI < objImage.length; intI++)
      {
       $(objImage[intI]).attr("style", $(objImage[intI]).attr("data-background"));

       var intPriority = parseInt($(objImage[intI]).attr("data-priority"));

       if (intPriority == 0)
        {
         intPriority = 10;
        }

       window.aryImage[intI] = {
                                "priority": intPriority *.0075,
                                "id"      : $(objImage[intI]).attr("id")
                               };
       intItem++;
      }

     window.aryImage.sort(byProperty("priority")).reverse();

     window.intSlideshow = setTimeout('slideImage();', 5000);
    }
  });

 $(document).ready(function()
  {
   $(".info_extra .extra table tr:nth-child(odd) td").css({"background": "#6d4388;", "color":"white"});
   $(".info_extra .extra table tr:nth-child(odd) td h3").css({"color": "white"});

   if ($("#reference")[0])
    {
     window.intRefTimeout = setTimeout('switchReference(1);', 5000);
    }

   if ($(".social .maintext")[0])
    {
     $(".social .contact").height($(".social .maintext")[0].clientHeight-40);
    }

   if ($.browser.msie) // IE fixes
    {
     if ($.browser.version <= 7)
      {
       $(".row .itemcontainer:last-child").css({"margin-right": 0});
       $("#menu li:last-child").css({"padding-right": 0});
       $("#menu .case li").css({"margin-left": -30});
       $(".subset > li:last-child, .case > li:last-child > a").css({"background": "none"});
       $("#reference").css({"margin-top": 30});
  
       if ($(".social .maintext")[0])
        {
         $(".social .contact").height($(".social .maintext")[0].clientHeight-40);
        }
        
       $(".blocks .row .itemcontainer:last-child").css({"margin-right": 0});
      }
     else if ($.browser.version == 8)
      {
       $(".blocks .row .itemcontainer:last-child").css({"margin-right": 0});
      }
    }

   $("#menu .casesitem").mouseover(function()
    {
     if ($(this).attr("data-active") != "true")
      {
       $("#caseview").fadeIn("fast");
       $(this).attr("data-active", "true");
      }
    });
    
   $("#caseview").parent().mouseleave(function()
    {
     $("#menu .casesitem").attr("data-active", "false");
     $("#caseview", this).hide();
    });

   $("#slider").mouseenter(function() // pauzeren tijdens hover
    {
     clearTimeout(window.intSlideshow);
    });

   $("#slider *").mouseover(function() // pauzeren tijdens hover
    {
     clearTimeout(window.intSlideshow);
    });

   $("#slider").mouseleave(function()
    {
     window.time = new Date().getTime();
     window.intSlideshow = setTimeout('slideImage();', 5000);
    });


   window.aryHold = new Array();

   $(".casemain > li").mouseenter(function(e)
    {
     window.aryHold[$(this).index()] = false;
    });

   $(".casemain > li").mouseleave(function(e)
    {
     window.aryHold[$(this).index()] = "slide";

     setTimeout('slideUpMenu(' + $(this).index() + ');', 300);
    });

   $(".casemain > li[data-active!='true']").live("mouseover", function()
    {
     elmElement = $(this);

     window.aryHold[elmElement.index()] = false;

     $("#slider .maintitle").attr("data-active", "false");
     $(".maintitle", elmElement).attr("data-active", "true");

     $(".casemain > li").attr("data-active", "false");
     elmElement.attr("data-active", "true");

     $(".subset").attr("data-active", "false");
     $(".subset", elmElement).attr("data-active", "true");
     $(".subset", elmElement).slideDown("fast");
     $(".subset[data-active != 'true']").slideUp("fast");

     $(".case").attr("data-active", "false").slideUp("fast");
      
     $(".subset > li").attr("data-active", "false");
    });

   $(".subitem").click(function()
    {
     elmElement = $(this);

     $(".subset > li").attr("data-active", "false");
     elmElement.parent().attr("data-active", "true");

     $(".case").attr("data-active", "false");
     $(".case", elmElement.parent()).attr("data-active", "true");
     $(".case", elmElement.parent()).slideDown("fast");

     $(".case[data-active != 'true']").slideUp("fast");
    });

   $("#sliderimage").width(850 * $(".image").length);

   $("a[data-load = 'true']").click(function()
    {
     $(".maintitle").attr("data-force", "false");
     $($(this).parents(".subset")[0]).next().attr("data-force", "true");
     slideImage($("#slider_item_" + $(this).attr("data-image")), true);
    });
    
   $(".refnav > a").click(function()
    {
     intIncrement = 1;
     
     if ($(this).hasClass("left"))
      {
       intIncrement *= -1;
      }
      
     switchReference(intIncrement);
    });
    
   $(".subcategory > li > a").click(function()
    {
     if ($(this).attr("data-disable") != "true")
      {
       var objLinks = $(".subcategory > li > a");
       objLinks.parent().attr("data-active", "false");
       objLinks.attr("data-disable", "true");

       objMenu = $(this).next();
       objMenu.attr("data-hold", "true");

       $(".subcategory > li > ul[data-hold != 'true']").slideUp("fast");

       objMenu.slideDown("fast", function()
        {
         objMenu.attr("data-hold", "false");
         objMenu.parent().attr("data-active", "true");
  
         objLinks.attr("data-disable", "false");
        });
      }
    });
    
   if ($(".caselist")[0])
    {
     var objLink = $(".caselist .autoactivate");
     
     if (objLink[0])
      {
       objMenu = $(objLink.parents(".caselist")[0]);
       objMenu.parent().attr("data-active", "true");
       setTimeout('objMenu.slideDown();', 500);
      }
    }

   if (window.block && window.block.SWF)
    {
     var params = {};
     params.wmode = "transparent";

     swfobject.embedSWF('./module/openwords/data/upload/' + window.block.SWF, 'caseflash', '360', '275', '9', "#ffffff", {}, params);
    }
    
   $(".addinfo").live("click", function()
    {
     $(this).replaceWith('<a class="delinfo">Klik hier als u geen details wil toevoegen.</a>');
     $("#contacthide").fadeIn();
    });

   $(".delinfo").live("click", function()
    {
     $(this).replaceWith('<a class="addinfo">Klik hier als u meer details heeft over uw aanvraag</a>');
     $("#contacthide").fadeOut();
    });
    
   $("#frmReference").submit(function()
    {
     var objStatusRequest = {
                             "xcentive" : {
                                           0: {
                                               "action" : "reference.send",
                                               "data"   : $(this).serializeJSON()
                                              }
                                        }
                            };

     $("#notification").animate({opacity:0});

     $.post(window.strBase_Admin,
            {jsondata: objStatusRequest},
            function (objResponse)
             {
              if (objResponse == "true")
               {
                if (_gaq && _gaq.push)
                 {
                  _gaq.push(['_trackPageview', "/referentieverzonden"]);
				  _gaq.push(['_trackEvent', 'Formulier', 'Referenties', 'Verzonden']);
                 }

                $("#notification").html("<span style='color:green;'>Uw bericht is verzonden.</span>");
               }
              else
               {
                $("#notification").html('Verzending mislukt. Mogelijk zijn niet alle velden ingevuld. <input type="submit" value="Verstuur" class="buttonsend" />');
               }

              $("#notification").animate({opacity:1});
             });

     return false;
    });
    
   $("#frmCallme").submit(function()
    {
     var objStatusRequest = {
                             "xcentive" : {
                                           0: {
                                               "action" : "callme.send",
                                               "data"   : $(this).serializeJSON()
                                              }
                                        }
                            };

     $("#notification").animate({opacity:0});

     $.post(window.strBase_Admin,
            {jsondata: objStatusRequest},
            function (objResponse)
             {
              if (objResponse == "true")
               {
                if (_gaq && _gaq.push)
                 {
                  _gaq.push(['_trackPageview', "/belmijverzonden"]);
				  _gaq.push(['_trackEvent', 'Formulier', 'Bel Mij', 'Verzonden']);
                 }

                $("#notification").html("<span style='color:green;'>Uw bericht is verzonden.</span>");
               }
              else
               {
                $("#notification").html('Verzending mislukt. Mogelijk zijn niet alle velden ingevuld. <input type="submit" value="Verstuur" class="buttonsend" />');
               }

              $("#notification").animate({opacity:1});
             });

     return false;
    });
    
   $("#frmContact").submit(function()
    {
     var objStatusRequest = {
                             "xcentive" : {
                                           0: {
                                               "action" : "contact.send",
                                               "data"   : $(this).serializeArray()
                                              }
                                        }
                            }; 

     $("#notification").animate({opacity:0});

     $.post(window.strBase_Admin,
            {jsondata: objStatusRequest},
            function (objResponse)
             {
              if (objResponse == "true")
               {
                if (_gaq && _gaq.push)
                 {
                  _gaq.push(['_trackPageview', "/contactverzonden"]);
				  _gaq.push(['_trackEvent', 'Formulier', 'Contact', 'Verzonden']);
                 }

                $("#notification").html("<span style='color:green;'>Uw bericht is verzonden.</span>");
               }
              else
               {
                $("#notification").html('Verzending mislukt. Mogelijk zijn niet alle velden ingevuld. <input type="submit" value="Verstuur" class="buttonsend" />');
               }
              
              $("#notification").animate({opacity:1});
             });

     return false;
    });
    
   $("#otherinput").keypress(function()
    {
     $("input[type='checkbox']", $(this).parent()).val("Anders, nl.: " + $(this).val());
    });
  });
  
 function switchReference(intIncrement)
  {
   if (!intIncrement)
    {
     intIncrement = 1;
    }

   if ($("#reference .item").length == 1)
    {
     return false;
    }


   var objActive = $("#reference .item[data-active!='false']");
   intRefIndex  = objActive.index()-1;

   intRefIndex += intIncrement;

   if (intRefIndex > $("#reference .item").length)
    {
     intRefIndex = 1;
    }

   if (intRefIndex <= 0)
    {
     intRefIndex = $("#reference .item").length;
    }

   $("#reference .item").attr("data-active", "false");

   objActive.fadeOut("fast", function()
    {
     $($("#reference .item")[intRefIndex-1]).attr("data-active", "true").fadeIn("fast");
    });

   clearTimeout(window.intRefTimeout);
   window.intRefTimeout = setTimeout('switchReference(1);', 6000);
  }

