/* Author: Willem Labu (willem.labu@ogilvy.co.za)

*/

var	followTheMouse = true,
	mobile = (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/Android/i)) ? true : false;

$(document).ready(function(){
	
	if(mobile||window.location.hash=='#iphone') {
		$('#menu .about, #menu .donations span').hide();
		showHTML();
	}
	
	if(window.location.hash=='#donations') {
		showHTML();
	}

	$('#menu .about').click(function(){
		
		// Menu is currently at the top.
		if($('#menu').css('margin-top')=='0px'){
			
			$('#trustId').css('position','absolute');
			$('#menu .donations').removeClass('active');
			$(this).addClass('active');
			
			$('#above').slideDown(1000);
			$('#below').slideUp(1000,function(){$('#theFlash').show()});
			
			$('#menu').animate({'margin-top':-110},1000);
			$('#below .container').animate({'padding-top':0},1000);
			
		} else {
			return false;
		}
	
	})

	$('#menu .donations').click(function(){
	
		showHTML();
	
	});
	
	$('.navContainer .prev').click(function(){
	
		// Set the session var
		$.ajax({
			url: "core/prev.php",
			success: function(page){
				log('success, current page is: ' + page);
				
				$('.navContainer .prev, .navContainer .next').removeClass('hidden');
				
				if(parseInt(page) <= 1) {
					$('.navContainer .next').removeClass('hidden');
					$('.navContainer .prev').addClass('hidden');
				}
				
				$('.navContainer p').html('Page ' + page + ' of ' + $('#totalPages').html()).addClass('nav');
				
				// Get the first displayed donor's id
				firstID = $('.blanket .silhouette:first-child').attr('id').substr(2,$('.blanket .silhouette:first-child').attr('id').length);
				
				log(firstID);
				
				$.ajax({
					type: "POST",
					data: 'get=prev&id='+firstID,
					url:'core/silhouettes.php',
					success: function(data){
						
						$('.blanket').fadeOut(function(){
							$(this).html(data).fadeIn();
						});
					
					},
					error: function(data){
						log('error');
						log(data);
					}
				});
			
			}
		});
		// end: ajax.
	
		// Get later 10 donations
		
		return false;
	
	});
	
	$('.navContainer .next').click(function(){
	
		// Set the session var
		$.ajax({
			url: "core/next.php",
			success: function(page){
				log('success, current page is: ' + page);
				
				$('.navContainer .prev, .navContainer .next').removeClass('hidden');
				
				if(parseInt(page) >= parseInt($('#totalPages').html())) {
					$('.navContainer .next').addClass('hidden');
					$('.navContainer .prev').removeClass('hidden');
				}
			
				$('.navContainer p').html('Page ' + page + ' of ' + $('#totalPages').html()).addClass('nav');
				
				// Get the last displayed donor's id
				lastID = $('.blanket .silhouette:last-child').attr('id').substr(2,$('.blanket .silhouette:last-child').attr('id').length);
				
				log(lastID);
				
				$.ajax({
					type: "POST",
					data: 'get=next&id='+lastID,
					url:'core/silhouettes.php',
					success: function(data){
						
						$('.blanket').fadeOut(function(){
							$(this).html(data).fadeIn();
						});
					
					},
					error: function(data){
						log('error');
						log(data);
					}
				});
			}
		});
		// end: ajax.
	
	
		// Get earlier 10 donations
	
		return false;
		
	});
	
	$('#theGirlAndTheBalloons .button').click(function(){
		
		followTheMouse = false;
		
		$('.cityScape').css({
			'opacity':'0.2'
		});
	
		$('#below .wall').fadeOut(function(){
			$('#below .donationForm').fadeIn();
		});
	
	});
	
	$('.donationForm .button').click(function(){
		
		$('.cityScape').css({
			'opacity':'1'
		});
	
		$('#below .donationForm iframe').hide();
		$('#below .donationForm').fadeOut(function(){
			$('#below .wall').fadeIn(function(){followTheMouse = true});
			$('#below .donationForm iframe').attr('src','donationForm.php').show();
		});
		
		return false;
	
	});
	
	$('#thankYou .button').click(function(e){
		e.preventDefault();
		location.reload(true);
	});
	
	$(document).mousemove(function(e){
		
		if (!followTheMouse) return false;
		
		$('#flare').css({
			left:(-e.pageX/40)+parseInt($(document).width()*0.1),
			top: (-e.pageY/40)+70
		});
		$('#clouds').css({
			left:(-e.pageX/20)+parseInt($(document).width()*0.1),
			top: (-e.pageY/20)+160
		});
	});
	
	// Open external links in a new window
	$('a[rel|=external]').click(function(){window.open(this.href);return false});
	
});

// On every page load.
// Called by the thank you page after a donation has been made.
updateDonations();

// Logo rotation
rotateLogos();

function showHTML(){
	
	// Menu is currently *NOT* at the top.
	if($('#menu').css('margin-top')!='0px'){
		
		$('#menu .about').removeClass('active');
		$('#menu .donations').addClass('active');
		
		$('#theFlash').hide();
		
		$('#above').slideUp(1000);
		$('#below').slideDown(1000, function(){
			$('#trustId').css('position','fixed');
		});
		
		$('#menu').animate({'margin-top':0},1000);
		$('#below .container').animate({'padding-top':110},1000);
		
	} else {
		return false;
	}

}

function rotateLogos(){
	
	// Add Hope is the default
	setTimeout("showSpread()",5000);
	
}

function showSpread(){
	
	$('#logo .add').fadeOut(2000,function(){
		$('#logo .spread').fadeIn(2000,function(){
			setTimeout("showAdd()",5000);
		});
	});
	
}

function showAdd(){
	
	$('#logo .spread').fadeOut(2000,function(){
		$('#logo .add').fadeIn(2000,function(){
			setTimeout("showSpread()",5000);
		});
	});
	
}

function formatMoney(amount){
	var delimiter = " ";
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return '' }
	var minus = '';
	if(i < 0) { minus = '-' }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3){
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n) }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n }
	else { amount = n + '.' + d }
	amount = minus + amount;
	return amount;
}
// end: formatMoney()

var getTotal;

function updateDonations(){
	
	clearTimeout(getTotal);
	
	// NOTE:
	// The scope of the ticker h3 is parent.document to make sure we can update the ticker *immediately* after someone pays!
	
	$('.ticker h3',parent.document).html('<div><img src="img/wait.gif" height="16" width="16" alt="Updating..."/><span class="nada">&nbsp;</span></div>').removeClass('money');
	
	// Get the latest donation amount
	$.ajax({
		url: "widget/plaintext",
		success: function(data){
			
			money = data.substr(0,data.length-2).split('');
			
			donations = '<span class="currency">R</span>';
			last = '';
			
			$.each(money, function(index, value){
			
				if (index == money.length-1) last = ' last';
			
				donations += '<span class="number'+last+'">' + value + '</span>';
			
			});
			
			$('.ticker h3',parent.document).html(donations).addClass('money');
		},
		error: function(data){
			log('error');
			log(data);
		}
	});
	// end: ajax.
	
	// Auto-update the donations every 60 seconds
	getTotal = setTimeout("updateDonations()",60000);
	
}


/************************************************

	Sideways scrolling

************************************************

$('#below').scroll(function(){
	
	sideways();
	
});

window.onload = function(){
	
	// Smart browsers
	if(window.addEventListener) document.addEventListener('DOMMouseScroll', sideways, false);
	
	// Dumb browsers (IE & Opera)
	document.onmousewheel = sideways;
}

function sideways(event){
	
	var delta = 0;
	
	if (!event) event = window.event;
	
	// normalize the delta
	if (event.wheelDelta) delta = event.wheelDelta / 20;
	else if (event.detail) delta = -event.detail / 2;
	
	var currPos=$('#below').scrollLeft();
	
	// Calculate the next position
	currPos=parseInt(currPos)-(delta*10);
	
	
	// Scroll the element
	$('#below').scrollLeft(currPos);
	$('#below').innerHTML = event.wheelDelta + ":" + event.detail;
	
	// Fade in/out relative to scroll position
	newOp = (150 - currPos) / 100;
	if(newOp>=1) newOp = 1;
	if(newOp<=0) newOp = 0;
	
	if (newOp<=0){
//		$('#theGirlAndTheBalloons').hide();
		$('.cityScape').css('left','50%');
	} else {
//		$('#theGirlAndTheBalloons').show();
		$('.cityScape').css('left','70%');
	}
	
	$('#theGirlAndTheBalloons').css('opacity',newOp);
	
}

/************************************************
	end:
	Sideways scrolling

************************************************/






function goToThankYou(a){
	
	// Get the latest donation amount
	$.ajax({
		type: "POST",
		data: "ref="+a,
		url: "core/getDetails.php",
		success: function(data){
			log('success');
			log(data);
			$('#thankYou .note').html(data);
		},
		error: function(data){
			log('error');
			log(data);
			$('#thankYou .note').html('Thanks!');
		},
		complete: function(){
			
			updateDonations();
			
			$('#below .donationForm').fadeOut(function(){
				$('#thankYou').fadeIn();
			});
			
		}
	});
	// end: ajax.
};


(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
