$(document).ready(function(){
	Visit(0, $("#pageid").html());	
	LaatsteBerichten();
	
	$(".ajaxform").each(
		function(index)
		{
			$(this).attr("action", "ajax/sendform/" + $(this).attr('id')); 
			$(this).ajaxForm({ 
				dataType: 'xml',
				success: processXml 
			}); 
			$(this).append('<input type="hidden" name="formname" id="formname" value="' + $(this).attr('id') + '">');
		}
	);
	$("input[class*=searchbox]").keyup(function(event){
		CheckField($(this));
	});
	$("input[type=checkbox]").click(function(){
		$("input[class*=searchbox]").keyup();
	});
	function CheckField(elm)
	{
		var searchtxt = trim(elm.val().toLowerCase());
		$("div[class*=" + elm.attr('id') + "] > div").each(function(i){
			var txt = '';
			txt = $(this).text();
			txt = txt.toLowerCase();
			if (!strpos(txt, searchtxt)&&searchtxt)
			{
				$(this).hide();
			} else {
				$(this).show();
			}
			if ($(this).children('input').is(':checked'))
			{
				$(this).show();
			}
		});
	}
});

function strpos (haystack, needle, offset) {
    var i = (haystack+'').indexOf(needle, (offset ? offset : 0));
    return i === -1 ? false : i;
}
function trim(value) {
  value = value.replace(/^\s+/,'');
  value = value.replace(/\s+$/,'');
  return value;
}

function Visit(getcode, page)
{
	var code = getcode;
	$("#aantal_mensen").load("ajax/mensen/" + Unique() + "/");
	$.ajax({
		type: "GET",
		url: "ajax/visit/" + code + "/" + page + "/" + Unique() + "/",
		success: function(msg)
		{
			if (!getcode) code = msg;
			var d = new Date();
			//setTimeout("Visit('" + code + "', '" + page + "');", 5000);
		}
	});
}

function processXml(responseXML) { 
	// 'responseXML' is the XML document returned by the server; we use 
	// jQuery to extract the content of the message node from the XML doc
	var formname = $('formname', responseXML).text(); 
	var message = $('message', responseXML).text();
	$("#" + formname + " :input").each(
		function(index)
		{
			// recover all elements
			if ($(this).attr('type')=="text"||$(this).attr('type')=="password")
			{
				$(this).animate({ backgroundColor: "#FFFFFF" }, 500);
			}
		}
	);
	$("textarea").animate({ backgroundColor: "#FFFFFF" }, 500);
	$("#" + formname + " span[class*=error]").html("<br />");
	var errors = $('errors', responseXML).text();
	var index = 0;
	var msg = "";
	var x = "";
	var key = "";
	var val = "";
	var elm = "";
	var elmname = "";
	jQuery.each(errors.split(";"),
		function()
		{
			msg = (errors.split(";")[index]);
			x = msg.split("=");
			key = x[0];
			val = x[1];
			elm = $("span[class*=" + key + "]");
			if (val) elm.html(val);
			elmname = "input[name=" + key + "]";
			txt = "textarea";
			if ($(elmname).attr('type')=="text"||$(elmname).attr('type')=="password")
			{
				$(elmname).animate({ backgroundColor: "#FFFBBB" }, 500);
			}
			if ($(txt).attr('name')==key)
			{
				$(txt).animate({ backgroundColor: "#FFFBBB" }, 500);
			}
			index++;
		}
	);
	if (index==1)
	{
		// no errors!
		if (formname=='reactie')
		{
			if ($("#lid").val())
			{
				$.ajax({
				type: "GET",
				url: "ajax/numberreacties/" + $("#pid").val() + "/",
				success: function(msg)
				{
					$(".reacties_edit").load("ajax/reacties/" + $("#pid").val() + "/" + Unique() + "/");
					$("#reacties").val("Reacties (" + msg + ")");
				}
				});
			} else {
				$('#comments').load('ajax/comments/' + $('pid', responseXML).text() + '/');
			}
		}
		if (formname=='nieuwe_artiest')
		{
			LoadArtists();
		}
		if (formname=='nieuw_genre')
		{
			LoadGenres();
		}
		if (formname=='nieuw_foto')
		{
			Loadphotos();
		}
		if (formname=='nieuw_video')
		{
			Loadvideos();
		}
		if (formname=='nieuw_evenement')
		{
			LoadEvents();
		}
		if (formname=='nieuw_lijst')
		{
			LoadLists();
		}
		if (formname=='nieuw_song')
		{
			LoadSongs();
		}
		if ($('hide_form', responseXML).text())
		{
			$("#" + formname).hide();
		}
		var elm = $("span[class*=" + formname + "][class*=result]");
		var x = $('message', responseXML).text();
		if (x)
		{
			elm.fadeIn(1);
			elm.html(x);
		}
		var x = $('redirect', responseXML).text();
		if (x)
		{
			window.location = x;
		}
		var x = $('fadeout_result', responseXML).text();
		if (x)
		{
			elm.fadeOut(3000);
		}
	}
}

function loadsecondmenu(elm)
{
	try
	{
		$.ajax({
			type: "GET",
			url: "ajax/set_button/" + elm.id + "/",
			success: function(msg)
			{
				var url = "ajax/topmenu/" + escape(elm.value.replace(/'/g, ''));
				if (elm.id) url = "ajax/topmenu/" + elm.id;
				$("#second_topmenu").load(url);
			}
		});
	} 
	catch(err)
	{
		// nothing
	}
}

function nav(url)
{
	if (url!="") window.location = url;
}

function check(elm, script)
{
	$.ajax({
		type: "GET",
		url: "ajax/quickcheck/" + script + "/" + encodeURIComponent(elm.value) + "/",
		success: function(msg)
		{
			elm.value = msg;
		}
	});
}

function AddCat(cat, name)
{
	$.ajax({
		type: "GET",
		url: "ajax/addcat/" + encodeURIComponent(cat) + "/" + encodeURIComponent(name) + "/",
		success: function(msg)
		{
			$("#catlist").load("ajax/getcatlist/");
		}
	});
}

function RemoveCat(cat)
{
	$.ajax({
		type: "GET",
		url: "ajax/removecat/" + encodeURIComponent(cat) + "/",
		success: function(msg)
		{
			$("#catlist").load("ajax/getcatlist/");
		}
	});
}
function setMain(elmid)
{
	$("input[class*=topmenubutton]").css('background-color', '#F0F0F0');
	$("#" + elmid).css('background-color', '#BBBBBB');
}
function EditCat(cat, naam)
{
	var naamnieuw = prompt("Welke titel moet deze categorie krijgen?", naam);
	$.ajax({
		type: "GET",
		url: "ajax/editcat/" + encodeURIComponent(cat) + "/" + encodeURIComponent(naamnieuw) + "/",
		success: function(msg)
		{
			$("#catlist").load("ajax/getcatlist/");
		}
	});
}

function reloadbrowserview(id, path, dbl, sortable, maximum)
{
	$("#browserview_" + id).load("ajax/browser/" + id + "/" + path + "/" + dbl + "/" + sortable + "/" + maximum + "/");
}

function deleteComment(rid, pid)
{
	$.ajax({
		type: "GET",
		url: "ajax/deletecomment/" + rid + "/" + Unique() + "/",
		success: function(msg)
		{
			$.ajax({
				type: "GET",
				url: "ajax/numberreacties/" + pid + "/",
				success: function(msg)
				{
					$(".reacties_edit").load("ajax/reacties/" + pid + "/" + Unique() + "/");
					$("#reacties").val("Reacties (" + msg + ")");
					$("#comments").load("ajax/viewajaxcomments");
				}
			});
		}
	});
}

function deleteAllComments(pid)
{
	$.ajax({
		type: "GET",
		url: "ajax/deleteallcomments/" + pid + "/" + Unique() + "/",
		success: function(msg)
		{
			$.ajax({
				type: "GET",
				url: "ajax/numberreacties/" + pid + "/",
				success: function(msg)
				{
					$(".reacties_edit").load("ajax/reacties/" + pid + "/" + Unique() + "/");
					$("#reacties").val("Reacties (" + msg + ")");
				}
			});
		}
	});
}

function allowreactions(cb, pid)
{
	var urlstr = "ajax/allowcomments/" + pid + "/" + $(cb).is(':checked') + "/" + Unique() + "/";
	var x = $(cb).is(':checked');
	$.ajax({
		type: "GET",
		url: urlstr,
		success: function(msg)
		{
			if (x==false)
			{
				$("#reacties").val("Reacties (uit)");
			} else {
				$.ajax({
					type: "GET",
					url: "ajax/numberreacties/" + pid + "/",
					success: function(msg)
					{
						$(".reacties_edit").load("ajax/reacties/" + pid + "/" + Unique() + "/");
						$("#reacties").val("Reacties (" + msg + ")");
					}
				});
			}
		}
	});
}

function MenuHandler(action, el, pos)
{
	if (action=="insert")
	{
		filedoubleclick($(el).attr('rel').split("_")[1]);
		var done = 1;
	}
	if (action=="edit_name")
	{
		$.ajax({
			type: "POST",
			url: 'ajax/getname',
			cache: false,
			data: ({id: $(el).attr('rel')}),
			success: function(msg){
				jPrompt('Welk naam moet dit bestand krijgen?', msg, 'Bestandsbeheer', function(r) {
					if( r ) SendData({selected_action: action, file: $(el).attr('rel'), value: r});
				});
			}
		});
		var done = 1;
	}
	if (action=="new_folder")
	{
		jPrompt('Welke naam moet deze nieuwe map krijgen?', 'Nieuwe map', 'Bestandsbeheer', function(newname) {
			if (newname) SendData({selected_action: action, file: $(el).attr('rel'), value: newname, root: o.root});
		});
		var done = 1;
	}
	if (!done)
	{
		SendData({selected_action: action, file: $(el).attr('rel')});
	}
}

function doit(txt){
  return base64_encode(txt);
}

function undoit(txt){
  return base64_decode(txt);
}

function base64_encode (data) {
    // Encodes string using MIME base64 algorithm  
    // 
    // version: 908.406
    // discuss at: http://phpjs.org/functions/base64_encode
    // +   original by: Tyler Akins (http://rumkin.com)
    // +   improved by: Bayron Guevara
    // +   improved by: Thunder.m
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Pellentesque Malesuada
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // -    depends on: utf8_encode
    // *     example 1: base64_encode('Kevin van Zonneveld');
    // *     returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='
    // mozilla has this native
    // - but breaks in 2.0.0.12!
    //if (typeof this.window['atob'] == 'function') {
    //    return atob(data);
    //}
        
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc="", tmp_arr = [];

    if (!data) {
        return data;
    }
    
    do { // pack three octets into four hexets
        o1 = data.charCodeAt(i++);
        o2 = data.charCodeAt(i++);
        o3 = data.charCodeAt(i++);

        bits = o1<<16 | o2<<8 | o3;

        h1 = bits>>18 & 0x3f;
        h2 = bits>>12 & 0x3f;
        h3 = bits>>6 & 0x3f;
        h4 = bits & 0x3f;

        // use hexets to index into b64, and append result to encoded string
        tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);
    
    enc = tmp_arr.join('');
    
    switch (data.length % 3) {
        case 1:
            enc = enc.slice(0, -2) + '==';
        break;
        case 2:
            enc = enc.slice(0, -1) + '=';
        break;
    }

    return enc;
}

function base64_decode (data) {
    // Decodes string using MIME base64 algorithm  
    // 
    // version: 908.406
    // discuss at: http://phpjs.org/functions/base64_decode
    // +   original by: Tyler Akins (http://rumkin.com)
    // +   improved by: Thunder.m
    // +      input by: Aman Gupta
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman
    // +   bugfixed by: Pellentesque Malesuada
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // -    depends on: utf8_decode
    // *     example 1: base64_decode('S2V2aW4gdmFuIFpvbm5ldmVsZA==');
    // *     returns 1: 'Kevin van Zonneveld'
    // mozilla has this native
    // - but breaks in 2.0.0.12!
    //if (typeof this.window['btoa'] == 'function') {
    //    return btoa(data);
    //}

    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, dec = "", tmp_arr = [];

    if (!data) {
        return data;
    }

    data += '';

    do {  // unpack four hexets into three octets using index points in b64
        h1 = b64.indexOf(data.charAt(i++));
        h2 = b64.indexOf(data.charAt(i++));
        h3 = b64.indexOf(data.charAt(i++));
        h4 = b64.indexOf(data.charAt(i++));

        bits = h1<<18 | h2<<12 | h3<<6 | h4;

        o1 = bits>>16 & 0xff;
        o2 = bits>>8 & 0xff;
        o3 = bits & 0xff;

        if (h3 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1);
        } else if (h4 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1, o2);
        } else {
            tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
        }
    } while (i < data.length);

    dec = tmp_arr.join('');

    return dec;
}
var markers = new Array();
var infos = new Array();
var ids = new Array();
function gotoAdres(map, adres, callback)
{
	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(adres, function(point) {
		map.setCenter(point, 15);
		callback(point);
	});
}
function gotoPoint(map, point)
{
	map.setCenter(point, 15);
}
function SetUp(map)
{
	map.setMapType(G_HYBRID_MAP);
	map.setUIToDefault();
}
function removePoint(map, marker)
{
	if(marker)
	{
		map.removeOverlay(marker);
	} 
}
function addInfo(map, point, info, id, openstandaard, callback, callback2)
{
	var marker = new GMarker(point);
	map.addOverlay(marker);
	markers[point] = marker;
	infos[point] = marker;
	GEvent.addListener(marker, "click", function() {
		displayInfo(marker, info);
		callback2(id);
	});
	GEvent.addListener(marker, "dblclick", function() {
		callback(id);
	});
	if (openstandaard==1)
	{
		displayInfo(marker, info);
	}
	ids[marker] = id;
	return marker;
}
function displayInfo(marker, info)
{
	marker.openInfoWindowHtml(info);
}
function createMap(code)
{
	if (code!="")
	{
		var map = new GMap2(document.getElementById("map_" + code));
	} else {
		var map = new GMap2(document.getElementById("map"));
	}
	return map;
}
function LaatsteBerichten()
{
	$("#laatste_berichten").load("ajax/laatsteberichten/" + Unique() + "/", {x:25}, function(){
		setTimeout('LaatsteBerichten();', 20000);																				 
	});
}