/* 
Coder: VC
Date: Jul 2009
Notes: JS for new Breakthrough site. 
Requires: JQuery
 */
jQuery(document).ready(function() {
	init_input_default('.input_with_default');
	init_page_actions_popup();
	
	//donation page
	jQuery('#donation_amount_freetext').focus(function(){
		jQuery('#donation_amount_other').attr("checked", "checked");
	});
	jQuery('#donation_amount_other').click(function(){
		jQuery('#donation_amount_freetext').focus();
	});
	
	//search page
	jQuery('li.clickable').click(function(){
		var thelink = jQuery(this).find('a').attr('href');
		window.location = thelink;
	});

	//donation footer link hover
	if (jQuery('#footer-donation-form').length){
		var maxHeight = 0;
		$('#footer-donation-form .amount_description').each(function(){
			if ( $(this).height() > maxHeight ) {
				maxHeight = $(this).height();
			}
		});
		jQuery('#footer-donation-form .donation-amounts li:first a').addClass('selected');
		jQuery('#footer-donation-form .amount_description:not(:first)').hide();
		jQuery('#footer-donation-form .amount_description').each(function(){
			jQuery(this).css('height',maxHeight);
		});
		
		jQuery('#footer-donation-form .donation-amounts li a').click(function(eventObj){
			var selected_id = jQuery(this).attr('href');
			jQuery('#footer-donation-form .donation-amounts li a.selected').removeClass('selected');
			jQuery('#footer-donation-form .amount_description_wrapper').css('height', jQuery(selected_id).css('height'));
			jQuery('#footer-donation-form .amount_description').hide();
			jQuery(this).addClass('selected');
			jQuery('#footer_donateamount').val(jQuery(this).text());
			jQuery(selected_id).fadeIn();
			eventObj.preventDefault();
		});
	}
	
	//footer links hover
	jQuery('a.fadeonhover').hover(
		function () { jQuery(this).find('img').fadeTo("fast", 0.33);}, 
		 function () { jQuery(this).find('img').fadeTo("fast", 1);}
	 );
	
	//print it js enhancement
	jQuery('.page-actions .print a').click(function(){
		window.print();
	});
	
	//save it
	initiate_saveit();
	output_footer_saveit();
	
});


/* Show/hide default form field in input text */
function init_input_default(selector){
	jQuery(selector).each(function(){
		var default_text = jQuery(this).prev('label').text();
		if(jQuery(this).val() == ''){
			jQuery(this).val(default_text); 
		};
	});
	
	jQuery(selector).focus(function(){
		if(jQuery(this).val() == jQuery(this).prev('label').text()){
			jQuery(this).val(''); 
		};
	});
	jQuery(selector).blur(function(){
		var default_text = jQuery(this).prev('label').text();
		if(jQuery(this).val() == ''){
			jQuery(this).val(default_text); 
		};
	});
}

/* Page actions, share it popup */
function init_page_actions_popup(){
	jQuery('#shareitpopup form, #emailitpopup form').append('<input type="hidden" name="has_js" value="yes" />');
	jQuery('#shareitpopup,#emailitpopup').hide();
	jQuery('#shareitpopup_button, #emailitpopup_button').toggle(
		function (eventObj) { 
			jQuery('#pageaction_notification').remove();
			jQuery(this).addClass('icon_selected');
			jQuery(jQuery(this).attr("href")).slideDown();
			jQuery(this).blur();
			eventObj.preventDefault();
		},
		function (eventObj) {
			jQuery(this).removeClass('icon_selected');
			jQuery(jQuery(this).attr("href")).slideUp('fast');
			jQuery(this).blur(); 
			eventObj.preventDefault();
		}
	);
}

/* Show save it in footer (very bad code, sorry) */
function initiate_saveit(){
	var outputstring = '<h2>Saved pages</h2>';
	outputstring = outputstring +	'<span class="subtitle">Your favourites <img src="http://breakthrough.org.uk/display_images/icon_favourite.gif" alt="" width="17" height="17" class="heart" /></span>';
	outputstring = outputstring +	'<div id="saveitwrapper"><ul id="output_saveit"><li><p>Click the <img src="http://breakthrough.org.uk/display_images/icon_favourite_small.gif" alt="heart" width="13" height="13" /> icon to save a page to your favourites.</p></li></ul></div>';
	jQuery('#footer_saveit_teaser').html(outputstring);
	jQuery('.primary-content .page-actions li.save-it').css('display','inline');
	if(getCookie('savedpages_total') == ""){
		setCookie('savedpages_total', 0);
	}
	
	//add Save It onClick event handler
	jQuery('#savepagelink').click(function(eventObj){
		var thisrow_title = jQuery('h1').text();
		if(thisrow_title.length > 40){
			thisrow_title = thisrow_title.substr(0,40)+'...';
		}
		//var thisrow_str = jQuery(this).attr('href') + '|' + thisrow_title;
		var thisrow_str = document.location.href + '|' + thisrow_title;
		var totalSavedPages = parseInt(getCookie('savedpages_total'));
		var isduplicate = false;
	
		if(totalSavedPages > 0){
			//check for duplicates
			for (i=1;i<=totalSavedPages;i=i+1){
				if(getCookie('savedpages_'+i) == thisrow_str){
					isduplicate = true;
					break;
				}
			}
		}
		
		if(isduplicate){
			output_footer_saveit_notice('This page is already in your Saved Pages.');
		}else{
			//ok to update
			setCookie('savedpages_'+ parseInt(totalSavedPages+1), thisrow_str);
			setCookie('savedpages_total', parseInt(totalSavedPages+1));
			output_footer_saveit();
			output_footer_saveit_notice('This page has been added to your Saved Pages.');
		}
			
		jQuery(this).blur();
		eventObj.preventDefault();
	});
}

function output_footer_saveit_notice(str){
	jQuery('#pageaction_notification').remove();
	if(jQuery('#shareitpopup_button').hasClass('icon_selected')){
		page_action_popdown();
	};
	jQuery('<p id="pageaction_notification">'+str+'</p>').insertAfter('.page-actions')
	jQuery('#pageaction_notification').fadeIn('normal',function(){
		jQuery('#pageaction_notification').animate( { width:"500"}, 2000, function(){
			jQuery('#pageaction_notification').fadeOut('slow', function(){
				jQuery('#pageaction_notification').remove();
			});
		});
	});
}

function output_footer_saveit(){
	var tmp = '';
	var totalSavedPages = getCookie('savedpages_total');
	
	if(totalSavedPages > 0){
		//make li's
		for (i=totalSavedPages;i>=1;i=i-1)
		{
			var temp_arr = getCookie('savedpages_'+i).split('|');
			tmp = tmp + '<li><a href="'+temp_arr[0]+'">'+temp_arr[1]+'</a><span class="delete" title="Remove this page">delete</span></li>';
		}
		jQuery('#output_saveit').html(tmp);
		
		//add accordion
		if(totalSavedPages > 4){
			jQuery('#saveit-scroller').remove();
			jQuery('<div id="saveit-scroller"><span class="up">&nbsp;</span><span class="down">&nbsp;</span></div>').
			insertAfter('#saveitwrapper');
			jQuery("#saveitwrapper").jCarouselLite({
				btnNext: "#saveit-scroller .down",
				btnPrev: "#saveit-scroller .up",
				vertical: true,
				visible:4,
				height:"auto"
			});
		}else{
			jQuery('#saveit-scroller').remove();
		}
	}
	
	//add Delete event handlers
	jQuery('#saveitwrapper li .delete').click(function(eventObj){
		var togo = jQuery(this).parent('li');
		var thislink = jQuery(togo).find('a');
		var remainingPages = remove_saveit_page(jQuery(thislink).attr('href')+'|'+jQuery(thislink).text());
		jQuery(togo).fadeOut('fast',function(){
			jQuery(togo).remove();
		});
		if(remainingPages <= 4){
			jQuery('#saveit-scroller').remove();
			if(remainingPages == 0){
				jQuery('#output_saveit').html('<li><p>Click the <img src="http://breakthrough.org.uk/display_images/icon_favourite_small.gif" alt="heart" width="13" height="13" /> icon to save a page to your favourites.</p></li>');
			}
		}
		eventObj.preventDefault();
	});
}

function remove_saveit_page(str){
	var totalSavedPages = parseInt(getCookie('savedpages_total'));
	var flag_found = false;
	var remainingPages = parseInt(totalSavedPages-1);
	
	for (i=1;i<=totalSavedPages;i=i+1){
		if(flag_found == false){
			var this_str = getCookie('savedpages_'+i);
			if(this_str == str){
				flag_found = true;
			}
		}
		if(flag_found){
			var nextcookie_str = getCookie('savedpages_'+parseInt(i+1));
			setCookie('savedpages_'+i, nextcookie_str);
		}
	}
	
	if(flag_found){
		delCookie('savedpages_'+totalSavedPages);
		setCookie('savedpages_total', remainingPages);
		return remainingPages;
	}else{
		return totalSavedPages;
	}
}

/* Cookie helper */
function setCookie(c_name,value)
{
	var exdate=new Date();
	var expiredays=30;
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+
	((expiredays==null) ? "" : ";expires="+exdate.toGMTString()) + "; path=/";
}
function getCookie(c_name)
{
if (document.cookie.length>0)
	{
	c_start=document.cookie.indexOf(c_name + "=");
	if (c_start!=-1)
		{
		c_start=c_start + c_name.length+1;
		c_end=document.cookie.indexOf(";",c_start);
		if (c_end==-1) c_end=document.cookie.length;
		return unescape(document.cookie.substring(c_start,c_end));
		}
	}
return '';
}
function delCookie(c_name) {
	document.cookie = c_name +
	'=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
} 

