function createRequestObject() {
	 var req;
	 if(window.XMLHttpRequest)
			req = new XMLHttpRequest();
	 else if(window.ActiveXObject)
			req = new ActiveXObject("Microsoft.XMLHTTP");
	 return req;
}
var http = createRequestObject();

var bonnetjeGewijzigd = false;

function increaseElem(id) {
    var elem = document.getElementById(id + '-aantal');
    var aantal = parseInt(elem.value);
    if (isNaN(aantal) || aantal < 0) {
        aantal = 0;
    }
    aantal++;
    if (id.substring(0,1) == 'b') {
        bonnetjeGewijzigd = true;
    }
    elem.value = aantal;
}

function decreaseElem(id) {
    var elem = document.getElementById(id + '-aantal');
    var aantal = parseInt(elem.value);
    if (isNaN(aantal) || aantal < 0) {
        aantal = 1;
    }
    if (aantal > 1) {
        aantal--;
        if (id.substring(0,1) == 'b') {
            bonnetjeGewijzigd = true;
        }
    }
    elem.value = aantal;
}

function bonnetjeControleren() {
    var content = bonnetjeGetContent();
    if (content.length == 0) {
        alert('Om door te gaan dient u eerst producten toe te voegen!');
        return false
    }
    return true;
}

function bestellen(id) {
    var elem = document.getElementById(id + '-aantal');
    var aantal = parseInt(elem.value);
    if (isNaN(aantal)) {
        aantal = 1;
    }
    bonnetjeToevoegen(id, aantal);
}

function bestellenMetExtra(tbl) {
	document.getElementById('bonnetjeMessage').innerHTML = 'Bezig met toevoegen...';
	var content = '';
    if (bonnetjeGewijzigd) {
        content = '&' + bonnetjeGetContent();
    }
	var query = '';
	//var tbl = document.getElementById('extrasTable');
	for (var i = 0; i < (tbl.rows.length - 1); i++) {
		var row = tbl.rows[i+1];
		query += '?id=' + extraId;
		var inputs = row.getElementsByTagName('input');
		for(var j = 0; j < inputs.length; j++) {
			var input = inputs[j];
			var name = (input.name == '' ? window.extras[j] : input.name);
			if (name == 'naam') {
				query += '&naam[' + i + ']=' + escape(input.value); 
			} else {
				query += '&optie' + name + '[' + i + ']=' + (input.checked ? 1 : 0); 
			}
		}
	}
	
	http.open('get', '/bonnetje/toevoegenMetExtra/' + query + content);
	http.onreadystatechange = function() {
		bonnetjeInlezen();
		scroll(0,0);
	};
	http.send(null);
}

function bonnetjeToevoegen(id, aantal) {
    document.getElementById('bonnetjeMessage').innerHTML = 'Bezig met toevoegen...';
    var content = '';
    if (bonnetjeGewijzigd) {
        content = '&' + bonnetjeGetContent();
    }
	http.open('get', '/bonnetje/toevoegen/?id=' + id.substring(1) + '&aantal=' + aantal + content);
	http.onreadystatechange = function() {
		bonnetjeInlezen();
		scroll(0,0);
	};
	http.send(null);
}

function bonnetjeVerwijderen(id) {
    document.getElementById('bonnetjeMessage').innerHTML = 'Bezig met verwijderen...';
    var content = '';
    if (bonnetjeGewijzigd) {
        content = '&' + bonnetjeGetContent();
    }
	http.open('get', '/bonnetje/verwijderen/?id=' + id + content);
	http.onreadystatechange = function() {
		bonnetjeInlezen();
	};
	http.send(null);
}

function bonnetjeHerberekenen() {
    var content = bonnetjeGetContent();
    if (content.length > 0) {
        document.getElementById('bonnetjeMessage').innerHTML = 'Bezig met herberekenen...';
        http.open('get', '/bonnetje/herberekenen/?' + content);
        http.onreadystatechange = function() {
	        bonnetjeInlezen();
        };
        http.send(null);
    }
}

function bonnetjeGetContent() {
    var bonnetje = document.getElementById('bonnetje');
    var inputvelden = bonnetje.getElementsByTagName('input');
    var result = '';
    for (var i = 0; i < inputvelden.length; i++) {
        var input = inputvelden[i];
        var id = input.id.substring(1, input.id.length-7);
        var aantal = parseInt(input.value);
        if (isNaN(aantal) || aantal < 0) {
            aantal = 1;
        }
        result += 'bonnetje[' + id + ']=' + aantal;
        if (i < inputvelden.length - 1) {
            result += '&';
        }
    }
    return result;
}

function bonnetjeInlezen() {
    if((http.readyState != 4 && http.readyState != 0) || http.status != 200) {
        return;
	}
	document.getElementById('bonnetje').innerHTML = http.responseText;
}

function afleverAdres() {
    var gelijk = document.getElementById('gelijk');
    if (gelijk.value == '0') {
        //Nasty IE6 hack
        var cbs = document.getElementsByTagName('input');
        for (var i = 0; i < cbs.length; i++) {
            if (cbs[i].type == 'checkbox' && cbs[i].name == 'gelijk' && cbs[i].value == '1') {
                gelijk = cbs[i];
                break;
            }
        }
    }
    var adres = document.getElementById('aflever-adres');
    var postcode = document.getElementById('aflever-postcode');
    var plaats = document.getElementById('aflever-plaats');
    adres.disabled = gelijk.checked;
    postcode.disabled = gelijk.checked;
    plaats.disabled = gelijk.checked;
}

function gegevensVerwerken() {
    var ok = true;
    var afleverdatum = document.getElementById('afleverdatum').value.trim();
    if (afleverdatum.length == 0) {
        ok = false;
        alert('Geen afleverdatum gekozen!');
    }
    var afleveradres = document.getElementById('afleveradres').value.trim();
    if (afleveradres.length == 0) {
        ok = false;
        alert('Afleveradres niet ingevuld!');
    }
    var postcode = /(\d{4})\s*([a-z]{2})/i;
    var afleverpostcode =  document.getElementById('afleverpostcode').value.trim();
    var minPostcodes = document.getElementById('postcodes_min').value.split(',');
    var maxPostcodes = document.getElementById('postcodes_max').value.split(',');
    var bezorgpostcode = postcode.exec(afleverpostcode);
    if (afleverpostcode.length == 0) {
        ok = false;
        alert('Afleverpostcode niet ingevuld!');
    } else if (!postcode.test(afleverpostcode)) {
        ok = false;
        alert('Afleverpostcode: ' + afleverpostcode);
        alert('Afleverpostcode niet correct ingevuld!');
    /*} else {
        var postcodeok = false;
        for (var i = 0; i < minPostcodes.length; i++) {
            if (bezorgpostcode[1] >= minPostcodes[i] && bezorgpostcode[1] <= maxPostcodes[i]) {
                postcodeok = true;
            }
        }
        if (!postcodeok) {
            ok = false;
            alert('Afleverpostcode valt niet binnen ons bezorggebied!');
        }*/
    }
    var afleverplaats =  document.getElementById('afleverplaats').value.trim();
    if (afleverplaats.length == 0) {
        ok = false;
        alert('Afleverplaats niet ingevuld!');
    }
    if (ok) {
        //Nasty hack to support IE6
        document.doSubmit = function() {
            document.getElementById("gegevensForm").submit();
        };
        setTimeout("document.doSubmit();", 50);
    }
    return false;
}

function anderAdres() {
    var adresorig = document.getElementById('adresorig');
    var adresanders = document.getElementById('adresanders');
    adresorig.style.display = 'none';
    adresanders.style.display = '';
}

function betalingVerwerken() {
    //var lunchtegoed = document.getElementById('lunchtegoed');
    var oprekening = document.getElementById('oprekening');
    var contant = document.getElementById('contant');
    //var direct = document.getElementById('direct');
    if (contant.checked || oprekening.checked) {
        //Nasty hack to support IE6
        document.doSubmit = function() {
            document.getElementById("betalingForm").submit();
        };
        setTimeout("document.doSubmit();", 50);
    /*} else if (direct.checked) {
        //Betaling via MultiSafePay
        document.getElementById('bonnetjeMessage').innerHTML = 'Even geduld a.u.b.';
    	http.open('get', '/bestellen/msp');
    	http.onreadystatechange = function() {
	    	betalingUrlInlezen();
    	};
    	http.send(null);*/
    } else {
        alert('Geen betaalmethode gekozen!');
    }
}

function betalingUrlInlezen() {
    if((http.readyState != 4 && http.readyState != 0) || http.status != 200) {
        return;
	}
	var url = http.responseText;
	if (url == 'error') {
	    alert('Er is een fout opgetreden in de communicatie met de betalingsprovider. Neem contact met ons op.');
	} else {
	    window.location = url;
	}
}

function tegoedVerhogen(minimum) {
    var bedrag = document.getElementById('bedrag').value;
    bedrag = bedrag.replace(/,/, '.');
    var getal = parseFloat(bedrag);
    if (isNaN(getal)) {
        alert('Geen geldig bedrag ingevoerd!');
        return;
    } else if (getal < minimum) {
        alert('Het ingevoerde bedrag is te laag!');
        return;
    }
    var vraag = 'Wilt u uw lunchtegoed verhogen met ' + getal2prijs(getal) + ' euro?' + "\n" + 'U wordt dan doorverwezen naar MultiSafepay.';
    if (confirm(vraag)) {
        http.open('get', '/mijn_lunchtijd/msp?bedrag=' + getal);
    	http.onreadystatechange = function() {
	    	betalingUrlInlezen();
    	};
    	http.send(null);
    }
}

function dagbestellingWijzig(onderdeel, bid) {
    http.open('get', '/beheerfuncties/dagbestellingen?onderdeel=' + onderdeel + '&bid=' + bid);
    http.onreadystatechange = function() {
        if((http.readyState != 4 && http.readyState != 0) || http.status != 200) {
            return;
        }
        window.location.reload(true);
    };
    http.send(null);
}

function getal2prijs(getal) {
    getal = Math.round(getal*100)/100;
    var prijs = '' + getal;
    prijs = prijs.replace(/\./, ',');
    var komma = prijs.lastIndexOf(',');
    if (komma == -1) {
        prijs += ',00';
    } else if (komma == prijs.length - 2) {
        prijs += '0';
    }
    return prijs;
}

String.prototype.trim = function() {
    return this.replace(/(^\s+|\s+$)/,'');
};

function extrakeuze(artnr, artnaam) {
	//Remove previous entries
	var extraDiv = document.getElementById('extras');
	var extraTable = document.getElementById('extrasTable');
	var elem = document.getElementById('a' + artnr + '-aantal');
    var aantal = parseInt(elem.value);
    if (isNaN(aantal)) {
        aantal = 1;
    }
	while (extraTable.rows.length > 1) {
		extraTable.deleteRow(extraTable.rows.length - 1);
	}
	extraId = artnr;
	//Add aantal entries
	for(var i = 0; i < aantal; i++) {
		addRow();
	}
	//Show popup
	$.prettyPhoto.open('#extras',artnaam + ': kies extra ingredienten','');
}

function bevestigen(tekst, url) {
	var bevestiging = confirm(tekst);
	if (bevestiging){
		window.location = url;
	}
}
