

// ---- FUNCTIONS ---//
var changeTabs = function(layerId,linkClass) {
	if($("#toolstab a."+linkClass+"").hasClass("lit")){
		$("#toolstab_content > div").slideUp("slow", function(){
			$("#toolstab > li > a").each(function(n) {$(this).removeClass("lit");});
		}).removeClass("showtool");		
		return false;
	};
	var slidePanelDown=true;
	$("#toolstab_content > div").each(function(n) {
		if ($(this).hasClass("showtool")) {
			$(this).hide().removeClass("showtool");
			slidePanelDown=false;
		}
	});
	if (slidePanelDown==true) {
		$("#"+layerId).slideDown().addClass("showtool")
	} else {
		$("#"+layerId).show().addClass("showtool")
	};
	$("#toolstab > li > a").each(function(n) {
		if ($(this).hasClass(""+linkClass+"")) {
			$(this).addClass("lit");
		} else {
			$(this).removeClass("lit");	
		}
	});
}

var updateCount = function() {
	var total = 0;
	var strPages = "page";
	var strNotes = "note";
	$("#toolsdata td :checkbox:checked").each(function() {total=total+1;});
	if (total!=1) {strPages=strPages+"s";strNotes=strNotes+"s";}
	$(".savedpagesbuttons .total").text(total+" "+strPages+" selected");
	$(".notesbuttons .total").text(total+" "+strNotes+" selected");
};

var checkAll = function(boolean) {
	$("input[name=item]").each(function() {$("input[name=item]").attr('checked', boolean)});
	var selector_checked = $("#toolsdata tr td :checkbox:checked").length;
	if (selector_checked >0){
		$("#toolsdata tr td :checkbox:checked").each(function() {$("#toolsdata tr").addClass("selected")});
	} else {
		$("#toolsdata tr td :checkbox").attr('checked', false).each(function() {$("#toolsdata tr").removeClass("selected")});
	}
	
};

var updateNumbering = function() {
	$("#toolsdata td span.number").each(function(i){$(this).text(i+1);});
	$("#toolsdata button.delete").each(function(i){i=i+1;$(this).attr("id", "del_"+(i));});
};

var updateOrder = function(data) {
	var strList = $(":input[name=list]").val();
	var strOrder = $(":input[name=order]").val();
	$.post("managed_content/library/tools/fragment/reorder.asp", { update: data, order: strOrder, list: strList});
	$("#toolsdata tbody tr").each(function(i){i=i+1;$(this).attr("id", "id_"+(i));});
};

var outputList = function(url,div,message) {
	var strGetFields = $(":input:checkbox").serializeArray();
	var strItems =",";
	var strErrorText=div.html();
	jQuery.each(strGetFields, function(i, field){strItems=strItems+(field.value+",");});
	if (strItems===",") {
		if (strErrorText==="") {div.html(message);}
	} else {
		div.html("");
		window.open(url+strItems);
	}
}

var getCookie = function(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) return null;
	} else
		begin += 2;
	var end = document.cookie.indexOf(";", begin);
	if (end == -1)
		end = dc.length;
	return unescape(dc.substring(begin + prefix.length, end));
}
//--- FUNCTIONS END ---/




$(document).ready(function(){
	
	//--- TABS ---//
	$("#toolstab a.opensavepage").live('click', function(event) {
		changeTabs("savepagetab","opensavepage");
		return false;
	});
	$("a.opennotes").live('click', function(event) {
		changeTabs("notestab","opennotes");
		return false;
	});
	$("#toolstab a.openglossary").live('click', function(event) {
		$("div.glossarysearchresults").html("");
		$("input#glossarysearchterm").val("");
		changeTabs("glossarytab","openglossary");
		return false;
	});
	$("#toolstab_content p.closetab a, #toolstab a#closetab").live('click', function(event) {
		$("#toolstab_content > div").slideUp("slow", function(){
			$("#toolstab > li > a").each(function(n) {$(this).removeClass("lit");});
		}).removeClass("showtool");
		return false;
	});
	//--- TABS END---//
	
	
	//--- SAVE PAGE ---//
	$("form.savepageform").submit(function() {
		var strSavepageurl=$(this.savepageurl).val()
		var strSavepageTitle=$(this.pagetitle).val()
		var strBreadcrumb=$(this.breadcrumb).val()
		$("div.savepage,li.savepageform").load("managed_content/library/tools/fragment/savepage.asp", {
			savepageurl: strSavepageurl, 
			pagetitle: strSavepageTitle, 
			addpage: '1',
			breadcrumb: strBreadcrumb
		}, function() {
			$("div.latestpages").load("managed_content/library/tools/fragment/latestpages.asp", {ajax: 'true'});
			$("span.pagecount").load("managed_content/library/tools/fragment/countpages.asp", {ajax: 'true'});
		});
		return false;
	})
	//--- SAVE PAGE END ---//


	//--- NOTES ---//
	$("form.notestool").live('submit', function(event) {
		var strPageTitle=$(this.pagetitle).val()
		var frmPageUrl=$(this.savepageurl).val()
		var NoteText=$(this.note).val()
		var strUpdate=$(this.updatenote).val()
		var strBreadcrumb=$(this.breadcrumb).val()
		$("div.noteform").load("managed_content/library/tools/fragment/notes.asp", {
			note: NoteText,
			breadcrumb: strBreadcrumb,
			savepageurl: frmPageUrl,
			pagetitle: strPageTitle,
			addnote: '1',
			updatenote: strUpdate,
			requiredfields: 'note',
			ajax: 'true'
		}, function() {
			$("li.editnote").load("managed_content/library/tools/tools_shortcuts.asp li.editnote", {ajax: 'true'});
			$("span.notecount").load("managed_content/library/tools/fragment/countnotes.asp", {ajax: 'true'});
		});
		return false;
	})
	$("#notestab a.vieweditnotes").live('click', function(event){
		var strHref=$(this).attr("href");
		$("div.noteform").load("managed_content/library/tools/fragment/notes.asp", { backtoform: 'true', href: strHref });
		return false;
	})
	//--- NOTES END ---//


	//--- GLOSSARY ---//
	if ( $("#glossarytab").length > 0 ) {
		$("#glossarysearchterm").autocomplete(glossaryterms, {
			minChars: 1,			/*minumun no. of characters before the results are displayed*/
			matchContains: false,	/*look inside (i.e. does "ba" match "foo bar") the search results*/
			scroll: true,			/*set to false to display first 10 results only*/
			selectFirst: false		/*first autocomplete value selected?*/
		});
	}
	$("form.glossarysearch").bind('submit', function(event) {
		var strTerm=$(this.glossarysearchterm).val()
		$("div.glossarysearchresults").load("managed_content/library/tools/fragment/glossarysearch.asp", {
			glossarysearchterm: strTerm,
			glossarysearch: '1',
			ajax: 'true',
			requiredfields: 'glossarysearchterm'
		});
		//Omniture addition
		if (typeof(s)!='undefined'){s.tl(this,'o','AR10 Report Tools: Glossary: '+strTerm)};
		//Omniture addition ends
		return false;
	})
	//--- GLOSSARY END ---//
	
	
	

	
	//--- TOOLS DATA TABLES ---//
	
	//form button rollover
	$("form input.toolsbutton").bind('mouseover focus', function(event) {
		$(this).addClass('toolsbutton_f2');
	}).bind('mouseout blur', function(event) {
		$(this).removeClass('toolsbutton_f2');
	});
	
	//--- select all/deselect all
	$("#toolsdata #select").html("<ul class=\"selectall\"><li><a href=\"#\" id=\"checkboxall\">Select all</a> | </li><li><a href=\"#\" id=\"checkboxnone\">Deselect all</a></li>");	
	$("#checkboxall").click(function() {checkAll(true);updateCount();return false;});
	$("#checkboxnone").click(function() {checkAll(false);updateCount();return false;});
	$("#toolsdata #reorder").text("Re-order");
	
	//--- count selected items
	$("#toolsdata td .count").click(function() {
		$(this).parents("tr").toggleClass("selected");
		updateCount();
		$("div.errormessage").html("")
	});
	
	//--- row hover state
	$("#toolsdata tbody tr").mouseover(function() {
			$(this).addClass("hover").find("td input.delete").addClass("delete_f2")
		}).mouseout(function() {
			$(this).removeClass("hover").find("td input.delete").removeClass("delete_f2")
		;}
	);
	
	$("input.delete").bind('mouseover focus', function(event) {
		$(this).addClass("delete_f3")
	}).bind('mouseout blur', function(event) {/*mouseout*/
		$(this).removeClass("delete_f3")
	});
	
	
	//--- Reorder (drag and drop)
	$("#toolsdata tbody td.dragme").addClass("dragmeimage")
	$("#toolsdata").tableDnD({
		onDragClass: "dragclass",
		dragHandle: "dragme",
		onDrop: function(table, row) {
			updateNumbering();
			updateOrder($.tableDnD.serialize())			
		}
	});
	
	//--- delete
	$("input.delete").live('click', function(event) {
		$("#toolsdata input.delete").each(function(n) {$(this).fadeOut();});
		var strList = $(":input[name=list]").val();
		var strOrder = $(":input[name=order]").val();
		var strId = $(this).val();	
		$(this).parents("tr").find("td .close").not(':last').slideUp("slow").end()
		.filter(':last').slideUp("slow", function() { 
			$.post(
				"managed_content/library/tools/fragment/removeitem.asp", 
				{deleterow: 'true', update: strId, order: strOrder, list: strList},
				function(data){
					$("#toolsdata input.delete").each(function(n) {$(this).fadeIn();});
				}
			);
			$(this).parents("tr").remove();
			var checkbox=$(this).parents("tr").find("td div div :checkbox:checked").length
			if (checkbox > 0) {updateCount();}
			updateNumbering();			
		});
		return false;
	});
		
	//--- set number of items selected
	$('.savedpagesbuttons .total').text('0 pages selected')
	$('.notesbuttons .total').text('0 notes selected')
	
	
	
	//show/hide note
	$("div.opennote").hide().before("<p class=\"clearboth\"><a href=\"#\" class=\"opennote\">+ View note</a></p>");
	$("a.opennote").click(function() {
		if ($(this).parent().next("div.opennote").is(':hidden')) {
			$(this).parent().next().slideDown("normal");
			$(this).text("- Close note")
		} else {
			$(this).parent().next().slideUp("normal");
			$(this).text("+ Open note")
		} return false;
	});
	

	//--- NOTES buttons
	$("input.downloadnotertf").click(function() {
		//Omniture addition
		if (typeof(s)!='undefined'){s.tl(this,'o','AR10 Report Tools: Download note in RTF')};
		//Omniture addition ends																				
		var errorDiv=$(this).parent().find("div.errormessage");
		var strOrder = $(":input[name=order]").val();
		/*IE6 bug fix*/
		if(/MSIE [1-6]/.test(navigator.userAgent)){
			var strGetFields = $(":input:checkbox").serializeArray();
			var strItems =",";
			jQuery.each(strGetFields, function(i, field){strItems=strItems+(field.value+",");});
			var strErrorText=errorDiv.html();
			if (strItems===",") {
				if (strErrorText==="") {errorDiv.html("Please select a note to download.");}
				return false;
			} 
		/*Other browsers*/
		} else {
			outputList("managed_content/library/tools/fragment/downloadnotes.asp?order="+strOrder+"&items=",errorDiv,"Please select a note to download.");
			return false;
		}
	})
	$("input.downloadnotehtml").click(function() {
		//Omniture addition
		if (typeof(s)!='undefined'){s.tl(this,'o','AR10 Report Tools: Print note')};
		//Omniture addition ends
		var errorDiv=$(this).parent().find("div.errormessage");
		var strOrder = $(":input[name=order]").val();
		outputList("managed_content/library/tools/fragment/printnotes.asp?order="+strOrder+"&items=",errorDiv,"Please select a note to print.");
		return false;
	})
	
	
	//--- SAVED PAGES buttons
	$("input.downloadpagepdf").click(function() {
		//Omniture addition
		if (typeof(s)!='undefined'){s.tl(this,'o','AR10 Report Tools: Download page as PDF')};
		//Omniture addition ends
		var errorDiv=$(this).parent().find("div.errormessage");
		var strOrder = $(":input[name=order]").val();
		outputList("http://files.the-group.net/library/_webcore/report_tools/createpdf/v1/index.cfm?site=http://www.kingfisher.com/files/reports/annual_report_2010/savedpages.asp?id=__order="+strOrder+"__items=",errorDiv,"Please select a page to download.");
		return false;
	})
	$("input.downloadpagehtml").click(function() {
		//Omniture addition
		if (typeof(s)!='undefined'){s.tl(this,'o','AR10 Report Tools: Download page as HTML')};
		//Omniture addition ends
		var errorDiv=$(this).parent().find("div.errormessage");
		var strOrder = $(":input[name=order]").val();
		outputList("savedpages.asp?print=true&order="+strOrder+"&items=",errorDiv,"Please select a page to print.");
		return false;
	})
	
	$("input.emailpage").live('click', function(event) {
		//Omniture addition
		if (typeof(s)!='undefined'){s.tl(this,'o','AR10 Report Tools: Email page')};
		//Omniture addition ends
		var strErrorDiv = $(this).parents("div.buttonwrapper").find("div.errormessage")							 
		var strGetFields = $(":input:checkbox").serializeArray();
		var strItems ="";
		var strErrorText=strErrorDiv.html();
		var strEmailaddress=$(":input[name=emailaddress]").val()
		jQuery.each(strGetFields, function(i, field){strItems=strItems+(field.value+",");});
		if (strItems==="") {
			if (strErrorText==="") {
				strErrorDiv.html("Please select a page to email.");
				$(":input[name=emailaddress]").val("");
			}
		} else {
			strErrorDiv.html("");
			$("div#notesemail").load("managed_content/library/tools/fragment/emailpages.asp", {
				ajax: 'true',
				email: 'true',
				emailaddress: strEmailaddress,
				requiredfields: 'emailaddress',
				item: strItems
			});
		}; return false;
	})
	//--- TOOLS DATA TABLES END ---//
});
