// -*- coding: ISO-8859-1 -*-
// <html><head><meta http-equiv="content-type" content="charset=iso-8859-1">
// typebook: this document is encoded in iso-8859-1.
//
// popwindow.js - JavaScript
// Copyright 2000 Mizutori Crafts. All rights reserved.
// Author: Mizutori Tetsuya &lt;support@mizutori.net&gt;
// No part of this program may be reproduced or transmitted in any form or 
// by any means without permission from the author. Mizutori Crafts.
//
// Date: August 6, 2000.
// Revised: September 30, 2000; October 19, 2000.
// Version: 1.04a; April 24, 2003.
// Version: 1.10; January 27, 2004. (Added options)
// Version: 1.10a; April 14, 2004. (No status bar for default)
// Version: 1.11; September 24, 2004. (Added Gecko/2004)
// Version: 1.12; March 28, 2005. (Changed table view in openNewImageWindow)
// Version: 1.13; April 24, 2005. (Accept default target name)
// Version: 1.14; April 26, 2005. (Added cPopwindow_param)
// Version: 1.20; September 23, 2005. (Changed args array, added nowloading)
// Version: 1.20a; September 27, 2005. (Added new samples; test by isFinite())
// Version: 1.20b; October 2, 2005. (Changed to show loader a bit later)
// Version: 1.20c; October 4, 2005. (Changed to quote help)

// Usage:
/**
[1] <a href="javascript:openXXXWindow(url,...)">Click</a>
[2] <a href="#" onclick="openXXXWindow(url,...);">Click</a>
[3] <a href="javascript:void(0)" onclick="openXXXWindow(url,...);">Click</a>
[4] <a href="url" onclick="openXXXWindow(this.href,...);return false;">Click</a>

[ standard interface ]
	openNewHTMLWindow(url [,target] [,width,height] [,options]);
	openNewImageWindow(url [,target] [,width,height] [,options]);
	openNewPDFWindow(url [,target] [,width,height] [,options]);

[ allowed patterns ]
	openNewImageWindow(url);
	openNewImageWindow(url,target);
	openNewImageWindow(url,width,height);
	openNewImageWindow(url,target,width,height,options);

[ deprecated interface: for backward compatibility ]
	openNewHTMLWindow(target,url [,width,height] [,options]);
	openNewImageWindow(target,url [,width,height] [,options]);
	openNewPDFWindow(target,url [,width,height] [,options]);

	url - a url; "index.html" or "images/pict.png" or "images/pict-480x320.png".
		an image filename can composed of width and height.
	target - a name; "viewWindow_1", or "" (or null, undefined) for default.
		a default name will be filled with "viewHTML_480x640", "viewImage_480x320" by 
		the values of width and height.
	width and height - an optional for image. if absent (or "" or 0), these values are filled 
		with the values of width and height from the url as "images/pict-480x320.png".
		the parameter width and height override the ones from the url.
	options - a extra fearures to open function.
		Ex: "toolbar=yes,location=no,status=no"

<head>
	<script type="text/javascript" src="../scripts/popwindow.js"></script>
</head>
<body>

<a href="javascript:openNewHTMLWindow('sample-320x160.html')">Click</a>
<a href="javascript:openNewHTMLWindow('sample.html',320,160)">Click</a>
<a href="javascript:openNewHTMLWindow('sample.html','viewWindow',320,160)">Click</a>
<a href="javascript:openNewHTMLWindowScroll('sample.html','viewWindow',320,160)">Click</a>
<a href="javascript:openNewHTMLWindowNoscroll(,'sample.html','viewWindow'320,160)">Click</a>
<a href="javascript:openNewHTMLWindowNomenu('sample.html','viewWindow',320,160)">Click</a>
<a href="javascript:openNewHTMLWindowNobars('viewWindow','sample.html',320,160)">Click</a>

<a href="javascript:openNewImageWindow('images/sample.jpg','viewImage',320,160)"><img src="images/sample.jpg" width="168" height="101" border="2" /></a>
<a href="javascript:openNewImageWindowScroll('images/sample.jpg','viewImage',320,160)"><img src="images/sample.jpg" width="168" height="101" border="2" /></a>
<a href="javascript:openNewImageWindowNoscroll('images/sample.jpg','viewImage',320,160)"><img src="images/sample.jpg" width="168" height="101" border="2" /></a>
<a href="javascript:openNewImageWindowNomenu('images/sample.jpg','viewImage',320,160)"><img src="images/sample.jpg" width="168" height="101" border="2" /></a>
<a href="javascript:openNewImageWindowNobars('images/sample.jpg','viewImage',320,160)"><img src="images/sample.jpg" width="168" height="101" border="2" /></a>

<a href="javascript:openNewPDFWindow('sample.pdf','viewPDF',320,160)">Cick</a>
<a href="javascript:openNewPDFWindowNoscroll('sample.pdf','viewPDF',320,160)">Cick</a>
<a href="javascript:openNewPDFWindowNomenu('sample.pdf','viewPDF',320,160)">Cick</a>
<a href="javascript:openNewPDFWindowNobars('sample.pdf','viewPDF',320,160)">Cick</a>

<a href="javascript:openNewPDFWindowEmbed('sample.pdf','_blank',320,160)">Click</a>

</body>
*/

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// global constants:
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

var popwindow_IMGHTML_TEMPLATE = '\
<html>\
<head>\
<meta http-equiv="Content-Type" content="text/html; charset=$$$enc$$$">\
<meta http-equiv="imagetoolbar" content="no">\
<title>$$$title$$$</title>\
<script type="text/javascript">\
/** nowloading.js - JavaScript \
// Copyright 2005 Sofrosune. All rights reserved. \
// Author: Sofrosune; http://www.sofrosune.net/ \
// No part of this program may be reproduced or transmitted in any form or \
// by any means without permission from the author. Sofrosune. \
*/\
	var loader_tid = setInterval(loader_callback,50);\
	var loader_thumb = 32; var loader_bar = 112;\
	var loader_pos = - loader_thumb; var loader_step = 2;\
	var loader_count = 0;\
\
	function loader_callback() {\
		if (loader_count++ < 5) { return; } else { loader_init(); }\
		var elem = document.getElementById("loader_thumb");\
		if (elem != null) {\
			loader_pos += loader_step;\
			if ((loader_step > 0) && (loader_pos >= loader_bar)) {\
				loader_step = -loader_step; loader_pos += loader_thumb;\
			} else if ((loader_step < 0) && (loader_pos <= 0)) {\
				loader_step = -loader_step; loader_pos -= loader_thumb;\
			}\
			var x0 = (loader_step > 0 ? loader_pos : loader_pos - loader_thumb);\
			var x1 = (loader_step > 0 ? loader_pos + loader_thumb : loader_pos );\
			x0 = (x0 < 0 ? 0 : (x0 < loader_bar ? x0 : loader_bar));\
			x1 = (x1 < 0 ? 0 : (x1 < loader_bar ? x1 : loader_bar));\
			elem.style.left = x0;\
			elem.style.width = x1 - x0;\
		}\
	}\
\
	function loader_init() {\
		var elem = document.getElementById("loader_box");\
		elem.style.display = "block";\
		elem.style.visibility = "visible";\
	}\
\
	function loader_clean() {\
		/*return;*/\
		this.clearInterval(loader_tid);\
		var elem = document.getElementById("loader_box");\
		elem.style.display = "none";\
		elem.style.visibility = "hidden";\
	}\
</script>\
<style type="text/css">\
#loader_box {\
	display: block;\
	position:absolute;\
	visibility: hidden;\
	top:50%;\
	left:10%;\
	width:80%;\
	text-align:center;\
	z-index:2;\
}\
#loader_frame {\
	display:block;\
	width:128px;\
	padding:10px 0 16px 0;\
	border:1px solid #6a6a6a;\
	background-color:#FFFFFF;\
	color:#6a6a6a;\
	font-family:sans-serif;\
	font-size:11px;\
	text-align:left;\
}\
#loader_bar {\
	position:relative;\
	background-color:#ebebeb;\
	top:8px;\
	left:8px;\
	height:8px;\
	width:112px;\
	font-size:1px;\
}\
#loader_thumb {\
	position:relative;\
	background-color:#9d9d9d;\
	top:1px;\
	left:0px;\
	height:6px;\
	width:1px;\
	font-size:1px;\
}\
</style>\
</head>\
\
<body bgcolor="#ffffff" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" onload="loader_clean();">\
\
<div align="center">\
<table border="0" cellspacing="0" cellpadding="0"  width="100%" height="100%">\
<tr><td align="center" valign="middle">\
<a title="$$$help$$$" href="javascript:void(0)" onclick="window.close();"><img src="$$$url$$$" border="0" /></a>\
</td></tr>\
$$$extra$$$\
</table>\
</div>\
\
<div id="loader_box"><div align="center">\
<div id="loader_frame">\
<div align="center">Now Loading ...</div>\
<div id="loader_bar"><div id="loader_thumb"></div></div>\
</div>\
</div></div>\
\
</body>\
</html>\
';

var popwindow_CLOSEWINDOW_TEMPLATE = '\
<tr>\
<td align="center" valign="bottom" height="16">\
<a title="Close this window" href="javascript:window.close()"><div style="font-family:sans-serif;font-size:11px; color:#6666ff;">[ Close ]</div></a>\
</td>\
</tr>\
';

var popwindow_EMBED_TEMPLATE = '\
<html>\
<head>\
<meta http-equiv="content-type" content="charset=$$$enc$$$">\
<title>$$$title$$$</title>\
</head>\
<body bgcolor="#ffffff" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0">\
<embed src="$$$url$$$" width="$$$width$$$" height="$$$height$$$" scrollbar="true" toolbar="true" border="0" />\
</body>\
</html>\
';


// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// global variables:
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

//var version = navigator.appVersion.substring(0,1); // Ex. "5"
//var agent = navigator.userAgent.toLowerCase();
//var browser = getBrowserType(); // browser type; "ie", "w3c", "ns"
var is_ie = ((document.all) ? true:false);
var is_w3c = ((document.getElementById) ? true:false);
var is_ns = ((document.layers) ? true:false);
var is_gecko2004 = false;
if (true) {
	var matches = navigator.userAgent.match(/gecko\/(\d+)/i);
	if (matches != null) {
		is_gecko2004 = (matches[1] > "20040101");
	}
}

// functions:

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//	function: getBrowserType
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

function getBrowserType(){
	if ( document.all ) { return "ie"; } // IE
	else if ( document.getElementById ) { return "w3c"; } // W3C
	else if ( document.layers ) { return "ns"; } // NS
	else { return null; }
}

function setupBrowserType() {

	var browser = getBrowserType();
	is_ie = (browser == "ie");
	is_w3c = (browser == "w3c");
	is_ns = (browser == "ns");

	var matches = navigator.userAgent.match(/gecko\/(\d+)/i);
	if (matches != null) {
		is_gecko2004 = (matches[1] > "20040101");
	}
}


// Handling windows

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//	function: window manager
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

//var kWindowsArrayLen = 64;
var gPopwindow_WindowsArray = new Array(); // array of [name,window,x,y]

function popwindow_DisposeAllWindows() {
}

function popwindow_UpdateWindow(name,win,x,y) {
	var index = gPopwindow_WindowsArray.length;
	for (var i = 0; i < gPopwindow_WindowsArray.length; i++) {
		var winfo = gPopwindow_WindowsArray[i]; // [name,window,x,y]
		if (name == winfo[0]) {
			index = i;
			break;
		}
	}
	// add new tuple data, or override if exists
	gPopwindow_WindowsArray[index] = new Array(name,win,x,y);
}

function popwindow_FindWindow(name) {
	for (var i = 0; i < gPopwindow_WindowsArray.length; i++) {
		var winfo = gPopwindow_WindowsArray[i]; // [name,window,x,y]
		if (name == winfo[0]) { return winfo; }
	}
	return null;
}


// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//	function: popwindow_SkipWindow
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

//var gPrevTarget = "";
var gPopwindow_Nudge = 0;

function popwindow_SkipWindow(win) {

	var name = win.name;
	var winfo = popwindow_FindWindow(name);

	if (name == "") {
		// open a blank window at random position
		// no control to position
	//	alert("blank window");

	} else if (winfo == null) {
		// open a named new window at the nudged position
		var x = 40 + 12 * gPopwindow_Nudge;
		var y = 60 + 8 * gPopwindow_Nudge;
		gPopwindow_Nudge += 1;
		if ( gPopwindow_Nudge > 8 ) { gPopwindow_Nudge = 0; }
		win.moveTo(x,y);
		popwindow_UpdateWindow(name,win,x,y);

	} else {
		// open a named window at the previous position
		var w = winfo[1];
		var x = winfo[2];
		var y = winfo[3];
		if (w.closed) {
			win.moveTo(x,y);
			popwindow_UpdateWindow(name,win,x,y);
		}
	}

	win.focus();
}


// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//	function: popwindow_GenerateTarget
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// Usage:
//	targetBase = "viewHTML_" or "viewImage_" or "viewPDF_"
//	targetNew = popwindow_GenerateTarget(targetBase,target,width,height);
//	returns
//		target - if target was specified
//		"viewHTML_480x320" - if given target is null

function popwindow_GenerateTarget(targetBase,target,width,height) {

	if ((target == undefined) || (target == null) || (target == "")) {
		target = targetBase + width + "x" + height;
	}

//	alert("target="+target);

	return target;
}


// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//	function: cPopwindow_param
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// Usage:
//	url - a url; "index.html" or "images/pict.png" or "images/pict-480x320.png".
//		an image filename can composed of width and height.
//	width and height - an optional for image. if absent (or "" or 0), these values are filled 
//		with the values of width and height from the url as "images/pict-480x320.png".
//		the parameter width and height override the ones from the url.
//
//	var param = new cPopwindow_param(url,width,height);
//	width = param.width;
//	height = param.height;

function cPopwindow_param(url,width,height) {

	if ((width == undefined) || (width == null) || (width == "")) { width = 0; }
	if ((height == undefined) || (height == null) || (height == "")) { height = 0; }

	this.width = parseInt(width);
	this.height = parseInt(height);

	if ((this.width <= 0) || (this.height <= 0)) {

		// set default dimension
		if (url.search(/\.(?:jpg|png|gif)$/i) != -1) {
			// for image dimension
			this.width = 480;
			this.height = 320;
		} else {
			// for pdf or html page size
			this.width = 592;
			this.height = 840;
		}

		// parse url
		if (url.search(/(\d+)x(\d+)(\D*?)(\.(?:jp[e]?g|png|gif|pdf|htm[l]?))$/i) != -1) {
			this.width =  parseInt(RegExp.$1);
			this.height = parseInt(RegExp.$2);
		}
	}

//	alert("(x,y)=("+this.width+","+this.height+")");
}


// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//	function: popwindow_AddExtraFeatures
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

function popwindow_AddExtraFeatures(featureArray,options) {

	if (options == undefined) { options = ""; }

	if (options.match(/alwaysLowered=(yes|no)/i) != null) {
		featureArray.push("alwaysLowered="+RegExp.$1); } //ns
	if (options.match(/alwaysRaised=(yes|no)/i) != null) {
		featureArray.push("alwaysRaised="+RegExp.$1); } // ns
	if (options.match(/dependent=(yes|no)/i) != null) {
		featureArray.push("dependent="+RegExp.$1); } // ns
	if (options.match(/fullscreen=(yes|no)/i) != null) {
		featureArray.push("fullscreen="+RegExp.$1); } // ie

	if (options.match(/left=(\d+)/i) != null) {
		featureArray.push("left="+RegExp.$1); } // ie
	if (options.match(/top=(\d+)/i) != null) {
		featureArray.push("top="+RegExp.$1); } // ie
	if (options.match(/screenX=(\d+)/i) != null) {
		featureArray.push("screenX="+RegExp.$1); } // ns
	if (options.match(/screenY=(\d+)/i) != null) {
		featureArray.push("screenY="+RegExp.$1); } // ns
}


// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// popwindow_NormalizeOptions
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

function popwindow_NormalizeOptions(options) {
	if (options == undefined) {
		options = "";
	} else if (options.search(/^\s*$/) != -1) {
		options = "";
	} else if (options.search(/,\s*$/) == -1) {
		options += ",";
	}

	return options;
}


// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// Open a new window (HTML)
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

function openNewHTMLWindow(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewHTMLWindowOptions(url,target,width,height,options+"toolbar=yes,location=yes,status=yes");
}

function openNewHTMLWindowScroll(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewHTMLWindowOptions(url,target,width,height,options+"menubar=yes,scrollbars=yes");
}

function openNewHTMLWindowNoscroll(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewHTMLWindowOptions(url,target,width,height,options+"menubar=yes,scrollbars=no");
}

function openNewHTMLWindowNomenu(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewHTMLWindowOptions(url,target,width,height,options+"menubar=no,scrollbars=yes");
}

function openNewHTMLWindowNobars(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewHTMLWindowOptions(url,target,width,height,options+"menubar=no,scrollbars=no");
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//	function: openNewHTMLWindowOptions
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// [1] openNewHTMLWindowOptions(url [,target],width,height,options)
// [2] openNewHTMLWindowOptions(target,url,width,height,options) [*deprecated*]

function openNewHTMLWindowOptions(url,target,width,height,options) {

	options = popwindow_NormalizeOptions(options);

	// swap paramters if deprecated interface; empty or [a-z0-1_]+
	if (url.search(/^(\s*|[a-z0-9_]+)$/i) != -1) {
		var _saved = url;
		url = target;
		target = _saved;
	}

	// if target is not undefined and digits, then it should be a width and shift params.
	if ((target != undefined) && (isFinite(target) || (target.search(/^[0-9]+$/) != -1))) {
		height = width;
		width = target;
		target = "";
	}

	var hasToolbar = (options.search(/toolbar=yes/i) != -1);
	var hasLocation = (options.search(/location=yes/i) != -1);
	var hasDirectories = (options.search(/directories=yes/i) != -1);
	var hasStatus = (options.search(/status=yes/i) != -1);
	var hasMenubar = (options.search(/menubar=no/i) == -1);
	var hasScrollbars = (options.search(/scrollbars=no/i) == -1);
	var hasResizable = (options.search(/resizable=no/i) == -1);

	var param = new cPopwindow_param(url,width,height);
	width = param.width;
	height = param.height;

	setupBrowserType();
//	if ( is_ie ) { height -= 20; }
	if ( is_ie ) {
		if (hasScrollbars) { width += 16; }
		if (hasScrollbars && hasMenubar) { height -= 14;
		} else if ((! hasScrollbars) && hasMenubar) { height -= 20;
		} else if (hasScrollbars && (! hasMenubar)) { height += 6;
		} else if ((! hasScrollbars) && (! hasMenubar)) { //height -= 20;
		}
	}

	var featureArray = new Array();
	featureArray.push("toolbar="+(hasToolbar ? "yes" : "no"));
	featureArray.push("location="+(hasLocation ? "yes" : "no"));
	featureArray.push("directories="+(hasDirectories ? "yes" : "no"));
	featureArray.push("status="+(hasStatus ? "yes" : "no"));
	featureArray.push("menubar="+(hasMenubar ? "yes" : "no"));
	featureArray.push("scrollbars="+(hasScrollbars ? "yes" : "no"));
	featureArray.push("resizable="+(hasResizable ? "yes" : "no"));
	featureArray.push("width="+width);
	featureArray.push("height="+height);
	popwindow_AddExtraFeatures(featureArray,options);
	var feature = featureArray.join(",");
//	window.alert("feature :\n"+feature.replace(/,/gi,", "));

	target = popwindow_GenerateTarget("viewHTML_",target,width,height);

	var aWindow = window.open(url,target,feature);
	popwindow_SkipWindow(aWindow);
}


// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// Open a new window (Image)
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

function openNewImageWindow(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewImageWindowOptions(url,target,width,height,options+"menubar=yes,scrollbars=no");
}

function openNewImageWindowScroll(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewImageWindowOptions(url,target,width,height,options+"menubar=yes,scrollbars=yes");
}

function openNewImageWindowNoscroll(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewImageWindowOptions(url,target,width,height,options+"menubar=yes,scrollbars=no");
}

function openNewImageWindowNomenu(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewImageWindowOptions(url,target,width,height,options+"menubar=no,scrollbars=yes");
}

function openNewImageWindowNobars(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewImageWindowOptions(url,target,width,height,options+"menubar=no,scrollbars=no");
}


// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//	function: openNewImageWindowOptions
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// [1] openNewImageWindowOptions(url [,target],width,height,options)
// [2] openNewImageWindowOptions(target,url,width,height,options) [*deprecated*]

function openNewImageWindowOptions(url,target,width,height,options) {

	options = popwindow_NormalizeOptions(options);

	// swap paramters if deprecated interface; empty or [a-z0-1_]+
	if (url.search(/^(\s*|[a-z0-9_]+)$/i) != -1) {
		var _saved = url;
		url = target;
		target = _saved;
	}

	// if target is not undefined and digits, then it should be a width and shift params.
	if ((target != undefined) && (isFinite(target) || (target.search(/^[0-9]+$/) != -1))) {
		height = width;
		width = target;
		target = "";
	}

	var hasToolbar = (options.search(/toolbar=yes/i) != -1);
	var hasLocation = (options.search(/location=yes/i) != -1);
	var hasDirectories = (options.search(/directories=yes/i) != -1);
	var hasStatus = (options.search(/status=yes/i) != -1);
	var hasMenubar = (options.search(/menubar=no/i) == -1);
	var hasScrollbars = (options.search(/scrollbars=no/i) == -1);
	var hasResizable = (options.search(/resizable=no/i) == -1);

	var param = new cPopwindow_param(url,width,height);
	width = param.width;
	height = param.height;

//	if ((width > screen.width) || (height > screen.height)) {
	if (width > 800) {
		hasScrollbars = true;
		width = 800;
	}
	if (height > 600) {
		hasScrollbars = true;
		height = 600;
	}

	setupBrowserType();
	if (is_gecko2004) { height += 10; }
//	if ( is_ie ) { height -= 20; }
	if ( is_ie ) {
		if (hasScrollbars) { width += 16; }
		if (hasScrollbars && hasMenubar) { height -= 14;
		} else if ((! hasScrollbars) && hasMenubar) { height -= 20;
		} else if (hasScrollbars && (! hasMenubar)) { height += 6;
		} else if ((! hasScrollbars) && (! hasMenubar)) { //height -= 20;
		}
	}

	var featureArray = new Array();
	featureArray.push("toolbar="+(hasToolbar ? "yes" : "no"));
	featureArray.push("location="+(hasLocation ? "yes" : "no"));
	featureArray.push("directories="+(hasDirectories ? "yes" : "no"));
	featureArray.push("status="+(hasStatus ? "yes" : "no"));
	featureArray.push("menubar="+(hasMenubar ? "yes" : "no"));
	featureArray.push("scrollbars="+(hasScrollbars ? "yes" : "no"));
	featureArray.push("resizable="+(hasResizable ? "yes" : "no"));
	featureArray.push("width="+width);
	featureArray.push("height="+(height));
	popwindow_AddExtraFeatures(featureArray,options);
	var feature = featureArray.join(",");
//	window.alert("feature :\n"+feature.replace(/,/gi,", "));

	target = popwindow_GenerateTarget("viewImage_",target,width,height);

	var filename = url.replace(/^.*?\/([^\/]+)$/,"$1");
	var help = "Click to close this window";
	var enc = "EUC-JP";

	var msg = popwindow_IMGHTML_TEMPLATE;
	msg = msg.replace('$$$enc$$$',enc);
	msg = msg.replace('$$$title$$$',filename);
	msg = msg.replace('$$$url$$$',url);
	msg = msg.replace('$$$width$$$',width);
	msg = msg.replace('$$$height$$$',height);
	msg = msg.replace('$$$help$$$',help.replace("\"","&quot;"));
	msg = msg.replace('$$$extra$$$',""); // popwindow_CLOSEWINDOW_TEMPLATE

	var aWindow = window.open("",target,feature);
	popwindow_SkipWindow(aWindow);

	with (aWindow.document) {
		open();
		write(msg);
		close();
	}
}


// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// Open a new window (PDF)
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

function openNewPDFWindow(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewPDFWindowOptions(url,target,width,height,options+"scrollbar=yes,toolbar=yes");
}

function openNewPDFWindowScroll(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewPDFWindowOptions(url,target,width,height,options+"scrollbar=yes,toolbar=yes");
}

function openNewPDFWindowNoscroll(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewPDFWindowOptions(url,target,width,height,options+"scrollbar=no,toolbar=yes");
}

function openNewPDFWindowNomenu(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewPDFWindowOptions(url,target,width,height,options+"scrollbar=yes,toolbar=no");
}

function openNewPDFWindowNobars(url,target,width,height,options) {
	options = popwindow_NormalizeOptions(options);
	openNewPDFWindowOptions(url,target,width,height,options+"scrollbar=no,toolbar=no");
}


// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//	function: openNewPDFWindowOptions
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// [1] openNewPDFWindowOptions(url [,target],width,height,options)
// [2] openNewPDFWindowOptions(target,url,width,height,options) [*deprecated*]

function openNewPDFWindowOptions(url,target,width,height,options) {

	options = popwindow_NormalizeOptions(options);

	// swap paramters if deprecated interface; empty or [a-z0-1_]+
	if (url.search(/^(\s*|[a-z0-9_]+)$/i) != -1) {
		var _saved = url;
		url = target;
		target = _saved;
	}

	// if target is not undefined and digits, then it should be a width and shift params.
	if ((target != undefined) && (isFinite(target) || (target.search(/^[0-9]+$/) != -1))) {
		height = width;
		width = target;
		target = "";
	}

	var hasScrollbar = (options.search(/scrollbar=yes/i) != -1);
	var hasToolbar = (options.search(/toolbar=yes/i) != -1);

	var param = new cPopwindow_param(url,width,height);
	width = param.width;
	height = param.height;

	setupBrowserType();

//	var optionArray = new Array();
//	optionArray.push("scrollbar="+(hasScrollbar ? "true" : "false"));
//	optionArray.push("toolbar="+(hasToolbar ? "true" : "false"));
//	var urlopt = url + "?" + optionArray.join("\&");
	var urlopt = url;

	var feature = "toolbar=no,location=no,directories=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width="+width+",height="+height;

	target = popwindow_GenerateTarget("viewPDF_",target,width,height);

	var aWindow = window.open(urlopt,target,feature);
	popwindow_SkipWindow(aWindow);
}


// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//	function: openNewPDFWindowEmbed
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// [1] openNewPDFWindowEmbed(url [,target],width,height,options)
// [2] openNewPDFWindowEmbed(target,url,width,height,options) [*deprecated*]

function openNewPDFWindowEmbed(url,target,width,height,options) {

	options = popwindow_NormalizeOptions(options);

	// swap paramters if deprecated interface; empty or [a-z0-1_]+
	if (url.search(/^(\s*|[a-z0-9_]+)$/i) != -1) {
		var _saved = url;
		url = target;
		target = _saved;
	}

	// if target is not undefined and digits, then it should be a width and shift params.
	if ((target != undefined) && (isFinite(target) || (target.search(/^[0-9]+$/) != -1))) {
		height = width;
		width = target;
		target = "";
	}

	//width = parseInt(width) + 16;	// with scrollbars=yes
	//height = parseInt(height) + 20;	// with scrollbars=yes
	var param = new cPopwindow_param(url,width,height);
	width = param.width;
	height = param.height;

	var strWidth = "" + width;
	var strHeight = "" + height;

	setupBrowserType();
	if ( is_ie ) { height = parseInt(height) - 20; }

	var feature = "toolbar=no,location=no,directories=no,status=yes,menubar=yes,scrollbars=no,resizable=yes,width="+width+",height="+height

	target = popwindow_GenerateTarget("viewPDF_",target,width,height);

	var filename = url.replace(/^.*?\/([^\/]+)$/,"$1");
	var help = "Click to close this window";
	var enc = "EUC-JP";

	var msg = popwindow_EMBED_TEMPLATE;
	msg = msg.replace('$$$enc$$$',enc);
	msg = msg.replace('$$$title$$$',filename);
	msg = msg.replace('$$$url$$$',url);
	msg = msg.replace('$$$width$$$',strWidth);
	msg = msg.replace('$$$height$$$',strHeight);
	msg = msg.replace('$$$help$$$',help.replace("\"","&quot;"));
	msg = msg.replace('$$$extra$$$',""); // popwindow_CLOSEWINDOW_TEMPLATE

	var aWindow = window.open("",target,feature);
	popwindow_SkipWindow(aWindow);

	with (aWindow.document) {
		open();
		write(msg);
		close();
	}
}

// end of javascript
