// ticketlab_reserveer.js

function ajax($url, $vars, $object){
    //alert('ajax vars:' + $vars);
    if (window.XMLHttpRequest){
	var $class = new XMLHttpRequest();
    }else{
	var $class = new ActiveXObject("MSXML2.XMLHTTP.3.0");
    }
    
    $class.open("POST", $url, true);
    $class.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    
    $class.onreadystatechange = function(){
	if ($class.readyState == 4 && $class.status == 200) {
	    if ($class.responseText){
		$obj = $class.responseText;
		$object($obj);
	    }
	}
    }
    $class.send($vars);
    //$class.send('veld1=A&veld2=B');
}

function enableReserveringen() {
    //alert('enableReserveringen');

    // uncomment om reserveringen uit te schakelen (NB wis de wodan cache)
    //return '';

    // eventid en dt wordt gezet in production_view
    // plone:production = ticketlab:event | plone:event = ticketlab:show
    try {
	dtarg = '&start=' + dt.substring(0,4) + '-' + dt.substring(5,7) + '-' + dt.substring(8,10);
    } catch (e) {
	dtarg = '';
    }
    try {
	allargs = 'c=lumiere&t=ihd89s48&q=1&o=beschikbaarheid&event='+eventid + '&after=30' + dtarg ;
	     ajax('http://www.lumiere.nl/xmlhttpbeschikbaarheid', 
	     allargs,
	     handleAjaxResponse);
    } catch (e) {
	// no eventid, do nothing
	//alert(e);
	//alert('no eventid or invalid ajax url');
    }
    //alert(allargs);
}

function handleAjaxResponse(responseText) {
//    alert('handleAjaxResponse:' + responseText);
    try {
	theobj = eval ( '(' + responseText + ')' );
	setReserveringen(theobj.beschikbaarheid);
    } catch (e) {
	// invalid response
	//alert('invalid ajax response');
    }
}

function setReserveringen(beschikbaarheid) {
    while ( beschikbaarheid.length > 0 ) {
	voorstelling = beschikbaarheid.shift();
	var uid = voorstelling.shift();
	var reserveerbaar = voorstelling.shift();
	var seats = voorstelling.shift();
	if (reserveerbaar) {
		// reserveerbaar
		var status = 0;
	} else {
	    if (seats > 0) {
		// niet reserveerbaar
		var status = 1;
	    } else {
		// uitverkocht
		var status = 2;
	    }
	}
	targetid = "reserveer_" + status + "_" + uid;
	//alert('enabling targetid:' + targetid);
	targetnode = document.getElementById(targetid);
	if ( targetnode ) {
	    targetnode.style.cssText=""; // fuckin MSIE
	    targetnode.removeAttribute('style');
	}
    }
}

//registerPloneFunction(enableReserveringen);
func = enableReserveringen;
if (window.addEventListener) window.addEventListener("load",func,false);
else if (window.attachEvent) window.attachEvent("onload",func);   

