var ultrabold = window.ultrabold || {};
ultrabold.closertolife = window.ultrabold.closertolife || {};

//uses jquery 1.3.2 from here
ultrabold.closertolife.browser = {};
ultrabold.closertolife.fadespeed = 'medium';
var RecaptchaOptions = { theme: "clean" };
ultrabold.closertolife.current_vote;
ultrabold.closertolife.current_vote_value;
ultrabold.closertolife.recaptcha_active = 0;

$(document).ready(function() {
	//setup fancyzoom 1.1
	setupZoom();
	
	$('.facebook').click(function() {ultrabold.closertolife.share_facebook($(this).attr('href')); return false;});
	$('.twitter').click(function() {ultrabold.closertolife.share_twitter($(this).attr('href')); return false;});
	$('.email-invite').click(function() { ultrabold.closertolife.share_email(); return false;});
	
	$('.thumbnail-mini').hover(function() {
		$(this).addClass('active');
	},function() {
		$(this).removeClass('active');
	});
	
	$('.thumbnail-large').hover(function() {
		$(this).addClass('active');
	},function() {
		$(this).removeClass('active');
	});
	
	$('.contest-image-thumbnail').hover(function() {
		$(this).addClass('active');
	},function() {
		$(this).removeClass('active');
	});
	
	$('#content.news .left img').hover(function() {
		$(this).addClass('active');
	},function() {
		$(this).removeClass('active');
	});
	
	$('.pagination li').hover(function() {
		$(this).addClass('hover');
	},function() {
		$(this).removeClass('hover');
	});
	
	$('.heart').rating({
		cancel: 'Rate this image now',
		callback: function(value, link) {
			var this_rating = this;
			$(this_rating).rating('disable');
			
			var id = $(this).attr('id');
			var tmp = id.split('-');
			var item = tmp[1];
			
			//save the original rating value
			ultrabold.closertolife.current_vote_value = $(this).parent().find('input[name=image-rating]').val();
			
			var params = {
				item: item,
				value: value,
				element: this_rating,
				original_value: ultrabold.closertolife.current_vote_value
			}
			
			if(ultrabold.closertolife.recaptcha_active == 1) {
				ultrabold.closertolife.recaptcha(params);
			} else {
				//do it without recaptcha
				$.ajax({
					type: "POST",
					url: "/app/views/ajax_rating.php",
					data: "value="+value+"&entry="+item+'&ajax=true',
					success: function(msg) {
						msg = jQuery.trim(msg);
						if(msg == 'success') {
							//rated successfully
							//$('#contest-image-thumbnail-'+item).css({ border: "solid 1px #333" });
							//$('#result-'+item).addClass('success').html('Danke').fadeIn('slow');
							
							if(ultrabold.closertolife.ga_account != '') {
								ultrabold.closertolife.tracker = _gat._getTracker(ultrabold.closertolife.ga_account);
								ultrabold.closertolife.tracker._trackPageview('rating_thankyou');
							}
							
						} else if(msg == 'fail2') {
							//the user had already rated on this entry
							//$('#contest-image-thumbnail-'+item).css({ border: "solid 1px #f0a" });
							//$('#result-'+item).addClass('error').html('Bereits bewertet').fadeIn('slow');
						} else {
							//something went technically wrong. this is bad
							//$('#contest-image-thumbnail-'+item).css({ border: "solid 1px #f0f" });
							//$('#result-'+item).addClass('fail').html('Technischer Fehler').fadeIn('slow');
						}
						
					},
					error: function() {
						$(this_rating).rating('enable');
						//alert('rating has been re-enabled');
					}
				});
			
			}
		}
	});
	//$('.contest-image-info input[type=submit]').hide();
	$('.rating input[type=submit]').hide();
	
	
	/* IMAGE UPLOAD UTILITY */
	$('#upload-file-info').show();
	$('input.upload-file').change(function() {
		//check the filename for generic issues
		var filename = $('input.upload-file').val();
		filename = filename.substr(filename.lastIndexOf('\\') + 1); //strip the path, if present
		var pos = filename.lastIndexOf(".");
		var ext = filename.substr(pos).toLowerCase();
		var valid = false;
		switch(ext) {
		case ".jpg":
			valid = true;
			break;
		case ".png":
			valid = true;
			break;
		case ".gif":
			valid = true;
			break;
		default:
			valid = false;
		}
		
		if(valid === true) {
			//alert('you have selected a valid image format for upload');
			var icon = ' <img class="icon-checkmark" src="/images/icon_check.gif" alt="" />';
			$('#upload-name').focus(); //set the focus on the title input field
			$('#upload-file-info').html('<label for="upload-file">'+filename+icon+'</label>');
		} else {
			$('#upload-file-info').html('<label for="upload-file">Not a valid file type (jpg, png, gif)</label>');
		}
		
	});
	
	//create a hover effect for the file upload label
	$('label.upload-file-label').css('backgroundImage', 'url(/images/button_select_inactive_'+ultrabold.closertolife.language+'.png)');
	
	$('label.upload-file-label').hover(function() {
		this.original_image = $(this).css('backgroundImage');
		$(this).css('backgroundImage', 'url(/images/button_select_active_'+ultrabold.closertolife.language+'.png)');
	}, 
	function() {
		$(this).css('backgroundImage', this.original_image);
	});

	//create a hover effect for the submit button
	$('#upload-submit').hover(function() {
		this.original_image = $(this).attr('src');
		$(this).attr('src', '/images/button_submit_active_'+ultrabold.closertolife.language+'.png');
	}, 
	function() {
		$(this).attr('src', this.original_image);
	});
	
	$('#upload-form').submit(function() {
		//disable the form elements
		$('#upload-form input').attr('readonly', 'readonly');
		$('#upload-submit').attr('src', '/images/button_submit_disabled_'+ultrabold.closertolife.language+'.png');
		$('label.upload-file-label').css('backgroundImage', 'url(/images/button_select_disabled_'+ultrabold.closertolife.language+'.png)');
		
		//show a loading indicator
		$('#upload-file-info').append(' <img class="icon-loading" src="/images/loading.gif" alt="loading indicator icon" />');
		
		if(ultrabold.closertolife.ga_account != '') {
			ultrabold.closertolife.tracker = _gat._getTracker(ultrabold.closertolife.ga_account);
			ultrabold.closertolife.tracker._trackPageview('upload_thankyou');
		}
	});
	
	//make notices dynamic
	$('.upload-error').click(function() {
		$(this).slideUp(ultrabold.closertolife.fadespeed);
	});
	$('.thankyou').click(function() {
		$(this).slideUp(ultrabold.closertolife.fadespeed);
	});
	
	//recaptcha controls
	$('#rc-reload').click(function() { Recaptcha.reload(); $("#rc-status").hide(); return false; });
	$('#rc-close').click(function() {
		$('#rc-container').fadeOut(ultrabold.closertolife.fadespeed, function() {
			$("#rc-status").html('');
			//temporarily disable recaptcha
			ultrabold.closertolife.recaptcha_active = 0;
			$(ultrabold.closertolife.current_vote).rating('enable'); //rating was disabled. activate
			$(ultrabold.closertolife.current_vote).rating('select', ultrabold.closertolife.current_vote_value); //reset the original value
			ultrabold.closertolife.recaptcha_active = 1;
			$(ultrabold.closertolife.current_vote).rating('enable'); //enable it again for future votes
		});
		return false;
	});
	$('#rc-submit').click(function() { $('#rc-form').submit(); return false; });
	
	//track with gooogle analytics
	if(ultrabold.closertolife.ga_account != '') {
		ultrabold.closertolife.tracker = _gat._getTracker(ultrabold.closertolife.ga_account);
		ultrabold.closertolife.tracker._trackPageview();
	}
});

ultrabold.closertolife.recaptcha = function(params) {
	$('iframe').remove();
	Recaptcha.create(ultrabold.closertolife.rc_account, "rc-container", {
		theme: 'custom',
		lang: ultrabold.closertolife.language,
		callback: function() {
			if(window.pageYOffset) {
				var offset = window.pageYOffset; /* Good boy! */
			} else if(document.documentElement.scrollTop) {
				var offset = document.documentElement.scrollTop; /* IE, fuck you very much */
			} else {
				var offset = 0;
			}
			
			$('#rc-container').css('top', offset+200+'px').show();
			$("#rc-status").hide();
			$("#rc-thankyou").hide();
			ultrabold.closertolife.current_vote = params.element;
			
			$('#rc-form').unbind().submit(function() {
				var challenge_field = $("input#recaptcha_challenge_field").val();
				var response_field = Recaptcha.get_response();

				var html = $.ajax({
					type: "POST",
					url: "/app/views/exec_recaptcha.php",
					data: "challenge=" + challenge_field + "&response=" + response_field,
					async: false
				}).responseText;
				
				if (html.replace(/^\s+|\s+$/, '') == "success") {
					$("#rc-thankyou").show();
					//alert('thank you.');
					$("#rc-container").fadeTo(1300, 1).fadeOut(ultrabold.closertolife.fadespeed, function() {
						ultrabold.closertolife.after_recaptcha(params);
					});
					return false;
				} else {
					$("#rc-status").show();
					Recaptcha.reload();
					return false;
				}
				return false;
			});
			
			$('#recaptcha_response_field').focus();
		}
	});
	
	return false;
}

ultrabold.closertolife.after_recaptcha = function(params) {
	
	var value = params.value;
	var item = params.item;
	
	if(params && params.value && params.item) {
		$.ajax({
			type: "POST",
			url: "/app/views/ajax_rating.php",
			data: "value="+value+"&entry="+item+'&ajax=true',
			success: function(msg) {
				msg = jQuery.trim(msg);
				if(msg == 'success') {
					//rated successfully. restore the original value to approximate the change
					ultrabold.closertolife.recaptcha_active = 0;
					$(ultrabold.closertolife.current_vote).rating('enable'); //rating was disabled. activate
					$(ultrabold.closertolife.current_vote).rating('select', ultrabold.closertolife.current_vote_value);
					ultrabold.closertolife.recaptcha_active = 1;
					//$('#contest-image-thumbnail-'+item).css({ border: "solid 1px #333" });
					//$('#result-'+item).addClass('success').html('Danke').fadeIn('slow');
					
					if(ultrabold.closertolife.ga_account != '') {
						ultrabold.closertolife.tracker = _gat._getTracker(ultrabold.closertolife.ga_account);
						ultrabold.closertolife.tracker._trackPageview('rating_thankyou');
					}
					
				} else if(msg == 'fail2') {
					//the user had already rated on this entry
					//$('#contest-image-thumbnail-'+item).css({ border: "solid 1px #f0a" });
					//$('#result-'+item).addClass('error').html('Bereits bewertet').fadeIn('slow');
				} else {
					//something went technically wrong. this is bad
					//$('#contest-image-thumbnail-'+item).css({ border: "solid 1px #f0f" });
					//$('#result-'+item).addClass('fail').html('Technischer Fehler').fadeIn('slow');
				}
				
			},
			error: function() {
				$(ultrabold.closertolife.current_vote).rating('enable');
				//alert('rating has been re-enabled');
			}
		});
	} else {
		alert('no params submitted');
	}
}

ultrabold.closertolife.share_facebook = function(url) {	
	var short_url = url.replace('http://www.facebook.com/share.php?u=', '');
	var site_title = $('title').html();
	
	u = location.href;
	t = document.title;
	window.open('http://www.facebook.com/sharer.php?u='+short_url+'&t='+encodeURIComponent(site_title),'sharer','toolbar=0,status=0,width=626,height=436');
	
	if(ultrabold.closertolife.ga_account != '') {
		ultrabold.closertolife.tracker = _gat._getTracker(ultrabold.closertolife.ga_account);
		ultrabold.closertolife.tracker._trackPageview('share_facebook');
	}
	
	return false;
}

ultrabold.closertolife.share_twitter = function(url) {
	var short_url = url.replace('http://twitter.com/home?status=', '');

	u = location.href;
	t = document.title;
	window.open('http://twitter.com/home?status='+short_url,'sharer','toolbar=0,status=0,width=790,height=436');
	
	if(ultrabold.closertolife.ga_account != '') {
		ultrabold.closertolife.tracker = _gat._getTracker(ultrabold.closertolife.ga_account);
		ultrabold.closertolife.tracker._trackPageview('share_twitter');
	}
	
	return false;

}

ultrabold.closertolife.share_email = function(url) {

	if($('#email-form').length <= 0) {
		$('body').append('<div id="email-form"></div>');
	}
	
	var position = $('.image-640').offset();
	
	$('#email-form').css({ left: (position.left+70)+'px', top: position.top+'px' }).load('/app/templates/email_invite.tpl.php', { language: ultrabold.closertolife.language, image: encodeURIComponent(document.location.href) }, function() {
		//do actions with the email window.
		$('#emails').val('').focus();
		$(this).slideDown(ultrabold.closertolife.fadespeed);
		
		$('#email-form').submit(function() {
			//track with gooogle analytics
			
			if(ultrabold.closertolife.ga_account != '') {
				ultrabold.closertolife.tracker = _gat._getTracker(ultrabold.closertolife.ga_account);
				ultrabold.closertolife.tracker._trackPageview('share_email');
			}
			//let the function return to normal execution
		});
		
		$('#email-form-close').click(function() {
			$('#email-form').slideUp(ultrabold.closertolife.fadespeed, function() {
				$(this).remove();
			});
			return false;
		});
		
	});
	return false;
}