$(document).ready(

	function()
	{

			$(".lightbox").lightbox();

			initExternalLinks();
			initMailtoLinks();
         initHrefArrows();
			initAccordions();
			initDetailAccordions();
			initFileLinks();
			
			initExpandables();
			
			initNewsTicker();
			initViewstacks();
			
			initActionCalls();
			
			initPlayer();	
			
			initPopups();
			
			initDetailItems();
			initAboutItem();
			
			// stemmen op stelling
			$('#eens').click(function(){
				statementForm('eens');
			});
			$('#oneens').click(function(){
				statementForm('oneens');
			});
			
			$('#trefwoord').click(function() {
				$(this).val('');			
			});
			$('#zoek').click(function() {
				var searchterm = $('#trefwoord').val();
				//forward
				window.location.href = '/page/zoek/' + searchterm;		
			});
				
			loadMap();
		
    }	

);

function initFileLinks()
{
	$("a[@href$='.pdf']").addClass("pdf");
	$("a[@href$='.doc']").addClass("doc");
}

function showBanner()
{
	ord=Math.random()*10000000000000000;
	document.write('<script language="JavaScript" src="http://ad.nl.doubleclick.net/adj/nova.nl/;tile=1;dcopt=ist;sz=120x600;ord=' + ord + '?" type="text/javascript"><\/script>');
}

function openWindow(pad,naam,breed,hoog)
{
	var top  = ( (screen.height/2)-(hoog/2) );
	var left = ( (screen.width/2)-(breed/2) );
	window.open(pad, naam, "width=" + breed + ",height=" + hoog +", top=" + top + "px, left=" + left + "px, toolbar=no,location=no,directories=no,status=0,resizable=no,scrollbars=no,menubar=no");
}

function initPopups() 
{
	$("a.popup").each(
		function(i)
		{
			$(this).click(
				
				function()
				{
					var poplink = $(this).attr('href');
									
					openWindow(poplink, i, 980, 600);	
					
					return false;
				}
			);
			
		}
	);
}

function gotoSearch() {

	var searchterm = $('#trefwoord').val();
	//forward
	window.location.href = '/page/zoek/' + searchterm;	
	return false;
}

// huidige url inclusief /page/
function baseURL() {
	var getURL = location.href;
	var getURL = getURL.split('/');
	var getURL = getURL[0]+'//'+getURL[2]+'/'+getURL[3]+'/';
	return getURL;
}

// huidige url exclusief /page/
function baseURLnoPage() {
	var getURL = location.href;
	var getURL = getURL.split('/');
	var getURL = getURL[0]+'//'+getURL[2]+'/';
	return getURL;
}

function initExternalLinks()
{
	//$("a[rel='external']").attr( { target: "_blank" } );
	
	var h = window.location.host.toLowerCase();
	
	$("a[@href^='http']:not([@href^='http://" + h + "']):not([@href^='http://www." + h + "']), a[@href$='.pdf']").attr("target","_blank");
	
}

function initMailtoLinks()
{
	$("a[rel='mail']").each(
	
		function()
		{
			var href = $(this).attr('href');
			$(this).attr( 'href', "mailto:" + replace( href, "[at]", "@") );		
		
		}
	);
	
}

function initHrefArrows()
{
	// met css niet echt makkelijk te plaatsen maar toch liever geen decoratieve images direct in de html
	
	var arrows = $("<img></img>").attr({src: "/static/images/arrow_double.gif" });
	var quoteArrows = $("<img></img>").attr({src: "/static/images/arrows_quote.gif" });
	
	
	$("p.arrows").each(
		function()
		{
			$(this).append( arrows.clone() );
		}
	);
	$("p.quote-arrows").each(
		function()
		{
			$(this).append( quoteArrows.clone() );
		}
	);
}

function initAccordions()
{
	/* alle accordion lists op de pagina door loopen en unieke id toewijzen */
	$(".accordion").each(
		
		function(i)
		{
			var id = "accordion" + i;
			
			$(this).attr({ id: id });
			
			/*
				vanuit de toegewezen id behaviours toewijzen
				die alleen op de betreffende accordion van toepassing zijn
				zodat accordion0 niet inklapt als je in accordion1 een panel opent
			*/
			
			id = "#" + id;
			
			/*
				als het een 'random' accordion is er random 1 open zetten
				anders alleen de eerste
			*/
			
			if ( $(this).hasClass("random") )
			{
				var numPanels = $( id + " ul").size();
				
				$( id + " ul").hide();
				
				var random = Math.floor( Math.random() * numPanels );
				
				$( id + " ul:eq(" + random + ")").show();
				
				
				/*
					classes toewijzen ivm layout (uitgeklapt/ingeklapt)
				*/
				$( id + " .button").addClass('collapsed');
				
				//$( id + " .button:eq(" + random + ")").removeClass('collapsed');
			
			} else {
			
				$( id + " ul:gt(0)").hide();
				
				
				/*
					classes toewijzen ivm layout (uitgeklapt/ingeklapt)
				*/
				$( id + " .button:gt(0)").addClass('collapsed');
				
			
			}
			
			/*
				alle list items (behalve de 1e) die een direct child zijn van de root ul class panel geven
			*/
				
			$( id + ">li:gt(0)").addClass("panel");
			
			$( id + " .button:first").addClass('first');
			
			/*
				elke laatste link binnen elke ul klasse last geven ivm witruimte onderin
			*/
			$( id + " ul").each(
				
				function()
				{
					$(this).find("a:last").addClass("last");
				}
			);
			
			
			/*
				button behaviour
				

				- zichzelf openen wanneer niet geopend
				- huidige geopende sluiten
				- classes switchen ivm layout
			*/
			
			

			$( id + " .button").click(
			
				function()
				{			
					if( $(this).is(".collapsed") )
					{	
						$( id + " .button").addClass('collapsed');
						
						$( id + " ul:visible").slideUp("slow");
						
						$(this).next().slideDown('slow');
						
						$(this).removeClass("collapsed");
					}
					return false;
				}			
			);	
		}	
	);
}

function initAboutItem()
{
	var itembox = $('.detail-bio .detail-bio-text');
	$(itembox).find("a.readmore").click(function(e) {

		if($(this).hasClass('open')) {
			$(itembox).find("p.extratext").slideUp("normal");
			$(itembox).find("p.extratext").addClass('hidden');
			$(this).removeClass('open');
			$(this).html('lees meer >');
		}
		else
		{
			$(itembox).find("p.extratext").slideDown("normal");
			$(itembox).find("p.extratext").removeClass('hidden');
			$(this).addClass('open');
			$(this).html('< sluit');
		}
		
		e.preventDefault();
	});
	
	
}



function initDetailItems()
{	
	$(".detail-items").each(
		
		function(i)
		{
			var detailcontainer = this.id;

			$('#' + detailcontainer + ' .detail-item .detail-item-text').each(

				function(j)
				{
					var itemid = $(this);
					
					$(this).find("a.readmore").click(function(e) {

						if($(this).hasClass('open')) {
							(itemid).find("p.extratext").slideUp("normal");
							(itemid).find("p.extratext").addClass('hidden');
							$(this).removeClass('open');
							$(this).html('lees meer >');
						}
						else
						{
							(itemid).find("p.extratext").slideDown("normal");
							(itemid).find("p.extratext").removeClass('hidden');
							$(this).addClass('open');
							$(this).html('< sluit');
						}
						
						e.preventDefault();
					});
					
				}
				
				
			);
		
		}
	);

}






/* accordions detail pagina */
function initDetailAccordions()
{
	/* alle accordion lists op de pagina door loopen en unieke id toewijzen */
	$(".detail_accordion").each(
		
		function(i)
		{
			var id = "detail_accordion" + i;
			
			$(this).attr({ id: id });
			
			/*
				vanuit de toegewezen id behaviours toewijzen
				die alleen op de betreffende accordion van toepassing zijn
				zodat accordion0 niet inklapt als je in accordion1 een panel opent
			*/
			
			id = "#" + id;
			
			
			/*
				alle list items (behalve de 1e) die een direct child zijn van de root ul class panel geven
			*/
			$( id + ">li:gt(0)").addClass("panel");
			
			
			/*
				elke laatste link binnen elke ul klasse last geven ivm witruimte onderin
			*/
			$( id + " ul").each(
				
				function()
				{
					$(this).find("a:last").addClass("last");
				}
			);
			
			
			/*
				button behaviour
				

				- zichzelf openen wanneer niet geopend
				- huidige geopende sluiten
				- classes switchen ivm layout
			*/

			/* klass toewijzen als er over een item gehoverd wordt */
			$(id + " li").hover(
				function () {
					$(this).addClass('active');
				},
				function () {
					$(this).removeClass('active');
				}
			);

			$( id + " .button").click(

				function() {			
				
					var clearQueue = true;
					var gotoEnd = true;

					if( $(this).is(".collapsed") ) {	
						$( id + " .active ul").stop(clearQueue, gotoEnd).slideDown("slow");
						$(this).removeClass("collapsed");
					} else {
						$( id + " .active ul").stop(clearQueue, gotoEnd).slideUp("slow");
						$(this).addClass('collapsed');
					}
					return false;
				}		
			);	
		}	
	);
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function ReadCookie(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 initActionCalls()
{
	$(".action-call").each(
		
		function()
		{
			$(this).mouseover(
				function()
				{
					$(this).addClass("over");
				}
			);
			
			$(this).mouseout(
				function()
				{
					$(this).removeClass("over");
				}
			);
			
			var link = $(this).find("a").attr("href") || false;
			
			if ( link )
			{
				$(this).click(
				
					function()
					{
						document.location = link;
					}
				);
			}
		}		
	);
}


function initViewstacks()
{
	/*
		.viewstack
			.tabs
				li -> .view
				li -> .view
				li -> .view			
		
	*/
	
	var tabs = $(".viewstack .tabs li");
	$(".viewstack .view:gt(0)").hide();
	
	tabs.each(
		
		function(i)
		{
			$(this).click(
			
				function()
				{
					$(".viewstack .tabs .active").removeClass("active");
					
					$(this).addClass("active");
					
					$(".viewstack .view").hide();
					$(".viewstack .view:eq(" + i + ")").show();
				}
			);
		}
	);
}

function initNewsTicker()
{	
	$('.news-ticker').cycle(
		{
			fx: "scrollUp",
			timeout: 5000,
			delay: -2000
		}
	);
	
}

function replace( str, naald, vervanging)
{
	return str.split(naald).join(vervanging);
}

function initExpandables()
{
	var activeClass = "active";
	
	/* in en uitklappen */
	
	/*
		alle .expander links op de pagina doorloopen
	*/
	$(".expander").each(
		
		function()
		{
			var link = $(this).find("a");
			
			/*
				rel attribuut van de link bevat id van de bijbehorende expandable
			*/
			var rel = link.attr("rel");
			
			/*
				het stukje dat na 'meer/minder' komt opslaan
				
				! 'meer/minder' moet ook niet in de html gezet worden
			*/
			var defaultLabel = link.text();
			
			/*
				in eerste instantie 'meer'
			*/
			link.text("Meer " + defaultLabel);
			
			
			/*
				expressie om de bijbehorende expandable te vinden
				
				matchen op naam en category id
			*/
			
			var baseExpression = "div[id^='" + rel + "']";
			
			
			/*
				alle rows behalve de eerste binnen de expandable verbergen				
			*/
			$( baseExpression + " .row:gt(0)").hide();
			
			
			
			var hidden = true;
			
			link.click(
			
				function()
				{
					if( hidden )
					{
						/*
							als rows die verborgen zijn uitklappen
						*/
						$( baseExpression + " .row:gt(0)").slideDown();
						
						/*
							label en uiterlijk van de expand-button aanpassen
						*/
						$(this).text("Minder " + defaultLabel);						
						$(this).addClass( activeClass );
						
						hidden = false;
						
					} else {
						
						/*
							als rows die zichtbaar zijn dichtklappen
						*/
						$( baseExpression + " .row:gt(0)").slideUp();
						
						/*
							label en uiterlijk van de expand-button aanpassen
						*/
						
						$(this).text("Meer " + defaultLabel);						
						$(this).removeClass( activeClass );
						
						hidden = true;
					}
					
					return false;
				}
			);			
		}
	);
}

function initPlayer() 
{
	
			
			
	$('.hentry a.player').click(function() {
		$('.hentry a.player').remove();
		$('.hentry #mediaplayer').removeClass('hidden');
		//alert('ok');
	});
}

// stelling form
function statementForm(vote) { 

	var argument_id = $('#argument_id').val();
	var CurPage = document.location.href.split("/");
	var CurPage = CurPage[4];
	var randomNumber = Math.floor(Math.random()*11);

	$.ajax({
		type: "POST",
		url: baseURLnoPage() + "page/ajax/submit_argument/"+randomNumber,
		data: {vote:vote, argument_id:argument_id},
		dataType: "data",

			success: function(data) {

				var part = data.split("|");
				if (part[0] != 1) {
				
					if (CurPage == "home") {
						$('.nova-statement p.onderbouwingen').replaceWith("<p class=\"onderbouwingen\">" + part[0] + "</p>");
					} else if (CurPage == "detailreacties") {
						$('.nova-statement #statement').append("<p class=\"onderbouwingen\">" + part[0] + "</p>");
					}
				
				} else {
					$('#resultnumbers #agree').replaceWith("<span id=\"agree\">Eens "+ part[1] +"(" + part[3] + ")</span>");
					$('#resultnumbers #notagree').replaceWith("<span id=\"notagree\">Oneens "+ part[2] +"(" + part[4] + ")</span>");
					$('#result #resultbar').replaceWith("<div id=\"resultbar\" style=\"width: " + part[3] + ";\"></div>");
					$(".nova-statement:eq(0)").hide();
					$(".nova-statement:eq(1)").show();					
					createCookie('lastVote_'+argument_id, argument_id, '90');
				}

			}
	});

}


function loadMap()
{
    var mapTarget = document.getElementById("map");

    if ( mapTarget )
    {
        if ( GBrowserIsCompatible() )
        {
            var a = mapTarget.getElementsByTagName("a");
       
            if ( a[0] )
            {
                var mapData = a[0].rel.split("~");
       
                if ( mapData.length == 3 )
                {
                    var lat = parseFloat(mapData[0]);
                    var lon = parseFloat(mapData[1]);
                    var zoom = parseInt(mapData[2]);
               
                    var gmap = new GMap2( mapTarget );
           
                    var center = new GLatLng( lat, lon );
                    gmap.setCenter(center, zoom );
           
                    var pointer = new GIcon();
                    pointer.image = "/static/images/mappointer.png";
                    pointer.iconSize = new GSize(38, 35);
                    pointer.iconAnchor = new GPoint(14, 30);
                    pointer.infoWindowAnchor = new GPoint(5, 1);
               
                    gmap.addOverlay( new GMarker( center , pointer ) );
                }
            }
        }
    }
}  

// tijdelijke functie om homepage blokje togglen..
function initDemoViews()
{
	$(".temporaryClass:gt(0)").hide();
	
	
	var ul = $("<ul></ul>");
	
	$(".temporaryClass").each(
		
		function(i)
		{
			var li = $("<li></li>");
			var a = $("<a></a>");
			a.attr({ href: "#" });
			
			a.text( "home 1.0." + (i+1));
			
			li.append(a);
			ul.append(li);
			
			a.click(
				
				function()
				{
					$("#demo a").removeClass('selected');
					$(this).addClass('selected');
					$(".temporaryClass").hide();
					
					$(".temporaryClass:eq(" + i + ")").show();
					
				
					return false;
				}			
			);			
		}	
	);
	
	$("#demo").append(ul);

}

