function str_replace(search, replace, subject, count) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
    // +   improved by: Philip Peterson
    // +   improved by: Simon Willison (http://simonwillison.net)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   bugfixed by: Anton Ongson
    // +      input by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    tweaked by: Onno Marsman
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   input by: Oleg Eremeev
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Oleg Eremeev
    // %          note 1: The count parameter must be passed as a string in order
    // %          note 1:  to find a global variable in which the result will be given
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'
 
    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }
 
    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    return sa ? s : s[0];
}

// Voor de check input's van de database tabellen
function markhover(elementid, returnclass){
	
	// Wanneer het elemend checked = true bevat
	if(document.getElementById('domain' + elementid + '').checked == true){
		
		document.getElementById('domain' + elementid + '').checked = false;
		document.getElementById('domainrow' + elementid + '').className = returnclass;
		
	// Wanneer het elemend checked = false bevat
	} else if(document.getElementById('domain' + elementid + '').checked == false){
		
		document.getElementById('domain' + elementid + '').checked = true;
		document.getElementById('domainrow' + elementid + '').className = 'marked';
	}
	
}

// Selecteerd alle checkboxen van een database tabel
function selectall(){
	
	// Alle HTML ophalen uit de #database div
	var row = 0;
	var databasehtml = document.getElementById('database').getElementsByTagName('input');
	
	// Alle inputs voorzien van een checked = true
	while(row < databasehtml.length){
		
		databasehtml[row].checked = true;
		var rowid = str_replace('domain', 'domainrow', databasehtml[row].id);

		document.getElementById(rowid).className = 'marked';
		row++;
	}
}

// Deselecteerd alle checkboxen van een database tabel
function deselectall(){
	
	// Alle HTML ophalen uit de #database div
	var row = 0;
	var databasehtml = document.getElementById('database').getElementsByTagName('input');
	
	// Alle inputs voorzien van een checked = false
	while(row < databasehtml.length){
		
		databasehtml[row].checked = false;
		
		var rowid = str_replace('domain', 'domainrow', databasehtml[row].id);
		
		
		document.getElementById(rowid).className = document.getElementById(rowid).title;
		document.className = databasehtml[row].title;
		row++;
	}
}

// Brengt je naar een algemene locatie
function locatie(url){
	window.location.href = url;	
}

// Zorgt ervoor dat er maar één keer geklikt kan worden
var klik = 0;
function klikken() {
	if(klik > 0) {
		alert("U hebt al een keer geklikt, heb even geduld.\nHet versturen van dit formulier kan even duren");
		return false;
	} else {
		klik++
		return true;
	}
}

// Zorgt ervoor dat het formulier verdwijnt
function multiadd(){
	
	// Formulier verbergen
	document.getElementById('form').className = 'hidden';
	
	// Ajax loading weergeven
	document.getElementById('loading').className = 'view';
}

// Ajax functies
var xmlhttp=false;
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
	try {
		xmlhttp = new XMLHttpRequest();
	} catch (e) {
		xmlhttp=false;
	}
}
if (!xmlhttp && window.createRequest) {
	try {
		xmlhttp = window.createRequest();
	} catch (e) {
		xmlhttp=false;
	}
}

// Haalt de nieuwe laadtijd op van de pagina
function newloadtime(id){
	
	// Ajax loading in de td's pleuren
	document.getElementById('rowtime' + id + '').innerHTML = '<p align="center"><img src="/template/v1/images/icons/loadtimeloader.gif" alt="Ajax Loading" /></p>';
	document.getElementById('rowdatum' + id + '').innerHTML = '<p align="center"><img src="/template/v1/images/icons/loadtimeloader.gif" alt="Ajax Loading" /></p>';
	
	// Request script
	var url = '/ajax/ajax_newloadtime.php?id=' + id + '';
		
		// HTTPRequest
		xmlhttp.open("GET", "" + url + "",true);
		xmlhttp.onreadystatechange=function() {
		if(xmlhttp.readyState==4){
			document.getElementById('rowtime' + id + '').innerHTML = xmlhttp.responseText;
			document.getElementById('rowdatum' + id + '').innerHTML = 'vandaag';
		}
		}
		xmlhttp.send(null);
}