//example_extend.js
//Example localised Juice extention file
//Replace all references to {mySite} with url to where Juice is hosted for your site and uncomment lines.

jQuery(document).ready(function () {
	var uri = getFullURI() + "assets/-/";
	juice.setDebug(false);
//	juice.debugOutln("Debug stuff goes here");

	juice.loadCss(uri + "js/juiceDefault.css");
//	juice.loadJs("http://{mySite}/js/juiceOverlay-0.3.js");
//	juice.loadCss("http://{mySite}/juiceOverlay.css");
	juice.loadJs(uri + "js/metadefs/talis_prism_metadef.js");
	juice.loadJs(uri + "js/panels/juiceListPanel.js");
	juice.loadJs(uri + "js/panels/juiceBasicPanel.js");	
	juice.loadCss(uri + "js/panels/juiceDefault.css");
//	juice.loadJs(uri + "js/extensions/extendedbyJuice.js");
	juice.loadJs(uri + "js/northamptonjs/kiosktest.js");
//	juice.loadJs(uri + "js/extensions/northantsHeader.js");
//	juice.loadJs(uri + "js/extensions/northantsFooter.js");
//	juice.loadJs(uri + "js/extensions/northantsHomepage.js");
//	juice.loadJs(uri + "js/extensions/GoogleAnalytics.js");
//	juice.loadJs(uri + "/extensions/GoogleRssfeed.js");
//	juice.loadJs(uri + "js/extensions/Carousel3D.js");
	juice.loadJs(uri + "js/extensions/JuiceSimpleInsert.js");
	juice.loadJs(uri + "js/extensions/borroworbuy.js");
	juice.loadJs(uri + "js/extensions/delicious.js");
	juice.loadJs(uri + "js/extensions/Amzcouk.js");
	juice.loadJs(uri + "js/extensions/bookfinder.js");
	juice.loadJs(uri + "js/extensions/NCCPrism.js");
	juice.loadJs(uri + "js/extensions/sfx.js");
	juice.loadJs(uri + "js/extensions/bookings.js");
	juice.loadJs(uri + "js/extensions/bookingsloggedin.js");
	juice.loadJs(uri + "js/extensions/pinreminder.js");
	juice.loadJs(uri + "js/extensions/extendMyaccount.js");
//	juice.loadJs(uri + "js/extensions/payfines.js");
//	juice.loadJs(uri + "js/extensions/ebooks.js");
//	juice.loadJs(uri + "js/extensions/qrcode_juice.js");

	juice.onAllLoaded(runExtensions);
});

function runExtensions(){
//	kiosk = true;
//	alert(agent);
//	alert(kiosk); 

	if (kiosk) {
//		new northantsHeader(juice);
//		new northantsFooter(juice);	
		var uri = getFullURI() + "assets/-/";
		juice.loadCss(uri + "generic/kiosk.css");
	}

//	new extendedbyJuice(juice);
	// Replace UA-XXXXXXX-XX with your Google Analytics ID(s) - comma separated if there is more than one
	// Have replaced Juice Google Analytics with hard-coded version in footer to use asynchronous analytics. 
//	new gasJuice(juice,"UA-9186459-1");
	talis_prism_metadef();

//	var ebdiv = '<div id="eb" class="itemFulfillmentPanelHeading"></div>';
//	var ebooksinsert = new JuiceInsert(ebdiv,"#pageHeader","append");
//	ebooksinsert.show();
//	new ebooksJuice(juice,"eb");
	
 	switch(jQuery("body").attr("id")){
		case "index":
			frontPage();
			break;
		case "searchaction":
			resultsPage();
			break;
		case "renderitem":
			itemPage();
			break;
		case "login":
			loginPage();
			break;
		case "account":
			accountPage();
			break;
	}
}

function getFullURI() {
	var parts = window.location.href.split('/');
	var uri = parts[0] + '//' + parts[2] + '/';
	var tenant = parts[3];
	if (tenant == 'demo') {
	  tenant += '/' + parts[4];
	}
	uri += tenant + '/';
	return uri;
}

function frontPage(){
	//Front Page functionality
	 var uri = getFullURI() + "assets/-/";
}

function resultsPage(){	//Results Page functionality
	var uri = getFullURI() + "assets/-/";
	
	if(juice.hasMeta()){
       	buildSelectionListPanel( "<h2>Bookmark Your Search</h2>", "#searchFacets", "append");
		new deliciousJuice(juice,
     			uri + 'js/images/Delicious.jpg',
     			'Bookmark with Delicious');
	}
}

function itemPage(){		//Item Page functionality
	var uri = getFullURI() + "assets/-/";
//juice.setDebug(true);
//juice.debugMeta();

	new borrowJuice(juice);
	new buyJuice(juice);
//	new ebooksJuice(juice);

	if(juice.hasMeta()){
		buildSelectionListPanel("<h2>Alternative sources...</h2>", "#itemActions .tagbox", "after");

	 	new nccprismJuice(juice,
	       	uri + 'js/images/copac.gif',
        	'Northamptonshire Libraries');

	 	new amzcoukJuice(juice,
	       	uri + 'js/images/amazon.jpg',
        	'Amazon');

	 	new bookfinderJuice(juice,
	       	'',
       		'Bookfinder');
	}

	if(juice.hasMeta()){
		buildSelectionListBookmarksPanel("<h2>Bookmark this item...</h2>", "#itemActions", "append");

		new deliciousJuice(juice,
     		uri + 'js/images/Delicious.jpg',
     		'Bookmark with Delicious',
			'BookmarksExtentionsPanelWindow');
	}

	if((juice.hasMeta("loantype") && (juice.getMeta("loantype") == "E-Book")) || (juice.hasMeta("loantype-unavailable")) && (juice.getMeta("loantype-unavailable") == "E-Book") || (juice.hasMeta("issns") && juice.getMeta("issns")[0])) {
		buildSelectionBasicPanelSFX("",".status","after");	
		
		new hideReserveLink(juice);
		
		if ((juice.hasMeta("loantype") && (juice.getMeta("loantype") == "E-Book")) || (juice.hasMeta("loantype-unavailable")) && (juice.getMeta("loantype-unavailable") == "E-Book")) {
		    new sfxJuice(juice,
				uri + 'js/images/accessebook.gif',
				'Search SFX',
				'ExtentionsPanelWindowSFX');
				
		}
		else {
			new sfxJuice(juice,
				uri + 'js/images/findmyreference.gif',
				'Search SFX',
				'ExtentionsPanelWindowSFX');
		}
				
		if(juice.hasMeta("elocations")){
// No longer need to count links since changed to a ul...?
//			var i = 0;
//			var cns = "";
//			// Check number of 856s
//			// For Firefox
//			if(document.getElementsByClassName) {
//				cns = document.getElementsByClassName('eResourceLinks');
//			}
//			// For other browsers...
//			else {
//				cns = getElementsByClassNameNonFF('eResourceLinks');
//			}
//			for (i=0;i<cns.length;i++) {
				new hideELoc(juice);
//			}
		}
	}

	 if(juice.hasMeta("workid")){
		var workid = juice.getMeta("workid");
		var selString = workid;

		if (selString) {
			new bookingsJuice(juice);
			new bookingsloggedinJuice(juice);
		}

//		var qrdiv = '<li id="qr">Bookmark the qrcode</li>';
//		var qrinsert = new JuiceInsert(qrdiv,"#BookmarksExtentionsPanel .JuiceList","append");
//      qrinsert.show();
//		new qrcodeJuice(juice,qrinsert,"qr", "workid","","s");
	}		
}

function loginPage(){	//Borrower Services Page functionality
	var uri = getFullURI() + "assets/-/";
	new pinreminder(juice);
}

function accountPage(){		//My Library Account functionality
	 var uri = getFullURI() + "assets/-/";
	 var href = window.location.href;
//	 alert(href);
	if (href == "https://prism.talis.com/northampton-ac-sandbox/account/charges") {
		 new payfines(juice);
	}
	if (href == "https://prism.talis.com/northampton-ac-sandbox/account/pin") {
		 new changepin(juice);
	}
}

function buildSelectionListPanel(ttl, posonpage, wh){
	var title = ttl;
	var position = posonpage;
	var where = wh;

    var div = '<div id="ExtentionsPanel" class="itemFulfillmentPanel sidebar">' +
 		'<div class="itemFulfillmentPanelHeading">' + title + '</div>' +
        '<div id="ExtentionsPanelWindow" class="itemFulfillmentPanelDetail" width="25%">' +
        '</div></div>';
		
	var insert = new JuiceInsert(div,position,where);
	var panel = new JuiceListPanel(insert,"ExtentionsPanelWindow",'juiceXInactiveText','juiceXActiveText',null);
    juice.addPanel(panel);	
}

function buildSelectionListBookmarksPanel(ttl, posonpage, wh){
	var title = ttl;
	var position = posonpage;
	var where = wh;

    var div = '<div id="BookmarksExtentionsPanel" class="itemFulfillmentPanel">' +
 		'<div class="itemFulfillmentPanelHeading">' + title + '</div>' +
        '<div id="BookmarksExtentionsPanelWindow" class="itemFulfillmentPanelDetail sidebar" width="25%">' +
        '</div></div>';
		
	var insert = new JuiceInsert(div,position,where);
	var panel = new JuiceListPanel(insert,"BookmarksExtentionsPanelWindow",'juiceXInactiveText','juiceXActiveText',null);
    juice.addPanel(panel);	
}

function buildSelectionBasicPanelSFX(ttl, posonpage, wh){
	var title = ttl;
	var position = posonpage;
	var where = wh;

    var div = '<div id="ExtentionsPanelSFX">' +
 		'<div class="itemFulfillmentPanelHeading">' + title + '</div>' +
        '<div id="ExtentionsPanelWindowSFX" class="itemFulfillmentPanelDetail">' +
       	'</div></div>';
		
	var insert = new JuiceInsert(div,position,where);
	var panel = new JuiceBasicPanel(insert,"ExtentionsPanelWindowSFX",'juiceXInactiveText','juiceXActiveText',null);
    juice.addPanel(panel);	
}

function buildSelectionListBookingsPanel(ttl, posonpage, wh){
	var title = ttl;
	var position = posonpage;
	var where = wh;

    var div = '<div id="BookingsExtentionsPanel" class="itemFulfillmentPanel">' +
 		'<div class="itemFulfillmentPanelHeading">' + title + '</div>' +
        '<div id="BookingsExtentionsPanelWindow" class="itemFulfillmentPanelDetail" width="25%">' +
       	'</div></div>';
		
	var insert = new JuiceInsert(div,position,where);
	var panel = new JuiceListPanel(insert,"BookingsExtentionsPanelWindow",'juiceXInactiveText','juiceXActiveText',null);
    juice.addPanel(panel);	
}

//function getElementsByClassNameNonFF(classname, node) {
//	if(!node) node = document.getElementsByTagName("body")[0];
//     var a = [];
//      var re = new RegExp('\\b' + classname + '\\b');
//      var els = node.getElementsByTagName("*");
//      for(var i=0,j=els.length; i<j; i++)
//      if(re.test(els[i].className))a.push(els[i]);
//      return a;
//}

