$(document).ready(function() {
	configureHighslide();
	configureImageflow();
	setupAutocomplete();
	setupValidation();
	setupCountdown();
	
	if(!($.browser.msie && $.browser.version < 7)) {
		setupMessageFormPopups();
		setupLoginPopups();
	}
	setupFlash();
	setupTabs();
	setupFormBorders();
	setupEmailField();
	
	setupPhotoForm();
	setupOrangeColumn();
	setupHomepage();
	setupWantAdPhotos();
	
	setupInFieldInstructions();
	setupJqtransform();
	setupSelectInFieldInstructions();
	setupWantAdForm();
});
function setupWantAdPhotos() {
	if($('#adPhotos').length > 0) {
		addBubble($('#submittedLink'), $('#submittedLinkBubble'));
		addBubble($('#recommendedLink'), $('#recommendedLinkBubble'));
		addBubble($('#flickrLink'), $('#flickrLinkBubble'));
		
		$('#recommendedTags, #flickrTags').jqTransInputText();
		
		var submittedPaginator = $('#submittedColumn .paginatedPhotosContainer').paginator('#submittedColumn .pagination', {photos: {perRow: 5, perPage: 25}});
		submittedPaginator.clearPhotos(submittedPhotos.length);
		submittedPaginator.loadPhotos(0, submittedPhotos);
		submittedPaginator.render();
		
		var recommendedPaginator = $('#recommendedColumn .paginatedPhotosContainer').paginator('#recommendedColumn .pagination', {photos: {perRow: 5, perPage: 25}});
		recommendedPaginator.clearPhotos(recommendedPhotos.length);
		recommendedPaginator.loadPhotos(0, recommendedPhotos);
		recommendedPaginator.render();
		
		var flickrPaginator = $('#flickrColumn .paginatedPhotosContainer').paginator('#flickrColumn .pagination', {photos: {perRow: 8, perPage: 24}});
		flickrPaginator.clearPhotos(flickrPhotos.length);
		flickrPaginator.loadPhotos(0, flickrPhotos);
		flickrPaginator.render();
		
		$('#recommendedTags').autocomplete(tag_array);
		$('#flickrTags').autocomplete(tag_array);
		
		$('#recommendedTags').tagger('#recommendedTagContainer', {ajax: {use: false}, changeCallback: function() {
			$('#recommendedSpinner').show();
			$.ajax({url: '/photo/ajax_search', data: {tags: $('input[name="recommendedTags"]').val()}, success: function() {
				recommendedPaginator.clearPhotos(recommendedPhotos.length);
				recommendedPaginator.loadPhotos(0, recommendedPhotos);
				recommendedPaginator.render();
				$('#recommendedSpinner').hide();
			}, error: function() {
				$('#recommendedColumn .paginatedPhotosContainer').html('<p>We\'re sorry.  An error has occurred while processing your search.  Our team has been notified of the problem and will resolve it as soon as possible.');
			}, dataType: 'script'});
		}});
		
		$('#flickrTags').tagger('#flickrTagContainer', {ajax: {use: false}});
		$('#flickrTagsButton').click(function() {
			$('#flickrSpinner').show();
			$.ajax({url: '/flickr/ajax_search', data: {tags: $('input[name="flickrTags"]').val()}, success: function() {
				flickrPaginator.clearPhotos(flickrPhotos.length);
				flickrPaginator.loadPhotos(0, flickrPhotos);
				flickrPaginator.render();
				$('#flickrSpinner').hide();
			}, error: function() {
				$('#flickrColumn .paginatedPhotosContainer').html('<p>We\'re sorry.  An error has occurred while processing your search.  Our team has been notified of the problem and will resolve it as soon as possible.');
			}, dataType: 'script'});
		});
	}
}
function setupHomepage() {
	if($('#orangeBarContent').length > 0) {
		$('.credits').each(function() {
			var credits = $(this);
			var image = credits.prev();
			credits.hide();
			
			var position = image.position(), offset = image.offset(), offsetParent = image.offsetParent();
			var imageX = position.left, imageY = position.top;
			var imageWidth = image.width(), imageHeight = image.height();
			var imageBorder = 14, marginLeft = parseInt(image.css('margin-left')), marginTop = parseInt(image.css('margin-top'));
			
			var creditsX = imageX+marginLeft, creditsY = imageY+imageHeight+imageBorder+marginTop;
			credits.css({position: 'absolute', top: creditsY+'px', left: creditsX+'px'});
			credits.width(imageWidth);
			
			var h = credits.height();
			credits.height(0);
			
			image.hover(function() {
				credits.stop().show().animate({height: h}, 'fast', 'swing');
			}, function() {
				credits.stop().animate({height: 0}, 'fast', 'swing', function() {credits.hide();});
			});
		});
		
		var footer = $('#footer'), footerPosition = footer.position().top, windowHeight = $(window).height();
		if(footerPosition < windowHeight) {
			var newPosition = windowHeight - footerPosition - 20;
			if(newPosition < 0)
				newPosition = 0;
			footer.css('margin-top', newPosition);
		}
	}
}
function setupOrangeColumn() {
	if($('#orangeColumn').length > 0) {
		var images = $('#content img');
		var count = images.length, doneCount = 0;
		var doneFunction = function() {
			doneCount++;
			if(doneCount >= count) {
				var setHeightFunction = function() {
					var contentHeight = $('#content').height(), orangeColumnHeight = $('#orangeColumn').height();
					var biggerHeight = contentHeight > orangeColumnHeight ? contentHeight : orangeColumnHeight;
					var footerPosition = $('#footer').position().top, windowHeight = $(window).height();
					
					if(footerPosition < windowHeight - 30) {
						biggerHeight += windowHeight - footerPosition;
						biggerHeight -= 30;
					}
					
					$('#orangeColumn').height(biggerHeight);
					
					setTimeout(setHeightFunction, 100);
				};
				setHeightFunction();
			}
			
		}
		images.each(function() {
			var i = new Image();
			i.src = $(this).attr('src');
			if(i.complete) {
				doneFunction();
			}
			$(i).bind('load error onreadystatechange', doneFunction);
		});
		if(count == 0) {
			doneFunction();
		}
	}
}
function setupCountdown() {
	$('.countdown').each(function() {
		var container = $(this);
		var finishTime = new Date($(this).text()).getTime();
		var secondsPerMinute = 60, secondsPerHour = 3600, secondsPerDay = secondsPerHour * 24;
		var formatTime = function(time, label) {
			time = time - (time % 1);
			var str = time+" "+label
			if(time == 1)
				return str;
			return str+"s";
		}
		var updateFunction = function() {
			var timeToGo = finishTime - (new Date()).getTime();
			timeToGo = timeToGo / 1000;
			if(timeToGo <= 0) {
				container.text('Completed');
			} else {
				setTimeout(updateFunction, 1000);
				var days = timeToGo / secondsPerDay;
				timeToGo = timeToGo % secondsPerDay;
				
				var hours = timeToGo / secondsPerHour;
				timeToGo = timeToGo % secondsPerHour;
				
				var minutes = timeToGo / secondsPerMinute;
				timeToGo = timeToGo % secondsPerMinute;
				
				var seconds = timeToGo;
				
				var str = [formatTime(days, "day"), formatTime(hours, 'hour'), formatTime(minutes, 'minute'), formatTime(seconds, 'second')].join(', ');
				container.text(str);
			}
		};
		updateFunction();
	});
}
function setupFlash() {
	$('div.flash').each(function() {
		var $this = $(this);
		var width = $this.width();
		$this.css('margin-left', (960-width-60)/2);
	});
}
function showFlash(flash, data) {
	$(flash).html(data).slideDown('slow');
	setupFlash();
	setTimeout(function() {
		$(flash).slideUp('slow');
	}, 5000);
}




function checkCompany() {
    var companyName = $('#company_name').val();
    var url = '/company/check_exists?company=' + encodeURIComponent(companyName); 
    $.ajax({ 
		type: "GET", 
		url: url, 
		dataType: "script" 
	});
}
function doLoadFlickrData() {
	if($('#flickrLoader')) {
		$('#flickrLoader').load('/flickr/load');
	}
}