/* Copyright 2005 Brecht Neyrinck.
 This script is distributed under the terms of the GNU General Public License. */
//****************//
//cookie functions//
//****************//

//check if enabled//

function checkCookie(){
    createCookie('test', 'true');
    if (readCookie('test') != null) {
        eraseCookie('test');
        return true;
    }
    else {
        return false;
    }
}

//create//

function createCookie(name, value, minutes){
    if (minutes) {
        var date = new Date();
        date.setTime(date.getTime() + (minutes * 60 * 1000));
        var expires = '; expires=' + date.toGMTString();
    }
    else {
        var expires = '';
    }
    document.cookie = name + '=' + value + expires + '; path=/';
}

//read//

function readCookie(name){
    var start = document.cookie.indexOf(name);
    if (start == -1) {
        return null;
    }
    start += name.length;
    var end = document.cookie.indexOf(';', start);
    if (end == -1) {
        end = document.cookie.length;
    }
    return unescape(document.cookie.substring(start + 1, end));
}

//erase//

function eraseCookie(name){
    createCookie(name, "", -1);
}

//*************//
//URL functions//
//*************//

//map//
function getDomain(){
    url = self.location + '';
    url = url.substr(7, url.length);
    urlArray = url.split('/');
    if (urlArray[0].indexOf('pandora.be') != -1 || urlArray[0].indexOf('telenet.be') != -1) {
        domain = 'http://users.telenet.be';
    }
    else {
        domain = 'http://' + urlArray[0];
    }
    return domain;
}

function getMap(){
    url = self.location + '';
    url = url.substr(7, url.length);
    urlArray = url.split('/');
    map = '';
    for (i = 1; i < urlArray.length - 1; i++) {
        map += '/' + urlArray[i];
    }
    return map;
}



//****************//
//filter functions//
//****************//

//filterDate//

function filterDate(filterdate){
    filterdate = filterdate.replace(/  /, ' ');
    if (filterdate.indexOf(' ') == 0) {
        filterdate = filterdate.substring(1, filterdate.length);
    }
    var dateArray = filterdate.split(' ');
    var day = dateArray[2];
    var time = dateArray[3];
    var year = dateArray[5].substring(0, 4);
    switch (dateArray[1]) {
        case 'Jan':
            month = '1';
            break
        case 'Feb':
            month = '2';
            break
        case 'Mar':
            month = '3';
            break
        case 'Apr':
            month = '4';
            break
        case 'May':
            month = '5';
            break
        case 'Jun':
            month = '6';
            break
        case 'Jul':
            month = '7';
            break
        case 'Aug':
            month = '8';
            break
        case 'Sep':
            month = '9';
            break
        case 'Oct':
            month = '10';
            break
        case 'Nov':
            month = '11';
            break
        case 'Dec':
            month = '12';
            break
        default:
            month = '0';
    }
    newTime = day + '/' + month + '/' + year + ' ' + time;
    return newTime;
}

//TG-code filter//

function filterMessage(mess){
    for (m = 0; m < smiliesArr.length; m++) {
        var pattern = new RegExp(FilteredSmiliesArr[m][0], 'gi');
        mess = mess.replace(pattern, '<img src="' + FilteredSmiliesArr[m][1] + '">');
    }
    for (m = 0; m < TGcodeArray.length; m++) {
        if (TGcodeArray[m][0] == 'quote' || TGcodeArray[m][0] == 'code') {
            //special replace function for quote && code//
            mess = advancedReplace(mess, TGcodeArray[m][0], TGcodeArray[m][0], TGcodeArray[m][1], TGcodeArray[m][2]);
        }
        else {
            var pattern = new RegExp('\\[' + TGcodeArray[m][0] + '\\](.*?)\\[\/' + TGcodeArray[m][0] + '\\]', 'gi');
            mess = mess.replace(pattern, TGcodeArray[m][1] + '$1' + TGcodeArray[m][2]);
            var pattern2 = new RegExp('\\[' + TGcodeArray[m][0] + '\\]', 'gi');
            var pattern3 = new RegExp('\\[\/' + TGcodeArray[m][0] + '\\]', 'gi');
            if (mess.search(pattern2) != -1 || mess.search(pattern3) != -1) {
                mess = mess.replace(pattern2, '');
                mess = mess.replace(pattern3, '');
            }
        }
    }
    for (m = 0; m < TGcodeArray2.length; m++) {
        mess = replaceV2(mess, TGcodeArray2[m][0], TGcodeArray2[m][1], TGcodeArray2[m][2], TGcodeArray2[m][3]);
    }
    // URL and EMAIL special tag application
    for (m = 0; m < 1; m++) {
        var pattern = new RegExp('\\[' + TGcodeArray2[m][0] + '\\](.*?)\\[\/' + TGcodeArray2[m][0] + '\\]', 'gi');
        mess = mess.replace(pattern, TGcodeArray2[m][1] + '$1' + TGcodeArray2[m][2] + '$1' + TGcodeArray2[m][3]);
        var pattern2 = new RegExp('\\[' + TGcodeArray2[m][0] + '\\]', 'gi');
        if (mess.search(pattern2) != -1) {
            mess = mess.replace(pattern2, '');
        }
    }
    return mess;
}

//plain replace function//

function plainreplace(input, begin, end, word){
    var t1 = input.substring(0, begin);
    var t2 = input.substring(end, input.length);
    var output = t1 + word + t2;
    return output;
}

//advanced replace function, for quote and code tags, allowing inline tags//

function advancedReplace(input, begintag, endtag, beginrep, endrep){
    var bt = begintag.toLowerCase();
    var et = endtag.toLowerCase();
    var br = beginrep.toLowerCase();
    var er = endrep.toLowerCase();
    var pattern = new RegExp('\\[' + bt + '\\]', 'gi');
    input = input.replace(pattern, '[' + bt + ']');
    pattern = new RegExp('\\[\/' + bt + '\\]', 'gi');
    input = input.replace(pattern, '[/' + bt + ']');
    bt = '[' + bt + ']';
    et = '[/' + et + ']';
    inputArr = input.split(bt);
    nn = new Array();
    for (a = 1; a < inputArr.length; a++) {
        if (inputArr[a].indexOf(et) != -1) {
            inputArr[a] = plainreplace(inputArr[a], inputArr[a].lastIndexOf(et), inputArr[a].lastIndexOf(et) + et.length, er);
            while (inputArr[a].indexOf(et) != -1) {
                if (nn[0] != null) {
                    inputArr[a] = plainreplace(inputArr[a], inputArr[a].indexOf(et), inputArr[a].indexOf(et) + et.length, er);
                    nn[nn.length - 1] = null;
                }
                else {
                    inputArr[a] = plainreplace(inputArr[a], inputArr[a].indexOf(et), inputArr[a].indexOf(et) + et.length, '');
                }
            }
        }
        else {
            nn[nn.length] = a;
        }
    }
    ovn = ';';
    for (s = 0; s < nn.length; s++) {
        ovn += nn[s] + ';';
    }
    output = inputArr[0];
    for (a = 1; a < inputArr.length; a++) {
        if (ovn.indexOf(';' + a + ';') != -1) {
            output += inputArr[a]
        }
        else {
            output += br + inputArr[a];
        }
    }
    return output;
}

//advanced replace function for tags with specs//

function replaceV2(input, tag, first, second, end){
    var t = tag.toLowerCase();
    var pattern = new RegExp('\\[' + t + '=', 'gi');
    input = input.replace(pattern, '[' + t + '=');
    pattern = new RegExp('\\[\/' + t + '\\]', 'gi');
    input = input.replace(pattern, '[/' + t + ']');
    var bt = '[' + t + '=';
    var et = '[/' + t + ']';
    var inputArr = input.split(bt);
    var specsArr = new Array();
    var textArr = new Array();
    var nn = new Array();
    var stln = new Array();
    for (a = 1; a < inputArr.length; a++) {
        if (inputArr[a].indexOf(et) != -1) {
            tempStr1 = inputArr[a].substring(0, inputArr[a].indexOf(et));
            if (tempStr1.indexOf(']') != -1) {
                specsArr[a] = tempStr1.substring(0, tempStr1.indexOf(']'));
                textArr[a] = tempStr1.substring(tempStr1.indexOf(']') + 1, tempStr1.length);
                inputArr[a] = inputArr[a].substring(inputArr[a].indexOf(et) + et.length, inputArr[a].length);
                if (stln[stln.length - 1] != null) {
                    var ind = 0;
                    var x = stln.length - 1;
                    while (inputArr[a].indexOf(et) != -1 && x >= 0) {
                        tempStr2 = inputArr[a].substring(ind, inputArr[a].indexOf(et));
                        tempFilteredSpec = filterSpecs(t, specsArr[stln[x]]);
                        if (tempFilteredSpec != null) {
                            tempStr2 = first + tempFilteredSpec + second + tempStr2 + end;
                            inputArr[a] = inputArr[a].substring(0, ind) + tempStr2 + inputArr[a].substring(inputArr[a].indexOf(et) + et.length, inputArr[a].length);
                            ind += tempStr2.length;
                        }
                        else {
                            ind += tempStr2.length;
                            inputArr[a] = inputArr[a].substring(0, inputArr[a].indexOf(et)) + inputArr[a].substring(inputArr[a].indexOf(et) + et.length, inputArr[a].length);
                        }
                        x -= 1;
                    }
                    if (x >= 0) {
                        inputArr[a] = inputArr[a].substring(0, ind) + first + specsArr[stln[x]] + second + inputArr[a].substring(ind, inputArr[a].length) + end;
                    }
                }
            }
            else {
                nn[nn.length] = a;
                specsArr[a] = null;
            }
        }
        else {
            if (inputArr[a].indexOf(']') != -1) {
                stln[stln.length] = a;
                specsArr[a] = inputArr[a].substring(0, inputArr[a].indexOf(']'));
                textArr[a] = inputArr[a].substring(inputArr[a].indexOf(']') + 1, inputArr[a].length);
                inputArr[a] = '';
            }
            else {
                nn[nn.length] = a;
                specsArr[a] = null;
            }
        }
    }
    for (a = 1; a < specsArr.length; a++) {
        if (specsArr[a] != null) {
            specsArr[a] = filterSpecs(t, specsArr[a]);
            if (specsArr[a] == null) {
                nn[nn.length] = '+' + a + '+';
            }
        }
        else {
            nn[nn.length] = '+' + a + '+';
        }
    }
    var ovn = ';';
    for (s = 0; s < nn.length; s++) {
        ovn += nn[s] + ';';
    }
    var output = inputArr[0];
    for (a = 1; a < inputArr.length; a++) {
        if (ovn.indexOf(';+' + a + '+;') != -1) {
            output += textArr[a] + inputArr[a];
        }
        else 
            if (ovn.indexOf(';' + a + ';') != -1) {
                output += bt + inputArr[a];
            }
            else {
                output += first + specsArr[a] + second + textArr[a] + end + inputArr[a];
            }
    }
    return output;
}

//function to escape " and '//

function escapeChars(input){
    var i = input;
    var output = input.replace(/"/, '');
    output = output.replace(/'/, '');
    return output;
}


function filterSpecs(tag, specs){
    specs = escapeChars(specs);
    switch (tag) {
        case 'url':
            if (specs.indexOf('.') != -1) {
                if (specs.substring(0, 7) != 'http://') {
                    specs = 'http://' + specs;
                }
            }
            else {
                return null;
            }
            break;
        case 'email':
            if (specs.indexOf('@') == -1 || specs.indexOf('.') == -1) {
                return null;
            }
            break;
        case 'size':
            specs = (specs * 1 + 3) * 2;
            if (isNaN(specs) || specs < 8 || specs > 30) {
                return null;
            }
            else {
                specs += 'px';
            }
            break;
    }
    return specs;
}

//wrap words//

function wordWrap(message){
    var splitBR = message.split(/<br>/gi);
    message = '';
    for (c = 0; c < splitBR.length; c++) {
        splitBR[c] = wordSpace(splitBR[c]);
        message += splitBR[c] + '<br>';
    }
    return message;
}

function wordSpace(message, chars){
    if (message.indexOf('<') != -1) {
        var splitTG = message.split('<');
        var storeTG = new Array(splitTG.length);
        storeTG[0] = ['0', '0'];
        var joinedMessage = splitTG[0];
        for (a = 1; a < splitTG.length; a++) {
            storeTG[a] = ['0', '0'];
            storeTG[a][0] = message.indexOf(splitTG[a]) - 1;
            et = splitTG[a].indexOf('>');
            message = message.substring(0, storeTG[a][0]) + message.substring(storeTG[a][0] + et + 2, message.length);
            storeTG[a][1] = '<' + splitTG[a].substring(0, et + 1);
            splitTG[a] = splitTG[a].substring(et + 1, splitTG[a].length);
            joinedMessage += splitTG[a];
        }
        var spaceArr = joinedMessage.split(' ');
    }
    else {
        var spaceArr = message.split(' ');
    }
    message = '';
    for (a = 0; a < spaceArr.length; a++) {
        if (spaceArr[a] > chars) {
            for (j = chars; j < spaceArr[a].length; j += chars) {
                message += spaceArr[a].substring((j - chars), j) + ' ';
            }
            message += spaceArr[a].substring(j, spaceArr[a].length) + ' ';
        }
        else {
            message += spaceArr[a] + ' ';
        }
    }
    if (storeTG) {
        for (a = storeTG.length - 1; a > 0; a--) {
            message = message.substring(0, storeTG[a][0]) + storeTG[a][1] + message.substring(storeTG[a][0], message.length);
        }
    }
    return message;
}

//*************//
//mail function//
//*************//

function mailTo(user, adres){
    if (checkCookie()) {
        createCookie('mail' + getMap(), user + '["]' + adres, 5);
        self.location.href = getMap() + '/invulform.htm';
    }
    else {
        alert('Cookies moeten geactiveerd zijn om deze functie te gebruiken');
    }
}

//****************//
//escaping smilies//
//****************//

//create the Array//

escArr = new Array('\\', '(', ')', '{', '}', '[', ']', '/', '!', '?', '^', '$', '+', '*');

//function to escape a smilie//

function escapeSmilie(smilie){
    for (t = 0; t < escArr.length; t++) {
        if (smilie.indexOf(escArr[t]) != -1) {
            var smilieSplitted = smilie.split(escArr[t]);
            smilie = smilieSplitted[0];
            for (r = 1; r < smilieSplitted.length; r++) {
                smilie += '\\' + escArr[t] + smilieSplitted[r];
            }
        }
    }
    return smilie;
}


//*****************//
//inserting TG code//
//*****************//

//drop-down menus//

function changeTag(tag){
    var Select = document.forms['gastenboek'].elements[tag];
    if (Select.options[Select.selectedIndex].value != "" && Select.options[Select.selectedIndex].value != null) {
        var beginTag = tag + '=' + Select.options[Select.selectedIndex].value;
        var endTag = tag;
    }
    insertTagInForm(beginTag, endTag);
}

//filter the tag first//

function setTag(tag){
    if (tag == 'URL') {
        var ptUrl = prompt('Gelieve het adres van de hyperlink in te geven.', 'http://www.link.be');
        if (ptUrl != null) {
            var beginTag = 'URL=' + ptUrl;
            var endTag = tag;
        }
    }
    else 
        if (tag == 'EMAIL') {
            var ptEmail = prompt('Gelieve het emailadres in te geven.', 'email@adres.be');
            if (ptEmail != null) {
                var beginTag = 'EMAIL=' + ptEmail;
                var endTag = tag;
            }
        }
        else {
            var beginTag = tag;
            var endTag = tag;
        }
    insertTagInForm(beginTag, endTag);
}

//add tag to the Textarea//

function insertTagInForm(beginTag, endTag){
    var textArea = document.forms['gastenboek'].BerichtTA;
    if (document.selection) {
        if (document.selection.createRange().text != '') {
            textArea.focus();
            var str = document.selection.createRange().text;
            document.selection.createRange().text = '[' + beginTag + ']' + str + '[/' + endTag + ']';
        }
        else 
            if (textArea.createTextRange) {
                if (beginTag == 'IMG') {
                    var content = prompt('Gelieve de volledige URL-pad en bestandsnaam in te geven.', 'http://www.website.be/images/figuur.jpg');
                }
                content = (content == null) ? '' : content;
                textArea.focus();
                document.selection.createRange().text = document.selection.createRange().text.charAt(document.selection.createRange().text.length - 1) == ' ' ? '[' + beginTag + ']' + content + '[/' + endTag + '] ' : '[' + beginTag + ']' + content + '[/' + endTag + ']';
            }
    }
    else 
        if (textArea.selectionStart || textArea.selectionStart == '0') {
            var startPos = textArea.selectionStart;
            var endPos = textArea.selectionEnd;
            var inhoud = textArea.value;
            if (startPos != endPos) {
                var split1 = inhoud.substring(0, startPos);
                var split2 = inhoud.substring(startPos, endPos);
                var split3 = inhoud.substring(endPos, inhoud.length);
                textArea.value = split1 + '[' + beginTag + ']' + split2 + '[/' + endTag + ']' + split3;
                textArea.focus();
                textArea.selectionStart = startPos;
                textArea.selectionEnd = endPos + beginTag.length + endTag.length + 5;
            }
            else {
                if (beginTag == 'IMG') {
                    var content = prompt('Gelieve de volledige URL-pad en bestandsnaam in te geven.', 'http://www.website.be/images/figuur.jpg');
                }
                content = (content == null) ? '' : content;
                var split1 = inhoud.substring(0, startPos);
                var split2 = inhoud.substring(endPos, inhoud.length);
                textArea.value = split1 + '[' + beginTag + ']' + content + '[/' + endTag + ']' + split2;
                textArea.focus();
                textArea.selectionStart = startPos + beginTag.length + 2;
                textArea.selectionEnd = endPos + beginTag.length + 2;
            }
        }
        else {
            if (beginTag == 'IMG') {
                var content = prompt('Gelieve de volledige URL-pad en bestandsnaam in te geven.', 'http://www.website.be/images/figuur.jpg');
            }
            content = (content == null) ? '' : content;
            textArea.value += '[' + beginTag + ']' + content + '[/' + endTag + ']';
        }
}

//add smilie to the form//

function insertSmilieInForm(smilie){
    var textArea = document.forms['gastenboek'].BerichtTA;
    if (document.selection) {
        textArea.focus();
        document.selection.createRange().text = document.selection.createRange().text + ' ' + smilie + ' ';
    }
    else 
        if (textArea.selectionStart || textArea.selectionStart == '0') {
            var startPos = textArea.selectionStart;
            var endPos = textArea.selectionEnd;
            var inhoud = textArea.value;
            var split1 = inhoud.substring(0, startPos);
            var split2 = inhoud.substring(startPos, inhoud.length);
            textArea.value = split1 + ' ' + smilie + ' ' + split2;
            textArea.focus();
            textArea.selectionStart = endPos + smilie.length + 2;
            textArea.selectionEnd = endPos + smilie.length + 2;
        }
        else {
            textArea.value += ' ' + smilie;
        }
}

//****************//
//window functions//
//****************//

//open smilie box window//

var smilieBox = '';
function openSmilieBox(){
	if (!smilieBox.closed && smilieBox.location) {
		smilieBox.focus();
	}
	else {
		smilieBox = window.open('', 'Smilies', 'width=' + (smilieWidth + 28) * 5 + ',height=200,statusbar=no,location=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes');
		var smilieBoxInhoud = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head><title>Smilies</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">';
		smilieBoxInhoud += '<link href="css/smiliebox.css" rel="stylesheet" type="text/css">';
		smilieBoxInhoud += '<style type="text/css">#container {	position: absolute;	left: 50%;	top: 20px;	width: ' + (smilieWidth + 28) * 4 + 'px;	margin-left: -' + (smilieWidth + 28) * 2 + 'px;}</style>';
		smilieBoxInhoud += '</head><body><div id="container">';
		j = 1;
		for (i = 0; i < smiliesArr.length; i++) {
			smilieBoxInhoud += '<a href="javascript:opener.insertSmilieInForm(\'' + smiliesArr[i][0] + '\');"><img src="' + smiliesArr[i][1] + '" title="' + smiliesArr[i][0] + '" alt="' + smiliesArr[i][0] + '"></a>';
			if (j == 4) {
				j = 0;
				smilieBoxInhoud += '<br>';
			}
			j += 1;
		}
		smilieBoxInhoud += '</div></body></html>';
		smilieBox.document.open();
		smilieBox.document.write(smilieBoxInhoud);
		smilieBox.document.close();
	}
}

//preview message//

var previewBox = '';
function preView(){
	if(document.forms['gastenboek'].EnableEmail.checked==true){
		var valideer = validateForm(document.forms['gastenboek'], [['Naam', 'uw naam'], ['BerichtTA', 'uw bericht']], [['EmailText', 'uw emailadres']]);
	}else{
		var valideer =validateForm(document.forms['gastenboek'], [['Naam', 'uw naam'], ['BerichtTA', 'uw bericht']],[]);
	}
    if (valideer) {
		if (!previewBox.closed && previewBox.location) {
			previewBox.close();		
		}
		
			previewBox = window.open('', 'Preview', 'width=' + screen.width * 0.8 + ',height=150,location=no,statusbar=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes');
			var previewBoxInhoud = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head><title>Preview</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">';
			previewBoxInhoud += '<link href="css/gastenboek.css" rel="stylesheet" type="text/css">';
			previewBoxInhoud += '</head><body>'
			previewBoxInhoud += '<div id="previewbox">';
			previewBoxInhoud += '<div class="bericht">';
			previewBoxInhoud += '<div class="berichtinfo">';
			
			FilteredSmiliesArr = new Array();
			for (u = 0; u < smiliesArr.length; u++) {
				FilteredSmiliesArr[u] = [escapeSmilie(smiliesArr[u][0]), smiliesArr[u][1]];
			}
			
			var date = getDateNow();
			previewBoxInhoud += '<div class="datum">' + date + '</div>';
			previewBoxInhoud += '<div class="gebruiker">by <a href="javascript:void(0);">' + document.forms['gastenboek'].Naam.value + '</a>';
			var homepage = document.forms['gastenboek'].URL.value;
			if (homepage != '' && homepage != 'http://') {
				previewBoxInhoud += '<a href="' + homepage + '" target="_blank"><img style="vertical-align: middle;border: 0;" src="' + homepageknop + '" height="14" style="border:none;"></a>';
			}
			previewBoxInhoud += '</div></div>';
			var message = document.forms['gastenboek'].BerichtTA.value;
			message = message.replace(/</g, '&lt;');
			message = message.replace(/>/g, '&gt;');
			message = message.replace(/javascript/gi, 'java script');
			message = message.replace(/\r\n/gi, '<brtag:r><brtag:n><br>');
			message = message.replace(/\n/gi, '<:brtag:n><br>');
			message = message.replace(/\r/gi, '<br><:brtag:r>');
			message = filterMessage(message);
			message = message.replace(/<:brtag:r>/gi, '\r');
			message = message.replace(/<:brtag:n>/gi, '\n');
			message = wordWrap(message, 80);
			previewBoxInhoud += '<div class="bericht_inhoud">' + message + '</div>';
			previewBoxInhoud += '</div></div>';
			previewBoxInhoud += '</body></html>'
			previewBox.document.open();
			previewBox.document.write(previewBoxInhoud);
			previewBox.document.close();
		
	}
}

//Date functions//

function getDateNow(){
    var today = new Date();
    var Year = takeYear(today);
    var Month = leadingZero(today.getMonth() + 1);
    var Day = leadingZero(today.getDate());
    var Hours = leadingZero(today.getHours());
    var Minutes = leadingZero(today.getMinutes());
    var Seconds = leadingZero(today.getSeconds());
    var date = Day + '/' + Month + '/' + Year + ' ' + Hours + ':' + Minutes + ':' + Seconds;
    return date;
}

function takeYear(theDate){
    x = theDate.getYear();
    var y = x % 100;
    y += (y < 38) ? 2000 : 1900;
    return y;
}

function leadingZero(nr){
    if (nr < 10) {
        nr = "0" + nr;
    }
    return nr;
}

//close windows//

function closeBoxes(){
    if (smilieBox) {
        smilieBox.close();
    }
    if (previewBox) {
        previewBox.close();
    }
}

//******************************************//
//make the guestbook just work :) + security//
//******************************************//

function initialise(){
    var gbForm = document.forms['gastenboek'];
    gbForm.action = '/cgi-bin/gastenboek.cgi?' + getMap();
    gbForm.OKurl.value = getDomain() + getMap() + '/okurl.html';
    gbForm.submitB.disabled = false;
    gbForm.voorbeeld.disabled = false;
    gbForm.resetB.disabled = false;
}

//update TA//

function updateTA(){
    document.forms['gastenboek'].Bericht.value = '<div id="startmessage"> ' + document.forms['gastenboek'].BerichtTA.value + '</div>';
    if (document.forms['gastenboek'].EnableEmail.checked == true) {
        document.forms['gastenboek'].Email.value = document.forms['gastenboek'].EmailText.value;
    }
    else {
        document.forms['gastenboek'].Email.value = "foo@bar.com";
    }
}

//*************************//
//check functions for forms//
//*************************//

//check if the field is empty//

function isEmpty(field){
    return (field.value == '' || field.value == null);
}

//universal check function for !empty fieds and validation email fields//

function validateForm(tform, notEmptyFields, emailFields){
    for (p = 0; p < notEmptyFields.length; p++) {
        field = tform.elements[notEmptyFields[p][0]];
        if (isEmpty(field)) {
            alert('U vulde ' + notEmptyFields[p][1] + ' niet in!');
            return false;
        }
    }
    for (p = 0; p < emailFields.length; p++) {
        emailField = tform.elements[emailFields[p][0]];
        if (isEmpty(emailField) || emailField.value.indexOf('.') == -1 || emailField.value.indexOf('@') == -1) {
            alert('U vulde ' + emailFields[p][1] + ' niet correct in!');
            return false;
        }
    }
    return true;
}

// Enable email checkbox
function alterEmail(){
    if (document.forms['gastenboek'].EnableEmail.checked == true) {
        document.forms['gastenboek'].EmailText.style.color = '#000033';
        document.forms['gastenboek'].EmailText.disabled = false;
        document.forms['gastenboek'].EmailText.value = '';
    }
    else {
        document.forms['gastenboek'].EmailText.style.color = '#333333';
        document.forms['gastenboek'].EmailText.disabled = true;
        document.forms['gastenboek'].EmailText.value = 'anoniem';
    }
}


//submit invullen function//

function submitInvullen(){
    updateTA();
    if (validateForm(document.forms['gastenboek'], [['Naam', 'uw naam'], ['BerichtTA', 'uw bericht']], [['Email', 'uw emailadres']]) == true) {
        closeBoxes();
        return true;
    }
    else {
        return false;
    }
}

//***********//
//reset forms//
//***********//

//universal reset function//

function resetFields(tform, emptyFields){
    for (p = 0; p < emptyFields.length; p++) {
        tform.elements[emptyFields[p]].value = '';
    }
}

//reset Invullen form//

function resetInvullen(){
    resetFields(document.forms['gastenboek'], ['Naam', 'Email', 'URL', 'BerichtTA']);
    document.forms['gastenboek'].Bericht.value = '<div id="startmessage"></div>';
}

//************//
//help functie//
//************//

function openHelp(){
    window.open('berichthelp.html', 'Help', 'width=820px,height=600px,scrollbars=yes');
}

