//Portions are Copyright (c) 2000-2005, Mobular Technologies&#174;, Inc.  All Rights Reserved.
//Mobular and Mobular Technologies are Registered Trademarks of Mobular
//Technologies, Inc.
//All rights reserved.  Unauthorized reproduction prohibited.
//http://www.mobular.com/
//
var backup_gShowShow = '';
function initializeCover()
{
  document.getElementById("showFrame").style.visibility = "HIDDEN";
  
  if ( ( g_ekitCover != "" ) && ( prtDocs.length > 1 ) ) 
  {
    // Modify g_showShow so that when the user goes back to the kit cover they
    // do not see the single page.

    var new_cover = "";  
    new_cover += "\n<table width=\"814\" height=\"500\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">";
    new_cover += "\n  <tr valign=\"middle\">";
    new_cover += "\n    <td align=\"center\" valign=\"middle\">";
     new_cover += "\n          Caricamento di";
	new_cover += "\n          <h2>";
    new_cover += g_engineTitle;
    new_cover += "\n          </h2>";
    new_cover += "\n       in corso.   <br />";
    new_cover += "\n          Attendere.";
    new_cover += "\n          <br />";
    new_cover += "\n          <br />";
    new_cover += "\n          <br />";
    new_cover += "\n          <img src=\"images/loading.gif\" alt=\"\" />";
    new_cover += "\n    </td>";
    new_cover += "\n  </tr>";
    new_cover += "\n  <tr>";
    new_cover += "\n    <td><img src=\"images/c.gif\" alt=\"\" width=\"1\" height=\"10\" border=\"0\" /></td>";
    new_cover += "\n  </tr>";
    new_cover += "\n</table>";
	
   document.getElementById("loadingFrame").style.visibility = "HIDDEN";   
   document.getElementById("loadingFrame").innerHTML = new_cover;	   
   document.getElementById("loadingFrame").style.visibility = "VISIBLE";   
  }

  backup_gShowShow = g_showShow;
  
}

function printOverride() {

eengine.print.currentPage = function() {
	var pgStatus = eengine.kitData.current;
	var _left = pgStatus.showing.left;
	var _right = pgStatus.showing.right;
	var docs = eengine.kitData.documents;			
	
	// check for a cover here.
	if ( pgStatus.cover > 0 ) {
		eengine.v_pg = 0;
	}

	// if printing landscape show message
	if ( eengine.imgAlign == 1 ) {
		eengine.shwEr(eengine.erMsg[15],-1);
	}

	if ( ( eengine.cover != 0 ) && ( parseInt(eengine.v_pg,10) == 0 ) ) {
		if ( ! eengine.is_mac ) {
			eengine.showAll = 1;

			// redisplay and push in onload print
			eengine.cancelAct(2);
			
			eengine.showAll = 0;
			return false;
		} else {
			return eengine.shwEr(eengine.erMsg[12], -1);				
		}
	} else {
		// pre process
		eengine.tracing.notify('pagina di stampa precedente all&#8217;elaborazione', 912);			
	
		if ( eengine.pdfPrint == 1) {
			// high res printing.. open a pdf turned to desired page
			var pdfLink = docs[pgStatus.doc].link + '#page='+( (pgStatus.page)+1 );
			eengine.doClickThrough(pdfLink, eengine.ifr_h, eengine.ifr_w, 1);
		} else {
			// low res or mix low/high printing.
		
			// handle a mac.. 
			if ( eengine.is_mac ) { 
				return eengine.shwEr(eengine.erMsg[12], -1);
			}
			
			// non mac
			var pages = [
				docs[pgStatus.doc].pages[pgStatus.page].html
			];
			var _prth = eengine.det_h;				
			var _prtw = eengine.det_w;

			if ( ( pgStatus.layout == 1 ) && ( pgStatus.cover == 0 ) ) {
				pages = [
					docs[_left.doc].pages[_left.page].images.lowResolution,
					''
				];
				try {
					pages[1] = docs[_right.doc].pages[_right.page].images.lowResolution;
				} catch (e) {}
				
				var _prth = eengine.lr_h;				
				var _prtw = eengine.lr_w;
			}
			var ct = '';	
			eengine.showAll = 1;
			
			eengine.setAlign(g_pWidth, g_pHeight);
			
			// print either single or double page				
			eengine.pr_h = eengine.getHW(_prth);
			eengine.pr_w = eengine.getHW(_prtw);
			
			var _havePageCover = ( (eengine.kitData.current.cover == 1 ) && ( eengine.cover == 0 ) );

			if ( ( pgStatus.layout == 0 ) || ( _havePageCover ) ) {
				var pageHtml = pages[0];
				
				eengine.isSplit(pageHtml);
				
				if ( ( _havePageCover ) && ( eengine.splitImg == 1 ) ) {
				
					var _height = eengine.pr_h;
					if (! eengine.ie6_cover_print_height ) {
						_height = _height / 3;

						eengine.ie6_cover_print_height = _height;
					} else {
						_height = eengine.ie6_cover_print_height;
					}
					
					var _pg = 'id="pageImg" name="pageImg" ';
					var hw = "WIDTH = '"+eengine.pr_w+"' HEIGHT = '"+_height+"' ";
					
					// we are printing so lets check for a page image...
					var reImg = /image([0123456789]+)[\-]*[0123456789]*\.([a-zA-Z]+)/i;					
					
					if ( reImg.test(pageHtml) ) {
						// found a page image... print the image or images
					
						matches = reImg.exec(pageHtml);

						var num = RegExp.$1;
						var ext = RegExp.$2;

						ct += '\n'+eengine.iHtml( "image"+num+"-01."+ext, 0, (_pg + hw) )+'<BR>';
						ct += '\n'+eengine.iHtml( "image"+num+"-02."+ext, 0, (_pg + hw) )+'<BR>';
						ct += '\n'+eengine.iHtml( "image"+num+"-03."+ext, 0, (_pg + hw) );		
					}					
					
				} else {
					ct = eengine.buildPgImg( pageHtml, '', '', '', 0, pageHtml );
				}
			} else {
				var lImg = pages[0];
				var rImg = pages[1];

				ct = eengine.buildPgImg( lImg, rImg, '', '', 0, '' );
			}				

			// clear print flags				
			eengine.showAll = 0;
			eengine.pr_h = 0;
			eengine.pr_w = 0;

			// record action				
			// check if 2 page being printed or 1 page
			var namedPage = eengine.pageTrack().replace('page=', '&png2=');
			var pos = eengine.navigate.transNewToOld();
			var rng = ( ( pgStatus.layout == 1 ) ? (pos + ","+(pos+1)) : (pos + ","+pos) );
			eengine.reporting.trackAction(12, 'Pagina Stampa', eengine.cno, "prtid=0&rng="+rng+namedPage);				

			// print page					
			eengine.print.pushToPrinter(ct);
		}
		
		// post process
		eengine.tracing.notify('pagina della stampa di processo dell&#8217;alberino', -912);				
	}
    };
    I2U.prototype.printPagePDF = eengine.print.currentPage;
}

function breadcrumbOverride() {
	eengine.breadcrumb.getTocEntry = function(docNum, pageNum) {
		var doc = eengine.kitData.documents[docNum];

		for ( var _p = pageNum; _p > -1; _p-- ) {
			var page = doc.pages[_p];
			var toc = page.toc;				
			
			if ( toc.length > 0 ) {
				_entry = {
					toc : page.toc[0],
					doc : docNum,
					page : _p
				};
				return _entry;		
			}				
		}

		return false;		
	};
	eengine.breadcrumb.tocLink = function(documentNumber) {
		var eBC = eengine.breadcrumb;
		var pgStatus = eengine.kitData.current;
		var pageObj = pgStatus;
		
		var tocEntryName = false;
		// Behaviour here differs if we are in one-page or two-page view mode
		if (pgStatus.layout == 0)
		{
			// When in single page mode, the TOC entry is just whatever is closest to this
			// page (either an entry for this page itself or the nearest one to this page
			// towards the front of the document
			var _entry = eBC.getTocEntry(documentNumber, pageObj.page);
			tocEntryName = _entry["Indice"];
			pageObj = _entry;
		}
		else
		{
			// When in two page mode, it's a little more complicated.
			// We need to see:
			// - if there is a TOC entry for the right page, use that.
			// - if there is a TOC for left but not right, use left
			// - if neither, use what's closest to visible from font of doc
			var docs = eengine.kitData.documents;
			
			// check left page toc
			var tocs = {
				left: [],
				right: [],
				entry: (eBC.getTocEntry(documentNumber, pgStatus.page))
			};
			
			var pos = ["sinistra","destra"];
			for ( var p=0; p < pos.length; p++ ) {
					try {
						var lrPos = pgStatus.showing[pos[p]];
						var doc = lrPos["documento"];
						var page = lrPos["pagina"];
						tocs[pos[p]] = docs[doc].pages[page].toc;
					} catch (e) {
					}
			}
			
				if ( tocs["right"].length > 0 ) {
				tocEntryName = tocs.right[0];
				pageObj = pgStatus.showing.right;
			} else if ( tocs["left"].length > 0 ) {
				tocEntryName = tocs.left[0];
				pageObj = pgStatus.showing.left;					
			} else if ( tocs["entry"] ) {
				tocEntryName = tocs.entry["toc"];
				pageObj = tocs.entry;
			}						
		}
		if ( tocEntryName ) {
			return eBC.makePageLink(pageObj, tocEntryName);
		} else {
			return tocEntryName;
		}		
	};
}

function adjustDash() {
	var _pageTitle = "Pagina";

	for ( var _i=0; _i < database.length; _i++ ) {
		database[_i] = database[_i].replace("&#151;","-");
		var d = database[_i].split('|');
		d[0] = d[0].replace(/page/i,_pageTitle);
		database[_i] = d.join('|');
	}
	g_database = database;
	eengine.db = database;
	
	var _docs = eengine.kitData.documents;
	for ( var _d = 0; _d < _docs.length; _d++ ) {
		var _doc = _docs[_d];
		for ( var _p = 0; _p < _doc.pages.length; _p++ ) {
			_doc.pages[_p].content = _doc.pages[_p].content.replace("&#151;","-");
			_doc.pages[_p].title = _doc.pages[_p].title.replace(/page/i,_pageTitle);
		}
	}
}

function recreateShowShow() {
	breadcrumbOverride();
	adjustDash();
	printOverride();

	// reset the word 'cover'
	eengine.coverName = "Copertina";
	// redraw
    eengine.BREADCRUMB_DrawCoverCrumbOnly();
	// make visible
	document.getElementById("MOB_LOC_BREADCRUMB").style.visibility = "VISIBLE";	
	
	// reset the phrase 'Page Range'
    eengine.eeLabels.docList = "Gamma di Pagina (esempio: Pagina 1 di 25)";
	
	// reload cover	
	// hide loading screen.. and display cover screen
	document.getElementById("loadingFrame").innerHTML = '';
	document.getElementById("loadingFrame").style.visibility = "HIDDEN";
}
