YE.onAvailable('featuredTitle', function() {this.innerHTML = 'My Favourite Galleries'});
YE.onAvailable('categoryTitle', function() {this.innerHTML = 'Photo Categories'});

function load_journal_pictures(){
	//var query_url = gallery_page_url + " #journal";
	//var current_page_url = window.location;
	//alert(current_page_url);
	//var cur_page = jQuery("#albumNav_top span.navPageOn").html()*1;
	//load_page_as_text_sync(gallery_page_url,"#ab_jq_tmp_div");
	//generate_new_pagination();
	if (jQuery("#journal_entries").length != 0){
		if (jQuery("#ab_jq_tmp_div").length == 0){
			jQuery("body").append('<div id="ab_jq_tmp_div" style="display:none;"></div>');
		}
		handle_gallery_content();
	}
}

function get_current_album(){
	var cur_location = window.location.toString();
	var last_slash_position = cur_location.lastIndexOf("/");
	var supposed_album_name = cur_location.substring(0,last_slash_position+1);//+1 is added to include the slash
	var current_menu_page = jQuery("#albumNav_top span.navPageOn").html();
	if ((supposed_album_name+current_menu_page) == cur_location){
		return supposed_album_name;
	} else {
		return cur_location+"/";// this is the first page
	}
}

function get_last_smugmug_page_number(){
	var current_smugmug_page_number = jQuery("#albumNav_top span.navPageOn").html()*1;
	var last_smugmug_page_number = current_smugmug_page_number;
	var smugmug_pages_list = jQuery("#albumNav_top .pageNav a");
	var pages_count = smugmug_pages_list.length;
	if (pages_count > 0){//if there are more pages except current
		//getting gallery base URL and last page number
		//check if the last link is to last page or to next page
		var link_index = pages_count-1;
		var link_text = jQuery(smugmug_pages_list[link_index]).html();
		//jQuery("#ab_jq_tmp_div").append("[debug] last_link_content" + link_text + "[/debug]<br />");
		if ( (link_text == "&gt;") || (link_text == ">") ){//if this is link only to the next-to-current page
			link_index = link_index-1;//then move to previous link to get the last page number
		}
		//jQuery("#ab_jq_tmp_div").append("[debug] LINK_INDEX: " + link_index + "[/debug]<br />");
		if (link_index >= 0){

		//
			var gallery_last_url = jQuery(smugmug_pages_list[link_index]).attr("href");
			//jQuery("#ab_jq_tmp_div").append("[debug] LINK_HREF: " + gallery_last_url + "[/debug]<br />");
			var base_url_end = gallery_last_url.lastIndexOf("/");
			var gallery_base_url = gallery_last_url.substring(0,base_url_end+1);//+1 is used to include "/" character into base url
			last_smugmug_page_number = gallery_last_url.substring(base_url_end+1,gallery_last_url.length)*1;
		}
		//gallery base URL and last smugmug page number received
		if (last_smugmug_page_number < current_smugmug_page_number){//if current page is the last one and link points to the previous one
			last_smugmug_page_number = current_smugmug_page_number;
		}
	}
	//jQuery("#ab_jq_tmp_div").append("[debug] LAST_PAGE_NUMBER: " + last_smugmug_page_number + "[/debug]<br />");
	return last_smugmug_page_number;
}

function get_first_smugmug_page_number_to_parse(current_smugmug_page_number){
	var first_page_number = (current_smugmug_page_number -1 - ((current_smugmug_page_number-1) % 3)) +1;
	return first_page_number;
}

function get_last_smugmug_page_number_to_parse(current_smugmug_page_number, last_smugmug_page_number){
	var first_page_number = get_first_smugmug_page_number_to_parse(current_smugmug_page_number);
	var last_page_number = first_page_number+2;
	var last_smugmug_page_number = get_last_smugmug_page_number();
	if (last_page_number > last_smugmug_page_number){
		last_page_number = last_smugmug_page_number;
	}
	return last_page_number;
}

function make_a_list_of_images(album_base_url,start_page,end_page){
	var images_list = "";
	var temp_images_list = "";
	var cur_url = "";
	var comma_char = "";
	var cur_page_number = start_page;
	for (cur_page_number = start_page; cur_page_number <= end_page; cur_page_number++ ){
		cur_url = album_base_url + cur_page_number.toString();
		temp_images_list = get_page_images_list(cur_url);

		if (!(temp_images_list == "")){
			images_list = images_list + comma_char + temp_images_list;
			comma_char = ",";
		}
	}
	return images_list;
}

function get_page_images_list(page_url){
	var aj_response = jQuery.ajax({ url: page_url,	dataType: "text", async: false }).responseText;
	var data = aj_response;
	var json_start = false;
	json_start = data.indexOf("journalImagesJSON");
	if (json_start > 0){
		json_end = data.indexOf("}';",json_start);
		var json_str = data.substring(json_start, json_end);
		//var json_str = data.substr(json_start, json_end-json_start);
		var images_array_start = json_str.indexOf("[")+1;//+1 is added to skip the "[" char too
		var images_array_end = json_str.lastIndexOf("]");
		var images_array = json_str.substring(images_array_start, images_array_end);
		//jQuery("#ab_jq_tmp_div").append("[debug] Images ARRAY_START: " + images_array_start + "[/debug]<br />");
		//jQuery("#ab_jq_tmp_div").append("[debug] Images ARRAY_END: " + json_end + "[/debug]<br />");
		//jQuery("#ab_jq_tmp_div").append("[debug] Images ARRAY: " + images_array + "[/debug]<br />");
		//jQuery("#ab_jq_tmp_div").append("[debug] Images list: " + json_str + "[/debug]<br />");
		return images_array;
	}else{
		jQuery("#ab_jq_tmp_div").append("[debug] Images list: IS EMPTY [/debug]<br />");
		return "";
	}
}

function load_page_as_text_sync(pageurl,container_path){
	var aj_response = jQuery.ajax({ url: pageurl,	dataType: "text", async: false }).responseText;
	var data = aj_response;
	var jsonstart = false;
	var images_array = "";
	json_start = data.indexOf("journalImagesJSON");
	if (json_start > 0){
		json_end = data.indexOf(";",json_start);
		var json_str = data.substring(json_start, json_end);
		var images_array_start = json_str.indexOf("[")+1;//+1 is added to skip the "[" char too
		var images_array_end = json_str.lastIndexOf("]");
		images_array = json_str.substring(images_array_start, images_array_end);
		//jQuery(container_path).html(images_array);
		//jQuery("#ab_jq_tmp_div").append(images_array);
	}
	//alert(images_array);
	return images_array;
}

function generate_new_pagination(){//no parameters needed because all data is avaliable in current pagination
	var current_smugmug_page_number = jQuery("#albumNav_top span.navPageOn").html()*1;
	var smugmug_pages_list = jQuery("#albumNav_top .pageNav a");
	var pages_count = smugmug_pages_list.length;
	if (pages_count > 0){//if there are more pages except current
		//getting gallery base URL and last page number
		var gallery_last_url = jQuery(smugmug_pages_list[pages_count-1]).attr("href");
		var base_url_end = gallery_last_url.lastIndexOf("/");
		var gallery_base_url = gallery_last_url.substring(0,base_url_end+1);//+1 is used to include "/" character into base url
		//var last_smugmug_page_number = gallery_last_url.substring(base_url_end+1,gallery_last_url.length)*1;
		var last_smugmug_page_number = get_last_smugmug_page_number();
		//gallery base URL and lat smugmug page number received

		if (last_smugmug_page_number < current_smugmug_page_number){//if current page is the last one and link points to the previous one
			last_smugmug_page_number = current_smugmug_page_number;
		}
		var current_page_recalculated = (current_smugmug_page_number -1 - ((current_smugmug_page_number-1) % 3))/3 + 1;
		//var current_page_recalculated = (current_smugmug_page_number - (current_smugmug_page_number % 3))/3 +1;
		var last_page_recalculated = (last_smugmug_page_number - 1 - ((last_smugmug_page_number - 1) % 3))/3 +1;
		jQuery("#ab_jq_tmp_div").append("[debug] last_page_recalculated: " + last_page_recalculated + "[/debug]<br />");
		var recalculated_page_start = 1;
		var recalculated_page_end = last_page_recalculated;
		var new_navigation_line = '<span class="title">Gallery pages:</span>';
		if (current_page_recalculated > 5){
			new_navigation_line = new_navigation_line + '&nbsp;&nbsp;<a href="'+gallery_base_url+'1" class="nav">&lt;&lt;</a>';
			recalculated_page_start = current_page_recalculated-1;//the first number that will be shown in pagination links menu
		}
		if (current_page_recalculated > 1){
			new_navigation_line = new_navigation_line + '&nbsp;&nbsp;<a href="'+gallery_base_url+(get_first_smugmug_page_number_to_parse(current_smugmug_page_number)-3)+'" class="nav">&lt;</a>';
		}

		var next_last_navigation_links = '';
		if (current_page_recalculated < last_page_recalculated){//if it is not the last page then show "next page" link
			next_last_navigation_links = '&nbsp;&nbsp;<a href="'+gallery_base_url+(current_page_recalculated*3+1)+'" class="nav">&gt;</a>';
		}
		if (current_page_recalculated < (last_page_recalculated - 4)){//if there are at least 5 more pages then show "last page" link
			next_last_navigation_links = next_last_navigation_links + '&nbsp;&nbsp;<a href="'+gallery_base_url+last_smugmug_page_number+'" class="nav">&gt;&gt;</a>';
			recalculated_page_end = recalculated_page_start+5;
		}

		for (page_number = recalculated_page_start; page_number <= recalculated_page_end; page_number++){
			if (page_number != current_page_recalculated){
				new_navigation_line = new_navigation_line + '&nbsp;&nbsp;<a href="'+gallery_base_url+( (page_number-1)*3+1 )+'" class="nav">'+page_number+'</a>';
			}else{
				new_navigation_line = new_navigation_line + '&nbsp;&nbsp;<span class="navPageOn">'+page_number+'</span>';
			}
		}
		new_navigation_line = new_navigation_line + next_last_navigation_links;
		return new_navigation_line;
	}
	return "";
}

function add_page_containers(){
	var photo_caption_container_selector = "#journal_entries .journal_new_entry .journal_caption_container";
	var photo_image_selector = "#journal_entries .journal_new_entry .photo img";
	var photo_entry_container = "#journal_entries .journal_new_entry";
	var photo_caption_container_subselector = ".journal_caption_container";
	var photo_image_subselector = ".photo img.imgBorder";
	var photo_entries_list = jQuery(photo_entry_container);
	var entries_count = photo_entries_list.length;
	var current_entry = 0;
	var image_path = "";
	/*
	if (entries_count > 0){
		for (current_entry = 0; current_entry < entries_count; entries_count++){
			image_path = jQuery(photo_image_selector, photo_entries_list[current_entry]).attr("src");
			//jQuery("#ab_jq_tmp_div").append("[debug] image_url: " + image_path + "[/debug]<br />");
		}
	}
	*/



	jQuery(photo_image_selector).each(function(i){
											var photo_caption_container_subselector = ".journal_caption_container";
											var photo_image_subselector = ".photo img.imgBorder";
											var image_path = jQuery(this).attr("src");
											//jQuery(this).filter(photo_image_subselector).css("border-color","#888888 !important");
											//jQuery(this).filter(photo_image_subselector).addClass("michaelb_test_class");
											jQuery("#ab_jq_tmp_div").append("[debug] image_url: " + image_path + "[/debug]<br />");
											//jQuery(this).filter(photo_caption_container_subselector).append("<div style=\"display: none;\">"+image_path+"</div>");
										}
	);


}

function handle_gallery_content(){
	var gallery_base_directory = get_current_album();
	var current_page_number = jQuery("#albumNav_top span.navPageOn").html()*1;
	var last_smugmug_page_number = get_last_smugmug_page_number();
	var first_page_to_parse = get_first_smugmug_page_number_to_parse(current_page_number);
	var last_page_to_parse = get_last_smugmug_page_number_to_parse(current_page_number,last_smugmug_page_number);
	var list_of_images_to_show = make_a_list_of_images(gallery_base_directory,first_page_to_parse,last_page_to_parse);
	//jQuery("#ab_jq_tmp_div").append(last_smugmug_page_number.toString());
	var json_images_list_string = '{"images":['+list_of_images_to_show+']}';
	//jQuery("#ab_jq_tmp_div").append(json_images_list_string);
	var new_pagination = generate_new_pagination();
	jQuery("#ab_jq_tmp_div").append("[debug] first_page_to_parse: " + first_page_to_parse + "[/debug]<br />");
	jQuery("#ab_jq_tmp_div").append("[debug] last_page_to_parse: " + last_page_to_parse + "[/debug]<br />");
	jQuery("#ab_jq_tmp_div").append("[pagination]" + new_pagination + "[/pagination]<br />");
	//jQuery("#ab_jq_tmp_div").append("[images_list]" + json_images_list_string + "[/images_list]");
	if (new_pagination != ""){

		jQuery("#albumNav_bottom .pageNav").html(new_pagination);//puts new pagination on bottom
		jQuery("#albumNav_top .pageNav").html(new_pagination);//puts new pagination on top

		journalImages = YAHOO.lang.JSON.parse(json_images_list_string);
		viewConfig = {containerID: "journal_entries", imageInfo: journalImages}
		journalView = new SM.journalStretch.view(viewConfig);
		journalView.render();
		add_page_containers();

	}
}



function show_on_all_but_blackberry(){
	var browser=navigator.appName;
	var browser_test_part = "BlackBerry";
	if (
		(browser.indexOf(browser_test_part) == -1)&&(!(navigator.userAgent.match(/iPhone/i)))&&(!(navigator.userAgent.match(/iPod/i)))){
		jQuery(document).ready(
			function(){
				load_journal_pictures();
			}
		);
	} else {
		//document.write("Blackberry");
	}
}

show_on_all_but_blackberry();
