$(document).ready(function() {
	
	/* =============================== BASIC VARS ================================ */
	
	var current_page = location.href;
			
	/* ============================ FOOTER AANPASSING ============================ */
	
	// vars
	var footer_tekst = $('#footer').html();
	var verticale_strepen = 7;
	
	// replacen
	for(i = 1; i <= verticale_strepen; i++) {
		var footer_tekst = footer_tekst.replace(' | ', ' <span>|</span> ');
	}
	
	// content opnieuw vullen
	$('#footer').html(footer_tekst);	
	
	/* ============================== ROUTEPLANNER =============================== */
	
	$('.postcode').click(function() {
		var value = $(this).val();
		
		switch(value) {
			case 'Postcode':
				$(this).val('');
			break;
		}
	});
	
	$('.postcode').blur(function() {
		var value = $(this).val();
		
		switch(value) {
			case '':
				$(this).val('Postcode');
			break;
		}
	});
	
	/* =========================== TOPMENU + SUBMENU ============================= */
	
	$('#topmenu a').mouseover(function() {
		var menu_id = $(this).attr('id');
		
		$('#sub'+menu_id).css('display', 'block');
		$('#sub'+menu_id).css('position', 'absolute');
	});
	
	$('#topmenu a').mouseout(function() {
		var menu_id = $(this).attr('id');
		
		$('#sub'+menu_id).css('display', 'none');
	});
	
	$('#topmenu .submenu').mouseover(function(){
		$(this).css('display', 'block');
	});
	
	$('#topmenu .submenu').mouseout(function(){
		$(this).css('display', 'none');
	});
	
	/* =========================== PORTFOLIO CAROUSEL ============================ */

	if(stristr(current_page, 'portfolio')) {
		
		// carousel inladen
		$('#portfolio').jcarousel();
		
		// als er op een afbeelding geklikt wordt dan....
		$('.portfolio_thumb').click(function() {
			
			// vars
			var portfolio_id = $(this).attr('id');
			
			// ajax aanroepe en de content ophalen
			$.post('ajax/portfolio.php', { portfolio_id: portfolio_id }, function(msg) {
				
				
				if(trim(msg) == '') {
					
					// niets gevonde
					alert('Er ging iets fout bij het uitlezen van dit item.\nProbeer het nogmaals aub..');
					
				}
				else {
				
					// innerHTML vervangen van de div
					$('#content_portfolio').html(msg);
					
				}
				//alert(msg);
			});
			
		});
		
		// hover
		$('.jcarousel-skin-tango .jcarousel-item').mouseover(function() {
			
			// div background geve
			$('#portfolio_small').css('background', '#FFF');
			
			// eerst alle css op origineel zette
			$('.jcarousel-skin-tango .jcarousel-item').css('padding', '1px');
			$('.jcarousel-skin-tango .jcarousel-item').css('background', 'none');
			$('.jcarousel-skin-tango .jcarousel-item').css('border-color', '#B00057');
			
			// css aanpassen
			$(this).css('padding', '1px 1px 25px');
			$(this).css('background', '#FFF');
			$(this).css('border-color', '#FFF');
			
		});
		
		// eerste element al gelijk de juiste css geve
		var getal = 1;
		$('.jcarousel-skin-tango .jcarousel-item').each(function() {
			
			// eerste?
			if(getal == 1) {
				// css aanpassen
				$(this).css('padding', '1px 1px 25px');
				$(this).css('background', '#FFF');
				$(this).css('border-color', '#FFF');
			}
			
			// verhoge
			getal++;
		});

		// bij next en prev click de content verberge en css normaal zette
		$('.jcarousel-next, .jcarousel-prev').click(function() {
			
			// text weghale en background ff wit make
			$('#portfolio_small').html('');
			$('#portfolio_small').css('background', '#FFF');
			
			// css terug naar basic zette
			$('.jcarousel-skin-tango .jcarousel-item').css('padding', '1px');
			$('.jcarousel-skin-tango .jcarousel-item').css('background', 'none');
			$('.jcarousel-skin-tango .jcarousel-item').css('border-color', '#B00057');
			
		});
		
		// bij hover content uitleze
		$('.portfolio_thumb').mouseover(function() {
			
			var portfolio_id = $(this).attr('id');
			
			// content uitlezen
			$.post('ajax/portfolio_small.php', { portfolio_id: portfolio_id }, function(data){
				if(data == 'error') {
					alert('Om onbekende redenen kan de korte omschrijving van dit project niet worden uitgelezen.');
				}
				else {
					$('#portfolio_small').html(data);
				}
			});
			
		});
	}
	
	/* =============================== TAG CLOUDS =============================== */

	// tags cloud
	var tags = $('#tags').html();
	var tags = explode(',', tags);
	
	// vars
	var tag = '';
	var maxwords = 10;
	
	// tag font size geve
	for(var i in tags) {
		if(i <= maxwords) {
			
			if(i == 0) {
				var tag = tag+'<span style="font-size: '+rand(8, 22)+'px;">'+tags[i]+'</span>';
			}
			else {
				var tag = tag+', <span style="font-size: '+rand(8, 22)+'px;">'+tags[i]+'</span>';
			}
		}
	}
	
	// alles met een grotere lettergrootte moet dikgedruk worde
	for(i = 1; i <= maxwords; i++) {
		var tag = tag.replace('21px;"', '15px; font-weight: bold;"');
		var tag = tag.replace('22px;"', '16px; font-weight: bold;"');
	}
	
	// content replace
	$('#tags').html(tag);
	
});

/* =============================== BASIC FUNCTIONS =============================== */

function stristr (haystack, needle, bool) {
    var pos = 0;
    haystack += '';
    pos = haystack.toLowerCase().indexOf( (needle+'').toLowerCase() );    if (pos == -1){
        return false;
    } else{
        if (bool) {
            return haystack.substr( 0, pos );
		}
		else{
            return haystack.slice( pos );
        }
    }
}

function trim(value) {
  value = value.replace(/^\s+/,'');
  value = value.replace(/\s+$/,'');
  return value;
}

function explode (delimiter, string, limit) {
     var emptyArray = { 0: '' };
    
    // third argument is not required
    if ( arguments.length < 2 ||
        typeof arguments[0] == 'undefined' ||        typeof arguments[1] == 'undefined' ) {
        return null;
    }
 
    if ( delimiter === '' ||        delimiter === false ||
        delimiter === null ) {
        return false;
    }
     if ( typeof delimiter == 'function' ||
        typeof delimiter == 'object' ||
        typeof string == 'function' ||
        typeof string == 'object' ) {
        return emptyArray;    }
 
    if ( delimiter === true ) {
        delimiter = '1';
    }    
    if (!limit) {
        return string.toString().split(delimiter.toString());
    } else {
        // support for limit argument        var splitted = string.toString().split(delimiter.toString());
        var partA = splitted.splice(0, limit - 1);
        var partB = splitted.join(delimiter.toString());
        partA.push(partB);
        return partA;    }
}

function rand (min, max) {
    var argc = arguments.length;
    if (argc === 0) {
        min = 0;
        max = 2147483647;    } else if (argc === 1) {
        throw new Error('Warning: rand() expects exactly 2 parameters, 1 given');
    }
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
