var nav = (document.layers);
var dom = (document.getElementById&&!document.all);
var iex = (document.all);

var mouse_x = 0;
var mouse_y = 0;

// een beetje afstand van de muiscursor nemen
var Xoffset = -290;
var Yoffset = -10;

if (nav) document.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
document.onmousedown = mouseMove;
document.onmouseup = mouseMove;

var req;

function initSpamFree() {
	if (!document.getElementsByTagName) return;

    var tags = new Array('a','area');

    for (var j=0; j<tags.length; j++) {
    	//alert(tags[j]);
	    var anchors = document.getElementsByTagName(tags[j]);

	    for (var i=anchors.length-1; i>=0; i--) {
		    var anchor = anchors[i];
			var email = '';
			var newEmail = '';
			var href = '';
			var alerts = '';

		    if (anchor.getAttribute('href')) {
				href = anchor.getAttribute('href');

				//alert(href);

		    	if (href.substring(0,7)=='mailto:') {
		    		email = href.substring(7);

		    		alerts += email +'\n';

		    		for (var x=email.length; x>=0; x--) {
		    			alerts += email.charAt(x) +'\n';

		    			newEmail += email.charAt(x);
		    		}

		    		newEmail = newEmail.replace('$$#64;', '@');
		    		anchor.onmouseover = 'window.status=\'mailto:'+ newEmail +'\'';
		    		anchor.href = 'mailto:'+ newEmail;

		    		//alert(alerts);
		    	}
	    	}
	    }
    }
}

function externalLinks() {
	//alert(location.hostname);
	
	if (!document.getElementsByTagName) return;

    //var url = 'makaay.thuis.bert-jan.com'; // de url van deze site. daarmee kan worden onderscheden welke links naar externe sites gaan en welke niet
	var url = location.hostname;
    var tags = new Array('a','area');
    var teller_i = 0;
    
    for (var j=0; j<tags.length; j++) {
    	//alert(tags[j]);
	    var anchors = document.getElementsByTagName(tags[j]);

	    for (var i=anchors.length-1; i>=0; i--) {
		    var anchor = anchors[i];
	
		    if (anchor.getAttribute('href')) {
		    	// ok dit is dus een link
				href = anchor.getAttribute('href')
				
				
				// klein probleempje: IE zet de href altijd op de volledige url, FF geeft de url zoals hij in de code staat
				// er moet dus nog een oplossing komen om clicks.php op te zoeken EN de controleren of de url in z'n parameter niet intern is
				// misschien de positie van de url NA de positie van clicks.php controleren
				
		    	if ((href.indexOf('clicks.php?id=')!=-1 && href.indexOf('url='+ escape('http://'+ url))!=-1) || 
		    		(href.substring(0,7)=='http://' && (href.indexOf(url)==-1 || (href.indexOf(url)>15)))) {
	        		// links met http:// zijn niet per se lokaal, dus als er ook geen (url) in voorkomt zijn het links naar externe sites
		    		
		    		anchor.target = '_blank';
		    	}
		    	
		    	if (anchor.getAttribute('rel') && (anchor.getAttribute('rel')=='nofollow')) { // || (rel.substring(0,7)=='http://' && (rel.indexOf(url)>15 || rel.indexOf(url)==-1)))) {
		    		// nofollow is voor homepages van reacties (pagerank beveiliging)
		    		// de http:// betekent een link uit showLinks() die door een lokale teller heengaat en op deze manier toch een target krijgt
		    		
		    		anchor.target = '_blank';
		    	} else {
			    	//href = anchor.getAttribute('href');
			    	
			    	if (teller_i<20) {
			    		//alert(href +'\n'+ href.substring(0,7) +'\n'+ href.indexOf(url)+'\n'+ href.indexOf(url));
			    		teller_i++;
			    	} 
					
		    	}
	    	}
	    }
    }
}

function onloadEvents() {
	initSpamFree();
	externalLinks();
}

window.onload = onloadEvents;

function checkXML(form) {
    if (form.tekst.value != form.oldtekst.value) { // de berichttekst is aangepast
        if (form.xmlcheck.value == '0') {
            if (confirm('Dit bericht is nog niet gecontroleerd.\nWilt u het nu controleren?')) {
                openPreview(form.tekst.value);
            }

            return false;
        }
    } else {
        return true;
    }
}

function setMonth(datum, channel) {
    if (isNaN(channel)) {
        loadXMLDoc('kalender.php?archiefkalender='+ datum);
    } else {
        loadXMLDoc('kalender.php?channel='+ channel +'&archiefkalender='+ datum);
    }
}

function loadXMLDoc(url) {
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;

        //alert('getting '+ url);

        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
}

function processReqChange() {
    // only if req shows "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            // ...processing statements go here...
            text = req.responseText;
            //alert(text);
            fillLayer('archiefkalender', text);
        } else {
            alert("Er is een fout opgetreden:\n" + req.statusText);
        }
    }
}

function reageren(nieuws) {
    switchLayer('addreactie','auto',true);
    
    setTimeout("document.getElementById('reactieform').naam.focus()", 500);
}

function mouseMove(e) { //v1.0
    if (nav || dom) {
        mouse_x = e.pageX;
        mouse_y = e.pageY;
    } else {
        mouse_x = event.clientX;
        mouse_y = event.clientY;
    }
}

function switchLayer(layer_id, mode, movetomouse) { //v1.1
    /* mode = aan, uit of auto */

    if (nav) {
        layer = document.layers[layer_id];
    }
    else if (dom || iex) {
        layer = document.getElementById(layer_id).style;
    }
    else {
        alert('Uw browser wordt niet ondersteund');
    }

    if (mode=='auto') mode = (layer.top=='-300px') ? 'aan' : 'uit';

    if (movetomouse) moveToMouse(layer, mode);

    if (mode=='aan' && layer_id=='addreactie') {
        setTimeout("document.forms['reactieform'].naam.focus()", 500);
    }
}

function moveToMouse(layer, mode) {
    // een beetje afstand van de muiscursor nemen

    if (mode=='aan') {
        layer.left = (mouse_x + Xoffset) +'px';
        layer.top = (mouse_y + Yoffset) +'px';
    } else {
        layer.top =  '-300px';
    }
}

function show(foto,breedte,hoogte,titel,venster) {
    if (titel==undefined) titel = 'BlogXXL';

    if (foto!='' && breedte>0 && hoogte>0) {
        pop = window.open('', venster, 'width='+ breedte +',height='+ hoogte);
        pop.document.write('<html>');
        pop.document.write('<title>'+ titel +'</title>');
        pop.document.write('<body style="margin: 0; background: url(\'/'+ foto +'\') no-repeat" onload="this.focus()">');
        pop.document.write('<a href="javascript:self.close()"><img src="/images/spacer.gif" border="0" width="'+ (breedte-5) +'" height="'+ (hoogte-5) +'"></a>');
        pop.document.write('</body>');
        pop.document.write('</html>');
        pop.document.close();
    }
}

function notBlank(str) {
    if (str != '') {
        for (i = 0; i < str.length; i++) {
            if (str.charAt(i) != " ")
                return true
        }
    }
    return false
}

function checkReactieForm(formulier) {
    if (!notBlank(formulier.naam.value) || !notBlank(formulier.bericht.value)) {
        alert('Naam en bericht zijn verplicht');
        return false;
    } else {
        return true;
    }
}
