

function SubmitForm() {
   //SaveFormCookie("offerteformulier",1);
   theForm = document.getElementById("offerteformulier");
   //FormatVoorletters(document.getElementById("voorletters"));
   if (form_submit(theForm)) {
       theForm.submit();
   }
}

function ProcessKlantcode() {
   if (document.getElementById("klantcode").value.length > 4)
      location.href = baseURL+"boeking/new/arrangementid/"+arrangementId+"/klantcode/"+document.getElementById("klantcode").value
}

function ProcessKortingscode() {
   if (document.getElementById("kortingscode").value.length > 4)
      location.href = baseURL+"boeking/new/arrangementid/"+arrangementId+"/kortingscode/"+document.getElementById("kortingscode").value
}


var slidePaneArrangementAndActivities;
var slidePaneSelectExtras;



function ShowArrangementVarianten(text, arr, data, script) {

   var dvProto,dvContainer,dvMessage;

   $('paneListGroepsarrangementen').style.display="block";

   alternatieven = data[0];
   if (alternatieven) {
//alert(text);
      dvProto = $('alternativeArrVarProto')
      dvContainer = $('alternativeArrVarsContainer')
      dvMessage = $('alternativeArrVarsMessage');
      dvHeader = $('alternativeArrVarHeader');
   }
   else {
//alert(text);

      arrVarDivs = Array();
      skipIds = "";
      dvProto = $('availableArrVarProto')
      dvContainer = $('availableArrVarsContainer')
      dvMessage = $('availableArrVarsMessage');
      dvHeader = $('availableArrVarHeader');
   }

   dvContainer.innerHTML = "";

   if (arr.length > 1) {
      dvContainer.style.display="block";
      dvHeader.style.display="block";
      for (var i=0;i<arr.length-1;i++) {
         parts = arr[i].split("|");
         arrName = parts[0];
         arrDuration = parts[1];
         if (parts[2] == parts[3])
            arrPrice = "&euro;"+parts[2];
         else
            arrPrice = "&euro;"+parts[2]+"&nbsp; -&nbsp;&euro;"+parts[3];
         arrPrice = arrPrice.replace(".",",");
         arrPrice = arrPrice.replace(".",",");
         if (parts[4] == "0")
            arrPersonen = "max "+parts[5];
         else
            arrPersonen = parts[4]+"&nbsp;-&nbsp;"+parts[5];
         arrVarId = parts[6];
         arrVarIds = parts[7];
         arrId = parts[8];
         dv = dvProto.clone();
         dv.id = "var"+arrVarId;
         dv.ids = arrVarIds;
         dv.arrId = arrId;
         dv.arrDuration = arrDuration;
         dv.arrPrice = arrPrice;
         dv.isAlternative = alternatieven;
         //dv.addEvent('click', function() {
         //   SelectArrangementVariant(this);
         //});
         atag = dv.getElementsByTagName("a");
         //alert(atag.length);
         if(atag.length==1)
            atag[0].href="javascript:SelectArrangementVariant('"+dv.id+"')";
         divs = dv.getElementsByTagName("div");
         if (!alternatieven) {
            skipIds += arrVarIds+",";
         }
         divs[0].innerHTML = arrName;
         divs[1].innerHTML = arrDuration;
         divs[2].innerHTML = arrPrice;
         divs[3].innerHTML = arrPersonen;
         //divs[4].innerHTML = arrVarIds;

         dv.style.display="block";
         //dv.isTemp = true;
         dv.inject(dvContainer);
         arrVarDivs[arrVarDivs.length] = dv;
      }
//      alert(skipIds);
   }
   else {
      dvMessage.style.display="block";
   }

   if (!alternatieven) {
      FindArrangementAlternatieven(data[1],data[2],data[3],data[4],skipIds);
   }

}

function FindArrangementVarianten(prefDuration,prefBudget,prefPersons,arrId) {
   selectedArrName = "";
   $('alternativeArrVarsMessage').style.display="none";
   $('alternativeArrVarsContainer').style.display="none";
   $('alternativeArrVarHeader').style.display="none";
   $('availableArrVarsMessage').style.display="none";
   $('availableArrVarsContainer').style.display="none";
   $('availableArrVarHeader').style.display="none";
   HideArrangementAndActivities();
   HideExtras();
   HidePersonalData();
   ajaxFindArrangementVarianten.Load(baseURL+"php/ajax.php","c-Object=groepsarrangementdefinitie&c-Action=findVarianten&s-Duur="+prefDuration+"&s-Budget="+prefBudget+"&s-Personen="+prefPersons+"&l-ID_groepsarrdefinitie="+arrId,"POST",Array(false,prefDuration,prefBudget,prefPersons,arrId));
}

function FindArrangementAlternatieven(prefDuration,prefBudget,prefPersons,arrId,skipIds) {
   ajaxFindArrangementVarianten.Load(baseURL+"php/ajax.php","c-Object=groepsarrangementdefinitie&c-Action=findAlternatieveVarianten&s-Duur="+prefDuration+"&s-Budget="+prefBudget+"&s-Personen="+prefPersons+"&l-ID_groepsarrdefinitie="+arrId+"&skipIds="+skipIds,"POST",Array(true));
}

ajaxFindArrangementVarianten = new AjaxObject("ajaxFindArrangementVarianten", "", "ShowArrangementVarianten");


function SelectArrangementVariant(varDivId) {
   schema.ClearArrangementStatusMsg();
   $('divInstructies').style.display = "none";
   $('divInstructiesExtras').style.display = "none";
   varDiv = $(varDivId);
//alert(varDiv.id+":"+varDiv.isAlternative);
   for (var i=0;i<arrVarDivs.length;i++) {
   //alert(arrVarDivs[i].id);
       arrVarDivs[i].removeClass("selected")
   }
   varDiv.addClass("selected");

   reloadActiviteiten = ("arr"+varDiv.arrId != schema.actualArr) ;
   if (reloadActiviteiten)
      ResetActiviteiten();
   schema.actualArr = "arr"+varDiv.arrId;
   schema.actualArrVar = varDiv.id;
   schema.prefDuration = varDiv.arrDuration;
   schema.prefPrice = varDiv.arrPrice;

   ajaxGetArrangementDetails.Load(baseURL+"php/ajax.php","c-Object=groepsarrangementdefinitie&c-Action=Show&ID="+varDiv.arrId,"POST",Array(varDiv.arrId,reloadActiviteiten));

   //alert($("prefDuur").value);
   //SetDuration($("prefDuur").value)

   //alert(schema.prefDuration);
   SetDuration(schema.prefDuration);
}

function ShowArrangementAndActivities() {
   $("paneArrangementAndActivities").style.display="block";
   HideExtras();
   HidePersonalData();
}
function HideArrangementAndActivities() {
   $("paneArrangementAndActivities").style.display="none";
}


function HideActiviteiten() {
//   slidePaneArrangementAndActivities.slideOut();
//$("paneArrangementAndActivities").style.display="none";
$('selectActivities').style.display="none";
}

function ShowActiviteiten(text, arr, data, script) {
   HideExtras();
   HidePersonalData();

   if (schema.variableActivities()) {
      $("availableActivitiesContainer").innerHTML=text;
      schema.SetArrangementStatus(false,"");
      ///$('msgSelectActivities').innerHTML = "kkkkk";
      schema.SetArrangementStatusMsg("");
   }
   else {
      $("fixedActivitiesContainer").innerHTML=text;
      schema.SetArrangementStatus(true,"");
   }


   schema.actualDuration.clearValue();
   schema.actualPrice.clearValue();
   if (text.length > 100) {

      if (schema.variableActivities()) {
         scriptdivs = $$('#availableActivitiesContainer div.script');
         scriptdivs.each(function (item,index) {
            eval(item.innerHTML);
         });

         $('showActivities').style.display="none";
         $('selectActivities').style.display="block";
         //slidePaneArrangementAndActivities = new Fx.Slide('paneArrangementAndActivities');
         //slidePaneArrangementAndActivities.slideIn();
         activitiesAccordion = new Accordion($('availableActivitiesContainer'), 'div.accActivityCategorie', 'div.accActivityList', {
            opacity: false,
            onActive: function(toggler, element){
               toggler.setStyle('color', '#41464D');
            },
            onBackground: function(toggler, element){
               toggler.setStyle('color', '#528CE0');
            },
            onComplete: function(toggler, element){
               //alert($('availableActivitiesContainer').getSize().y +" " + $('paneArrangementAndActivities').getSize().y);
            }
         });

      }
      else {
         scriptdivs = $$('#fixedActivitiesContainer div.script');
         scriptdivs.each(function (item,index) {
            eval(item.innerHTML);
         });
         schema.actualDuration.value = schema.prefDuration;
         schema.actualPrice.setValue(schema.prefPrice);
         $('showActivities').style.display="block";
         $('selectActivities').style.display="none";
      }
   }
   else {
      schema.actualDuration.value = schema.prefDuration;
      schema.actualPrice.setValue(schema.prefPrice);
      $('showActivities').style.display="none";
      $('selectActivities').style.display="none";
     //HideActiviteiten();
   }
}

function ResetActiviteiten() {
    $("availableActivitiesContainer").innerHTML = "";
    $('selectedActivities').innerHTML = "";
    $('fixedActivitiesContainer').innerHTML = "";
    $('rodedraadtekst').style.display="none";
    categories   = new Hash();
    availableActs.activities.empty();
    selectedActs  = {
      totalSelected : 0,
      inCatSelected : new Hash(),
      activities    : new Hash()
    };
    maxInCat = new Hash();
}

ajaxGetActiviteiten = new AjaxObject("ajaxGetActiviteiten", "", "ShowActiviteiten");

function ShowArrangementDetails(text, arr, data, script) {
   arrId = data[0];
   reloadActiviteiten = data[1];
   $('arrangementDetails').innerHTML = text;
   selectedArrName = $('grouparrName').innerHTML;
   //$('paneArrangementAndActivities').style.display="block";
   ShowArrangementAndActivities();
   $('divArrVarPrice').innerHTML = schema.prefPrice;
   $('divArrVarDuration').innerHTML = schema.prefDuration;
   myFx = new Fx.Scroll(window,{offset:{'x': 0,'y': -100}}).toElement($('paneArrangementAndActivities'));
   if (reloadActiviteiten) {
      ajaxGetActiviteiten.Load(baseURL+"php/ajax.php","c-Object=groepsarrangementdefinitie&c-Action=GetActiviteiten&ID="+arrId,"POST",Array());
   }
   else {
      if (schema.variableActivities()) {
         CalculateDuration();
         SetStatusAvailableActivities();
      }
   }
}

function HideArrangementDetails(text, arr, data, script) {
   $("paneArrangementAndActivities").style.display="none";
}


ajaxGetArrangementDetails = new AjaxObject("ajaxGetArrangementDetails", "", "ShowArrangementDetails");

var activitiesAccordion;
var categories   = new Hash();
var availableActs = {activities: new Hash()};
var selectedActs  = {
   totalSelected : 0,
   inCatSelected : new Hash(),
   activities    : new Hash()
};
var maxInCat = new Hash();
var arrVarDivs = Array();
var selectedArrName = "";


function AsValutaStr(amount) {
   str = ""+amount
   str = str.replace(".",",");

   if(str.indexOf(",") == -1)
      str += ",00"
    else if (str.indexOf(",") == str.length-2)
      str += "0";

   if(str.indexOf(",") < str.length-3)
      str = str.substr(0,str.indexOf(",")+3);
      
   return str;
}


//alert(schema.durations[0].categories.get('cat1').min);
//alert(schema.getMaxAct(1,"02:00"));


function GetActiviteitenToeslag() {
   var total = 0.0;
   selectedActs.activities.each(function(act,actId) {
      total += parseFloat(act.price);
   });
   //alert(total);
   return total;
}

function AddCategory(catId,name) {
//alert(catId);
   var cat = {
      id   : catId,
      name : name,
      activities : new Hash()
   }
   categories.set('cat'+catId,cat);
   //alert(categories.length)
   selectedActs.inCatSelected.set('cat'+catId,{value : 0});
}

function AddActivity(catId,actId,name,price,rodedraad) {
   rodedraad = (rodedraad == '1');
   if (rodedraad)
      $('rodedraadtekst').style.display="block";

   var act = {
      id   : actId,
      catId: "cat"+catId,
      name : name,
      price: price,
      rodedraad : rodedraad,
      isSelected: false,
      div  : $('act'+actId),
      setStatus: function (status) {
         div.addClass("status_"+status);
      },
      select: function() {
         this.div.addClass("selected");
         this.div.removeClass("doesnotfit");
         this.isSelected = true;
      },
      deselect: function() {
         this.div.removeClass("selected");
         this.isSelected = false;
      }
   }
   if (schema.variableActivities()) {

      $('act'+actId+'Naam').addEvent('click', function() {
         SelectActivity(act.div.id);
      }); 

      availableActs.activities.set('act'+actId,act);
      categories.get('cat'+catId).activities.set('act'+actId,act);
   }
   else {
      availableActs.activities.set('act'+actId,act);
      categories.get('cat'+catId).activities.set('act'+actId,act);
   }

}

function AddMootooltip(divId,actId) {
   new MooTooltips({
      extra:{
         0: {
            'id':divId,
            'ajax':baseURL+'php/ajax.php?c-Object=activiteit&c-Action=show&ID='+actId,
            'ajax_message': 'Bezig met laden .....',
            'position':1,
            'sticky':false
         }
      },
      ToolTipClass:'ToolTips',   // tooltip display class
      toolTipPosition:-1, // -1 top; 1: bottom - set this as a default position value if none is set on the element
      sticky:false,     // remove tooltip if closed
      fromTop: 10,    // distance from mouse or object
      fromLeft: 10, // distance from left
      duration: 200,    // fade effect transition duration
      fadeDistance: 0    // the distance the tooltip starts the morph
   });

}



function SelectActivity(id) {
   if (availableActs.activities.has(id)) {
      HideExtras();
      var act = availableActs.activities.get(id)
      if(!act.div.hasClass('exceeds')) {
         cp = act.div.clone();
         cp.id = id+"Sel";
         cp.removeClass("doesnotfit");
         cp.removeClass("doesnotfit");
         cp.inject($('selectedActivities'));

         divs =cp.getElementsByTagName("div");
         divs[0].addEvent('click', function() {
            DeselectActivity(id);
         }); 

         imgs =cp.getElementsByTagName("img");
         imgs[0].id = id+"InfoSel"; 


         new MooTooltips({
            extra:{
               0: {
                  'id': id+'InfoSel',
                  'ajax':baseURL+'php/ajax.php?c-Object=activiteit&c-Action=show&ID='+id.substr(3,10),
                  'ajax_message': 'Bezig met laden .....',
                  'position':1,
                  'sticky':false
               }
            },
            ToolTipClass:'ToolTips',   // tooltip display class
            toolTipPosition:-1, // -1 top; 1: bottom - set this as a default position value if none is set on the element
            sticky:false,     // remove tooltip if closed
            fromTop: 10,    // distance from mouse or object
            fromLeft: -140, // distance from left
            duration: 200,    // fade effect transition duration
            fadeDistance: 0    // the distance the tooltip starts the morph
         });



         selectedActs.activities.set(id,act)
         if (!act.rodedraad) {
            selectedActs.inCatSelected.get(act.catId).value++;
            selectedActs.totalSelected++;
         }
         availableActs.activities.erase(id);
         act.select();

         CalculateDuration();
         SetStatusAvailableActivities();
      }
   }
}

function DeselectActivity(id) {
   HideExtras();
   $(id+"Sel").dispose();
   var act = selectedActs.activities.get(id)
   availableActs.activities.set(id,act)
   selectedActs.activities.erase(id)
   if (!act.rodedraad) {
      selectedActs.inCatSelected.get(act.catId).value--;
      selectedActs.totalSelected--;
   }
   act.deselect();
   CalculateDuration();
   SetStatusAvailableActivities()
}

function UpdateAvailableActivities() {
}

function GetActivityIds() {
   ids = "";
   if (selectedActs.activities.getLength() > 0) {
      selectedActs.activities.each(function(act,ndx) {
         if (ids != "")
            ids += "|";
         ids += act.id;
      });
   }
   return ids;
}

function SetDuration(duration) {
   categories.each(function (item,index) {
      item.minact = schema.getMinActPerCat(item.id,duration)
      item.maxact = schema.getMaxActPerCat(item.id,duration)
   });
   schema.calcMinMaxAct(duration);
   SetStatusAvailableActivities();
}

function CalculateDuration() {
   if (schema.variableActivities()) {
      if (categories.getLength() == 1) {
         //schema.findDurationSingleCat();
         schema.findDurationMultipleCat();
      }
      else {
         schema.findDurationMultipleCat();
      }
   }
}


function SetStatusAvailableActivities() {
   if (selectedActs.totalSelected < schema.getMinAct(schema.prefDuration) || selectedActs.totalSelected > schema.getMaxAct(schema.prefDuration)) {
     //alert("jippie1 "+$('msgSelectActivities').innerHTML);
      if (selectedActs.totalSelected < schema.grouparrs[schema.actualArr].min) {
         schema.SetArrangementStatusMsg("Selecteer "+schema.getMinAct(schema.prefDuration)+" activiteiten");
      }
      else {
         schema.SetArrangementStatusMsg("Selecteer "+schema.getMinAct(schema.prefDuration)+" activiteiten"+ " of kies dit arrangement van "+schema.actualDuration.value+" uur");
      }
      //$('VerderArrAndAct').style.display="none";
            availableActs.activities.each(function (act,index) {
               act.div.removeClass("doesnotfit")
               act.div.removeClass("exceeds")
            });
   }
   else {
      $('msgSelectActivities').innerHTML = "ok";
      categories.each(function (cat,catId) {
         if (selectedActs.inCatSelected.get(catId).value >= categories.get(catId).maxact ||
             selectedActs.totalSelected >= schema.maxAct) {
            cls = "doesnotfit";
            //if (
            cat.activities.each(function (act,index) {
               act.div.removeClass("exceeds")
               if(!act.isSelected && !act.rodedraad)
                  act.div.addClass(cls)
            });
         }
         else {
            cat.activities.each(function (act,index) {
               act.div.removeClass("doesnotfit")
               act.div.removeClass("exceeds")
            });
         }
      });
   }

   if (selectedActs.totalSelected >= schema.grouparrs[schema.actualArr].max) {
      availableActs.activities.each(function (act,actId) {
         if(!act.rodedraad)
            act.div.addClass("exceeds")
      });
   }

}

function ZoekArrangementen() {
   if (parseInt($('prefPersonen').value) > 2) {
      FindArrangementVarianten($('prefDuur').value,$('prefPrijs').value,$('prefPersonen').value,$('ID_arrangementdefinitie').value);
   }
   else if (parseInt($('prefPersonen').value) >= 1) {
      alert("het minimaal aantal deelnemers bedraagt 3 personen");
   }
   else {
      alert("Geef aan met hoeveel personen u deel te denkt te gaan nemen");
   }
}

function ToggleInstructies(divje) {
   if ($(divje).style.display == "block")
      $(divje).style.display = "none";
   else
      $(divje).style.display = "block";
}

   
