$(document).ready( function() {
	$.backstretch("/img/bg2.jpg", {speed:700});
	$("#autocomplete").autoSuggest('/functions/request.php', {
		minChars: 2, 
		selectionLimit:1, 
		selectedValuesProp: 'id', 
		startText: 'Songtitel of artiest', 
		emptyText: 'Geen resultaten', 
		limitText: 'Max. 1 request',
		selectionAdded: function(elem){
			var idNr = $('.as-original .as-values').attr('value');
			var selectedId = idNr.substr(0,idNr.length-1);
			var selectedTrack = $('.as-selections .as-selection-item').text().substr(1);
			requestThis(selectedId,selectedTrack);
		}
	});
	$('#slider').nivoSlider({
			effect: 'fold', // Specify sets like: 'fold,fade,sliceDown'
		        slices: 15, // For slice animations
		        animSpeed: 700, // Slide transition speed
		        pauseTime: 5000, // How long each slide will show
		        directionNav: false, // Next & Prev navigation
		        directionNavHide: false, // Only show on hover
		        controlNav: false, // 1,2,3... navigation
		        keyboardNav: true, // Use left & right arrows
		        pauseOnHover: true, // Stop animation while hovering
		        manualAdvance: false // Force manual transitions
		});
		
		$('.sponsorSlider').nivoSlider({
			effect: 'fade', // Specify sets like: 'fold,fade,sliceDown'
		        animSpeed: 700, // Slide transition speed
		        pauseTime: 5000, // How long each slide will show
		        directionNav: false, // Next & Prev navigation
		        controlNav: false, // 1,2,3... navigation
		        keyboardNav: true, // Use left & right arrows
		        pauseOnHover: true, // Stop animation while hovering
		        manualAdvance: false // Force manual transitions
		});
	
	
	$('#contactform .required').blur(function(){
		if($(this).val() !== ''){
			var inputVal = $(this).val();
			var inputId = $(this).attr('id');
			$(this).removeClass('correct').addClass('error');
			if(inputId==='email'){
				var regExMail = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
				if(!regExMail.test(inputVal)){ return false; }
			} else if(inputId==='phone' || inputId==='fax'){
				var regExPhone = /^((((0031)|(\+31))(\-)?6(\-)?[0-9]{8})|(06(\-)?[0-9]{8})|(((0031)|(\+31))(\-)?[1-9]{1}(([0-9](\-)?[0-9]{7})|([0-9]{2}(\-)?[0-9]{6})))|([0]{1}[1-9]{1}(([0-9](\-)?[0-9]{7})|([0-9]{2}(\-)?[0-9]{6}))))$/;
				if(!regExPhone.test(inputVal)){ return false; }
			} else if(inputId==='postcode'){
				var regExPostcode = /^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/;
				if(!regExPostcode.test(inputVal)){ return false; }
			} else if(inputId==='huisnummer'){
				var regExHuisnummer = /^([0-9]){1,}([A-Z]){0,3}/;
				if(!regExHuisnummer.test(inputVal)){ return false; }
			} else {}
			$(this).removeClass('error').addClass('correct');
		} else {
			$(this).removeClass('correct').addClass('error');
		}
	});

// Contact submit
	$("#contactsubmit").click( function() {
		var allRequiredFilled = 'check';
		$('#contactform .required').each( function() {
			if($(this).val()==='') {
				$(this).removeClass('correct').addClass('error');
				allRequiredFilled = 'error';
			}
		});
		if($('#contactform .error').length > 0 || allRequiredFilled === 'error' || $('#contactform #checkbox.verplicht').length > 0 && $('#contactform #checkbox.verplicht').attr('checked')!=='checked') {
			if($('#contactform #checkbox.verplicht').length > 0 && $('#contactform #checkbox.verplicht').attr('checked')!=='checked'){
				$('label[for="checkbox"]').addClass('error');
				$('#contactform #checkbox.verplicht').click(function(){
					if ($(this).is(':checked')){
						$('label[for="checkbox"]').removeClass('error');
						$(this).removeClass('error').addClass('correct');
					}
				});
			} else {
				$('label[for="checkbox"]').removeClass('error');
			}
		} else {
			$('#contactform .loading').show();
			var values = $("#contactformulier").serialize();
			$.ajax({
				url: '/formprocess.php?submit=true',
				type: 'POST',
				data: values,

				success: function(result) {
					$('#contactform').append('<p id="response">' + result + '</p>');
					$('#response').hide();
					$('#contactformulier').fadeOut('normal', function() {
						$('#response').fadeIn('normal');
					});
				}
			});
		}
		return false;
	});
	appendNowPlaying();
	appendTrackBarData();
});

function requestThis(id,trackTitle){
	popOver('open',400,475,'/functions/requestMessage.php?q=' + trackTitle + '&id=' + id + '','iframe');
}

function streamLinks(){
	popOver('open',400,475,'/streamLinks.php','iframe');
}

function appendNowPlaying() {
	$.getJSON('/functions/nowplaying.php', function(nowplaying){
		for(i in nowplaying){
			if(i== 0){} else {
				if( nowplaying[i].likes > '99'){
					nowplaying[i].likes = '99+';
				}
				if( nowplaying[i].dislikes > '99'){
					nowplaying[i].dislikes = '99+';
				}
			// check if itemID has changed, if yes, change 
				if($('.nowPlaying .trackBar:eq(' + (i-1) + ')').attr('rel') != nowplaying[i].id){
					$('.nowPlaying .trackBar:eq(' + (i-1) + ')')
							.attr({'rel':nowplaying[i].id,'likes':nowplaying[i].likes,'dislikes':nowplaying[i].dislikes})
							.find('.trackTitle').empty().append(nowplaying[i].title);
					$('.nowPlaying .trackBar:eq(' + (i-1) + ') .trackArtist')
							.empty().append(nowplaying[i].artist);
				   }
				   updateLikes($('.nowPlaying .trackBar:eq(' + (i-1) + ')'));
			}
		}
	});
	setTimeout('appendNowPlaying()',5000);
}

function updateLikes(obj){
	var likes = $(obj).attr('likes');
	$(obj).find('.likeText').text(likes);
}
function popOver(action,width,height,url,data){
	if(action==='close'){
		$('#overlayContainer').fadeOut('normal',function(){
			$('#overlay').fadeOut();
			$('#overlayContainer').empty();
		});
	} else if(action==='open'){
		$('#overlayContainer').css({'width':width,'height':height,'margin-left':-(width/2),'margin-top':-(height/2)});
		if(url==='' && data !== ''){
			$('#overlayContainer').html(data);
		} else if(url!=='' && data === 'iframe'){
			$('#overlayContainer').html('<iframe src="' + url + '" width="' + width + '" height="' + height + '" frameborder="0"></iframe><div id="overlayClose" onclick="popOver(\'close\')">&times; Sluiten</div>"');
		}
		$('#overlay').fadeIn('normal',function(){
			$('#overlayContainer').fadeIn();
		});
		$('#overlay').click(function(){
			popOver('close');
		});
	} else if(action==='popup'){
		 window.open(url,'','toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=' + width + ',height=' + height + ',left=400,top=150');
	}
}

function appendTrackBarData(val){
	var html = '';
	html = html + '<div class="trackBarOverlay transition">';
	html = html + '<div class="trackBarToggle">&laquo;</div>';
	html = html + '<span class="trackButtons">';
	html = html + '<div class="originalButtons">';
	html = html + '<a href="javascript:void(0);" onclick="trackButtonActions(this,\'youtube\');" class="trackButtonIcon youtube"></a>';
	html = html + '<a href="javascript:void(0);" onclick="trackButtonActions(this,\'buy\');" class="trackButton buy">Kopen</a>';
	html = html + '<a href="javascript:void(0);" onclick="trackButtonActions(this,\'share\');" class="trackButton share">Delen</a>';
	html = html + '<a href="javascript:void(0);" onclick="trackButtonActions(this,\'like\');" class="trackButton like"><span class="licon"></span><span class="likeText">Like</span></a>';
	html = html + '</div>';
	html = html + '<div class="shareButtons">';
	html = html + '<a href="javascript:void(0);" onclick="trackButtonActions(this,\'hyves\');" class="trackButtonIcon hyves"></a>';
	html = html + '<a href="javascript:void(0);" onclick="trackButtonActions(this,\'linkedin\');" class="trackButtonIcon linkedin"></a>';
	html = html + '<a href="javascript:void(0);" onclick="trackButtonActions(this,\'twitter\');" class="trackButtonIcon twitter"></a>';
	html = html + '<a href="javascript:void(0);" onclick="trackButtonActions(this,\'facebook\');" class="trackButtonIcon facebook"></a>';
	html = html + '<a href="javascript:void(0);" onclick="trackButtonActions(this,\'back\');" class="trackButtonIcon back"></a>';
	html = html + '</div>';
	html = html + '<div class="buyButtons">';
	html = html + '<a href="javascript:void(0);" onclick="trackButtonActions(this,\'bol\');" class="trackButtonIcon bol"></a>';
	html = html + '<a href="javascript:void(0);" onclick="trackButtonActions(this,\'itunes\');" class="trackButtonIcon itunes"></a>';
	// html = html + '<a href="javascript:void(0);" onclick="trackButtonActions(this,\'amazon\');" class="trackButtonIcon amazon"></a>';
	html = html + '<a href="javascript:void(0);" onclick="trackButtonActions(this,\'back\');" class="trackButtonIcon back"></a>';
	html = html + '</div>';
	html = html + '</span>';
	html = html + '</div>';
	
	if(val == '' || val == null || val == undefined){ val = ''; }
	else { val = val + ' ';}
	$(val + '.trackBar').each(function(){
		$(this).append(html);
		updateLikes(this);
	});
	$(val + '.trackBar').hover(function(){
		$(this).find('.trackBarOverlay').stop(true,true).animate({'right':'0px'},350);
	}, function(){
		$(this).find('.trackBarOverlay').stop(true,true).animate({'right':'-248px'},350);
	});
}

function trackButtonActions(elem,action,id){
	if(action != 'share' && action != 'buy' && action != 'back'){
		var tracktitle = $(elem).closest('.trackBar').find('.trackTitle').text();
		var artist = $(elem).closest('.trackBar').find('.trackArtist').text();
		var rel = $(elem).closest('.trackBar').attr('rel');
	}
	var fbUrl = 'http://profm.nl/track/' + artist + ' - ' + tracktitle;
	var shareText = 'I\'ve heard this song on Pro FM! ';
	if(action==='share' || action==='buy'){
		$(elem).parent().fadeOut('normal',function(){
			$(elem).parent().parent().find('.' + action + 'Buttons').fadeIn('fast');
		});
	} else if(action==='back'){
		$(elem).parent().fadeOut('normal',function(){
			$(elem).parent().parent().find('.originalButtons').fadeIn('fast');
		});
	} else if(action==='youtube'){
		var keyword = encodeURIComponent(artist + ' - ' + tracktitle);
        	var yt_url='http://gdata.youtube.com/feeds/api/videos?q='+keyword+'&format=5&max-results=1&v=2&alt=jsonc';
		$.ajax({
			type : "GET",
			url : yt_url,
			dataType : "jsonp",
			success : function(response) {
				if(response.data.totalItems != 0) {
					$.each(response.data.items, function(i, data) {
						var video_id = data.id;
						var url = 'http://www.youtube.com/embed/' + video_id + '?autoplay=1&fmt=22&rel=0';
						popOver('open',500,369, url,'iframe');
					});
				} else {
					var htmlcode = '<div class="overlay_msg">This song could not be found</div>';
					popOver('open',500,200,'',htmlcode);
				}
			}
		});
	} else if(action==='facebook'){
		var url = 'http://www.facebook.com/sharer.php?u=' + fbUrl;
		popOver('popup',650,350,url);
	} else if(action==='twitter'){
		var url = 'http://twitter.com/share?text=' + shareText + artist + ' - ' + tracktitle;
		popOver('popup',540,250,url);
	} else if(action==='hyves'){
		var url = 'http://www.hyves-share.nl/button/combo/?tipcategoryid=3&title=' + artist + ' - ' + tracktitle + '&body=' + fbUrl;
		popOver('popup',540,620,url);
	} else if(action==='linkedin'){
		var url = 'http://www.linkedin.com/shareArticle?mini=true&url=' + fbUrl + '&title=' + artist + ' - ' + tracktitle + '&source=Social Radio Facebook Player';
		popOver('popup',580,380,url);
	} else if(action==='itunes'){
		var keyword = encodeURIComponent(artist + ' - ' + tracktitle);
		$.getJSON('http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/wsSearch?term=' + keyword + '&limit=5&callback=?', function(json) {
			var htmlcode = '';
			if(json.resultCount != '0') {
				$.each(json.results, function(i, data) {
					htmlcode = htmlcode + '<div class="searchResult" onclick="window.open(\'' + json.results[i].trackViewUrl + '\')"><img src="' + json.results[i].artworkUrl60 + '" /><strong>' + json.results[i].artistName + '</strong>' + json.results[i].trackName + '<br /><a href="' + json.results[i].trackViewUrl + '" target="_blank">View in Store</a></div>';
				});
			} else {
				htmlcode = '<div class="overlay_msg">This song could not be found</div>';
			}
			popOver('open',400,305,'',htmlcode);
		});
	} else if(action==='bol'){
		 var url = 'http://www.bol.com/nl/s/muziek/zoekresultaten/Ntt/' + tracktitle + '|' + artist + '|POP/Nty/1/search/true/searchType/adv/section/music/N/3132/Ntk/music_songtitle|music_artist|PDT_TYP_CODE/';
		 window.open(url);
	} else if(action==='beatport'){
		var url = 'http://api.beatport.com/catalog/search?v=2.0&format=json&query=' + artist + ' - ' + tracktitle + '&perPage=5&page=1';
		$.getJSON('/proxy.php?url=' + escape(url),function(data){
				alert(data.results[0].result[1]);
				return false;
			if(data.metadata.count != 0){
				for(result in data.metadata.results.result[1].id){
					alert('result');
				}
			} else {
				alert('error');
				htmlcode = '<div class="overlay_msg">This song could not be found</div>';
			}
		});
	} else if(action==='like'){
		$.post('/functions/liker.php', { "id": rel, "act": 'like' }, function(data){
			if(data > '99'){
				var data = "99+";
			}
			$(elem).removeClass('like').addClass('liked').attr('onclick','').find('.likeText').text(data);
		   });
	}
}

function insertPlaylist(val){
	$.getJSON('/functions/playlist.php?hour=' + val, function(data){
		var half = (data.playlist.length / 2);
		for(i in data.playlist){
			var appendPl = '<div class="trackBar" rel="' + data.playlist[i].id + '" likes="' + data.playlist[i].likes + '" dislikes="' + data.playlist[i].dislikes + '">';
			var appendPl = appendPl + '<span class="chart_number bluegradient">' + (([i]*1)+1) + '</span>';
			var appendPl = appendPl + '<span class="trackBarRight">';
			var appendPl = appendPl + '<span class="trackArtist">' + data.playlist[i].artist + '</span>';
			var appendPl = appendPl + '<span class="strong trackTitle">' + data.playlist[i].title + '</span>';
			var appendPl = appendPl + '</span>';
			var appendPl = appendPl + '</div>';
			if ( i < half ){
				$('.overview_page .track_bars .column_one').append(appendPl);
			} else {
				$('.overview_page .track_bars .column_two').append(appendPl);
			}
		}
		$('.loadimg').fadeOut();
		$('.overview_page').attr('rel',val);
		$('span.playlist_time').text(val + ':00 - ' + (val+1) + ':00');
		appendTrackBarData('.column');
	});
}

function changePlaylist(val) {
	var currentHour = $('.overview_page').attr('rel');
	$('.column_one,.column_two').empty();
	$('.loadimg').show();
	if(val == 'next') {
		if(currentHour == 23) {
			var nextHour = 0;
		} else {
			var nextHour = currentHour * 1 + 1;
		}
		insertPlaylist(nextHour);
	} else if(val == 'prev') {
		if(currentHour == 0) {
			var prevHour = 23;
		} else {
			var prevHour = currentHour * 1 - 1;
		}
		insertPlaylist(prevHour);
	}
}


function requestPage(val) {
	var currentPage = $('.column_one').attr('page');
	if(val == 'next') {
		var showPage = (currentPage * 1) + 1;
	} else if(val == 'prev') {
		var showPage = (currentPage * 1) - 1;
		if(showPage < 0) {
			var showPage = 0;
		}
	} else if((parseInt(val)) > -1) {
		var showPage = val;
	}
	$('.loadimg').show();
	$.get('/functions/requestoverview.php?show=20&page=' + showPage, function(data) {
		$('.request_bars').html(data);
		$('.loadimg').hide();
		appendRequestPager();
	});
}

function appendRequestPager() {
	var cP = $('.column_one').attr('page');
	var nrOfItems = $('.trackBar:first').attr('name');
	var pages = Math.ceil(nrOfItems / 20);
	var html = "";
	if(cP > 0){
		html = html + "<a onclick=\"requestPage('prev');\">Vorige</a>";
	} if(cP == 3){
		html = html + "<a onclick=\"requestPage(0);\">1</a>";
	} if(cP > 3){
		html = html + "<a onclick=\"requestPage(0);\">1..</a>";
	} if(cP > 1){
		html = html + "<a onclick=\"requestPage(" + (cP * 1 - 2) + ");\">" + (cP * 1 - 1) + "</a>";
	} if(cP > 0){
		html = html + "<a onclick=\"requestPage(" + (cP * 1 - 1) + ");\">" + cP + "</a>";
	}
	html = html + "<a style=\"color:black;font-weight:bold\" onclick=\"requestPage(" + cP + ");\">" + (cP * 1 + 1) + "</a>";
	if(cP * 1 + 2 == pages || cP * 1+2 < pages){
		html = html + "<a onclick=\"requestPage(" + (cP * 1 + 1) + ");\">" + (cP * 1 + 2) + "</a>";
	} if(cP * 1 + 3 == pages || cP * 1+3 < pages){
		html = html + "<a onclick=\"requestPage(" + (cP * 1 + 2) + ");\">" + (cP * 1 + 3) + "</a>";
	} if(cP <= 1 && cP * 1 + 4 == pages || cP <= 1 && cP * 1+4 < pages){
		html = html + "<a onclick=\"requestPage(" + (cP * 1 + 3) + ");\">" + (cP * 1 + 4) + "</a>";
	} if(cP == 0 && cP * 1 + 5 == pages || cP == 0 && cP * 1+5 < pages){
		html = html + "<a onclick=\"requestPage(" + (cP * 1 + 4) + ");\">" + (cP * 1 + 5) + "</a>";
	}
	var html = html + "<a onclick=\"requestPage('next');\">Volgende</a>";
	$('.request_controls').empty().append(html);
}









function goBackContact(){
	$("#response").remove();
	$("#contactformulier").show();
}

// Placeholder-support
(function($) {
	// Return if native support is available.
	if ("placeholder" in document.createElement("input")) return;

	$(document).ready(function(){
		$(':input[placeholder]').not(':password').each(function() {
			setupPlaceholder($(this));
		});

		$(':password[placeholder]').each(function() {
			setupPasswords($(this));
		});

		$('form').submit(function(e) {
			clearPlaceholdersBeforeSubmit($(this));
		});
	});

	function setupPlaceholder(input) {

		var placeholderText = input.attr('placeholder');

		setPlaceholderOrFlagChanged(input, placeholderText);
		input.focus(function(e) {
			if (input.data('changed') === true) return;
			if (input.val() === placeholderText) input.val('');
		}).blur(function(e) {
			if (input.val() === '') input.val(placeholderText); 
		}).change(function(e) {
			input.data('changed', input.val() !== '');
		});
	}

	function setPlaceholderOrFlagChanged(input, text) {
		(input.val() === '') ? input.val(text) : input.data('changed', true);
	}

	function setupPasswords(input) {
		var passwordPlaceholder = createPasswordPlaceholder(input);
		input.after(passwordPlaceholder);

		(input.val() === '') ? input.hide() : passwordPlaceholder.hide();

		$(input).blur(function(e) {
			if (input.val() !== '') return;
			input.hide();
			passwordPlaceholder.show();
		});

		$(passwordPlaceholder).focus(function(e) {
			input.show().focus();
			passwordPlaceholder.hide();
		});
	}

	function createPasswordPlaceholder(input) {
		return $('<input>').attr({
			placeholder: input.attr('placeholder'),
			value: input.attr('placeholder'),
			id: input.attr('id'),
			readonly: true
		}).addClass(input.attr('class'));
	}

	function clearPlaceholdersBeforeSubmit(form) {
		form.find(':input[placeholder]').each(function() {
			if ($(this).data('changed') === true) return;
			if ($(this).val() === $(this).attr('placeholder')) $(this).val('');
		});
	}
})(jQuery);
