function initCycle() {
	$('#loader').fadeOut(200, function() {
		$('.slideshow').fadeIn(200);
		$('.slideshow #slides').cycle({
			pager: '#slidenav ul',
			pagerAnchorBuilder: function(idx, slide) { 
				return '#slidenav ul li:eq(' + idx + ')'; 
			} 
		});
	});
}

function clearInput() {
	$('.fade').focus(function() {
		$(this).select();
		$(this).prev().fadeTo(150, 0);
		$(this).keydown(function() {
			$(this).css('background-repeat', 'repeat');			 
		});
	});
	$('.fade').blur(function() {
		if ( $(this).val() == '' ) {
			$(this).css('background-repeat', 'no-repeat');
			$(this).prev().fadeTo(150, 1);
		}
	});
	$('.fade').each(function(){
		if ( $(this).val() != '') {
			$(this).css('background-repeat', 'repeat');
		};
	});
}

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">';
				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 += '<span class="date">'+formatTime(oTweet.created_at)+'</span>';
				sTweet += '</div>';
				
				sHtml += sTweet;
			});
			$('#twitter').html(sHtml);
		}
	});
}

$(document).ready(function() {
    $('#scrolltop').click(function(){
        $('html, body').animate({scrollTop:0}, 'slow');
        return false;
    });
});

function initForms() {
	$('div.form.generator form').each(function () {
        var oForm = new FormHandler({form: this});
    });
}
function showEstablishmentInfo(p_nID) {
	$.ajax({
		type: 'POST',
		url: 'establishment/get',
		data: 'nEstablishmentID='+p_nID,
		success: function(p_sJson){
			var oResult = jQuery.parseJSON(p_sJson);
			$('#branche-information').html(oResult.information);
			$('#branche-description').html(oResult.description);
		}
	});
}

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 = 7;
	}
	var myOptions = {
	  zoom: nZoom,
	  center: centerLatLng,
	  mapTypeId: google.maps.MapTypeId.ROADMAP,	  
	  mapTypeControl: false,
	  scrollwheel: false
	}
	map = new google.maps.Map(document.getElementById('map'), myOptions);
	
	if(sLatitude != '' && sLongitude != ''){
		var image = new google.maps.MarkerImage('images/template/marker-postalcode.png',
			new google.maps.Size(65, 83),
			new google.maps.Point(0,0),
			new google.maps.Point(33,79)
		);
	    var marker = new google.maps.Marker({
	        position: centerLatLng,
	        map: map,
	        icon: image
	    });
	}
	
	setMarkers(map,aJsArray);
}

var inactiveMarkerSrc = 'images/template/marker.png';
var activeMarkerSrc = 'images/template/marker-active.png';

function setMarkers(map, locations){
	
	var previousMarker;
	
	acivemarker = new Image();
	acivemarker.src = activeMarkerSrc;
	
	for(var i = 0; i < locations.length; i++) {
		var outlet = locations[i];
		
		var image = createImage(false);
		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]
		});
		marker.set('id', outlet[4]);
		markers[i] = marker;
		google.maps.event.addListener(marker, 'click', function () {
			if(previousMarker) {
				previousMarker.setIcon(createImage(false));
			}
			previousMarker = this;
			showEstablishmentInfo(this.get('id'));
			this.setIcon(createImage(true));
		});
		if(i == 0) {
			google.maps.event.trigger(marker, 'click');
		}
	}	
}
function createImage(active) {
	var url;
	if(active) {
		url = activeMarkerSrc;
	} else {
		url = inactiveMarkerSrc;
	}
	var image = new google.maps.MarkerImage(url,
		new google.maps.Size(30, 31),
		new google.maps.Point(0,0),
		new google.maps.Point(9,29)
	);
	return image;
	
}
function showInfoWindow(markerIndex) {
	infowindow.setContent(aJsArray[markerIndex][3]);
	infowindow.open(map, markers[markerIndex]);
}
function searchEstablishments(){
	var obj = $('#searching-branche 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 sZipcode = $('#sZipcode').val().toUpperCase().replace(/[^A-Z0-9]/g,'');
		if(sZipcode != ''){
			var geocoder = new google.maps.Geocoder();
			geocoder.geocode( { 'address': sZipcode+',nl', '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);
					$('#searching-branche').submit();
				} else {
					//$('#recipes').html(status);
				}
			});
		} else {
			$('#sZipcode').focus();
		}
		return false;
	});
}

function customSelect(){
	$("select").each(function(){
		$(this).wrap("<div class='selector'></div>");
		
		var spanText = $(this).attr('title');
		var span = "<span class='select'>" + spanText + "</span>";
		
		$(this).before(span)
		.fadeTo(1, 0)
		.focus(function(){
			$(this).parents(".selector").addClass("focus");
		})
		.change(function(){
			$(this).siblings("span").text($(this).children(":selected").text());
		}).click ( function (){
			$(this).siblings("span").text($(this).children(":selected").text());		
		}) 
		.blur(function(){
			$(this).parents(".selector").removeClass("focus");
		});	
	});
	$('select').trigger("change");
}

function geoip(){
	$.ajax({
		url: 'establishment/geo',
		success: function(result){
			$('#establishment').html(result);
			$('#establishment-btn').click(function(){
				$.ajax({
					url: 'establishment/geooff'
				});
				$('#establishment').slideUp();
		        return false;
		    });
		}
	});
}

function getNearestEstablishment(){
	$.ajax({
		url: 'establishment/geonearest',
		success: function(result){
			if(result != '') {
				var oJson = $.parseJSON(result);
				$('.entry:first').before("<div class=\"nearest\" style=\"display:none;\"><p>Uw dichtsbijzijnde vestiging lijkt <strong class=\"name\">"+oJson.name+"</strong> te <strong class=\"city\">"+oJson.city+"</strong> te zijn. Daarom is deze vestiging alvast voor u geselecteerd, u kunt dit natuurlijk altijd aanpassen.</p></div>");
				$('.nearest').slideDown(500);
				$('.form .entry select option#establishment-'+oJson.establishmentID).attr('selected', 'selected');
				$('span.select').html(oJson.name);
			}
		}
	});
}


