// Custom Emag Code
// Revised Aug07 to include iFrame and custom toolbar
// To set page index stagger amount simply set a variable at the top of the page like so: 
// <script type="text/javascript">start_page=6;</script>
// Edited last by Joey D on 30/1/08 -- modified writeflash added wmode param.

///// Settings 
var host = "http://emags.newlitho.com.au/";
//var host = "http://dev.remedia.net.au/";

// Inserts an iframe into the document at point where function is called
function insertEmagIFrame(location, h, w) {
	// If no h or w specified then set defaults
	if(typeof h=='undefined') h=100;
	if(typeof w=='undefined') w=100;
	// Format locale
	location=host+'?'+location;
	// Display on screen
	document.write('<iframe height="'+h+'%" width="'+w+'%" src="'+location+'" style="height:'+h+'%;width='+w+'%" frameborder="0" scrolling="no"></iframe>');
}

//NewLitho Custom FSI Function (by Stephen Rochford)
function insertEmag(location, param, h, w, logo) {
	// If no h or w specified then set defaults
	if(typeof h=='undefined') h=100;
	if(typeof w=='undefined') w=100;
	// Output flash code
	writeFlashCode(
	"http://erez.newlitho.com.au/erez4/fsi4/fsi.swf?pages_server=http://erez.newlitho.com.au/erez4&pages_dir=emags/" + location + "&cfg=pages_presets/bridge_test.fsi&pages_PageInput=0&" + param, 
	"http://erez.newlitho.com.au/erez4/erez?src=erez-private/flashrequired.svg&tmp=Large&quality=95&redirect=0&expire=0&width=100%&height=100%",
	"width="+w+"%;height="+h+"%");
}

// Generic function to add events once the page has loaded
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

// Default page vars
total_pages=1;
current_page=1;

// Function that the FSI calls directly during and after processing
function fsiviewer_DoFSCommand(fsi_event, params) {
	// Perform different actions depending on event	
	switch(fsi_event){	
		// Info about the particular image being viewed
		// Parse it out to get at the page number (used when zooming left or right pages)
		case "ImageInfo":
		params = params.split(";");
		imgindex = params[5];
		imgindex = imgindex.split("=")
		if(typeof imgindex[1]!='undefined')	{
			current_page=imgindex[1];
			refresh();
		}
		break;
		// Called each time before the user goes to a different page. The parameter provides the target page number.
		//case "onPagesGotoPage":
		//current_page=params;
		//jsbridge('');
		//refresh();
		//break;
		// Returns the total number of pages as int
		case "onPagesInitComplete":
		total_pages=params;
		jsbridge('');
		refresh();
		break;
		// Called each time after the current page has changed. The parameter provides the index of the page currently visible.
		case "onPagesPageChanged":
		current_page=params;
		jsbridge('');
		refresh();
		break;
	}
}

// Hit enter on pageinput
function keyPress(e) {
	var code = (window.event) ? event.keyCode : e.keyCode;
	if(code == 13) goToPage();
}

// Get display page number (reverse the stagger)
function getDisplayPageNumber(n) {
	if(typeof current_page=='undefined') current_page=1;
	if(typeof total_pages=='undefined') total_pages=1;
	if (typeof start_page=='undefined') start_page=1;	
	n = eval(n) - eval(start_page-1);			
	if(n < 1) n=1;
	if(n > total_pages) n=total_pages;	
	return n;		
}

// Reloads page element
function refresh() {
	if(!document.getElementsByTagName) return false;
	if(!document.getElementById) return false;
	if(!document.getElementById("pageinput")) return false;
	if(typeof current_page=='undefined') current_page=1;
	if(typeof total_pages=='undefined') total_pages=1;	
	var pageinput = document.getElementById("pageinput"); 
	pageinput.value = getDisplayPageNumber(current_page) + " / " + getDisplayPageNumber(total_pages);
}

// FSI Callback Hook for Internet Explorer
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
	document.write('<SCRIPT LANGUAGE=VBScript\> \n');
	document.write('on error resume next \n');
	document.write('Sub fsiviewer_FSCommand(ByVal fsi_event, ByVal params)\n');
	document.write(' call fsiviewer_DoFSCommand(fsi_event, params)\n');
	document.write('end sub\n');
	document.write('</SCRIPT\> \n');
}

// Custom function to go to a specific page (allows for page start stagger)
function goToPage() {
	if(!document.getElementsByTagName) return false;
	if(!document.getElementById) return false;
	if(!document.getElementById("pageinput")) return false;
	if(!document.getElementById("fsiviewer")) return false;
	if(typeof current_page=='undefined') current_page=1;
	if(typeof total_pages=='undefined') total_pages=1;
	if (typeof start_page=='undefined') start_page=1;	
	var pageinput = document.getElementById("pageinput"); 
	var fsiviewer = document.getElementById("fsiviewer"); 
	var pageinputval = pageinput.value;
	if(pageinputval != '' && pageinputval.length > 0) {
		pagenum = parseInt(pageinputval);
		if(!isNaN(pagenum)) {
			//if(pagenum != current_page) {
				stagger = start_page-1;
				fsipage = eval(pagenum) + eval(stagger);			
				if(fsipage < 1) fsipage=1;
				if(fsipage > total_pages) {
					fsipage=total_pages;
					current_page = total_pages;
				}
				current_page = fsipage;
				jsbridge('newImageIndex', fsipage);
				jsbridge('GotoPage');
			//}	
		}
	} 
	refresh();
}

var latestFlashVersion=9;            // The latest flash player version (integer)
var presetFlashVersion='6,0,65,0';   // Default value for required Flash version
var imageFallbackLinked=true;        // Add a link to Flash Player download location to the fallback image
var textFallbackActive=true;         // Activate text fallback?
var textFallbackText='Flash Player Required.\nWould you like to download the latest version of Flash Player now?';
var flashFallbackImage='erez?src=erez-private/flashrequired.svg&tmp=Large&quality=95&redirect=0&expire=0';

if (window.location && window.location.protocol.indexOf('https') > -1) scheme='https://';
else scheme='http://';
var flashDownload = scheme+'www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash';
var flashDownloadCab = scheme+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab';
var uaName = navigator.userAgent.toLowerCase();
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (uaName.indexOf("opera") != -1) ? true : false;
var versionStr=-1;

// Function to execute JS_Bridge commands to the FSI Viewer
function jsbridge(cmd,n) { 
	if (document.all) { 
		if(isOpera) { 
			// Sonderbehandlung für den dümmsten Browser wo gibt 
			fsiviewer_obj=document.fsiviewer; 
		} else { 
			fsiviewer_obj=document.getElementById('fsiviewer'); 
		} 
	} else fsiviewer_obj=document.fsiviewer; 
	fsiviewer_obj=document.fsiviewer; 
	if(fsiviewer_obj) { 
		if(cmd == '') fsiviewer_obj.SetVariable('FSICMD', ''); 
		else if(cmd=='newImageIndex') { fsiviewer_obj.SetVariable(cmd,n); }
		else { fsiviewer_obj.SetVariable('FSICMD', cmd); }
	} 
} 

function getSwfVer(){
	flashVer = -1;
	if (navigator.plugins) napl = navigator.plugins;
	else napl = false;
	if (napl && napl.length > 0 && (napl["Shockwave Flash 2.0"] || napl["Shockwave Flash"])) {
		flashDesc = napl["Shockwave Flash" + (napl["Shockwave Flash 2.0"] ? " 2.0" : "")].description;
		flashVer = flashDesc.split(" ")[2].split(".")[0];
	}
	return flashVer;
}

function detectFlashVer(){
	if (!(isIE && isWin)) versionStr = getSwfVer();
	return versionStr;
}

function pushVBDetection(){
	doc = '<scr' + 'ipt type="text/vbscript"\>\n';
	doc += 'On Error Resume Next\n';
	doc += 'For i = 3 to ' + latestFlashVersion + '\n';
	doc += 'If Not(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & i))) Then\n';
	doc += 'Else\n';
	doc += 'versionStr = i\n';
	doc += 'End If\n';
	doc += 'Next\n';
	doc += '<\/scr' + 'ipt>\n';
	document.write(doc);
}

function writeFlashCode(fsiurl, fallbackimg, parameters){
	objcode='<object id="fsiviewer" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" wmode="opaque" codebase="'+flashDownloadCab;
	emdcode='<embed name="fsiviewer" type="application/x-shockwave-flash" pluginspage="'+flashDownload+'"';
	params = new Object();
	if (parameters){
		var parameters = parameters.split(";");
		for (c=0; c < parameters.length; c++){
			parameter=parameters[c].split("=");
			if (parameter[1]) params[parameter[0]]=parameter[1];
			else if (parameter!="") alert("Wrong parameter: " + parameter);
		}
	}
	if (params["version"]) {
		version=unescape(params["version"]);
		params["version"]='';
	}
	else version=presetFlashVersion;
	objcode+='#version='+version+'"';
	if (!params["quality"]) {
		params["quality"]='High';
	}
	if (!params["AllowScriptAccess"]) {
		params["AllowScriptAccess"]='always';
	}
	majorversion = version.split(",")[0];
	flashversion = detectFlashVer();
	if ((isIE && flashversion >= 5) || flashversion >= majorversion){
		if (params["width"]) {
			code=' width="'+params["width"]+'"';
			objcode+=code;
			emdcode+=code;
			params["width"]='';
		}
		if (params["height"]) {
			code=' height="'+params["height"]+'"';
			objcode+=code;
			emdcode+=code;
			params["height"]='';
		}
		if (params["id"] || params["name"]) {
			objcode+=' id="'+params["id"]+'"';
			if (params["name"]) emdcode+=' name="'+params["name"]+'"';
			else emdcode+=' name="'+params["id"]+'"';
			params["id"]='';
			params["name"]='';
		}
		objcode+='>\n';
		params["src"]=escape(fsiurl);
		params["movie"]=escape(fsiurl);
		for (var pkey in params){
			if (params[pkey]){
				if (pkey != 'src') objcode+='<param name="'+pkey+'" value="'+unescape(params[pkey])+'"\/>\n';
				if (pkey != 'movie') emdcode+=' '+pkey+'="'+unescape(params[pkey])+'"';
			}
		}
		emdcode+='\/>';
		objcode+=emdcode+'\n';
		objcode+='<\/object>';
	}
	else if (fallbackimg){
		objcode='<img src="'+fallbackimg+'" border=0 />';
		if (imageFallbackLinked) objcode='<a href="'+flashDownload+'" target="_blank">'+objcode+'</a>';
		objcode='<p align="center">'+objcode+'</p>';
	}
	if (!objcode){
		if (confirm(textFallbackText)) top.location=flashDownload;
	}
	else {
		document.write(objcode);
	}
}

// Run VBScript detection part
if (isIE && isWin && !isOpera) {
	pushVBDetection();
}