//cufon replace
if(!bWebkey){
	Cufon.replace('#text h2', { 
		fontFamily: 'Roxy'
	});
}
Cufon.replace('div.title_recept,h3.title_recept', { 
	fontFamily: 'StoneSanItcTEESem'
});
Cufon.replace('h1,a.btn,h2.recept,h2.news,footer h3, h2.sub,a.arrow, h2.replace, h3.recept, h2.font, h3.font', { 
	fontFamily: 'Roxy'
});
Cufon.replace('nav ul li a', {
	hover: true,
	fontFamily: 'Roxy'
});

//onready functions
$(function(){
	searchInput();
	selectboxes();
	checkboxes();
	changeLanguage();
	//twitter('primadonnakaas',1,false);
});

//functions
function parseDate(p_sString){
	var aString = p_sString.split(' ');
	return new Date(Date.parse(aString[1]+' '+aString[2]+', '+aString[5]+' '+aString[3]+' UTC'));
}
function formatTweet(p_sText){
	var sText = p_sText;

	sText = sText.replace(/((ftp|https?):\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?)/gm,'<a href="$1" target="_blank">$1</a>');
	sText = sText.replace(/([^\w])\@([\w\-]+)/gm,'$1@<a href="http://twitter.com/$2" target="_blank">$2</a>');	
	sText = sText.replace(/([^\w])\#([\w\-]+)/gm,'$1<a href="http://twitter.com/search?q=%23$2" target="_blank">#$2</a>');

	return sText;
}
function formatTime(p_sTime){
	
	//tijd berekenen
	var oDateTweet = parseDate(p_sTime);
	var nTimeTweet = oDateTweet.getTime();
	var oDate = new Date();
	var nTime = oDate.getTime();
	var nDiff = parseInt((nTime - nTimeTweet)/1000);
	
	//tijdverschil terugsturen
	if(nDiff <= 30) return 'Een paar seconden geleden';
	if(nDiff <= 60) return 'Een minuut geleden';
	if(nDiff < 3600) return parseInt(nDiff/60) + ' minuten geleden';
	if(nDiff <= 1.5*3600) return 'Een uur geleden';
	if(nDiff < 23.5*3600) return Math.round(nDiff/3600) + ' uren geleden';
	if(nDiff < 1.5*24*3600) return 'Een dag geleden';
	
	//wanneer langer dan een dag, exacte datum terugsturen
	var sDateTweet = oDateTweet.getDate() + '/' + parseInt(oDateTweet.getMonth()+1) + '/' + oDateTweet.getFullYear();
	
	var nMinuteTweet = oDateTweet.getMinutes()
	if (nMinuteTweet < 10){
		nMinuteTweet = '0' + nMinuteTweet;
	}
	var sTimeTweet = oDateTweet.getHours() + ':' + nMinuteTweet;
	return sDateTweet;
}
function twitter(p_sUsername,p_nCount,p_bAvatar){
	$.ajax({
		url: 'http://api.twitter.com/1/statuses/user_timeline/'+p_sUsername+'.json?include_rts=true&include_entities=true&count='+p_nCount+'&callback=?',
		dataType: 'json',
		success: function(result){
			var sHtml = '';
			$.each(result, function(i,oTweet){
				
				var sTweet = '';
				
				sTweet += '<div class="tweet">';
				sTweet += '<span class="date">'+formatTime(oTweet.created_at)+'</span>';
				if(p_bAvatar){
					sTweet += '<div class="image">';
					sTweet += '<a href="http://www.twitter.com/'+oTweet.user.screen_name+'" target="_blank">';
					sTweet += '<img src="'+oTweet.user.profile_image_url+'" alt="'+oTweet.user.name+'" />';
					sTweet += '</a>';
					sTweet += '</div>';
				}
				sTweet += '<div class="content">'+formatTweet(oTweet.text)+'</div>';
				sTweet += '</div>';
				
				sHtml += sTweet;
			});
			$('#tweet').html(sHtml);
		}
	});
}
function selectboxes(){
	$('div.select select').selectbox();
	var zIndex = 9999;
	$('div.entry').each(function(){
		$(this).css('z-index',zIndex);
		zIndex--;
	});
}
function checkboxes(){
	$('.checkbox:not(.no)').click(function() {		
		if($(this).hasClass('checked')) {
			$(this).removeClass('checked');
			$(this).find('input').attr('checked',false);
		} else {
			$(this).addClass('checked');
			$(this).find('input').attr('checked',true);
		}
	});	
}
function searchInput(){
	$('.fade').focus(function() {
		$(this).select();
		$(this).prev().fadeTo(150, 0);
	});
	$('.fade').blur(function() {
		if($(this).val() == '') {
			$(this).prev().fadeTo(150, 1);
		}
	});
	$('.fade').each(function(){
		if($(this).val() != '') {
			$(this).prev().fadeTo(150, 0);
		};
	});	
}
function changeLanguage(){
    
    $('#langswitch span').hover(
        function () {
            $('#langswitch').css('background', 'url("images/template/bg_langswitch.png") no-repeat scroll left bottom transparent');
            $('#langswitchInner').css('background', '#611010');
        },
        function () {
            if ($('#langswitch #flags').css('display') == 'none') {
                $('#langswitch').css('background', 'none');
                $('#langswitchInner').css('background', 'none');
            }
        }
    );
    
    $('#langswitch span').click(function(){
        if ($('#langswitch #flags').css('display') == 'none') {
            $('#langswitch #flags').fadeIn(300, function () {
                $('#langswitch').css('background', 'url("images/template/bg_langswitch.png") no-repeat scroll left bottom transparent');
                $('#langswitchInner').css('background', '#611010');
            });
        } else {
            $('#langswitch #flags').fadeOut(300, function () {
                $('#langswitch').css('background', 'none');
                $('#langswitchInner').css('background', 'none');
            });
        }
    });
}
var map = '';
var markers = [];
var infowindow = '';
function retailers(){
	if(sLatitude != '' && sLongitude != ''){
		var centerLatLng = new google.maps.LatLng(sLatitude,sLongitude);
		var nZoom = 10;
	} else {
		var centerLatLng = new google.maps.LatLng(52.132633,5.291266);
		var nZoom = 8;
	}
	var myOptions = {
	  zoom: nZoom,
	  center: centerLatLng,
	  mapTypeId: google.maps.MapTypeId.ROADMAP,	  
	  mapTypeControl: false,
	  scrollwheel: false
	}
	map = new google.maps.Map(document.getElementById('map'), myOptions);
	setMarkers(map,aJsArray);
}
function setMarkers(map, locations){
	for (var i = 0; i < locations.length; i++) {
		var outlet = locations[i];
		var image = new google.maps.MarkerImage(outlet[4],
			new google.maps.Size(27, 27),
			new google.maps.Point(0,0),
			new google.maps.Point(13,27)
		);
		var myLatLng = new google.maps.LatLng(outlet[1], outlet[2]);
		var marker = new google.maps.Marker({
			position: myLatLng,
			map: map,
			icon: image,
			title: outlet[0],
			html: outlet[3]
		});
		markers[i] = marker;
		infowindow = new google.maps.InfoWindow(); 
		google.maps.event.addListener(marker, 'click', function () {
			infowindow.setContent(this.html);
			infowindow.open(map, this);
		});
	}	
}
function showInfoWindow(markerIndex) {
	infowindow.setContent(aJsArray[markerIndex][3]);
	infowindow.open(map, markers[markerIndex]);
}
function searchOutlets(){
	var obj = $('#search-recipes input.submit');
	if($.browser.msie){
		$('#sZipcode').keydown(function(e){
			if(e.keyCode == 13) {
				obj.trigger('click');
				e.preventDefault();
				return false;
			}
		});
	}
	obj.click(function(){
		$('#recipes').html('Wordt geladen &hellip;');
		var sCountry = $('#sCountry').val();
		var sZipcode = $('#sZipcode').val().toUpperCase().replace(/[^A-Z0-9]/g,'');
		if(sZipcode != ''){
			var geocoder = new google.maps.Geocoder();
			geocoder.geocode( { 'address': sZipcode+','+sCountry, 'region': 'nl'}, function(results, status) {
				if (status == google.maps.GeocoderStatus.OK) {
					var myLatlng = results[0].geometry.location;
					var sCoordinates = new String(myLatlng);
					$('#sCoordinates').val(sCoordinates);
					$('#search-recipes').submit();
				} else {
					$('#recipes').html(status);
				}
			});
		} else {
			$('#sZipcode').focus();
		}
		return false;
	});
}
function slideshow(){
	$('#slides').cycle({
		timeout: 5000,
		next: '#slideshow_next',
		prev: '#slideshow_prev'
	});	
}
function shoppingcart(){
	$('.row.item .amount .input input').change(function(){
		var nProduct = $(this).parents('.row.item').attr('id').replace('product_','');
		var nAmount = $(this).attr('value');		
		loadShoppingCart('product=' + nProduct + '&updateAmount=' + nAmount);
	});
	$('.row.item .subprice img').click(function(){
		var nProduct = $(this).parents('.row.item').attr('id').replace('product_','');
		loadShoppingCart('product=' + nProduct + '&updateAmount=-1');
	});
	$('.row.item .checkbox').click(function(){
		var nProduct = $(this).parents('.row.item').attr('id').replace('product_','');
		var nGift;
		if($(this).hasClass('checked')) {
			nGift = -1;
			$(this).removeClass('checked');
			$(this).find('input').attr('checked',false);
		} else {
			nGift = 1;
			$(this).addClass('checked');
			$(this).find('input').attr('checked',true);
		}
		loadShoppingCart('product=' + nProduct + '&gift=' + nGift);
	});
	$('#sMessage').change(function(){
		var sMessage = $('#sMessage').val();
		loadShoppingCart('message=' + sMessage);
	});
	$('#submitCoupon').click(function(){
		var sCoupon = $('#sCoupon').val();
		loadShoppingCart('coupon=' + sCoupon);
	});
}
function loadShoppingCart(p_sData){
	$.ajax({
		type: 'POST',
		url: 'shoppingcart/content',
		data: p_sData,
		success: function(result){
			//result in div stoppen
			$('#shoppingcart').html(result);
			//cufon refreshen
			Cufon.refresh();
			//events opnieuw inladen voor shoppingcart
			shoppingcart();
			checkboxes();
		}
	});
}
function validateForm(p_sForm){
	$('#'+p_sForm).validate({
		errorPlacement: function(error, element) {
			var obj = element.parent().next('div.icon');
			error.insertAfter(obj);
			obj.attr('class','icon invalid');
		},
		success: function(label) {
			label.prev('div.icon').attr('class','icon valid');
			label.remove();
		},
		submitHandler: function(form) {
			form.submit();
		}
	});	
}
function otherAddress(){
	$('input#other-address').change(function(){
		if($(this).is(':checked')){
			$('div.other-address').show();
			$('div.other-address .entry .input input:not(.no)').addClass('required');
		} else {
			$('div.other-address').hide();
			$('div.other-address .entry .input input:not(.no)').removeClass('required');
		}
	});
}
function paymentMethods(){
	$('#choosePayment .method .radio input:checked').each(showOptions);
	$('#choosePayment .method .radio input').change(showOptions);
}
function showOptions(){
	var oOptions = $(this).parents('.method').find('.options');
	if($(this).is(':checked')){
		$('#choosePayment .method .options').hide();
		oOptions.show();
	} else {
		oOptions.hide();	
	}	
}

//actie pagina
function setLabel(p_sMessage,p_nId){
	var obj = $('#sCode'+p_nId).parents('.code');
	if(obj.find('label').length > 0){
		obj.find('label').remove();
	}
	var sLabel = '';
	switch(p_sMessage){
		case 'success':
			sLabel = '<label class="success">Code goedgekeurd</label>';
		break;
		case 'returned':
			sLabel = '<label class="error">Code is reeds gebruikt</label>';
		break;
		case 'error':
			sLabel = '<label class="error">Ongeldige code</label>';
		break;
		case 'double':
			sLabel = '<label class="error">Reeds ingevoerde code</label>';
		break;
	}
	obj.append(sLabel);
}
function offers(){
	$('input.inputcode').keydown(function(e){
		if(e.keyCode == 13) {
			$('#check_codes').trigger('click');
			e.preventDefault();
			return false;
		}
	});
	$('#check_codes').click(function(){
		//preloaden
		$('#ajax').html('Uw codes worden gecontroleerd &hellip;');
		//codes ophalen
		var sCode1 = $('#sCode1').val();
		var sCode2 = $('#sCode2').val();
		var sCode3 = $('#sCode3').val();
		$.ajax({
			type: 'POST',
			url: 'offer/json',
			dataType: 'json',
			data: 'code1='+sCode1+'&code2='+sCode2+'&code3='+sCode3,
			success: function(result){
				
				//laad icoon weg
				$('#ajax').html('');
				
				var nCount = 1;
				var nSuccess = 0;
				$.each(result, function(i,value){
					setLabel(value,nCount);
					nCount++;
					if(value == 'success'){
						nSuccess++;
					}
				});
				
				if(nSuccess == 3){
					//preloaden
					$('#ajax').html('<img src="images/loading.gif" alt="Wordt geladen">');
					$.ajax({
						type: 'POST',
						url: 'offer/ajax',
						data: 'code1='+sCode1+'&code2='+sCode2+'&code3='+sCode3,
						success: function(result){
							$('#ajax').html(result);
							//shadowbox opnieuw initialiseren
							Shadowbox.clearCache(); 
							Shadowbox.setup();
							//cufon refreshen
							Cufon.refresh();
							//formulier tonen na keuze prijs
							showForm();
						}
					});
				}
				
			}
		});
	});
}
function showForm(){
	$('.price .radio input').change(function(){
		if($('.price .radio input:checked').length > 0){
			$('.form').show();
			validateForm('offerform');
		}
	});
}

function initThumbs () {
    $('.thumbs a').each(function () {
        $(this).click(function(evt){
            evt.preventDefault();
            evt.stopPropagation();
            $('div.img a img').attr('src', $(evt.target).parent().attr('href'))
            $('div.img a').attr('href', $(evt.target).parent().attr('href').replace('_detail', '_lightbox'));
        });
    });
    
    $('div.img a').click(function (evt){
        evt.preventDefault();
        evt.stopPropagation();
        Shadowbox.open({
            content:    $(evt.target).parent().attr('href'),
            player:     "img",
            title:      ""
        });
    });
}
