//JSON decoder:
function decodeJSON(JSONstr)
{
  //alert(JSONstr);
	eval("var obj = "+JSONstr);
  //alert("YEH!");
	return obj;
}	

// drie hoofdfuncties? alle seriefuncties, alle voorstellingfuncties, alle reserveer- en bestelfuncties?
/* oude togglefunctie (gebaseerd op checkbox): */
function toggleSerie(sessie,serie,elementid)
{
  //alert(serie);
  if ($(elementid).checked == true)
  { 
    selectSerie('select',sessie,serie); 
  }
  else
  { 
    reactie = confirm("Let op! U gaat deze serie uit uw bestelling verwijderen. Weet u het zeker?");
    if (reactie  !=0)
    {
      unselectSerie('unselect',sessie,serie); 
      //$('seriebutton_'+serie+'_on').show();
      //$('seriebutton_'+serie+'_off').hide();
    }
    else
    {
      $(elementid).checked = true;
    }
  }
  
  //alarmbel();
}

/* nieuwe togglefunctie (gebaseerd op click on button):
function toggleSerie(sessie,serie,state)
{
  //alert(serie);
  if (state == 0)
  { 
    selectSerie('select',sessie,serie); 
    $('seriebutton_'+serie+'_on').hide();
    $('seriebutton_'+serie+'_off').show();
  }
  else
  { 
    reactie = confirm("Let op! U gaat deze serie uit uw bestelling verwijderen. Weet u het zeker?");
    if (reactie  !=0)
    {
      unselectSerie('unselect',sessie,serie); 
      $('seriebutton_'+serie+'_on').show();
      $('seriebutton_'+serie+'_off').hide();
    }
    else
    {
      $('seriebutton_'+serie+'_on').hide();
      $('seriebutton_'+serie+'_off').show();
    }
  }
  
  //alarmbel();
}
*/

function selectSerie(action,sessie,serie)
{
  tmpUrl = 'actSerie.cfm?action='+action+'&sessie='+sessie+'&serie='+serie;
  req = new Ajax.Request(
  tmpUrl,
  {
    method: "post",
    parameters: tmpUrl,
    asynchronous: "true",
    onComplete: toonavail
  }
  );

  //checkAvailSeries(sessie,serie);
}

function unselectSerie(action,sessie,serie)
{
  tmpUrl = 'actSerie.cfm?action='+action+'&sessie='+sessie+'&serie='+serie;
  req = new Ajax.Request(
  tmpUrl,
  {
    method: "post",
    parameters: tmpUrl,
    asynchronous: "true",
    onComplete: toonavail
  }
  );

  if ( $('checkbox_'+serie) != null )
  { $('checkbox_'+serie).checked = false; }

  //if ( $('vstkeuze_'+serie) != null )
  //{ Effect.BlindUp('vstkeuze_'+serie,{duration: 0.4}); }

  //checkAvailSeries();
  //checkAvailSeries(sessie,serie);

  // werk de winkelmand bij
  idSubmitionTimer = setTimeout('showBasketShort(\''+sessie+'\');',500);
}

function verwijderFilmSerie(sessie,serie)
{
  tmpUrl = 'actFilmSerie.cfm?sessie='+sessie+'&serie='+serie;
  req = new Ajax.Request(
  tmpUrl,
  {
    method: "post",
    parameters: tmpUrl,
    asynchronous: "true",
    onComplete: document.location.href='index.cfm?page=overzicht'
  }
  );

  //if ( $('checkbox_'+serie) != null )
  //{ $('checkbox_'+serie).checked = false; }

  //if ( $('vstkeuze_'+serie) != null )
  //{ Effect.BlindUp('vstkeuze_'+serie,{duration: 0.4}); }

  //checkAvailSeries();
  //checkAvailSeries(sessie,serie);

  // werk de winkelmand bij
  //idSubmitionTimer = setTimeout('showBasketShort(\''+sessie+'\');',500);
}

function checkAvailSeries(sessie,serie)
{

  tmpUrl = 'actSerie.cfm?action=avail&sessie='+sessie+'&serie='+serie;
  req = new Ajax.Request(
  tmpUrl,
  {
    method: "post",
    parameters: tmpUrl,
    asynchronous: "true",
    onComplete: toonavail
  }
  );
}


function actSerie(action,sessie,serie,type,rang,elementid)
{
  //var rang = 0;
  var aantal = 0;
  //showLoader();
	//alert(action);		
	//plaatsid = Form.getInputs(formname, "checkbox", "plaatsid").findAll(function(item) {return item.checked; }).pluck("value");
  if (action == 'selectrang')
  { var rang = $F(elementid); }
  if (action == 'selectaantalkeuze')
  { var aantal = $F(elementid); }
  if (action == 'selectaantalvast')
  { var aantal = $F(elementid); }
  //alert(action);
  tmpUrl = 'actSerie.cfm?action='+action+'&sessie='+sessie+'&serie='+serie+'&rang='+rang+'&aantal='+aantal;
  //alert(tmpUrl);
  req = new Ajax.Request(
  tmpUrl,
  {
    method: "post",
    parameters: tmpUrl,
    asynchronous: "true",
    onComplete: toonavail
  }
  );

  // aantal geselecteerd? klap voorstellingen div open
  //if (action == 'selectaantalkeuze')
  //{
  //  expandSerie(elementid);
  //}
  // check beschikbaarheid overige series
  //checkAvailSeries(sessie,serie);

  // werk de winkelmand bij
  idSubmitionTimer = setTimeout('showBasketShort(\''+sessie+'\');',500);
} 

function checkgeldig(sessie,serie)
{
  tmpUrl = 'actVst.cfm?action=geldig&sessie='+sessie+'&serie='+serie;
  req = new Ajax.Request(
  tmpUrl,
  {
    method: "post",
    parameters: tmpUrl,
    asynchronous: "true",
    onComplete: toonavail
  }
  );
}  

function showBasketShort(sessie)
{
  tmpUrl = 'actOrder.cfm?action=short&sessie='+sessie;
  req = new Ajax.Request(
  tmpUrl,
  {
    method: "post",
    parameters: tmpUrl,
    asynchronous: "true",
    onComplete: toonavail
  }
  );
}  

function showBasketLong(sessie)
{
  tmpUrl = 'actOrder.cfm?action=long&sessie='+sessie;
  req = new Ajax.Request(
  tmpUrl,
  {
    method: "post",
    parameters: tmpUrl,
    asynchronous: "true",
    onComplete: toonavail
  }
  );
}  


function chooseVst(sessie,serie,voorstelling,rang,aantal)
{

  tmpUrl = 'actVst.cfm?action=choose&sessie='+sessie+'&serie='+serie+'&vst='+voorstelling+'&rang='+rang+'&aantal='+aantal;
  req = new Ajax.Request(
  tmpUrl,
  {
    method: "post",
    parameters: tmpUrl,
    asynchronous: "true",
    onComplete: toonavail
  }
  );

  // werk de winkelmand bij
  idSubmitionTimer = setTimeout('showBasketShort(\''+sessie+'\');',500);

}  

function removeVst(sessie,serie,voorstelling,rang,aantal)
{
  tmpUrl = 'actVst.cfm?action=remove&sessie='+sessie+'&serie='+serie+'&vst='+voorstelling+'&rang='+rang+'&aantal='+aantal;
  req = new Ajax.Request(
  tmpUrl,
  {
    method: "post",
    parameters: tmpUrl,
    asynchronous: "true",
    onComplete: toonavail
  }
  );

  // werk de winkelmand bij
  idSubmitionTimer = setTimeout('showBasketShort(\''+sessie+'\');',500);
}  

function actVst(action,sessie,serieid,serietype,vstid,rangid)
{
  //showLoader();
	//alert(action);		
	//plaatsid = Form.getInputs(formname, "checkbox", "plaatsid").findAll(function(item) {return item.checked; }).pluck("value"); 
  tmpUrl = 'actVst.cfm?action='+action+'&sessie='+sessie+'&serie='+serieid+'&type='+serietype+'&rang='+rangid;
  req = new Ajax.Request(
  tmpUrl,
  {
    method: "post",
    parameters: tmpUrl,
    asynchronous: "true",
    onComplete: toonavail
  }
  );

  // werk de winkelmand bij
  idSubmitionTimer = setTimeout('showBasketShort(\''+sessie+'\');',500);
}


function openDiv(sessie,serie,div,thisdiv)
{
  tmpContent = "<a href=\"javascript:closeDiv('"+sessie+"','"+serie+"','"+div+"','"+thisdiv+"');\">Sluit</a>";
  $(thisdiv).update(tmpContent);
  $(div).show();

  // werk de winkelmand bij
  idSubmitionTimer = setTimeout('showBasketShort(\''+sessie+'\');',500);
}

function closeDiv(sessie,serie,div,thisdiv)
{
  tmpContent = "<a href=\"javascript:openDiv('"+sessie+"','"+serie+"','"+div+"','"+thisdiv+"');\">Open</a>";
  $(thisdiv).update(tmpContent);
  $(div).hide();

  // werk de winkelmand bij
  idSubmitionTimer = setTimeout('showBasketShort(\''+sessie+'\');',500);
}


function klapuit(id) {
  //$('inhoud_'+id).setAttribute("class", "beschrijving_lang");
  $('inhoud_'+id).removeClassName("beschrijving");
  $('inhoud_'+id).addClassName("beschrijving_lang");
  //$('klap_'+id).setAttribute("class", "minderinfo");
  $('klap_'+id).removeClassName("meerinfo");
  $('klap_'+id).addClassName("minderinfo");
  $('klap_'+id).setAttribute("href", "javascript:klapin('"+id+"');");
  Effect.BlindDown('inhoud_'+id,{duration: 0.4});
  //$('inhoud_'+id).show();
}

function klapin(id) {
  //$('inhoud_'+id).setAttribute("class", "beschrijving");
  $('inhoud_'+id).removeClassName("beschrijving_lang");
  $('inhoud_'+id).addClassName("beschrijving");
  //$('klap_'+id).setAttribute("class", "meerinfo");
  $('klap_'+id).removeClassName("minderinfo");
  $('klap_'+id).addClassName("meerinfo");
  $('klap_'+id).setAttribute("href", "javascript:klapuit('"+id+"');");
  $('inhoud_'+id).show();
  //Effect.BlindUp('inhoud_'+id,{duration: 0.4});
}

/* uitklap bij keuzeserie gids 2 */
function meerInfo(id) {
  $('longview_'+id).show();
  $('code_'+id).setAttribute("href", "javascript:closeLongview('code_','"+id+"');");
  $('titel_'+id).setAttribute("href", "javascript:closeLongview('titel_','"+id+"');");
  $('klap_'+id).removeClassName("bekijkbestell");
  $('klap_'+id).addClassName("minderinfo");
  $('klap_'+id).setAttribute("href", "javascript:minderInfo('"+id+"');");
}

function minderInfo(id) {
  $('longview_'+id).hide();
  //alert(id);
  $('code_'+id).setAttribute("href", "javascript:openLongview('code_','"+id+"');");
  $('titel_'+id).setAttribute("href", "javascript:openLongview('titel_','"+id+"');");
  $('klap_'+id).removeClassName("minderinfo");
  $('klap_'+id).addClassName("bekijkbestell");
  $('klap_'+id).setAttribute("href", "javascript:meerInfo('"+id+"');");
}

/* uitklap/inklap bij keuzeserie gids 2 via code of titel */
function openLongview(element,id) {
  $('longview_'+id).show();
  $(element+id).setAttribute("href", "javascript:closeLongview('"+element+"','"+id+"');");
  $('klap_'+id).removeClassName("bekijkbestell");
  $('klap_'+id).addClassName("minderinfo");
  $('klap_'+id).setAttribute("href", "javascript:minderInfo('"+id+"');");
}

function closeLongview(element,id) {
  $('longview_'+id).hide();
  $(element+id).setAttribute("href", "javascript:openLongview('"+element+"','"+id+"');");
  $('klap_'+id).removeClassName("minderinfo");
  $('klap_'+id).addClassName("bekijkbestell");
  $('klap_'+id).setAttribute("href", "javascript:meerInfo('"+id+"');");
}

/* uitklap bij films gids 2 */
function meerFilms(id) {
  $('films_'+id).show();
  $('klap_'+id).setAttribute("href", "javascript:minderFilms('"+id+"');");
  $('klap_'+id).update("Verberg films &raquo;");
}

function minderFilms(id) {
  $('films_'+id).hide();
  //alert(id);
  $('klap_'+id).setAttribute("href", "javascript:meerFilms('"+id+"');");
  $('klap_'+id).update("Bekijk films &raquo;");
}

/* uitklap bij keuze van ... gids 2 */
function meerVst(id) {
  $('films_'+id).show();
  $('klap_'+id).setAttribute("href", "javascript:minderVst('"+id+"');");
  $('klap_'+id).update("Verberg voorstellingen &raquo;");
}

function minderVst(id) {
  $('films_'+id).hide();
  //alert(id);
  $('klap_'+id).setAttribute("href", "javascript:meerVst('"+id+"');");
  $('klap_'+id).update("Bekijk voorstellingen &raquo;");
}

function expandSerie(id) {
	if (!$(id).visible()) {
		Effect.BlindDown(id,{duration: 0.4});
    // doe iets met de tekst in de div
    if (id.startsWith('vstkeuze'))
    {
      var item = id.sub('vstkeuze_','');
      var opendiv = 'expand_'+item;
      $(opendiv).update("Sluit voorstellingen &raquo;");
      $(opendiv).show();
    }
    if (id.startsWith('vstvast'))
    {
      var item = id.sub('vstvast_','');
      var opendiv = 'expand_'+item;
      $(opendiv).update("Sluit serie &raquo;");
      $(opendiv).show();
    }
    if (id.startsWith('vstoverzicht'))
    {
      var item = id.sub('vstoverzicht_','');
      var opendiv = 'expand_'+item;
      $(opendiv).update("Verberg uw keuze &raquo;");
      $(opendiv).show();
    }
	} else {
		Effect.BlindUp(id,{duration: 0.4});
    // doe iets met de tekst in de div
    if (id.startsWith('vstkeuze'))
    {
      var item = id.sub('vstkeuze_','');
      var opendiv = 'expand_'+item;
      $(opendiv).update("Kies voorstellingen &raquo;");
      $(opendiv).show();
    }
    if (id.startsWith('vstvast'))
    {
      var item = id.sub('vstvast_','');
      var opendiv = 'expand_'+item;
      $(opendiv).update("Open serie &raquo;");
      $(opendiv).show();
    }
    if (id.startsWith('vstoverzicht'))
    {
      var item = id.sub('vstoverzicht_','');
      var opendiv = 'expand_'+item;
      $(opendiv).update("Bekijk uw keuze &raquo;");
      $(opendiv).show();
    }
	}
  //alert(opendiv);
  //$(opendiv).show();
 }
  
function wijzigSerie(id,type,g)
{
  // ga naar de pagina van de serie (keuze of vast)
  location.href = 'index.cfm?page='+type+'&id='+id+'&g='+g;  
/*
  if (type == 'gids1')
  {
    location.href = 'index.cfm?page='+type+'&wijzig='+id;  
  } 
  if (type == 'keuze')
  {
    location.href = 'index.cfm?page=keuze&wijzig='+id;  
  } 
  if (type == 'vast')
  {
    location.href = 'index.cfm?page=vast&wijzig='+id;  
  } 
  if (type == 'gids2')
  {
    location.href = 'index.cfm?page=gids2&wijzig='+id;  
  } 
*/  
}

function alarmbel()
{
  wacht = setTimeout('alert(\'U heeft nog maximaal vijf minuten om uw bestelling af te ronden!\')',900000);
}


function printBestelling() {
  $('nav-uitgids').hide();
  $('header_print').show();

	var obj = $('bevestigbestelling').getElementsByClassName('voorstellingen');
	for(i=0;i<obj.length;i++) {
  	$(obj[i].id).setStyle({'display':'block'});
 	}
	print();
	return false;
}

function toonavail(transport) {

  tmpObjectList = decodeJSON(transport.responseText);
  tmpContent = "";
  //alert("toonavail");

  // x is divid0
  //var tem = tmpObjectList.size();
  //alert(tem);
  for (x in tmpObjectList)
  {
    //alert(x + ' | ' + tmpObjectList[x]['html']); 
    //alert(x + ' | ' + tmpObjectList[x]['class']); 
    //alert(x + ' | ' + tmpObjectList[x]['display']); 
    //alert(x + ' | ' + tmpObjectList[x]['enable']); 
    tmpContent = "";
    //tmpContent = tmpObjectList[x]['HTML'];
    //alert(tmpObjectList[x]['display']);
    // haal de gegevens voor deze div op uit de array
    //$(x).update(tmpContent);
    if (tmpObjectList[x]['html'])
    { 
      $(x).update(tmpObjectList[x]['html']); 
    }

    //$(x).show();
    if (tmpObjectList[x]['class'])
    { 
      //alert(tmpObjectList[x]['class']);
      if (tmpObjectList[x]['class'] == '') {
        $(x).removeClassName(tmpObjectList[x]['class']); 
      } else {
        $(x).addClassName(tmpObjectList[x]['class']); 
      }    
    }

    if (tmpObjectList[x]['display'] == "block")
    { $(x).show(); }
    if (tmpObjectList[x]['display'] == "none")
    { $(x).hide(); }

    if (tmpObjectList[x]['enable'])
    { 
     if (tmpObjectList[x]['enable'] == "enable")
      { 
      	$(x).enable(); 
      } else {
      	$(x).disable(); 
      }
    } 
      
    if (tmpObjectList[x]['select'])
    { 
      if (tmpObjecList[x]['select'] == 'selected')
      { $(x).enable(); }
      if (tmpObjecList[x]['select'] == 'checked')
      { $(x).disable(); }
    }
    //alert(x);

  }
  //$('data').update(tmpContent);
  //$('data').show();
}
