// Expander JS

$(document).ready(function() {

	/***** ADVERTISING *****/
	expandersState = false;
	$('#expander-header').click( function(event) {
		if (expandersState == false) {
			event.preventDefault();
			$('#expander-body').slideDown();
			$('#expander-menu.sector').slideDown();
			var target = $('#expander-menu.sector a:first-child').attr('rel');
			loadContent(target);
			$('#expander-menu li').removeClass('highlight');
			$('#expander-menu.sector li:first-child').addClass('highlight');
			$('#expander-header').addClass('highlight');
			expandersState = true;
		} else {
			$('#expander-body #close').click();
			expandersState = false;
		}
	});
	$('#expander-menu a').click( function(event) {
		event.preventDefault();
		$('#expander-menu li').removeClass('highlight');
		$(this).parent().addClass('highlight');
		var target = $(this).attr('rel');
		loadContent(target);
	});
	$('#expander-body #close').click( function(event) {
		event.preventDefault();
		$('#expander-menu.sector').slideUp();
		$('#expander-body').slideUp();
		$('#expander-header').removeClass('highlight');
	});	
	function loadContent(target) {
		$('#expander-content-container').load('/expanders/'+target+'/');
	}

	/***** SERVICE *****/
	var printTarget = $('#print .service-nav a:first-child').attr('rel');
	$('#print .service-nav li:first-child').addClass('highlight');
	loadPrintContent(printTarget);
	$('#print .service-nav a').click( function(event) {
		event.preventDefault();
		$('#print .service-nav li').removeClass('highlight');
		$(this).parent().addClass('highlight');
		var printTarget = $(this).attr('rel');
		loadPrintContent(printTarget);
	});
	function loadPrintContent(printTarget) {
		$('#print-content').load('/services/'+printTarget+'/');
	}
	
	var digitalTarget = $('#digitaal .service-nav a:first-child').attr('rel');
	$('#digitaal .service-nav li:first-child').addClass('highlight');
	loadDigitalContent(digitalTarget);
	$('#digitaal .service-nav a').click( function(event) {
		event.preventDefault();
		$('#digitaal .service-nav li').removeClass('highlight');
		$(this).parent().addClass('highlight');
		var digitalTarget = $(this).attr('rel');
		loadDigitalContent(digitalTarget);
	});
	function loadDigitalContent(digitalTarget) {
		$('#digitaal-content').load('/services/'+digitalTarget+'/');
	}
	
	var overigTarget = $('#overig .service-nav a:first-child').attr('rel');
	$('#overig .service-nav li:first-child').addClass('highlight');
	loadoverigContent(overigTarget);
	$('#overig .service-nav a').click( function(event) {
		event.preventDefault();
		$('#overig .service-nav li').removeClass('highlight');
		$(this).parent().addClass('highlight');
		var overigTarget = $(this).attr('rel');
		loadoverigContent(overigTarget);
	});
	function loadoverigContent(overigTarget) {
		$('#overig-content').load('/services/'+overigTarget+'/');
	}
	
	
	
	/***** DAYS COUNTDOWN *****/
	today = new Date()
	var moving = new Date(2012, 11, 12) //Month is 0-11 in JavaScript
	//Set 1 day in milliseconds
	var one_day=1000*60*60*24
	$('#count-down h2').html('NRC Media gaat verhuizen over:<br>'+ Math.ceil((moving.getTime()-today.getTime())/(one_day)) +' dagen');
	
	
	/***** CURRENT DATE *****/
	var days	= ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'];
	var months	= ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'];
	var d = new Date();
	var curr_date = d.getDate();
	var curr_month = months[d.getMonth()]; //months are zero based
	var curr_dayname = days[d.getDay()];
	
	// Fill the element
	var href = $('#home-block-uitgeefkalender  .item-image a').attr("href");
	//alert(href);
	$('#home-block-uitgeefkalender  .item-image').append('<a href="' + href + '"><div id="kalender-date"><div id="curr-month">' +  curr_month + '</div><div id="curr-day">' + curr_dayname + '</div><div id="curr-date">' + curr_date + '</div></div></a>');

	
	/***** LOGIN FORM *****/
	$('#login_form button').click( function(event) {
		if ( $('#login_form').is('.show') ) {
			// Do nothing
		} else {
			event.preventDefault();
			$('#login_form').animate({ width: '230px'}, 500, unlockLoginForm );			
		}
	});
	function unlockLoginForm() {
		$('#login_form').addClass('show');
	}
	
	$('.formerror.show').prev().find('input').css('background-color', '#FFBBBB');
	
	
	if (!$.support.placeholder) { 
	
		// CLICKCLEAR: clears input of value
		$(".jClickClear").click(function(event) {
			$(this).val('');
			$(this).blur(function() {
				if ($(this).val() == '') {
					$(this).val($(this).attr('title'));
				}
			});
		});
		$(".jClickClear").parents('form:first').submit( function() {
			$(".jClickClear").each( function() {
				if ($(this).val() == $(this).attr('title')) {
					$(this).val('');
				} 
			});
		});
		$(".jClickClear").each( function(element) {
			if ($(this).val() == '') {
				$(this).val($(this).attr('title'));
			} 
		});	
	
	
	}	
	
	
	/***** PORTFOLIO *****/
	if ($('#showkaternen').exists()) {
		$('a#showkaternen').click( function(event) {
			event.preventDefault();
			$('#katernen').slideToggle();
		});
		
		var currentUrl = document.location.href;
		if (currentUrl.indexOf('katernen=open') >= 0) {
			$('#katernen').show();
		}
	}


	/***** FACT FORM *****/
	if ($('#factsTable').exists()) {
		
		// Edit cell
		$('#factsTable .data').click( function() {
			$(this).fadeOut('fast', function() { 
				$(this).next().fadeIn('fast').find('input').focus();
				if ($(this).parent().hasClass('icon')) {
					var selector = $('#iconSelector');
					$(this).parent().append(selector);
					$('#iconSelector').slideDown('fast');
				}
				
			});
		});
		
		// Save cell
		$('#factsTable .save').click(saveData);
		$('#factsTable .form input').keyup( function(e) {
			if(e.keyCode == 13) {
				$(this).next().click();
			}
		});
		$('#factsTable .form input').blur( function(e) {
			$(this).next().click();
		});
		
		// Set icon name
		$('#iconSelector img').click( function() {
			var name = $(this).attr('src');
			name = basename(name);
			$(this).parent().parent().find('input').val(name).next().click();
			$(this).parent().slideUp('fast');
		});
		
		// Delete data
		$('#factsTable .delete').click(deleteData);
		
		// Move data up
		$('#factsTable .up').click(moveDataUp);
		
		// Move data down
		$('#factsTable .down').click(moveDataDown);
		
	}
	
	function saveData(element) {

		var inputField = $(this).prev();
		var formCell = $(this).parent();
		var dataCell = $(this).parent().prev();
		var dataType = $(this).parent().parent().hasClass('icon');

		$.post(
			'/save/', 
			{ action: 'save', value: $(inputField).val(), id: $(inputField).attr('id') },
			saveDataSuccess, 
			'text'
		);

		function saveDataSuccess(data) {
			if (data != '[FAIL]') {
				
				if (dataType) {
					dataCell.html('<img src="/wp-content/themes/nrc-media/images/icons-facts/'+data+'" alt="" />');
				} else {
					dataCell.html(data);
				}
				
				$(formCell).fadeOut('fast', function() { 
					var color = $(dataCell).parent().css('background-color');
					$(dataCell).fadeIn('fast');
					$(dataCell).parent().animate({ backgroundColor: '#99CC66' }, 300, function() {
						$(dataCell).parent().animate({ backgroundColor: color }, 300);
					});
				});
			} else {
				
				$(formCell).fadeOut('fast', function() { 
					var color = $(dataCell).parent().css('background-color');
					$(dataCell).fadeIn('fast');
					$(dataCell).parent().animate({ backgroundColor: '#FF0000' }, 300, function() {
						$(dataCell).parent().animate({ backgroundColor: color }, 2000);
					});
				});				
			}
		}
		
	}
	
	
	function deleteData(element) {
		var button	= $(this);
		var dataRow	= $(this).parent();
		
		var id 		= dataRow.attr('target');

		$.post(
			'/save/', 
			{ action: 'delete', id: id },
			deleteDataSuccess, 
			'text'
		);

		function deleteDataSuccess(data) {
			if (data == '[DONE]') {
				$(dataRow).fadeOut('fast');
				if ($(dataRow).prev().is('h2')) { 
					$(dataRow).prev().fadeOut('fast');
				}
			} else {
				var color = button.css('background-color');
				button.animate({ backgroundColor: '#FF0000' }, 300, function() {
					button.animate({ backgroundColor: color }, 2000);
				});			
			}
		}
	
	}	
	
	
	function moveDataUp(element) {
		var button	= $(this);
		var dataRow	= $(this).parent();
		
		var id 		= dataRow.attr('target');

		$.post(
			'/save/', 
			{ action: 'up', id: id },
			moveDataUpSuccess, 
			'text'
		);

		function moveDataUpSuccess(data) {
			if (data == '[DONE]') {
				$(dataRow).after($(dataRow).prev());
				var color = button.css('background-color');
				button.animate({ backgroundColor: '#99CC66' }, 300, function() {
					button.animate({ backgroundColor: color }, 2000);
				});	
			} else {
				var color = button.css('background-color');
				button.animate({ backgroundColor: '#FF0000' }, 300, function() {
					button.animate({ backgroundColor: color }, 2000);
				});			
			}
		}
	
	}
	
	
	function moveDataDown(element) {
		var button	= $(this);
		var dataRow	= $(this).parent();
		
		var id 		= dataRow.attr('target');

		$.post(
			'/save/', 
			{ action: 'down', id: id },
			moveDataDownSuccess, 
			'text'
		);

		function moveDataDownSuccess(data) {
			if (data == '[DONE]') {
				$(dataRow).before($(dataRow).next());
				var color = button.css('background-color');
				button.animate({ backgroundColor: '#99CC66' }, 300, function() {
					button.animate({ backgroundColor: color }, 2000);
				});	
			} else {
				var color = button.css('background-color');
				button.animate({ backgroundColor: '#FF0000' }, 300, function() {
					button.animate({ backgroundColor: color }, 2000);
				});			
			}
		}
	
	}
	
}); 

// Basename
function basename(path) {
	return path.replace(/\\/g,'/').replace( /.*\//, '' );
}

// Small exists plugin
jQuery.fn.exists = function() {
	return this.length > 0;
}
// Check for HTML 5 placeholder support
jQuery.support.placeholder = (function(){
    var i = document.createElement('input');
    return 'placeholder' in i;
})();

