/**************************************************************
Event attacher
Voorbeeld van gebruik: document.attachEvent("onload", functieNaamHier);
***************************************************************/
document.events = [];
document.attachEvent = function(type, reference) {

    var evt = this.events;
    if(!evt[type]) evt[type] = [];
    evt[type][evt[type].length] = reference;

    document[type] = function(e) {
        document.executeEvents(type, e);
    }
}

document.executeEvents = function(type, e) {
    for(var i in this.events[type]) {
        this.events[type][i](e);
    }
}

window.onunload = function() { document.executeEvents('onunload'); }
window.onload = function() { document.executeEvents('onload'); }
window.onresize = function() { document.executeEvents('onresize'); }

/**********************************************************************
Statistieken teller.
**********************************************************************/
function pageHit(){
	p = escape(document.location.href);
	rfr = escape(document.referrer);
	if (rfr == "undefined"){ rfr = "";}
	sx = screen.width;
	sy = screen.height;
	sc = (navigator.appName.indexOf("Microsoft") > -1) ? screen.colorDepth : screen.pixelDepth;
	src = 'stats.php?p=' + p + '&rfr=' + rfr + '&sx=' + sx + '&sy=' + sy + '&sc=' + sc;
	src = '<img style="position:absolute;left:-10px;top:-10px;" src="' + src + '" width="1" height="1" border="0" alt="" />';
	document.getElementById('counter').innerHTML = src;
}
//document.attachEvent("onload", pageHit);

/**********************************************************************
jQuery functies
**********************************************************************/
jQuery(document).ready(function(){

	// Statistieken
	pageHit();

	// Links met rel="external" moeten in een nieuw venster worden geopend
	jQuery('a[rel=external]').live('click', function() {
        window.open(jQuery(this).attr('href') );
        return false;
    });

	// PNG fix
	jQuery.ifixpng('images/pixel.gif');
	//jQuery('img[src$=.png]').ifixpng();

	// Voorbeeld
	jQuery(".openVoorbeeld").click(function(event){
		event.preventDefault();
		//jQuery("#voorbeeld").css("display","block");
		jQuery("#voorbeeld").fadeIn("fast");
	});

	jQuery(".sluitVoorbeeld").click(function(event){
		event.preventDefault();
		//jQuery("#voorbeeld").css("display","none");
		jQuery("#voorbeeld").fadeOut("fast");
	});

});

/**********************************************************************
Popup window
**********************************************************************/
function popup(sPage){
	window.open(sPage, 'Popup', 'toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=1,width=800,height=500');
}

/**************************************************************
Als een url met www begint, http:// ervoor plakken.
Gebruik: onBlur="fixUrl(this.id);"
***************************************************************/
function fixUrl(sElementId){
	sUrl = document.getElementById(sElementId).value;

	if(sUrl.substring(0,3) == 'www'){
		document.getElementById(sElementId).value = 'http://' + sUrl;
	}
}

function fixPhone(sElementId){
	sNumber = document.getElementById(sElementId).value;

	// Regular Expression: alles wat niet 0-9, + of een - is
	var regex = /([^0-9+-])+/gi;

	// run the Regular Expression to replace any match to our Regular Expression with the _
	sNumber = sNumber.replace(regex,"");

	document.getElementById(sElementId).value = sNumber;
}

/**************************************************************
Preview plaatje inladen
sSrc = path naar het plaatje
iPos = op welke van de vier posities moet de preview worden ingeladen (1-4)
***************************************************************/
function loadPreview(sSrc, iPos){
	jQuery("#placeholder"+iPos)[0].src = 'crop/71/55/'+sSrc; // preview plaatje inladen
	jQuery("#placeholderWrap"+iPos+" a").css("display","inline"); // verwijder link onder het plaatje tonen
}

/**************************************************************
Preview plaatje verwijderen
iPos = welke van de vier previews moet worden verwijderd
***************************************************************/
function deletePreview(iPos){
	if(confirm('Weet u zeker dat u deze foto wilt verwijderen?')){
		jQuery("#placeholder"+iPos)[0].src = 'images/img-placeholder.gif'; // placeholder plaatje inladen
		jQuery("#placeholderWrap"+iPos+" a").css("display","none"); // verwijder link verstoppen
		jQuery("#afbeelding"+iPos)[0].value = ''; // het hidden field leegmaken

		// hier nog een script om het plaatje echt van de harddisk te verwijderen!
	}
}

/**************************************************************
Plaatje uploaden
***************************************************************/
function addPreview(){

	// Het aantal geplaatste foto's tellen
	iAantal = 0;
	for(i=1; i<=4; i++){
		if(jQuery("#afbeelding"+i)[0].value != '') iAantal++;
	}

	// Controleren of er minder als 4 afbeeldingen zijn geplaatst
	if(iAantal < 4){
		// Alle velden op het formulier "resetten"
		jQuery('#file')[0].value = ''; // file field leegmaken
		jQuery('#response')[0].innerHTML = ''; // Het loader gifje weer uitzetten door de response div leeg te maken
		jQuery('#btnSubmit')[0].disabled = false; // submit knop enablen

		// De upload div tonen
		jQuery("#fotoupload").fadeIn("fast");
	} else {
		alert('Er kunnen maximaal vier foto\'s worden geplaatst. Verwijder eerst een oude foto om een nieuwe te kunnen plaatsten.');
	}
}

/**************************************************************
AJAX IFRAME METHOD (AIM)
http://www.webtoolkit.info/
***************************************************************/
AIM = {

    frame : function(c) {

        var n = 'f' + Math.floor(Math.random() * 99999);
        var d = document.createElement('DIV');
        d.innerHTML = '<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="AIM.loaded(\''+n+'\')"></iframe>';
        document.body.appendChild(d);

        var i = document.getElementById(n);
        if (c && typeof(c.onComplete) == 'function') {
            i.onComplete = c.onComplete;
        }

        return n;
    },

    form : function(f, name) {
        f.setAttribute('target', name);
    },

    submit : function(f, c) {
        AIM.form(f, AIM.frame(c));
        if (c && typeof(c.onStart) == 'function') {
            return c.onStart();
        } else {
            return true;
        }
    },

    loaded : function(id) {
        var i = document.getElementById(id);
        if (i.contentDocument) {
            var d = i.contentDocument;
        } else if (i.contentWindow) {
            var d = i.contentWindow.document;
        } else {
            var d = window.frames[id].document;
        }
        if (d.location.href == "about:blank") {
            return;
        }

        if (typeof(i.onComplete) == 'function') {
            i.onComplete(d.body.innerHTML);
        }
    }

}

/**************************************************************
Zodra er op "opslaan" is geklikt bij de plaatjes upload wordt deze functie aangeroepen
***************************************************************/
function startCallback() {
	jQuery('#btnSubmit')[0].disabled = true; // opslaan knop disablen
	jQuery('#response')[0].innerHTML = '<img src="images/ajax-loader.gif" alt="" />'; // Loading gifje inladen

	return true;
}

/**************************************************************
Zodra de plaatjes upload klaar is wordt deze functie aangeroepen
***************************************************************/
function completeCallback(sJson) {

	jQuery('#response')[0].innerHTML = ''; // Het loader gifje weer uitzetten door de response div leeg te maken
	jQuery('#btnSubmit')[0].disabled = false; // opslaan knop weer enablen

	aJson = eval('(' + sJson + ')');

	// Als het uploaden is gelukt het plaatje op de eerste vrije positie zetten
	if(aJson.iSucces==1){
		for(i=1; i<=4; i++){
			if(jQuery("#afbeelding"+i)[0].value == ''){
				jQuery("#afbeelding"+i)[0].value = aJson.sFileTarget; // in het hidden field het path naar het plaatje zetten
				loadPreview(aJson.sFileTarget, i); // preview van het plaatje inladen
				break;
			}
		}

		jQuery("#fotoupload").fadeOut("fast");

	} else {
		jQuery('#response')[0].innerHTML = aJson.sMsg;
	}
}

/**************************************************************
ajax request op basis van postcode + huisnummer
***************************************************************/
function getStraatPlaats(){

    var postcode = document.getElementById("postcode").value;
    var huisnummer = document.getElementById("huisnummer").value;

	postcode = postcode.toUpperCase();
	postcode = postcode.replace(' ','');
	document.getElementById("postcode").value = postcode;

    if (postcode != "" && postcode.length >= 4 && huisnummer != ""){

		jQuery.get("/ajax/getstraatplaats.php", {postcode: postcode, huisnummer: huisnummer}, function(json){

			var aData = eval(json);

			if (aData.straat && aData.plaats){
				document.getElementById("straat").value = aData.straat;
				document.getElementById("plaats").value = aData.plaats;

			}
		});

    }
}

/**************************************************************
Hits tellen op het openen van pagina's, versturen van formulier enz.
iID: (int) 0 / banner id / formulier id
sObject: (string) omschrijving van het object waarop is geklikt (optin geopend / banner / formulier verzonden)
***************************************************************/
function countHit(iID,sObject){
	jQuery.get("ajax/counthit.php", {iID: iID, sObject: sObject}, function(data){
		//alert(data);
	});
}

/*************************************************************
Lightbox
**************************************************************/
$(function() {
    $('a.lightbox_link').click(function(e) {

        var oModal = $('<div id="lightbox_modal">&nbsp;</div>').prependTo('body');

        e.preventDefault();
        var oLightbox = $('<div id="lightbox" />');
        oLightbox.html($('.lightbox_target[rel='+$(this).attr('rel')+']').html());
        $('body').append(oLightbox);
        var iWidth = oLightbox.width() + 20;
        var iHeight = oLightbox.height() + 30;

        if( iHeight + 20 > $(window).height() ) {
            iHeight = $(window).height() - 20;
            iWidth += 20;
            oLightbox.css('overflow','scroll');
        }
        if( iWidth + 20 > $(window).width() ) {
            iWidth = $(window).width() - 20;
            oLightbox.css('overflow','auto');
        }
        oLightbox.css({
            'width':iWidth,
            'height':iHeight,
            'left':Math.floor(($(window).width()-iWidth)/2),
            'top':Math.floor(($(window).height()-iHeight)/2+$(window).scrollTop())
        });

        var oCloseLink = $('<a id="lightbox_close" href="">SLUITEN&nbsp;&nbsp;<span>x</span></a>');
        oCloseLink.click(function(e) {
            e.preventDefault();
            oLightbox.remove();
            oModal.remove();
        });
        oModal.css('top', $(window).scrollTop());
        oModal.click(function(e) {
            e.preventDefault();
            oLightbox.remove();
            oModal.remove();
        });
        oCloseLink.prependTo(oLightbox);

        oLightbox.prepend();

    });
});