/* 
 * Cross-browser event handling, by Scott Andrew
 */
function addEvent(element, eventType, lamdaFunction, useCapture) {
    if (element.addEventListener) {
        element.addEventListener(eventType, lamdaFunction, useCapture);
        return true;
    } else if (element.attachEvent) {
        var r = element.attachEvent('on' + eventType, lamdaFunction);
        return r;
    } else {
        return false;
    }
}

/* 
 * Kills an event's propagation and default action
 */
function knackerEvent(eventObject) {
    if (eventObject && eventObject.stopPropagation) {
        eventObject.stopPropagation();
    }
    if (window.event && window.event.cancelBubble ) {
        window.event.cancelBubble = true;
    }
    
    if (eventObject && eventObject.preventDefault) {
        eventObject.preventDefault();
    }
    if (window.event) {
        window.event.returnValue = false;
    }
}

/* 
 * Safari doesn't support canceling events in the standard way, so we must
 * hard-code a return of false for it to work.
 */
function cancelEventSafari() {
    return false;        
}

////////////////////////

addEvent(window, 'load', init, false);

function init() {
    if (!Sarissa || !document.getElementsByTagName) return;
    
    var formElements = document.getElementsByTagName('form');
    for (var i = 0; i < formElements.length; i++) {
        if (formElements[i].className.match(/\bajaxify\b/)) {
            addEvent(formElements[i], 'submit', submitForm, false);
        }
    }
}

function addFeedback(responseXML, target) {	
		
	if(responseXML.getElementsByTagName('type')[0].firstChild.data == 'tickets'){
        
        if(responseXML.getElementsByTagName('result')[0].firstChild.data != 0){
	
			document.getElementById("bevestiging").innerHTML = "De bestelling is verzonden op naam van " + responseXML.getElementsByTagName('naam')[0].firstChild.data + ". Gelieve onderstaand instructies te volgen.";	    
	  
			// Disable form inputs
			document.getElementById('naam').disabled = true;
			document.getElementById('email').disabled = true;
			document.getElementById('straat').disabled = true;
			document.getElementById('nummer').disabled = true;
			document.getElementById('gemeente').disabled = true;
			document.getElementById('postcode').disabled = true;
			document.getElementById('geboortedatum').disabled = true;
			document.getElementById('aantal').disabled = true;
			document.getElementById('verzendknop').disabled = true;
			document.getElementById('verzendknop').style.background = "#CCCCCC";
			document.getElementById('verzendknop').style.color = "#333333";
            
      }else{
        document.getElementById("bevestiging").innerHTML = "Er is iets mis gelopen. Kijk je E-mail adres na en probeer opnieuw. Als het nog steeds niet lukt, probeer dan over enkele ogenblikken opnieuw!";
      }

	}else if(responseXML.getElementsByTagName('type')[0].firstChild.data == 'contact'){
		
        if(responseXML.getElementsByTagName('result')[0].firstChild.data != 0){
        
			document.getElementById("bevestiging").innerHTML = "Bedankt voor je vraag of boodschap, " + responseXML.getElementsByTagName('naam')[0].firstChild.data + ". Wij zullen zo spoedig mogelijk trachten te antwoorden.";
			
			// Disable form inputs
			document.getElementById('naam').disabled = true;
			document.getElementById('email').disabled = true;
			document.getElementById('bericht').disabled = true;
			document.getElementById('verzendknop').disabled = true;
			document.getElementById('verzendknop').style.background = "#CCCCCC";
			document.getElementById('verzendknop').style.color = "#333333";
            
        }else{
            document.getElementById("bevestiging").innerHTML = "Er is iets mis gelopen. Kijk je E-mail adres na en probeer opnieuw. Als het nog steeds niet lukt, probeer dan over enkele ogenblikken opnieuw!";
        }
		
	}else if(responseXML.getElementsByTagName('type')[0].firstChild.data == 'bfnc'){
		
        if(responseXML.getElementsByTagName('result')[0].firstChild.data != 0){
        
			document.getElementById("bevestiging").innerHTML = "Bedankt voor uw inschrijving, " + responseXML.getElementsByTagName('naam')[0].firstChild.data + ". Wij zullen u zo spoedig mogelijk contacteren met verdere informatie.";
			
			// Disable form inputs
			document.getElementById('naam').disabled = true;
			document.getElementById('functie').disabled = true;
			document.getElementById('bedrijf').disabled = true;
			document.getElementById('adres1').disabled = true;
			document.getElementById('adres2').disabled = true;
			document.getElementById('telefoon').disabled = true;
			document.getElementById('vergezeld').disabled = true;
			document.getElementById('email').disabled = true;
			document.getElementById('opmerkingen').disabled = true;
			document.getElementById('verzendknop').disabled = true;
			document.getElementById('verzendknop').style.background = "#CCCCCC";
			document.getElementById('verzendknop').style.color = "#333333";
            
        }else{
            document.getElementById("bevestiging").innerHTML = "Er is iets mis gelopen. Kijk uw gegevens na en probeer opnieuw. Als het nog steeds niet lukt, probeer dan over enkele ogenblikken opnieuw!";
        }
		
	}else if(responseXML.getElementsByTagName('type')[0].firstChild.data == 'nieuwsbrief'){
        
        if(responseXML.getElementsByTagName('result')[0].firstChild.data == 1){
        
        document.getElementById("bevestiging").innerHTML = "Bedankt, " + responseXML.getElementsByTagName('naam')[0].firstChild.data + ". U bent ingeschreven voor onze nieuwsbrief.";
        
        // Disable form inputs
        document.getElementById('naam').disabled = true;
        document.getElementById('email').disabled = true;
        document.getElementById('postcode').disabled = true;
        document.getElementById('verzendknop').disabled = true;
        document.getElementById('verzendknop').style.background = "#CCCCCC";
        document.getElementById('verzendknop').style.color = "#333333";
        
        }else if(responseXML.getElementsByTagName('result')[0].firstChild.data == 0){
            document.getElementById("bevestiging").innerHTML = "Er is iets mis gelopen! Waarschijnlijk zit er een fout in de ingevulde gegevens. Kijk alles eens na en probeer het opnieuw. Als het nog steeds niet lukt, probeer dan over enkele ogenblikken opnieuw!";
        }else if(responseXML.getElementsByTagName('result')[0].firstChild.data == 3){
            document.getElementById("bevestiging").innerHTML = "Beste, " + responseXML.getElementsByTagName('naam')[0].firstChild.data + ", U bent reeds ingeschreven voor onze nieuwsbrief met dit email-adres!";
        }else if(responseXML.getElementsByTagName('result')[0].firstChild.data == 2){
            document.getElementById("bevestiging").innerHTML = "Er is een probleem met de databank. Probeer het over enkele ogenblikken opnieuw.";
        }
        
    }else{            
		document.getElementById("bevestiging").innerHTML = "Onbekende form!";        
	}
		
}

function submitForm(e) {	
    /* Cancel the submit event, and find out which form was submitted */
    knackerEvent(e);
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    /* Set up the request */
    var xmlhttp =  new XMLHttpRequest();
    if(target.id == 'ticketform'){
    	xmlhttp.open('POST', 'ticketsprocess.php', true);
    }else if(target.id == 'contactform'){
    	xmlhttp.open('POST', 'contactprocess.php', true);
    }else if(target.id == 'bfncform'){
    	xmlhttp.open('POST', 'bfncprocess.php', true);
    }else if(target.id == 'nieuwsbriefform'){
        xmlhttp.open('POST', 'nieuwsbriefprocess.php', true);
    }
    /* The callback function */
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {
            if (xmlhttp.status == 200){
                addFeedback(xmlhttp.responseXML, target);
            }else{
                target.submit();
            }
        }
    }
    
    
    /* Send the POST request */
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    if(target.id == 'ticketform'){
    	var params = 'naam=' + target.elements['naam'].value + '&email=' + target.elements['email'].value + '&straat=' + target.elements['straat'].value + '&nummer=' + target.elements['nummer'].value + '&gemeente=' + target.elements['gemeente'].value + '&postcode=' + target.elements['postcode'].value + '&geboortejaar=' + target.elements['geboortejaar'].value + '&aantal=' + target.elements['aantal'].value;
    }else if(target.id == 'contactform'){
    	var params = 'naam=' + target.elements['naam'].value + '&email=' + target.elements['email'].value + '&boodschap=' + target.elements['boodschap'].value;
	}else if(target.id == 'bfncform'){
    	var params = 'naam=' + target.elements['naam'].value + '&functie=' + target.elements['functie'].value + '&bedrijf=' + target.elements['bedrijf'].value + '&adres1=' + target.elements['adres1'].value + '&adres2=' + target.elements['adres2'].value + '&vergezeld=' + target.elements['vergezeld'].value + '&telefoon=' + target.elements['telefoon'].value + '&email=' + target.elements['email'].value + '&opmerkingen=' + target.elements['opmerkingen'].value;
	}else if(target.id == 'nieuwsbriefform'){
        var params = 'naam=' + target.elements['naam'].value + '&email=' + target.elements['email'].value + '&postcode=' + target.elements['postcode'].value;
    }
	 
    xmlhttp.send(params);
    /* loading... */
    document.getElementById("bevestiging").innerHTML = "Bezig met verzenden...";
    document.getElementById("bevestiging").style.display = "block";

}

