/**
 *	System Extention Object; v.0.0.7;
 */
var javaScript = new Object();

/** getAgentType
 *	windows: ms5_win,ms4_win,stnrd_win,nn4x_win,opera_win
 *	    mac: ms5_mac,ms4_mac,stnrd_mac,nn4x_mac,opera_mac
 *	 others: stnrd,nn4x,opera,else
 */

javaScript.getAgentType = function() { 
	var result = "";
	if ( window.opera ) {
		if (navigator.appVersion.indexOf("Win") != -1) result = "opera_win";
		else if (navigator.appVersion.indexOf("Mac") != -1) result = "opera_mac";
		else result = "opera";
	} else if ( document.all && document.getElementById ) {
		if (navigator.appVersion.indexOf("Win") != -1) result = "ms5_win";
		else result = "ms5_mac";
	} else if ( document.all && !document.getElementById ) {
		if (navigator.appVersion.indexOf("Win") != -1) result = "ms4_win";
		else result = "ms4_mac";
	} else if ( document.getElementById && !document.all ) {
		if (navigator.appVersion.indexOf("Win") != -1) result = "stnrd_win";
		else if (navigator.appVersion.indexOf("Mac") != -1) result = "stnrd_mac";
		else result = "stnrd";
	} else if ( document.layers ) {
		if (navigator.appVersion.indexOf("Win") != -1) result = "nn4x_win";
		else if (navigator.appVersion.indexOf("Mac") != -1) result = "nn4x_mac";
		else result = "nn4x";
	} else {
		result = "else";
	}
	(!!arguments[0])? ( (arguments[0] == result)? result = true : result = false ) : void(0) ;
	return result;
}

/** getSystemType
 *	windows:win
 *	    mac:mac
 *	 others:els
 */
javaScript.getPlatform = function() {
	var result = "";
	if (navigator.platform.indexOf("Win") != -1) {
		result = "win";
	} else if (navigator.platform.indexOf("Mac") != -1) {
		result = "mac";
	} else {
		result = "els";
	}
	if (!!arguments[0]) {
		result = (arguments[0] == result)? true : false;
	}
	return result;
}

/** setLinkElement
 *  export: link element
 */
 
/* 2004/03/23 phase1 Akizuki add start
*javaScript.setLinkElement = function(rel,href) {
*	var result = "";
*	result = (rel=="stylesheet")? "<link rel=\"stylesheet\" type=\"text/css\"" : "<lin rel=\""+ rel +"\"";
*	result = (!!href)? result +" href=\""+ href +"\" />" : "" ;
*	(result!="")? document.write(result) : void(0) ;
*}
*  2004/03/23 phase1 Akizuki add end
*/ 
/** setLocation
 *  getURL();
 */
javaScript.setLocation = function(URL,TARGET) {
	TARGET = (!!!TARGET)? "top" : TARGET ;
	if (!!URL) eval(TARGET).location = eval(TARGET).location.protocol + "//" + eval(TARGET).location.host + URL;
}
javaScript.getURL = function() {
	javaScript.setLocation(arguments[0], arguments[1]);
}

/** hasValue
 *  anytype of value
 */
javaScript.hasValue = function() {
	return (typeof(arguments[0]) != "undefined")? true : false ;
}

/** toString
 *  type:string
 */
javaScript.toString = function() {
	if (javaScript.hasValue(arguments[0])) {
		return (typeof(arguments[0]) == "string")? arguments[0] : ((javaScript.hasValue(arguments[0]))? ("" + arguments[0]) : "" ) ;
	}
}





/** getCollectionObject
 *  document.getElementById, document.all, document.layers;
 */
javaScript.getCollectionObject = function() {
	if (!!arguments) { //arguments : String
		if (!!document.getElementById) {
			return document.getElementById(arguments[0]);
		} else if (!!document.all) {
			return document.all(arguments[0]);
		} else if (!!document.layers) {
			if (arguments.length == 1) {
				return document.layers[arguments[0]];
			} else {
				var result = "document";
				for (var i=0;i<arguments.length;i++) {
					result = result + ".layers[" + arguments[i] + "]"
				}
				return eval(result);
			}
		}
	}
}


/** setEventReceivers
 *  onload, onUnload
 */
javaScript.onLoadReceivers = new Array();
javaScript.onUnloadReceivers = new Array();
javaScript.pushOnLoadReceiver = function() {
	if (!!arguments[0]) {
		this.onLoadReceivers[this.onLoadReceivers.length] = arguments[0];
	}
}
javaScript.pushOnUnloadReceiver = function(value) {
	if (!!arguments[0]) {
		this.onUnloadReceivers[this.onUnloadReceivers.length] = arguments[0];
	}
}

/** eventReceivers;
 *  onLoad, onUnload
 */
function onLoadReceiver() {
	if (javaScript.onLoadReceivers.length > 0) {
		for (var i=0; i<javaScript.onLoadReceivers.length; i++) {
			javaScript.onLoadReceivers[i]();
		}
	}
}
function onUnloadReceiver() {
	if (javaScript.onUnloadReceivers.length > 0) {
		for (var i=0; i<javaScript.onUnloadReceivers.length; i++) {
			javaScript.onUnloadReceivers[i]();
		}
	}
}
window.onload = onLoadReceiver;
window.onunload = onUnloadReceiver;