

var BookApp = {

	gotoPage:function(val){ 	///animate off current page
	BookApp.toggleZoom(false)	
	newPageNum = val;
	
		var leftPage = $('div#leftPage');
		var rightPage = $('div#rightPage');
		var upperPage = $('div#upperPage');
		var lowerPage = $('div#lowerPage');
		
		var leftPageContent = $('div#leftPage div.spread');
		var rightPageContent = $('div#rightPage div.spread');
		var upperPageContent = $('div#upperPage div.spread');
		var lowerPageContent = $('div#lowerPage div.spread');

		$('#displayText input').val((val + 1))
	if(oldPageNum != newPageNum){
		animReady = false
		
	//	$('#pageThumbs li.active').removeClass('active');
	//	$('#pageThumbs li').eq(val).addClass('active');
		
		var oldPageContent = $('#allPages div.spread').eq(oldPageNum).html()
		var newPageContent = $('#allPages div.spread').eq(newPageNum).html()
	
					if(newPageNum  >= maxPages -1){
						rightPage.hide();
						$('#bookContainer a.next').hide();
					}else{
						$('#bookContainer a.next').show();
						rightPage.show();
					}
	
					if(newPageNum == 0){
						leftPage.hide();
						$('#bookContainer a.previous').hide();
					}else{
						$('#bookContainer a.previous').show();
						leftPage.show();
					}
			
					upperPageContent.html(newPageContent);
					lowerPageContent.html(oldPageContent);
					
					lowerPage.show();
					upperPage.show();
				
					$('.popup').remove()
					$('.videobutton').remove()
					$('.linkbutton').remove()
			if(oldPageNum < newPageNum){ ////flip left animation
			
					if(oldPageNum == 0){
						leftPage.hide();
					}else{
						leftPage.show();
					}
					
					leftPageContent.html(oldPageContent);
					rightPageContent.html(newPageContent);

					lowerPage.css({ width: '480px'});
					upperPage.css({ width: '0px', left: '960px'});
					
					upperPageContent.css({ left: '0'});
					
					$("#bookContainer img").css({ height: (hval + "px")})
					
					lowerPage.animate( { width: '0px'}, 600);
					upperPage.animate( {width: '480px',left: '0'}, 600, function(){
						leftPageContent.html(newPageContent);
						$("#bookContainer img").css({ height: (hval + "px")})
						lowerPage.hide();
						upperPage.hide();
						leftPage.show();
						BookApp.createPops();
						oldPageNum = newPageNum;
						animReady = true
					});
			}else{ ////flip right animation

					if(oldPageNum >= maxPages -1){
						rightPage.hide();
					}else{
						rightPage.show();
					}
			
					rightPageContent.html(oldPageContent);
					leftPageContent.html(newPageContent);
$("#bookContainer img").css({ height: (hval + "px")})
					lowerPage.css({ width: '480px', left: '0'});
					upperPage.css({ width: '0px', left: '0'});
					
					lowerPageContent.css({ left: '0'});
					upperPageContent.css({ left: '-960px'});

					lowerPage.animate( { width: '0px', left: '480px'}, 600);
					lowerPageContent.animate({ left: '-480px'}, 600);
				
					upperPageContent.animate({ left: '-480px'}, 600);
					upperPage.animate( { width: '480px',left: '480px'}, 600, function(){
						rightPageContent.html(newPageContent);
						$("#bookContainer img").css({ height: (hval + "px")})
						lowerPage.hide();
						upperPage.hide();
						rightPage.show();
						BookApp.createPops();
						oldPageNum = newPageNum;
						animReady = true
					});
	
			}
		}
	},
	
	flipPage:function(dir){ //// previous/next page functions

		var goPage = (newPageNum + dir)
		
		if(goPage >= maxPages){
			if(userClicked == true){
				goPage = maxPages
			}else{
				userClicked = true
				BookApp.setTimer(false)
				goPage = 0
			}
		}
		
		if(goPage > -1 && goPage < maxPages){
			BookApp.gotoPage(goPage);
		}
	},

	setTimer:function(val){  	///toggle timer
		
		if(val){
			timer =  setInterval(function() {
			BookApp.flipPage(1);
			
 		 	}, 15000); 
		}else{
			clearInterval(timer);
		}

	},
	
	loadData: function(xmlPath){
		
		$.ajax({ 
		type: "GET",
		url: xmlPath, //'http://www.greenfieldbelser.com/themes/gb/public/digitalcookbook2011/digitalData.xml',//
		dataType: "xml",
		success: function(xml) {

			BookApp.buildBook(xml);
		},
		error:function (xhr, ajaxOptions, thrownError){
         //alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status);

             //alert(thrownError);
         } 
		});

	},
	
	submitForm: function(){
	var goPage = Number($('#displayText input').val()) - 1
	
	if(goPage >= maxPages){
		goPage = maxPages -1
	} else if(goPage < 0){
		goPage = 0
	}
	
	BookApp.gotoPage(goPage);
	},
	

	
	buildBook: function(xml){
 		xmlData = xml;	
		
		animReady = true;

		var booktemp = "";
		
		booktemp += "<a href='#' class='previous'>Previous</a><a href='#' class='next'>Next</a>";
		booktemp += "<div id='upperPage'><div class='spread'></div></div>";
		booktemp += "<div id='lowerPage'><div class='spread'></div></div>";
		booktemp += "<div id='leftPage'><div class='spread'></div></div>";
		booktemp += "<div id='rightPage'><div class='spread'></div></div>";
	
	
	var pdfLink = "<a href='" + $(xmlData).find('data').attr('pdf') + "' id='pdf'>Download PDF</a>"
	//	var bookNavTemp = "<div id='bookNav'><a href='#' class='first'>First</a><a href='#' class='previous'>Previous</a><ul id='pageThumbs'></ul><a href='#' class='next'>Next</a><div id='zoomButton'><a href='#' class='zoom'>Zoom</a></div>" + pdfLink + "<a href='#' class='close'>Close</a></div>"
		var bookNavTemp = "<div id='bookNav'><a href='#' class='first navbutton'>First</a><a href='#' class='previous navbutton'>Previous</a><div id='displayText'></div><a href='#' class='next navbutton'>Next</a><a href='#' class='last navbutton'>Last</a><div id='zoomButton'><a href='#' class='zoom'>Zoom</a></div>" + pdfLink + "<a href='#' class='close'>Close</a></div>"
		
		$('body').prepend('<div id="bookApp"><div id="bookContainer">'+ booktemp + '</div><div id="allPages"></div>'+ bookNavTemp +'</div>')
	
	
		maxPages = $(xmlData).find('data').children().length//spread.length;//$('#allPages div.spread').length;

		
	//alert(pdfLink)
	//////create navigation
/*	var thumbContent = "";

	for (var i = 0, j = maxPages ; i < j; i++) {
		thumbContent += "<li>" + (i + 1) + "</li>"
	}

	$('#pageThumbs').html(thumbContent)*/

	///preload page content
	var preContent = "";

	for (var i = 0, j = maxPages ; i < j; i++) {
		var imgval = "<img src=\"" + $(xmlData).find('thumb').eq(i).text() + "\" />";
		if(i == 0){
			imgval = "<div class='rightSide'>" + imgval + "</div>";
		}else if(i == maxPages -1){
			imgval = "<div class='leftSide'>" + imgval + "</div>";
		}
		preContent += "<div class='spread'>" + imgval + "</div>";
	}
	
	$('#allPages').html(preContent);
	
	///show first page
	oldPageNum = 0;
	newPageNum = 0;
	hval = Number($(xmlData).find('data').attr('height'));
	
	if(hval > 600){
		//hval = 600;
	}
	$('#bookNav').css({top: ((hval + 10) + "px")});
	$('#bookContainer a.next').css({top: (((hval-32)/2) + "px")});
	$('#bookContainer a.previous').css({top: (((hval-32)/2) + "px")});
	$("#bookContainer .spread").css({ height: (hval + "px")})
	//$('#pageThumbs li').eq(newPageNum).addClass('active');
	var newPageContent = $('#allPages div.spread').eq(newPageNum).html()
	$('div#rightPage div.spread').html(newPageContent);

	$("#bookContainer img").css({ height: (hval + "px")})
	///program display text in nav
	$('#displayText').html("Page: " + "<input type='text' maxlength='" + String(maxPages).length + "' value='1' onsubmit='javascript:BookApp.submitForm()'/>" + " / " + maxPages );

		$('#displayText input').keypress(function(e){
		
     		 if(e.which == 13){
     		 	userClicked = true;
				BookApp.setTimer(false);
    		   $('#displayText input').submit();
     		  } else if (e.which == 8 ) {
                // let it happen, don't do anything
       		 } else {
                // Ensure that it is a number and stop the keypress
                if (e.which < 48 || e.which > 57 ) {
                        e.preventDefault(); 
                }       
        }

     	 });
     	 
     	$('#displayText input').focus(function(){
			this.value = '';
		});
		$('#displayText input').blur(function(){
			userClicked = true;
			BookApp.setTimer(false);
			$('#displayText input').submit();
		});
	
	
	
	$('div#rightPage').show();
	$('#bookContainer a.next').show();
	$('#bookNav').show()
	
	///activate timer
	BookApp.setTimer(true)
	
	///activate next button
	$('a.next').click(function (){
		if(animReady == true){
			userClicked = true;
			BookApp.setTimer(false);
			BookApp.flipPage(1);
		}
		return false;	
	});

	///activate previous button	
	$('a.previous').click(function (){
		if(animReady == true){
			userClicked = true;
			BookApp.setTimer(false);
			BookApp.flipPage(-1);
		}
		return false;	
	});
	
	$('a.first').click(function (){
		if(animReady == true){
			userClicked = true;
			BookApp.setTimer(false);
			var goPage = 0;
			if(goPage != newPageNum){
					BookApp.gotoPage(goPage);
			}
		}
		return false;	
	});

	///activate previous button	
	$('a.last').click(function (){
		if(animReady == true){
			userClicked = true;
			BookApp.setTimer(false);
			var goPage = maxPages-1;
			if(goPage != newPageNum){
					BookApp.gotoPage(goPage);
			}
		}
		return false;	
	});
	
	///activate close button
	$('a.close').click(function (){
		BookApp.close()
		BookApp.setTimer(false)
		return false;	
	});
	
	///activate zoom button
	$('div#zoomButton a').click(function (){
		BookApp.toggleZoom()
		BookApp.setTimer(false)
		return false;	
	});
	
	//$('#bookNav input')
	///show new page when user clicks thumbnail
	/*	$('#pageThumbs li').click(function (){
			if(animReady == true){
				userClicked = true;
				BookApp.setTimer(false)
				var goPage = $('#pageThumbs li').index($(this))
				if(goPage != newPageNum){
					BookApp.gotoPage(goPage);
				}
			}
			return false;	
		});*/
	},
	
	open: function(src){
		userClicked = false;
		$('body').prepend('<div id="bookOverlay"></div>')
		BookApp.tellFlash("stop");
		//$('#flashContent embed').hide()
		BookApp.loadData(src);
		$('#bookOverlay').fadeTo('slow', 0.7, function (){
			//BookApp.buildBook(src);
			
		});
	},
	close: function(){
		//$('#flashContent embed').show()
	
	
		$('#bookApp').remove();
		$('.remote-processing').removeClass('remote-processing');
		$('#bookOverlay').fadeTo('slow', 0, function (){
			BookApp.tellFlash("start");
			$('#bookOverlay').remove()
		});
	},
	
	createPops: function(){
		$('.popup').remove()
		
		var popcount = $(xmlData).find('page').eq(newPageNum).find('popup').length;
		for (var i = 0, j = popcount ; i < j; i++) {
			
			var popdata = $(xmlData).find('page').eq(newPageNum).find('popup').eq(i)
	
			if(popdata.attr('src') != undefined){
				var poplink = popdata.attr('src');
			}else{
				var poplink = "#"
			}
			
			var popcontent = "<a href='" + poplink + "' class='popbutton'>POPUP</a><div class='popcontent'><div id='page" + (newPageNum + 1)+ "bg' class='poptext'>" + popdata.text() + "</div></div>"
			//"<a href="javascript:PNC.Video.open(\'/media/video/walk2work_hi.flv\')">Video Link</a>"
			var popval = "<div class='popup' id='p" + i+ "'>"+popcontent +"</div>"
			$('#bookContainer').prepend(popval)

			var pop = $("#p" + i)
			
			
			if(poplink != "#"){
				pop.find('.popbutton').addClass('videolink')
				pop.find('.popbutton').click(function(){
					PNC.Video.open($(this).attr('href'))
					return false;
				});
			}else{
				pop.find('.popbutton').click(function(){
					return false;
				});
			}
			

			if(popdata.attr('coord') != undefined){
			var coord = popdata.attr('coord').split('-');
				var xval = parseFloat(coord[0]);
				var yval = parseFloat(coord[1]);
			/*
				if(yval > 200){
					pop.find('.popcontent').addClass('bottom')
				}else{
					pop.find('.popcontent').addClass('top')
				}
				*/
				if(xval > 650){
					pop.find('.popcontent').addClass('right')
				}else{
					pop.find('.popcontent').addClass('left')
				}
				
				
				if(yval > 200){
					pop.find('.popbutton').addClass('bottom')
				}else{
					pop.find('.popbutton').addClass('top')
				}
				
				if(xval > 650){
					pop.find('.popbutton').addClass('right')
				}else{
					pop.find('.popbutton').addClass('left')
				}
				
				pop.css({ left: xval, top: yval });
				pop.fadeTo('slow', 1, function (){});
			}
			
		}
		

		$('.popup').hover(function(){
			$(this).addClass('show');
			
			if($(this).find('.popbutton').hasClass('bottom')){
				var pos = $(this).position();
				var hval = $(this).height()
				$(this).css({top: pos.top - hval + 40});
			}
			
			if($(this).find('.popbutton').hasClass('right')){
				var pos = $(this).position();
				var wval = $(this).width()
				$(this).css({left: pos.left - wval + 40});
			}
			
		},function(){
		
			if($(this).find('.popbutton').hasClass('bottom')){
				var pos = $(this).position();
				var hval = $(this).height()
				
				$(this).css({top: pos.top + hval - 40});
			}
			
			if($(this).find('.popbutton').hasClass('right')){
				var pos = $(this).position();
				var wval = $(this).width()
				$(this).css({left: pos.left + wval - 40});
			}
			
			$(this).removeClass('show');
		});
		
		
		$('.linkbutton').remove()
		var leftList = 0;
		var rightList = 0;
		var linkcount = $(xmlData).find('page').eq(newPageNum).find('link').length;
		for (var i = 0, j = linkcount ; i < j; i++) {
			
			var popdata = $(xmlData).find('page').eq(newPageNum).find('link').eq(i)
			
			if(popdata.attr('coord') == undefined){
			var popval = "<a href='" + popdata.attr('href') + "' class='linkbutton' id='l" + i+ "' target='_blank'>"+ popdata.text()+"</a>"
				$('#bookContainer').prepend(popval)

				var pop = $("#l" + i)

				var xval = 10
				var yval = 475
			if(popdata.attr('align') == "left"){
					
					leftList++
					
					if(leftList > 1){
						xval = 10 + (leftList * 40);
					}
					pop.css({ left : xval, top: yval });
				}else{
				
					rightList++
					
					if(rightList > 1){
						xval = 10 + (rightList * 40);
					}
					
					pop.css({ right : xval, top: yval });
				}
			
			}else{
		//	var popval = "<a href='" + popdata.attr('href') + "' class='linkbutton' id='l" + i+ "' >"+ popdata.text()+"</a>"
			
			
			
			}
			
		
				
				pop.fadeTo('slow', 1, function (){});

			
		}

		
		//$('.scroll-pane').jScrollPane();

		
		var vidcount = $(xmlData).find('page').eq(newPageNum).find('video').length;
		$('.videobutton').remove()
		
		for (var i = 0, j = vidcount ; i < j; i++) {
			var viddata = $(xmlData).find('page').eq(newPageNum).find('video').eq(i)
			
			
			var vidhtml = "<object type='application/x-shockwave-flash' width='100%' height='100%' data='/themes/gb/public/swfs/vidbutton.swf'><param name='movie' value='/themes/gb/public/swfs/vidbutton.swf' /><param name='quality' value='high' /><param name='flashvars' value='vidUrl=" + viddata.attr('src') + "' /><param name='wmode' value='transparent' /><param name='allowfullscreen' value='true' /></object>";
		

			var popval = "<div class='videobutton' id='v" + i+ "'>"+vidhtml +"</div>"
			$('#bookContainer').prepend(popval)
			
			var coord = viddata.attr('coord').split('-');
			var xval = parseFloat(coord[0]);
			var yval = parseFloat(coord[1]);
			var wval = viddata.attr('width');
			var hval = viddata.attr('height');
			
			$("#v" + i).css({ left: xval, top: yval, width: wval, height: hval });
			
		/*	
		$.get('/themes/gb/video_button.php', parameters, function (response){
				
				$("#v" + i).html(response);
		}, 'html');
			
		*/
		
				//$("#v" + i).html(vidhtml);
			
		}
		
	},

	toggleZoom: function(val){
		
		if(val == undefined){
			if($('div#zoomButton a').hasClass('active')){
				val = false
				
			}else{
				val = true
			
			}
		}
		
		if(val == true){
			ddpowerzoomer.init($)
				$('div#zoomButton a').addClass('active')
			$('div#leftPage div.spread img').addClass('magnify')
			$('div#rightPage div.spread img').addClass('magnify')
			var imgval = $(xmlData).find('image').eq(newPageNum).text()
			$('.magnify').addpowerzoom( {defaultpower:2, powerrange: [2, 5], magnifiersize: [300, 300], largeimage: imgval});
			
		}else{
			$('div#zoomButton a').removeClass('active')
			$('.magnify').removeClass('magnify')
			$('#magBox').remove()
		}
	},
	
	getFlashMovie: function(movieName) { 
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	return (isIE) ? window[movieName] : document[movieName];
	
	},
	
	tellFlash: function(val) {
		if(BookApp.getFlashMovie("GBHome") != undefined){
			BookApp.getFlashMovie("GBHome").sendToFlash(val);
		}
	},
	
	getFromFlash: function(val) {
		return val + " received";
	}

};


$(document).ready(function(){
	//BookApp.buildBook("/utilities/js/annualData.xml");
	$('a.bookLink').show();
	
	$('a.bookLink').click(function (){
		$link = $(this)
		
		if (!$link.hasClass('remote-processing')){
			$link.addClass('remote-processing')
			
			BookApp.open($(this).attr('href'));
		}

		return false;
		

	});
	
	$(document).keyup(function (event){
		if (event.keyCode == 27)
			//if($.find('div#zoomBox')){
			//	BookApp.closeZoom()
			//}else{
				BookApp.close();
		//	}
	});
	


});




