document.open ()
document.write ("");
document.close ();

// [Array | 040708] ///////////////////////////////////////////////////////////
var AP = Array.prototype;
if (typeof AP.pop == "undefined") AP.pop = function () { return this.splice (-1)[0]; };
if (typeof AP.push == "undefined") AP.push = function () { for (var i = 0; i < arguments.length; i++) this [this.length] = arguments [i]; return this.length; };
if (typeof AP.shift == "undefined") AP.shift = function () { return this.splice (0, 1)[0]; };
AP.splice = function (start, deleteCount) { if (!arguments.length) return start; start = isNaN (start = parseInt (start)) ? 0 : (start < 0 ? Math.max (0, this.length + start) : Math.min (this.length, start)); if (arguments.length < 2) { var removeItems = this.slice (start); this.length = start; return removeItems; } deleteCount = isNaN (deleteCount = parseInt (deleteCount)) ? 0 : Math.max (0, deleteCount); var removeItems = this.slice (start, start + deleteCount); var endItems = this.slice (start + deleteCount); this.length = start; for (var i = 2; i < arguments.length; i++) this [start - 2 + i] = arguments [i]; for (var i = 0; i < endItems.length; i++) this [start + arguments.length - 2 + i] = endItems [i]; return removeItems; };
if (typeof AP.unshift == "undefined") AP.unshift = function () { var i = arguments.length; while (i--) this.splice (0, 0, arguments [i]); return this.length; };
AP.indexOf = function (value, position) { for (var i = isNaN (position = parseInt (position)) ? 0 : Math.min (Math.max (position, 0), this.length - 1); i < this.length; i++) if (value.constructor == RegExp ? value.test (this [i]) : this [i] == value) return i; return -1; };
AP.lastIndexOf = function (value, position) { var i = isNaN (position = parseInt (position)) ? this.length : Math.min (Math.max (position + 1, 0), this.length); while (i--) if (value.constructor == RegExp ? value.test (this [i]) : this [i] == value) return i; return -1; };

// [RegExp | 040404] //////////////////////////////////////////////////////////
var RP = RegExp.prototype;
if (typeof RP.test == "undefined") RP.test = function (string) { return string.match (this) != null; };

// [String | 040703] //////////////////////////////////////////////////////////
var SP = String.prototype;
SP.getParameter = function (name, separator) { return new RegExp (separator + name + "=([^" + separator + "]*)").test (this.replace (/^\??/, separator)) ? unescape (RegExp.$1) : null; };

// [UserAgent | 040404] ///////////////////////////////////////////////////////
function UserAgent () { var version = navigator.appVersion; var userAgent = navigator.userAgent; UserAgent.operatingSystem = { isWindows : /Win/.test (version), isMac : /Mac/.test (version) }; var isOpera = /Opera/.test (userAgent); UserAgent.browser = { isExplorer : (/MSIE/.test (userAgent) && !isOpera), isGecko : /rv:/.test (userAgent), isSafari : /Safari/.test (userAgent), isOpera : isOpera, isNavigator4 : Boolean (document.layers) }; var objects = [UserAgent.operatingSystem, UserAgent.browser]; while (objects.length) { var object = objects.shift (); var isUnknown = true; for (var i in object) if (object [i]) { isUnknown = false; break; } object.isUnknown = isUnknown; } UserAgent.version = parseFloat (/Opera[^\d]([\d\.]+)/.test (userAgent) ? RegExp.$1 : (/(MSIE |rv:|Safari\/)([\d\.]+)/.test (userAgent) ? RegExp.$2 : (/Mozilla\/([\d\.]+)/.test (userAgent) ? RegExp.$1 : version))); UserAgent.toString = function () { var string = ""; var objects = [UserAgent.operatingSystem, UserAgent.browser]; while (objects.length) { var object = objects.shift (); for (var i in object) if (object [i]) { string += i.replace (/\d/, "").substring (2); break; }} return string + UserAgent.version; }; }; UserAgent ();

// [FlashPlayer | 040404] /////////////////////////////////////////////////////
function FlashPlayer () { FlashPlayer.version = 0; if (/WindowsExplorer/.test (UserAgent)) { document.open (); document.write ('<scr' + 'ipt type="text/vbscript"\>\nOn Error Resume Next\nSet object = CreateObject ("ShockwaveFlash.ShockwaveFlash")\nIf IsObject (object) Then\nFlashPlayer.version = CLng ("&H" & Left (Hex (object.FlashVersion), 1))\nEnd If\n<\/scr' + 'ipt\>'); document.close (); } else { var mimeType = navigator.mimeTypes ["application/x-shockwave-flash"]; if (mimeType && mimeType.enabledPlugin) FlashPlayer.version = parseInt (navigator.plugins ["Shockwave Flash"].description.match (/\d+/)); }}; FlashPlayer ();

// [Window | 040412] //////////////////////////////////////////////////////////
function openWindow (url, name, width, height, features, centering) { var feature = (width ? ("width=" + width) : "") + (height ? (",height=" + height) : ""); var featureNames = ["menubar", "toolbar", "location", "scrollbars", "status", "resizable"]; if (features) { for (var i = 0; i < featureNames.length; i++) feature += "," + featureNames [i] + "=" + features.charAt (i); } if (centering) { var x = (screen.width / 2) - (width / 2); var y = (screen.height / 2) - (height / 2); feature += ",left=" + x + ",top=" + y + ",screenX=" + x + ",screenY=" + y; } return window.open (url, name, feature); }
function closeWindow () { window.top.close (); return true; }

// [Window.Document.Image | 040404] ///////////////////////////////////////////
function addPreloadImage () { for (var i = 0; i < arguments.length; i++) PreloadImages.push (arguments [i]); return PreloadImages.length; }
function preloadImage () { var images = arguments.length ? arguments : PreloadImages; for (var i = 0; i < images.length; i++) PreloadedImages.push ((new Image).src = images [i]); return true; }
function changeImage () { var length = RestoreImages.length; for (var i = 0; i < arguments.length; i += 2) { var images = getImageList (arguments [i]); while (images.length) { var image = images.shift (); RestoreImages.unshift (image, image.src); image.src = arguments [i + 1]; }} return (RestoreImages.length > length); }
function restoreImage () { if (arguments.length) { var length = RestoreImages.length; for (var i = 0; i < arguments.length; i++) { var images = getImageList (arguments [i]); for (var j = 0; j < images.length; j++) { var index = RestoreImages.indexOf (images [j]); if (index != -1) { var pair = RestoreImages.splice (index, 2); pair [0].src = pair [1]; }}} return (RestoreImages.length < length); } while (RestoreImages.length) RestoreImages.shift ().src = RestoreImages.shift (); return true; }
function deleteRestoreImage () { if (arguments.length) { var length = RestoreImages.length; for (var i = 0; i < arguments.length; i++) { var images = getImageList (arguments [i]); for (var j = 0; j < images.length; j++) { var index; while ((index = RestoreImages.indexOf (images [j])) != -1) RestoreImages.splice (index, 2); }} return (RestoreImages.length < length); } RestoreImages.splice (0); return true; }; function getImageList (object) { var images = document.images; if (object.constructor == RegExp) { var list = []; for (var i = 0; i < images.length; i++) { var image = images [i]; if (object.test (image.name)) list.push (image); } return list; } var image = typeof object == "string" ? images [object] : object; return image ? [image] : []; }; var PreloadImages = []; var PreloadedImages = []; var RestoreImages = [];

// [WindowListener | 040708] //////////////////////////////////////////////////
function addWindowListener (event, listener) { var listeners = WindowListeners [event]; if (!listeners) { listeners = WindowListeners [event] = []; window ["on" + event] = function () { for (var i = 0; i < listeners.length; i++) { var listener = listeners [i]; if (typeof listener == "string") eval (listener); else listener (); } if (event == "load") { if (document.getElementById) presetKeyEvent (); preloadImage (); }}; } return listeners.push (listener); }
function removeWindowListener (event, listener) { var listeners = WindowListeners [event]; if (listeners) { var index = listeners.lastIndexOf (listener); if (index != -1) return listeners.splice (index, 1)[0]; } return null; }; var WindowListeners = {};

// [ClassName | 040708] ///////////////////////////////////////////////////////
function changeClassName () { var length = RestoreClassNames.length; for (var i = 0; i < arguments.length; i += 2) { var object = arguments [i]; RestoreClassNames.unshift (object, object.className.split (" ")); object.className = arguments [i + 1].join (" ").replace (/^\s|\s$/g, "").replace (/\s{2,}/g, " "); } return (RestoreClassNames.length > length); }
function restoreClassName () { if (arguments.length) { var length = RestoreClassNames.length; for (var i = 0; i < arguments.length; i++) { var index = RestoreClassNames.indexOf (arguments [i]); if (index != -1) { var pair = RestoreClassNames.splice (index, 2); pair [0].className = pair [1].join (" ").replace (/^\s|\s$/g, "").replace (/\s{2,}/g, " "); }} return (RestoreClassNames.length < length); } while (RestoreImages.length) RestoreClassNames.shift ().className = RestoreClassNames.shift ().join (" ").replace (/^\s|\s$/g, "").replace (/\s{2,}/g, " "); return true; }
function deleteRestoreClassName () { if (arguments.length) { var length = RestoreClassNames.length; for (var i = 0; i < arguments.length; i++) { var index; while ((index = RestoreClassNames.indexOf (arguments [i])) != -1) RestoreClassNames.splice (index, 2); } return (RestoreClassNames.length < length); } RestoreClassNames.splice (0); return true; }; RestoreClassNames = [];

// [Style | 060403] ///////////////////////////////////////////////////////////
function printCommonStyle (path) { printStyle (path, ["common"]); }
function printUserAgentSpecificStyle (path) { printStyle (path, getUserAgentSpecificStyleNames ()); }; function printStyle (path, names) { document.open (); for (var i = 0; i < names.length; i++) document.write ('<link rel="stylesheet" type="text/css" href="' + path + names [i] + '.css">'); document.close (); }; function getUserAgentSpecificStyleNames () { var names = [/WindowsExplorer/.test (UserAgent) ? "windows_explorer" : (/WindowsNavigator4/.test (UserAgent) ? "windows_navigator4" : (/MacSafari/.test (UserAgent) ? "mac_safari" : (/MacExplorer/.test (UserAgent) ? "mac_explorer" : (/MacNavigator4/.test (UserAgent) ? "mac_navigator4" : "default"))))]; if (/Gecko0/.test (UserAgent)) names.push ("default_patch_gecko0"); if (/Opera/.test (UserAgent)) names.push ("default_patch_opera"); return names; }

// [Preset | 040711] //////////////////////////////////////////////////////////
function presetPseudoLink () { var elements = document.all ? document.all : document.getElementsByTagName ("*"); for (var i = 0; i < elements.length; i++) { var element = elements [i]; if (element.className.split (" ").indexOf ("PseudoLink") != -1) { var node = element; while (node.className.split (" ").indexOf ("PseudoLinkRoot") == -1) node = node.parentNode; var links = node.getElementsByTagName ("a"); if (links.length) { var link = links [0]; element.linker = link; if (!link.linkees) link.linkees = []; link.linkees.push (element); element.style.cursor = /Explorer/.test (UserAgent) ? "hand" : "pointer"; element.onmouseover = link.onactivate = function () { var linker = this.linker ? this.linker : this; var links = [linker].concat (linker.linkees); while (links.length) changePseudoLinkClassName (links.shift ()); if (linker.onmouseover) linker.onmouseover (); }; element.onmouseout = link.ondeactivate = function () { var linker = this.linker ? this.linker : this; var links = [linker].concat (linker.linkees); while (links.length) restorePseudoLinkClassName (links.shift ()); if (linker.onmouseout) linker.onmouseout (); }; element.onmousedown = function () { if (!/Opera/.test (UserAgent)) this.linker.focus (); return false; }; element.onclick = function (e) { var linker = this.linker; var tagName = window.event ? event.srcElement.tagName : e.target.tagName; if (tagName && tagName != "A") { var returnValue = true; if (linker.onclick) returnValue = linker.onclick (); if (returnValue != false) { if (linker.target) window.open (linker.href, linker.target); else location.href = linker.href; }}}; }}}}; function changePseudoLinkClassName (linkee) { var classNames = linkee.className.split (" "); var pseudoKeys = []; var index; while ((index = classNames.indexOf (/^Pseudo/)) != -1) pseudoKeys.push (classNames.splice (index, 1)); var newClassNames = ["Hover"]; var length = classNames.length; if (length) { classNames.push ("Hover"); for (var i = 0; i < length; i++) { var className = classNames [i]; if (!/Hover$/.test (className)) classNames.push (className + "Hover"); } newClassNames = pseudoKeys.concat (classNames); } return changeClassName (linkee, newClassNames); }; function restorePseudoLinkClassName (linkee) { return restoreClassName (linkee); }; if (document.getElementById) addWindowListener ("load", presetPseudoLink);
function presetKeyEvent () { /* var tagNames = ["a", "input", "select", "textarea"]; var events = { onfocus : "onmouseover", onblur : "onmouseout" }; while (tagNames.length) { var elements = document.getElementsByTagName (tagNames.shift ()); for (var i = 0; i < elements.length; i++) { var element = elements [i]; for (var j in events) if (!element [j]) element [j] = element [events [j]]; }} */ };

// [Patch | 040404] ///////////////////////////////////////////////////////////
if (/Navigator4/.test (UserAgent) && window.self == window.parent) { var WindowLastInnerWidth = window.innerWidth; var WindowLastInnerHeight = window.innerHeight; addWindowListener ("resize", function () { if (WindowLastInnerWidth != window.innerWidth || WindowLastInnerHeight != window.innerHeight) { if (frames.length) for (var i = 0; i < frames.length; i++) frames [i].location.reload (true); else location.reload (true); }}); }

