var priceCorrection=false;
var priceUpsellCorr=false;
var theater;
var voorstelling;
var viavia;

function showLightBox(caption,myUrl,modal,width,height){
var url = myUrl;
url += ((myUrl.indexOf("?")>=0)?"&":"?");
url += "KeepThis=true&TB_iframe=true";
if (width != -1) url += "&width=" + width;
if (height != -1) url += "&height="+height;
if (modal) url += "&modal=true";
tb_show( caption, url);
}

function sendpwd(thNm,thId){
	var eml=trim(document.getElementById('email').value);
	var gen=trim(document.getElementById('genpwd').value);
	if (eml=="")
		alert("Het email-adres is niet ingevuld.");
	else
	{
		window.location = "/"+thNm + "/wachtwoord.php?theater="+thId+"&eml="+eml+"&gen="+gen;
	}
}

function taf_refresh(){
	var via;
	var tht= document.getElementById('theater');
	var vId= document.getElementById('vrstId');
	var gnr= document.getElementById('genre');
	var mnd= document.getElementById('maand');
	var ass= document.getElementById('associatie');
	if (gnr != null)
		via = "genre="+gnr.value;
	else if (mnd != null)
		via = "maand="+mnd.value;
	else if (ass != null)
		via = "associatie="+ass.value;
	else
		via = "snel=1";
	prepCrossSel(via,vId.value,tht.value);
}

function prepCrossSel(viaId,vrstId,thId){
	viavia=viaId;
	theater=thId;
	voorstelling=vrstId;
	// give lightbox some time to close...
	setTimeout(crossSel,300);
}
function crossSel(){
	window.location = "/cgi-bin/website.cgi?tp=foto&theater="+theater + "&vrstId="+voorstelling+"&"+viavia;
}

function roundNumber(rnum,rlength) {
  // Arguments: number to round, number of decimal places
  var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
  return newnumber;
}

function recalcAdmK(nm,formId,field,newVal) {
  var fld = document.getElementById( nm);
  var som = new Number(fld.value);
  document.getElementById("admin_kosten").value=som.toFixed(2);
  som += parseFloat(document.getElementById("reserv").value);
  som += parseFloat(document.getElementById("totaal_voorstellingen").value);
  som += parseFloat(document.getElementById("tot_art").value);
  document.getElementById("total").value=som.toFixed(2);
  document.forms[formId].elements[field].value = newVal;
}

function getCookieEmail() {
	var eml=Get_Cookie('kvs_email');
	if (eml != null){
		document.getElementById('email').value=eml;
		document.getElementById('cook_email').checked=true;
	}
}

function trim(str) {
return ltrim(rtrim(str, " "), " ");
}
function ltrim(str, chars) {
chars = chars || "\\s";
return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
function rtrim(str, chars) {
chars = chars || "\\s";
return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
function loginSubmit() {
	var chkb = document.getElementById('cook_email');
	if (chkb.checked)
		Set_Cookie( 'kvs_email', document.getElementById('email').value, 60*24*100, '', '', '');
	else
		Delete_Cookie( 'kvs_email', '', '');
	if (trim(document.getElementById('email').value)=="" && trim(document.getElementById('gastnr').value)=="")
		alert("Vul het email-adres of uw gastnummer in.");
	else
		document.forms['inloggen'].submit();
}
function passArgs(val) {
	var chkb = document.getElementById('cook_email');
	if (chkb.checked)
		Set_Cookie( 'kvs_email', document.getElementById('email').value, 60*24*100, '', '', '');
	else
		Delete_Cookie( 'kvs_email', '', '');
	if (val != "4" && trim(document.getElementById('email').value)=="")
		alert("Het email-adres is niet ingevuld.");
	else
	{
		document.getElementById('nieuwe_gast').value=val;
		document.forms['inloggen'].submit();
	}
}
function nieuweGastSubmit(val) {
	if (val >= 0)
	{
		if (trim(document.getElementById('email').value)=="")
		{
			alert("Het email-adres is niet ingevuld.");
			return false;
		}
		else if (trim(document.getElementById('naam').value)=="")
		{
			alert("De achternaam is niet ingevuld.");
			return false;
		}
		else if (trim(document.getElementById('postcode').value)=="")
		{
			alert("De postcode is niet ingevuld.");
			return false;
		}
		else if (trim(document.getElementById('huisnr').value)=="")
		{
			alert("Het huisnr is niet ingevuld.");
			return false;
		}
	}
	document.getElementById('nieuwe_gast').value=val;
	document.forms['newguest'].submit();
}

function PassAndSubmit(formId) {
	passElements(formId);
	document.forms[formId].submit();
}

function radioPlacering(val,formId,field) {
	var el = document.getElementById("aantal");
	document.forms[formId].elements[field].value = val;
	
	if (val=="1")
	{
		// disable aantal
		el.value='';
		el.disabled=true;
	}
	else
	{
		// enable aantal
		el.value='1';
		el.disabled=false;
	}
}

function PassAndSubmitFinished(){
	var formId='placering_form';
	document.forms[formId].elements["pickaseat"].value=2;
	PassAndSubmit(formId);
}	
function finishedPlaceren(){
	// give lightbox some time to close...
	setTimeout(PassAndSubmitFinished,500);
}

function radioWachtrij(val,formId,field) {
	var el = document.getElementById("nWait");
	document.forms[formId].elements[field].value = val;
	if (val=="1")
	{
		// disable aantal
		el.value='';
		el.disabled=true;
	}
	else
	{
		// enable aantal
		el.value='1';
		el.disabled=false;
	}
}

function adjust_qty(id,incr,minim){
   var qty_el = document.getElementById(id);
   var qty = parseInt(qty_el.value);
   if( !isNaN(qty) && (qty>0 || incr>0) && (qty+incr>=minim)) qty+=incr;	
   qty_el.value = qty;
}

function limitinput(evt,strList,bAllow)
/*Limits the input to strList. If bAllow is true, then
only allow what is in strList. If bAllow is false,
then do not allow what is in strList.*/
{
	var charCode = evt.keyCode;
	if (charCode==0) charCode = evt.which;
	var strChar = String.fromCharCode(charCode);
	/*controlArray holds the ASCII codes for valid control commands (BS, CR, LF, etc)*/
	var controlArray = Array(0,8,9,10,13,27);
	var intOut = 0;

	if (bAllow==true)
		return (charCode==8 || charCode==9 || charCode==13 || charCode==37 || charCode==39 || charCode==46 || (strList.indexOf(strChar)!=-1));
	else
		return (charCode==8 || charCode==9 || charCode==13 || charCode==37 || charCode==39 || charCode==46 || (strList.indexOf(strChar)==-1));
}

function adjprqty(prcd,incr,rest){
	if (priceCorrection){priceCorrection=false;return;}
	var tot  = document.getElementById("totaal_voorstellingen");
	var totp = new Number(tot.value);
	var totk = document.getElementById("totMetKorting");
	var btMk = new Number(totk.value);
	var rel  = document.getElementById(rest);
	var krel = parseInt(document.getElementById(rest+"_grk").value);
	var rqty = parseInt(rel.value);
	var el   = document.getElementById(prcd);
	var lel  = document.getElementById(prcd+"_last");
	var mel  = document.getElementById(prcd+"_max");
	var kel  = parseInt(document.getElementById(prcd+"_grk").value);
	var qty  = parseInt(el.value);
	var mqty = parseInt(mel.value);
	var d_grkrt= 0;
	
	if (isNaN(qty) || isNaN(mqty)) return;
	if (incr > 0)
	{
		if (mqty >= 0 && qty+incr > mqty)
		{
			alert("Maximum aantal plaatsen ("+mqty+") bereikt voor deze prijscode!");
			return;
		}
		else if (rqty < incr)
		{
			alert("Er zijn niet genoeg restant-plaatsen over!");
			return;
		}
		else
			qty += incr;
	}
	else if (incr < 0)
	{
		if (qty < (-1*incr)) return; // aantal te klein om verder te verlagen
		qty += incr;
    }     	
	el.value = qty;
	lel.value = qty;
	el = document.getElementById(prcd+"_pr");
	var pr = new Number(el.value);
	if( !isNaN(pr)) {
		if (kel==1){
			btMk += (incr*pr);
			d_grkrt += incr;
		}
		totp += incr*pr;
		pr *= qty;
		el = document.getElementById(prcd+"_tot");
		el.value = pr.toFixed(2);
	}
	
	// wijs incr toe aan restpost
	rqty -= incr;
	rel.value = rqty;
	rel = document.getElementById(rest+"_pr");
	pr = parseFloat(rel.value);
	if( !isNaN(pr)) {
		if (krel==1){
			btMk -= (incr*pr);
			d_grkrt -= incr;
		}
		totp -= incr*pr;	
		pr *= rqty;
		rel = document.getElementById(rest+"_tot");
		rel.value = pr.toFixed(2);
	}
	tot.value  = totp;
	totk.value = btMk;

	if (d_grkrt != 0)
	{
		el = document.getElementById("nSeatsNoKorting");
		if (el != null)
		{
			// check groepskorting:
			var i=0, a=0, n = parseInt(el.value) + d_grkrt;
			el.value = n;
			do
			{
				el=document.getElementById("grka_"+i);
				if (el != null)
				{
					a = parseInt(el.value);
					if (a > n) i++;
				}
			} while (el != null && a > n);
			var grk=document.getElementById("groepskorting");
			if (el != null && a <= n)
			{
				// groepskorting!
				el=document.getElementById("grkp_"+i);
				var perc = new Number(el.value);
				perc *= btMk;
				if (grk != null) grk.value = perc.toFixed(2);
				totp -= perc;
			} 
			else
			{
				var perc = new Number(0);
				if (grk != null) grk.value = perc.toFixed(2);
			}
		}
	}
	document.getElementById("total").value=totp.toFixed(2);
}

function adj_ups_pr_qty(prcd,incr){
	if (priceUpsellCorr){priceUpsellCorr=false;return;}
	var tot  = document.getElementById("totaal_voorstellingen");
	var totp = new Number(tot.value);
	var el   = document.getElementById(prcd);
	var lel  = document.getElementById(prcd+"_last");
	var mel  = document.getElementById(prcd+"_max");
	var qty  = parseInt(el.value);
	var mqty = parseInt(mel.value);
	
	if (isNaN(qty) || isNaN(mqty)) return;
	if (incr > 0)
	{
		if (mqty >= 0 && qty+incr > mqty)
		{
			alert("U kunt niet meer dan "+mqty+" plaatsen reserveren!");
			return;
		}
		else
			qty += incr;
	}
	else if (incr < 0)
	{
		if (qty < (-1*incr)) return; // aantal te klein om verder te verlagen
		qty += incr;
    }     	
	el.value = qty;
	lel.value = qty;
	el = document.getElementById(prcd+"_pr");
	var pr = new Number(el.value);
	if( !isNaN(pr)) {
		totp += incr*pr;
		pr *= qty;
		el = document.getElementById(prcd+"_tot");
		el.value = pr.toFixed(2);
	}
	tot.value  = totp;
	document.getElementById("total").value=totp.toFixed(2);
}

function adjprart(art,incr){
	if (priceCorrection){priceCorrection=false;return;}
	var el   = document.getElementById(art);
	var lel  = document.getElementById(art+"_last");
	var qty  = parseInt(el.value);
	if (isNaN(qty)) return;
	if (incr < 0)
	{
		if (qty < (-1*incr)) return; // aantal te klein om verder te verlagen
	}     	
	var totp = new Number(document.getElementById("total").value);
	var totA = parseFloat(document.getElementById("tot_art").value);
	totp     -= totA;
	qty += incr;
    el.value = qty;
	el = document.getElementById(art+"_pr");
	var pr = new Number(el.value);
	if( !isNaN(pr)) {
		totA += incr*pr;
		pr *= qty;
		el = document.getElementById(art+"_tot");
		el.value = pr.toFixed(2);
	}
	document.getElementById("tot_art").value=totA;
	totp += totA;
	document.getElementById("total").value=totp.toFixed(2);
	// reset lqty
	lel.value = qty;
}

function corrPrice(prcd,rest){
	priceCorrection=true;
	var tot  = document.getElementById("totaal_voorstellingen");
	var totp = new Number(tot.value);
	var totk = document.getElementById("totMetKorting");
	var btMk = new Number(totk.value);
	var rel  = document.getElementById(rest);
	var krel = parseInt(document.getElementById(rest+"_grk").value);
	var rqty = parseInt(rel.value);
	var el   = document.getElementById(prcd);
	var mel  = document.getElementById(prcd+"_max");
	var kel  = parseInt(document.getElementById(prcd+"_grk").value);
	var mqty = parseInt(mel.value);
	var lel  = document.getElementById(prcd+"_last");
	var lqty = parseInt(lel.value);
	var qty  = parseInt(el.value);
	var d_grkrt= 0;

	if (isNaN(qty) || isNaN(mqty) || isNaN(lqty)) return;

	var incr = qty - lqty;
	if (incr > 0)
	{
		if (mqty >= 0 && qty > mqty)
		{
			alert("Maximum aantal plaatsen bereikt voor deze prijscode!");
			qty = lqty;
			el.value = qty;
			return;
		}
		else if (rqty < incr)
		{
			alert("U kunt niet meer plaatsen boeken!");
			qty = lqty;
			el.value = qty;
			return;
		}
	}
	else if (incr < 0)
	{
		if (qty < 0)
		{
			alert("U mag geen getal kleiner dan 0 invoeren!");
			el.value = lqty;
			return; // aantal te klein om verder te verlagen
		}
	}     	
	// reset lqty
	lel.value = qty;
	el = document.getElementById(prcd+"_pr");
	var pr = new Number(el.value);
	if( !isNaN(pr)) {
		if (kel==1){
			btMk += (incr*pr);
			d_grkrt += incr;
		}
		totp += incr*pr;
		pr *= qty;
		el = document.getElementById(prcd+"_tot");
		el.value = pr.toFixed(2);
	}

	// wijs incr toe aan restpost
	rqty -= incr;
	rel.value = rqty;
	rel = document.getElementById(rest+"_pr");
	pr = parseFloat(rel.value);
	if( !isNaN(pr)) {
		if (krel==1){
			btMk -= (incr*pr);
			d_grkrt -= incr;
		}
		totp -= incr*pr;	
		pr *= rqty;
		rel = document.getElementById(rest+"_tot");
		rel.value = pr.toFixed(2);
	}
	tot.value = totp;
	totk.value = btMk;
	
	if (d_grkrt != 0)
	{
		el = document.getElementById("nSeatsNoKorting");
		if (el != null)
		{
			// check groepskorting:
			var i=0, a=0, n = parseInt(el.value) + d_grkrt;
			el.value = n;
			do
			{
				el=document.getElementById("grka_"+i);
				if (el != null)
				{
					a = parseInt(el.value);
					if (a > n) i++;
				}
			} while (el != null && a > n);
			if (el != null && a <= n)
			{
				// groepskorting!
				el=document.getElementById("grkp_"+i);
				var perc = new Number(el.value);
				perc *= btMk;
				document.getElementById("groepskorting").value = perc.toFixed(2);
				totp -= perc;
			} 
			else
			{
				var perc = new Number(0);
				document.getElementById("groepskorting").value = perc.toFixed(2);
			}
		}
	}
	document.getElementById('total').value=totp.toFixed(2);
	return true;
}

function corrUpsellPrice(prcd){
	priceUpsellCorr=true;
	var tot  = document.getElementById("totaal_voorstellingen");
	var totp = new Number(tot.value);
	var el   = document.getElementById(prcd);
	var mel  = document.getElementById(prcd+"_max");
	var mqty = parseInt(mel.value);
	var lel  = document.getElementById(prcd+"_last");
	var lqty = parseInt(lel.value);
	var qty  = parseInt(el.value);

	if (isNaN(qty) || isNaN(mqty) || isNaN(lqty)) return;

	var incr = qty - lqty;
	if (incr > 0)
	{
		if (mqty >= 0 && qty > mqty)
		{
			alert("Maximum aantal plaatsen bereikt voor deze prijscode!");
			qty = lqty;
			el.value = qty;
			return;
		}
	}
	else if (incr < 0)
	{
		if (qty < 0)
		{
			alert("U mag geen getal kleiner dan 0 invoeren!");
			el.value = lqty;
			return; // aantal te klein om verder te verlagen
		}
	}     	
	// reset lqty
	lel.value = qty;
	el = document.getElementById(prcd+"_pr");
	var pr = new Number(el.value);
	if( !isNaN(pr)) {
		totp += incr*pr;
		pr *= qty;
		el = document.getElementById(prcd+"_tot");
		el.value = pr.toFixed(2);
	}

	tot.value = totp;
	document.getElementById('total').value=totp.toFixed(2);
	return true;
}

function corrArtPrice(art){
	priceCorrection=true;
	var totp = new Number(document.getElementById('tot_art').value);
	var el   = document.getElementById(art);
	var qty  = parseInt(el.value);
	var lel  = document.getElementById(art+"_last");
	var lqty = parseInt(lel.value);
	if (isNaN(qty) || isNaN(lqty)) return;

	var incr = qty - lqty;
	if (qty < 0)
	{
		alert("U mag geen getal kleiner dan 0 invoeren!");
		el.value = lqty;
		return; // aantal te klein om verder te verlagen
	}
	// reset lqty
	lel.value = qty;
	el = document.getElementById(art+"_pr");
	var pr = new Number(el.value);
	if( !isNaN(pr)) {
		totp += incr*pr;
		pr *= qty;
		el = document.getElementById(art+"_tot");
		el.value = pr.toFixed(2);
	}

	document.getElementById('tot_art').value=totp;
	totp += parseFloat(document.getElementById('totaal_voorstellingen').value);
	totp += parseFloat(document.getElementById('reserv').value);
	el = document.getElementById("admin_kosten");
	pr = parseFloat(el.value);
	if(!isNaN(pr)) totp += pr;
	document.getElementById('total').value=totp.toFixed(2);
	return true;
}

function bestellen(vrstId){
	var fr;
	document.getElementById("table_voorst").style.visibility="hidden";
	fr=document.getElementById("bestelframe");
	fr.style.visibility="visible";
	document.getElementById('subframe').src = "/cgi-bin/webshop.cgi?theater=1&voorstelling="+vrstId;
}

function bestellingAfbreken(formId){
	var cnl = document.forms[formId].elements["cancellen"]; 
	if (confirm("Wilt u alle voorstellingen cancellen?"))
	{
		Delete_Cookie( "bestel_nr", '', '');
		cnl.value="-1";
		document.forms[formId].submit();
	} 
	else
		cnl.value="0";
}

function bestellingAnnuleren(formId){
	var cnl = document.forms[formId].elements["cancellen"]; 
	if (confirm("Deze voorstelling annuleren?"))
	{
		cnl.value="-2";
		document.forms[formId].submit();
	} 
	else
		cnl.value="0";
}

function placeringAnnuleren(formId){
	var cnl = document.forms[formId].elements["checken"]; 
	cnl.value="0";
	cnl = document.forms[formId].elements["cancellen"]; 
	cnl.value="-3";
	cnl = document.forms[formId].elements["pickaseat"]; 
	cnl.value="";
	document.forms[formId].submit();
}

function removeRes(formId,resId){
	var cnl = document.forms[formId].elements["cancellen"]; 
	if (confirm("Deze voorstelling verwijderen uit uw bestelling?"))
	{
		cnl.value=resId;
		passElements(formId);
		document.forms[formId].submit();
	} 
	else
		cnl.value="0";
}

function verderWinkelen(formId){
	var cnl = document.forms[formId].elements["bestelling"]; 
	Set_Cookie( "bestel_nr", cnl.value, 30, '', '', '');
	cnl = document.forms[formId].elements["verder"];
	cnl.value="1";
	passElements(formId);
	document.forms[formId].submit();
}

function vervolgWinkelen(formId,vrstId){
	var cnl = document.forms[formId].elements["bestelling"]; 
	Set_Cookie( "bestel_nr", cnl.value, 30, '', '', '');
	cnl = document.forms[formId].elements["verder"];
	cnl.value="1";
	cnl = document.forms[formId].elements["vervolg"];
	cnl.value=vrstId;
	passElements(formId);
	document.forms[formId].submit();
}

function jumpVervolg(formId,vrstId){
	cnl = document.forms[formId].elements["vervolg"];
	cnl.value=vrstId;
	document.forms[formId].submit();
}

function toBetalen(formId){
	var cnl = document.forms[formId].elements["verder"];
	cnl.value="2";
	passElements(formId);
	document.forms[formId].submit();
}

function passElements(formId){
	var el, docForm = document.forms[formId];
	for( var i=0; i< docForm.elements.length; i++){
		el = docForm.elements[i].name;
		id = document.getElementById(el);
		if (id != null){
			docForm.elements[i].value = id.value;
		}
   }
}

function tell_a_friend(formId){
  var email_to = document.getElementById("email_to");
  var naam_to = document.getElementById("naam_to");
  var email_from = document.getElementById("email_from");
  var naam_from = document.getElementById("naam_from");
  var bericht = document.getElementById("bericht");
  var thNm = document.getElementById("thName");
  
  
  if (naam_to == null || naam_to.value == "" )
  {
	alert( "Naam ontvanger niet ingevuld.");
	return;
  }
  if (email_to == null || email_to.value == "" )
  {
	alert( "E-mail ontvanger niet ingevuld.");
	return;
  }
  if (naam_from == null || naam_from.value == "" )
  {
	alert( "Uw naam is niet ingevuld.");
	return;
  }
  if (email_from == null || email_from.value == "" )
  {
	alert( "Uw e-mail is niet ingevuld.");
	return;
  }
  if (bericht == null || bericht.value == "" )
  {
	alert( "Geen bericht ingevuld.");
	return;
  }
  var myUrl = "/"+thNm.value + "/taf.php?from_eml="+email_from.value+"&to_eml="+email_to.value+"&from="+naam_from.value+"&to="+naam_to.value+"&mess="+bericht.value;
  showLightBox("Uw bericht", myUrl, true, 600, 400);
}

function bestel(voorst){
	showLightBox("Uw bestelling","/cgi-bin/bestellen.cgi?vrstId="+voorst,true, 950, 550);
}

function transaction(trans){
	showLightBox("Uw bestelling","/cgi-bin/bestellen.cgi?transaction_id="+trans,true, 950, 550);
}

function info(voorst){
	showLightBox("Uw voorstelling","/cgi-bin/vrst_info.cgi?vrstId="+voorst,false, 950, 550);
}

function winkelwagen(theater){
	showLightBox("Uw bestelling","/cgi-bin/bestellen.cgi?winkelwagen=1&theater="+theater,true, 950, 500);
}

function mijn_theater(theater){
	showLightBox("Mijn Theater","/cgi-bin/mijn_theater.cgi?theater="+theater,true, 950, 500);
}

function brochure_aanvraag(formId){
  var naam = document.getElementById("naam");
  var straat = document.getElementById("straat");
  var huisnr = document.getElementById("huisnr");
  var postcode = document.getElementById("postcode");
  var city = document.getElementById("city");
  var country = document.getElementById("country");
  var thNm = document.getElementById("thName");
  
  if (naam == null || naam.value == "" )
  {
	alert( "Naam is niet ingevuld.");
	return;
  }
  if (straat == null || straat.value == "" )
  {
	alert( "Straat is niet ingevuld.");
	return;
  }
  if (huisnr == null || huisnr.value == "" )
  {
	alert( "Huisnummer is niet ingevuld.");
	return;
  }
  if (postcode == null || postcode.value == "" )
  {
	alert( "Postcode is niet ingevuld.");
	return;
  }
  if (city == null || city.value == "" )
  {
	alert( "Plaatsnaam is niet ingevuld.");
	return;
  }
  var myUrl = "/"+thNm.value + "/brochure.php?naam="+naam.value+"&adres="+straat.value+"&huisnr="+huisnr.value+"&postcode="+postcode.value+"&city="+city.value+"&country="+country.value;
  showLightBox("Uw bericht", myUrl, true, 600, 400);
}

function setrating(indx){
var clss = 'rating';
if (indx==1) clss += ' onestar';
else if (indx==2) clss += ' twostar';
else if (indx==3) clss += ' threestar';
else if (indx==4) clss += ' fourstar';
else if (indx==5) clss += ' fivestar';
else clss += ' nostar';
document.getElementById('rating').className=clss;
document.forms['reaktie'].elements["rating"].value=indx;
}

