$(document).ready(function(){

	var eigenlint;
	updateCounter();
	var koorid, progid, thisTable, colHeads, colNum, thisColNum, thisChoirName, thisTime, thisAddress, thisDay, thisDayTime, popup, x, y; 

	try{
		// lightBox:													 
		$("a[rel*=lightbox]").lightBox();
	} catch(err){ }
	
	
	try{
		if(!$.browser.msie){
			var bw = $("div.w2").css('width').replace('px','');
			var thumbs = $("#thumbs img");
			thumbs.each(function(){
				var iw = $(this).css('width').replace('px','');
				var io = Math.round((iw-bw)/2);
				if(io != 0){
					$(this).css('margin-left', (-io)+'px');
				}
			});
		} 
	} catch(err) { }

	// programma:
	$("div.programma").scroll(function(){
		$("#progpopup").hide();
	});

	$("td.koor").click(function(){
		$("#selectedChoir").removeAttr("id");
		$(this).attr('id', 'selectedChoir');
		koorid = getIDfromClass($("#selectedChoir").attr('class'), 'koor');
		progid = getIDfromClass($("#selectedChoir").attr('class'), 'prog');
		thisTable = $("#selectedChoir").closest("table");
		colHeads = thisTable.find("th[scope='col']");
		colNum = colHeads.length;
		thisColNum = thisTable.find("tr td").index(this) % colNum;
		thisChoirName = $("#selectedChoir").text();
		thisDay = thisTable.attr("id");
		thisTime = thisTable.find("th[scope='col']:eq("+thisColNum+")").text();
		thisDayTime = thisDay+', '+thisTime+' uur';
		thisAddress = $("#selectedChoir").parent("tr").find("th").text()+"<br />"+$("#selectedChoir").parent("tr").find("th").attr("title");
		popup = $("#progpopup");
		x = $("#selectedChoir").offset().left + 8;
		y = $("#selectedChoir").offset().top + 14;
		popup.hide();

		// vul popup met tekst:
		var dataArray = [thisChoirName, thisAddress, thisDayTime, progid, koorid, x, y];
		$("#activeData").val(dataArray.join("|"));
		updatePopup();
	});	
	
	$("#addtolist").click(function(){
		var elint = getCookie('eigenlint');
		var dataStr = $("#activeData").val();	
		var dataArr = dataStr.split("|");
		if(elint != null && elint != ''){
			elint+=','+dataArr[3];
			elint = filterList(elint);
		} else {
			elint = dataArr[3];
		}

		if($.browser.msie){
			$("#progpopup").hide();
		} else {
			$("#progpopup p.action").text("Optreden toevoegen...").removeClass("hide").animate({opacity:1}, 1500).animate({opacity:0}, 300).parents("#progpopup").animate({opacity:1},1500).hide("slow");
		}
		setCookie('eigenlint', elint, setCookieEnd(1));
		updateCounter();
		$("#selectedChoir").removeAttr("id");
	});

	$("#progpopup a.close").click(function(){
		$("#progpopup").hide("slow");
	});

	// kaartje google maps even hoog maken als legenda die ernaast staat:
	try{
		var legendaHeight = $("#legenda").height() + 6;	
		var heightDiff = legendaHeight - $(".gm").height();
		var gmMarginTop = Number($(".gm img").css("margin-top").replace('px', ''));
		$(".gm").height(legendaHeight).find("a img").css("margin-top", gmMarginTop+heightDiff);
	} catch(err) {}
	
	
	// playlist op profielpagina
	$("#playlist tr[class*=prog] a").click(function(){
		var id = getIDfromClass($(this).parents("tr").attr('class'), 'prog');
		var elintx = getCookie('eigenlint');
		if(elintx != null && elintx != ''){
			elintx +=','+id;
			elintx = filterList(elintx);
		} else {
			elintx = id;
		}
		setCookie('eigenlint', elintx, setCookieEnd(1));
		updateCounter();
	});

	// tablesorter
	try{
		$.tablesorter.defaults.widgets = ['zebra'];
		$("table.zebra").tablesorter({
			headers:{
				2:{sorter: false }
			},
			sortColumn: 0,
			sortClassAsc: 'sortUp',
			sortClassDesc: 'sortDown',
			headerClass: 'header',
			stripingRowClass: ['even','odd'],
			stripeRowsOnStartUp: true
		});
	} catch(err){ }

	// validatie sendafriend
	try{
		var sum = Math.sqrt(6084);//1369
		$("#submit").click(function(){
			$("#sum").val(sum);
		});
		$("#sendafriend").validate({
			errorLabelContainer: $("#sendafriend div.error"),
			rules:{
				yourname:"required",
				yourmail:{ required:true, email:true },
				friendname:"required",
				friendmail:{ required:true, email:true }
			},
			messages:{
				yourname:"Vul uw naam in",
				yourmail:{ required:"Vul uw e-mailadres in", email:"Vul een geldig e-mailadres in" },
				friendname:"Vul de naam van uw vriend(in) in",
				friendmail:{ required:"Vul het e-mailadres van uw vriend(in) in", email:"Vul een geldig e-mailadres in" }
			}
		});
	} catch(err){ }
	
	// validatie contactformulier
	try{
		jQuery.validator.addMethod("phoneNL", function(value, element) {
			return this.optional(element) || /^-?(?:[0]{1}[1-9]{1,3}[\s\-]{0,3}[1-9]{1}[0-9]{5,8})?$/.test(value);
		}, "Vul een geldig telefoonnummer in");
		
		var sum = Math.sqrt(6084);
		var dt = new Date();
		$("#submit").click(function(){
			$("#sum").val(sum);
			$("#datum").val(formatDateTime(dt));
		});
		$("#contact_form").validate({
			errorLabelContainer: $("div.error ul"),
			errorElement:"li",
			rules:{
				naam:"required",
				email:{
					required:true,
					email:true
				},
				tel:{
					phoneNL:true
				},
				onderwerp:"required",
				bericht:"required"
			},
			messages:{
				naam:"Vul uw naam in",
				email:{
					required:"Vul uw e-mailadres in",
					email:"Vul een geldig e-mailadres in"
				},
				tel:{
					phoneNL:"Vul een geldig telefoonnummer in"
				},
				onderwerp:"Vul een onderwerp voor uw bericht in",
				bericht:"Typ uw bericht"
			}
		});
		
		// validatie gastenboekformulier
		$("#guestbook_form").validate({
			errorLabelContainer:$("div.error ul"),
			errorElement:"li",
			rules:{
				naam:"required",
				email:{
					required:true,
					email:true
				},
				onderwerp:"required",
				bericht:"required"
			},
			messages:{
				naam:"Vul uw naam in",
				email:{
					required:"Vul uw e-mailadres in",
					email:"Vul een geldig e-mailadres in"
				},
				onderwerp:"Vul een onderwerp voor uw bericht in",
				bericht:"Typ uw bericht"
			}
		});
	} catch(err){ }

	var timingproblems = $("td.red").add("td.orange");
	if(timingproblems.length > 0){
		$("div.warning").removeClass("hide");
	} else {
		$("div.warning").addClass("hide");
	}
	
	// custom mail address
	try{
		$("span.mail span").each(function(){
			var mailData = $(this).attr('class').split(' ');
			var mailStr = mailData[0]+String.fromCharCode(8*8)+mailData[1];
			$(this).parent("span.mail").html('<a href="mailto:'+mailStr+'">'+mailStr+'</a>');
		});
	} catch(err) { }
	
	
	// fotopagina navigatie
	$("#photos0").show();
	$("ul.photonav li:has(a)").click(function(){
		var index = $("ul.photonav li").index(this);
		$(this).siblings().removeClass('current');
		$(this).addClass('current');
		showPage(index-1);
	});
		
	
});

function formatDateTime(input){
	var month = prefix(input.getMonth(),9)+(input.getMonth()+1);
	var day = prefix(input.getDate(), 10)+input.getDate();
	var hours = prefix(input.getHours(), 10)+input.getHours();
	var minutes = prefix(input.getMinutes(),10)+input.getMinutes();
	var seconds = prefix(input.getSeconds(),10)+input.getSeconds();
	var output = input.getFullYear()+'-'+month+'-'+day+' '+hours+':'+minutes+':'+seconds;	
	return output;
}

function prefix(n, maxValue){
	var output = String(n < maxValue ? "0" : "");
	return output;
}

function writeMailAddress(weergave){
	var links = "post";
	var verbinding = String.fromCharCode(8*8);
	var rechts = "korenlint.nl";
	var compleet = links + verbinding + rechts;
	var args = writeMailAddress.arguments.length;
	if(args == 0){
		weergaveTxt = compleet;
	} else {
		weergaveTxt = weergave;
	}
	document.write("<a href=mailto:" + compleet + ">" + weergaveTxt + "</a>");
}

function writeCustomMailAddress(input1, input2)
{
	var conn = String.fromCharCode(8*8);
	var output = input1+conn+input2;
	document.write("<a href=mailto:" + output + ">" + output + "</a>");
}

function getIDfromClass(classes, name){
	var classes = classes.split(' ');
	var len = name.length;
	var id;
	for(var i = 0; i < classes.length; i++){
		if(classes[i].indexOf(name) == 0){
			id = classes[i].substr(len);
		}
	}
	return id;
}

function updatePopup(){
	var dataStr = $("#activeData").val();
	var dataArr = dataStr.split("|");
	$("#progpopup h4").text(dataArr[0]);
	$("#progpopup span.locatie").html(dataArr[1]);
	$("#progpopup span.tijd").text(dataArr[2]);
	$("#progpopup").show().animate({'left':dataArr[5], 'top':dataArr[6]}, 'slow');
	$("#progpopup p.action").addClass("hide").css({opacity:1});
	$("#toprofile").children("a").attr("href", "/profiel/"+dataArr[4]+"/");
}

function setCookie(c_name, value, cookiesEnd){
	document.cookie=c_name+"="+escape(value)+";expires="+cookiesEnd+";path=/";
}

function getCookie(c_name){
	if (document.cookie.length > 0){
		c_start = document.cookie.indexOf(c_name + "=");
		if (c_start != -1){
			c_start = c_start + c_name.length + 1;
			c_end = document.cookie.indexOf(";",c_start);
			if (c_end == -1) c_end = document.cookie.length;
			return unescape(document.cookie.substring(c_start,c_end));
		}
	}
	return "";
}

function removeFromCookie(n){
	var c = getCookie('eigenlint');
	var c_arr = c.split(",");
	var newcookie;
	var expires;
	
	for(var i = c_arr.length - 1; i >=0; i--){
		if(c_arr[i] == n){
			c_arr.splice(i, 1);
		}
	}

	if(c_arr.length > 1){
		newcookie = c_arr.join(",");
		expires = setCookieEnd(1);
	} else if(c_arr.length == 1){
		newcookie = c_arr[0];
		expires = setCookieEnd(1);
	} else {
		newcookie = '';
		expires = setCookieEnd(-1);
	}
	setCookie('eigenlint', newcookie, expires);
	top.updateCounter();
}

function filterList(str){
	var arr = str.split(",");
	arr.sort();
	for(var i=arr.length-1; i>=0; i--){
		if(i < arr.length-1){
			if(arr[i] == arr[i+1]){
				arr.splice(i,1);
			}
		}
	}
	return arr.join(",");
}

function updateCounter(){
	var ml = getCookie('eigenlint');
	var n = 0;
	if(ml != null && ml != ''){
		n = ml.split(",").length;
	}
	$("#eigenlint").text(String(n));
}

function setCookieEnd(n){
	var now = new Date();
	var expires = new Date(now.getTime()+n*180*86400*1000);
	return expires.toGMTString();
}

function submitForm(formname){
	$("#"+formname).submit();
}

function showPage(n){
	//console.log('showPage '+n);
	$("div[id^=photos]").hide();
	$("div[id=photos"+n+"]").show();
}