/* -----------------------------------------------
javascript file Homewith.net - PET.
FileName:default.js
Author:UNITEAIR
UpdatedBy:who-when
----------------------------------------------- */

/**********************************************************
* rollover
*/

function UaRollover(){
}
UaRollover.prototype = {
	initialize:function(clses){
		var len = clses.length;
		this.storedImg = new Array();
		var elems = new Array();
	
		for(var k=0; k<len; k++){
			elems = elems.concat(this.getElementsByClassName("img", clses[k]));
			elems = elems.concat(this.getElementsByClassName("input", clses[k]));
		}

		len = elems.length;
		for(var i=0; i<len; i++){

			var elem = elems[i];
			var imgSrc = elem.src;

			if(imgSrc.indexOf("_cur.")>-1){
				continue;
			}
			var ovrStr = this.imgOvrReplace(imgSrc, true)
			this.storedImg[imgSrc] = new Image();
			this.storedImg[imgSrc].src = ovrStr;

			elem.ins = this;
			elem.onmouseover = this.mouseOverEvent;
			elem.onmouseout = this.mouseOutEvent;

		}
	},
	getElementsByClassName:function(pTagName, pClassName){
		var res = new Array();
		var tags = document.getElementsByTagName(pTagName);
		var len = tags.length;
		for(var i=0; i<len; i++){
			var classes = tags[i].className;
			if(classes.indexOf(pClassName)>-1){
				res[res.length] = tags[i];
			}
		}
		return res;
	},
	mouseOverEvent:function (){
		this.src = this.ins.imgOvrReplace(this.src, true);
	},
	mouseOutEvent:function(){
		this.src = this.ins.imgOvrReplace(this.src, false);
	},
	imgOvrReplace:function(pSrc, pIsOvr){
		var srcStr = pSrc;
		if(pIsOvr){
			if(srcStr.indexOf("_ovr")>-1){
				return srcStr;
			}
			srcStr = this.strReplace(srcStr, ".gif", "_ovr.gif");
			srcStr = this.strReplace(srcStr, ".jpg", "_ovr.jpg");
			srcStr = this.strReplace(srcStr, ".png", "_ovr.png");
		}else{
			srcStr = this.strReplace(srcStr, "_ovr.gif", ".gif");
			srcStr = this.strReplace(srcStr, "_ovr.jpg", ".jpg");
			srcStr = this.strReplace(srcStr, "_ovr.png", ".png");
		}
		return srcStr;
	},
	strReplace:function (pStr, pKey, pAlt){
		return pStr.split(pKey).join(pAlt);
	}
}


/**********************************************************
* 
*/
var uaRollover = new UaRollover();


function uaRO(){
	uaRollover.initialize(arguments);
}


// SCROLL +++++++++++++++++++++++++++++++++++++//
var __scroll = {sp:6, fps:16, timer:0};
function setScrollSp(sp) {
	if(typeof sp == "number") {
		this.__scroll.sp = sp;
	}
}
function setScrollFps(fps) {
	if(typeof fps == "number") {
		this.__scroll.fps = fps;
	}
}
function scrollToTop() {
	pageScroll(0, 0);
}
function getScrollLeft() {
	if(navigator.userAgent.indexOf("MSIE") != -1) {
		return (document.compatMode=="CSS1Compat")?document.documentElement.scrollLeft:document.body.scrollLeft;
	} else {
 	 return (window.pageXOffset) ? window.pageXOffset : 0;
 }
}
function getScrollTop() {
	if(navigator.userAgent.indexOf("MSIE") != -1) {
		return (document.compatMode=="CSS1Compat")?document.documentElement.scrollTop:document.body.scrollTop;
	} else {
 	 return (window.pageYOffset) ? window.pageYOffset : 0;
 }
}
function pageScroll(toX, toY, cuX, cuY) {
	clearTimeout(this.__scroll.timer);
	toX = (!toX || toX < 0) ? 0 : toX;
	toY = (!toY || toY < 0) ? 0 : toY;
	cuX = (!cuX) ? 0 + getScrollLeft() : cuX;
	cuY = (!cuY) ? 0 + getScrollTop() : cuY;
	cuX += (toX - getScrollLeft()) / this.__scroll.sp; 
	cuY += (toY - getScrollTop()) / this.__scroll.sp; 
	if(cuX < 0) { cuX = 0; }
	if(cuY < 0) {	cuY = 0;	}
	window.scrollTo(Math.floor(cuX), Math.floor(cuY));
	if(Math.floor(cuX) != toX || Math.floor(cuY) != toY) {
		this.__scroll.timer = setTimeout("pageScroll("+toX+","+toY+"," +cuX+","+cuY+")",this.__scroll.sp);
	}
}

// SCROLL_PAGE_LINK +++++++++++++++++++++++++++++++++++++//
ScrollClass.prototype.speed = 12;
ScrollClass.prototype.timer = 0;
ScrollClass.prototype.direction = new Object();
ScrollClass.prototype.offset = new Object();

ScrollClass.prototype.isCompatMode = document.compatMode == "CSS1Compat";
ScrollClass.prototype.major = parseInt(navigator.appVersion);
ScrollClass.prototype.minor = parseFloat(navigator.appVersion);
ScrollClass.prototype.isIE = navigator.userAgent.indexOf("MSIE") != -1;
ScrollClass.prototype.isOpera = window.opera;
ScrollClass.prototype.isMozilla = navigator.userAgent.indexOf("Gecko") != -1;
ScrollClass.prototype.isSafari = navigator.userAgent.indexOf('Safari') != -1;
ScrollClass.prototype.isNN  = navigator.userAgent.indexOf("Netscape") != -1;
ScrollClass.prototype.isMac = navigator.userAgent.indexOf("Mac") != -1;

var scroll = new ScrollClass();
function ScrollClass() {}
ScrollClass.prototype.setScrollSpeed = function(num) {
	if(typeof num == "number") {
		this.speed = num;
	}
}
ScrollClass.prototype.getScrollSpeed = function() {
	return this.speed;
}
ScrollClass.prototype.getMaxScroll = function() {
	var pos = new Object();
	if(this.isNN) {
		pos.x = this.major <= 5 ? document.documentElement.offsetWidth - window.innerWidth + 16 : document.documentElement.offsetWidth - window.innerWidth + 17;
		pos.y = this.major <= 5 ? document.documentElement.offsetHeight - window.innerHeight + 16 : document.documentElement.offsetHeight - window.innerHeight + 17;
	} else {
		if(this.isMac) {
			if(this.isIE) {
				pos.x = document.body.offsetWidth- document.body.clientWidth + 1;
				pos.y = document.body.offsetHeight - document.body.clientHeight + 1;
			} else {
				pos.x = document.documentElement.offsetWidth - window.innerWidth;
				pos.y = document.documentElement.offsetHeight - window.innerHeight;
			}
		} else {
			pos.x = this.isCompatMode ? document.documentElement.scrollWidth - document.documentElement.clientWidth : document.body.scrollWidth - document.body.clientWidth;
			pos.y = this.isCompatMode ? document.documentElement.scrollHeight - document.documentElement.clientHeight : document.body.scrollHeight - document.body.clientHeight;
		}
	}
	if(pos.x < 0) { pos.x = 0; }
	if(pos.y < 0) { pos.y = 0; }
	return {x:pos.x, y:pos.y };
}
ScrollClass.prototype.getScrollLeft = function() {
	if(this.isIE) {
		return this.isCompatMode ? document.documentElement.scrollLeft : document.body.scrollLeft;
	} else {
		return window.pageXOffset ? window.pageXOffset : 0;
	}
}
ScrollClass.prototype.getScrollTop = function() {
	if(this.isIE) {
		return this.isCompatMode ? document.documentElement.scrollTop : document.body.scrollTop;
	} else {
		return window.pageYOffset ? window.pageYOffset : 0;
	}
}
ScrollClass.prototype.scrollTo = function() {
	clearTimeout(this.timer);
	this.offset.x = null;
	this.offset.y = null;
	var toX = this.parse("x", this.findAnchor(arguments[0]) ? this.getAnchorPos(arguments[0]).x : arguments[0]);
	var toY = this.parse("y", this.findAnchor(arguments[1]) ? this.getAnchorPos(arguments[1]).y : arguments[1]);
	this.direction.is_x = toX - this.getScrollLeft() >= 0 ? true : false;
	this.direction.is_y = toY - this.getScrollTop() >= 0 ? true : false;
	if(this.isOpera) {
		window.scrollTo(toX, toY);
	} else {
		if(this.isMozilla) {
			//toY = toY - 16 > 0 ? toY - 16 : toY;
		}
		this.pageScroll(toX, toY);
	}
}
ScrollClass.prototype.findAnchor = function(id) {
	return (document.getElementsByName(id)[0] || document.anchors[id]);
}
ScrollClass.prototype.getAnchorPos = function(id) {
	if(document.getElementsByName(id)[0]) {
		var element = document.getElementsByName(id)[0];
		var obj = new Object();
		do {
			obj.x = (!obj.x) ? element.offsetLeft : obj.x + element.offsetLeft;
			obj.y = (!obj.y) ? element.offsetTop : obj.y + element.offsetTop;
		} while((element = element.offsetParent) != null);
		return {x:obj.x < 0 ? 0 : obj.x, y:obj.y };
	} else if(document.layers) {
		var element = document.anchors[id];
		return {x:element.x, y:element.y };
	} else {
		return {x:0, y:0};
	}
}
ScrollClass.prototype.parse = function(direction, value) {
	var maxScroll = this.getMaxScroll();
	var range = {min_x:0, max_x:maxScroll.x, min_y:0, max_y:maxScroll.y };
	switch(direction) {
		case "x":
			if(typeof value == "boolean") {
				return value ? 0 : this.getScrollLeft();
			} else if(typeof value == "number") {
				if(!this.isOpera) {
					if(value < 0) {
						return 0;
					} else if(value > range.max_x) {
						return range.max_x;
					}
				}
				return value;
			} else if(typeof value == "string") {
				switch(value) {
					case "left": return 0;
					case "center": return Math.floor(range.max_x / 2);
					case "right": return range.max_x;
					default: this.getScrollLeft();
				}
			}
			return this.getScrollLeft();
			break;
		case "y":
			if(typeof value == "boolean") {
				return value ? 0 : this.getScrollTop();
			} else if(typeof value == "number") {
				if(value < 0) {
					return 0;
				} else if(value > range.max_y) {
					return range.max_y;
				}
				return value;
			} else if(typeof value == "string") {
				switch(value) {
					case "top": return 0;
					case "middle": return Math.floor(range.max_y / 2);
					case "bottom": return range.max_y;
					default: this.getScrollTop();
				}
			}
			return this.getScrollTop();
			break;
	}
}
ScrollClass.prototype.pageScroll = function(toX, toY) {
	clearTimeout(this.timer);
	var dX = this.direction.is_x;
	var dY = this.direction.is_y;
	var scX = this.getScrollLeft();
	var scY = this.getScrollTop();
	var cuX = dX ? Math.ceil((toX - scX) / this.speed) : Math.floor((toX - scX) / this.speed);
	var cuY = dY ? Math.ceil((toY - scY) / this.speed) : Math.floor((toY - scY) / this.speed);
	if(((dX && scX + cuX < toX -1) || (!dX && scX + cuX > toX + 1)) || ((dY && scY + cuY < toY - 1) || (!dY && scY + cuY > toY +1))) {
		if(this.offset.x != null && this.offset.y != null) {
			if(this.offset.x == scX && this.offset.y == scY) {
				return;
			} else if((dX && this.offset.x > scX) || (!dX && this.offset.x < scX)) {
				return;
			} else if((dY && this.offset.y > scY) || (!dY && this.offset.y < scY)) {
				return;
			}
		}
		window.scrollTo(scX + cuX, scY + cuY);
		this.timer = setTimeout("ScrollClass.prototype.pageScroll("+toX+","+toY+")",this.speed);
		this.offset.x = scX;
		this.offset.y = scY;
	} else {
		clearTimeout(this.timer);
		window.scrollTo(toX, toY);
		return false;
	}
}

// PARENT WINDOW +++++++++++++++++++++++++++++++++++++//
winNameAr=new Array();
function pwinChange(val){
	if((navigator.userAgent.indexOf("Mac") > -1)){
		if(winNameAr.length <= 0 && window.opener){
			if(window.opener.top.frames.length > 0){ winNameAr=new Array(window.opener.top); window.opener.top.location.href = val; window.opener.focus();}
			else{window.opener.location.href = val; window.opener.focus();}
		}else{
			uaName = navigator.appName.toUpperCase();
			if(uaName.indexOf("NETSCAPE") > -1){
				var winname=winNameAr[0];
				if(winNameAr.length > 0 && winname && !winname.closed){winname.location.href = val; winname.focus();}
				else{w=window.open(val,"main");w.focus(); winNameAr=new Array(w);}
			}else{
				if(typeof winNameAr[0] == 'object' && typeof winNameAr[0].document == 'object'){
					var winname=winNameAr[0];
					if(winNameAr.length > 0 && winname.window){ winname.location.href = val; winname.focus();}
					else{w=window.open(val,"main");w.focus(); winNameAr=new Array(w);}
				}else{w=window.open(val,"main");w.focus(); winNameAr=new Array(w);}
			}
		}
	}else{
		if(winNameAr.length <= 0 && window.opener && !window.opener.closed){
			if(window.opener.top.frames.length > 0){ winNameAr=new Array(window.opener.top); window.opener.top.location.href = val; window.opener.focus();}
			else{parent.opener.location.href = val; parent.opener.focus();}
		}else{
			var winname=winNameAr[0];
			if(winNameAr.length > 0 && winname && !winname.closed){winname.location.href = val; winname.focus();}
			else{w=window.open(val,"main");w.focus(); winNameAr=new Array(w);}
		}
	}
}

// SUBWINDOW(TerminologiesSubWin) +++++++++++++++++++++++++++++++++++++++++++++//
function TerminologiesSubWin(html) {
SubWindow=window.open(html,"word01","width=670,height=470,scrollbars=yes,menubar=no,toolbar=no");
	SubWindow.focus();
} 

// HELP_NEW_WINDOW_OPEN
function HelptWin() {
	PrintWindow=window.open("","help","width=750,height=600,toolbar=1,location=0,status=1,menubar=1,scrollbars=1,resizable=1");
	PrintWindow.focus();
}

// REQUEST_NEW_WINDOW_OPEN
function RequestWin() {
	PrintWindow=window.open("","request","width=600,height=600,toolbar=0,location=0,status=1,menubar=0,scrollbars=1,resizable=1");
	PrintWindow.focus();
}

/**********************************************************
* flash
*/

var FLASH_MAJOR_VERSION = 7;
var FLASH_MINOR_VERSION = 0;
var FLASH_REVISION      = 0;
var DEFAULT_FLASH_DIRECTORY = "";
var PLAYER_PRODUCTION_INSTALLER_DIR = "/common/flash/";
var PLAYER_PRODUCTION_INSTALLER_FILE = "playerProductInstall.swf";
var DEFAULT_NOFLASH_HTML = '<div class="info"><p><img src="/images/rhnew/visual/noscript_01.jpg" alt="" width="616" height="441"></p><p class="btn"><a href="http://www.adobe.com/shockwave/download/?P1_Prod_Version=ShockwaveFlash&amp;Lang=Japanese" title="Get ADOBE FLAHSHPLAYER" target="_blank"><img src="/images/rhnew/parts/flashplayer_01.gif" alt="Get ADOBE FLAHSHPLAYER" title="Get ADOBE FLAHSHPLAYER" width="88" height="31"></a></p></div>';
var isU6r65 = true;
/**
 *  
 */
document.write('<script language="V'+'BScript" type="text/vbscript">');
document.write('Function VBGetSwfVer(i)\n');
document.write('  on error resume next\n');
document.write('  Dim swControl, swVersion\n');
document.write('  swVersion = 0\n');
document.write('  set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i))\n');
document.write('  if (IsObject(swControl)) then\n');
document.write('    swVersion = swControl.GetVariable("$version")\n');
document.write('  end if\n');
document.write('  VBGetSwfVer = swVersion\n');
document.write('End Function\n');
document.write('</script>\n');
/**
 * 
 */
function UaSwfObj(){
	this.isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
	this.isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
	this.isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
	this.checkerVersion = {major:6, minor:0, revision:0};
}
UaSwfObj.prototype = {
	display:function(props){
		var majorVersion 	= (props.majorVersion)?props.majorVersion:FLASH_MAJOR_VERSION;
		var minorVersion 	= (props.minorVersion)?props.minorVersion:FLASH_MINOR_VERSION;
		var revision 			= (props.revision)?props.revision:FLASH_REVISION;
		DEFAULT_NOFLASH_HTML = (props.noflash)?props.noflash:DEFAULT_NOFLASH_HTML;

		var hasProductInstall = this.detect(this.checkerVersion.major, this.checkerVersion.minor, this.checkerVersion.revision);
		var hasReqestedVersion = this.detect(majorVersion, minorVersion, revision);

		var html = "";
		if ( hasProductInstall && !hasReqestedVersion ) {
			if(isU6r65){
				html = this.displayInstaller(props);
			}else{
				html = this.displayAlternateContent();
			}
		} else if (hasReqestedVersion) {
			html = this.displayContent(props);
		} else {
			html = this.displayAlternateContent();
		}
		document.write(html);
	},
	displayContent:function(props){
		return this.getObjectTags(props);
	},
	displayInstaller:function(props){
		var obj = new Object();
		obj.MMredirectURL = window.location;
		obj.MMplayerType  = "ActiveX";
		obj.MMdoctitle    = "MMdoctitle";
		props.queries = obj; 
		props.dir = PLAYER_PRODUCTION_INSTALLER_DIR;
		props.src = PLAYER_PRODUCTION_INSTALLER_FILE; 
		return this.getObjectTags(props);
	},
	displayAlternateContent:function(){
		return DEFAULT_NOFLASH_HTML;
	},
	getObjectTags:function(props){
		var src 		= (props.src)?props.src:"";
		var width 		= (props.width)?props.width:"";
		var height		= (props.height)?props.height:"";
		var dir 		= (props.dir)?props.dir:DEFAULT_FLASH_DIRECTORY;
		var bgcolor 	= (props.bgcolor)?props.bgcolor:"#ffffff";
		var align		= (props.align)?props.align:"";
		var flashVers	= (props.flashVers)?props.flashVers:"";
		var queriesStr	= (props.queries)?this.queryObjToStr(props.queries):"";

		var htmlStr = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+width+'" height="'+height+'" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">';
		htmlStr += '<param name="movie" value="'+dir+src+queriesStr+'">';
		htmlStr += '<param name="quality" value="high">';
		htmlStr += '<param name="bgcolor" value="'+bgcolor+'">';
		if(queriesStr.indexOf("MMplayerTypeEmbed")>-1){ queriesStr = queriesStr.split("ActiveX").join("PlugIn"); }
		htmlStr += '<embed src="'+dir+src+queriesStr+'" quality="high" bgcolor="'+bgcolor+'" width="'+width+'" height="'+height+'" name="flashcontent" aligh="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">';
		htmlStr += '<\/embed>';
		htmlStr += '<\/object>';
		return htmlStr;
	},
	queryObjToStr:function(obj){
		if(!obj) return false;
		var queryArr = new Array();
		for(var tmp in obj){
			queryArr[queryArr.length] = tmp+"="+obj[tmp];
		}
		return (queryArr.length>0)?"?"+queryArr.join("&"):res;
	},
	GetSwfVer:function(){
		// NS/Opera version >= 3 check for Flash plugin in plugin array
		var flashVer = -1;
		
		if (navigator.plugins != null && navigator.plugins.length > 0) {
			if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
				var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
				var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;			
				var descArray = flashDescription.split(" ");
				var tempArrayMajor = descArray[2].split(".");
				var versionMajor = tempArrayMajor[0];
				var versionMinor = tempArrayMajor[1];
				if ( descArray[3] != "" ) {
					tempArrayMinor = descArray[3].split("r");
				} else {
					tempArrayMinor = descArray[4].split("r");
				}
				var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
				var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
			}
		}
		// MSN/WebTV 2.6 supports Flash 4
		else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
		// WebTV 2.5 supports Flash 3
		else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
		// older WebTV supports Flash 2
		else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
		else if ( this.isIE && this.isWin && !this.isOpera ) {
			//flashVer = ControlVersion();
		}	
		return flashVer;
	},
	detect:function(reqMajorVer, reqMinorVer, reqRevision){
	 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
	   	// loop backwards through the versions until we find the newest version	
		for (i=25;i>0;i--) {	
			if (this.isIE && this.isWin && !this.isOpera) {versionStr = VBGetSwfVer(i);}
			else {versionStr = this.GetSwfVer(i);}
			if (versionStr == -1 ) {
				return false;
			} else if (versionStr != 0) {
				if(this.isIE && this.isWin && !this.isOpera) {
					tempArray = versionStr.split(" ");
					tempString = tempArray[1];
					versionArray = tempString .split(",");
				} else {
					versionArray = versionStr.split(".");
				}
				versionMajor = versionArray[0];
				versionMinor = versionArray[1];
				versionRevision = versionArray[2];
				//
				versionString = versionMajor + "." + versionRevision;
				versionNum = parseFloat(versionString);
				//
				if(versionMajor == reqMajorVer) {
					if(versionMinor == reqMinorVer) {return (versionRevision >= reqRevision);}
					else{return (versionMinor > reqMinorVer);}
				}else {
					isU6r65 = (versionMajor>=6 && versionMinor>=0 && versionRevision>=65);
//alert(versionMajor+"."+versionMinor+"."+versionRevision);
					return (versionMajor > reqMajorVer);
				}
				//
			}
		}
	}
}
var uaSwfObj = new UaSwfObj();


/**********************************************************
* popup
*/

function winopen(uri, name, prop){
	var extra = new Array();
	if(prop){
		(prop.left)?extra[extra.length] = "left="+prop.left:"";
		(prop.top)?extra[extra.length] = "top="+prop.top:"";
		(prop.height)?extra[extra.length] = "height="+prop.height:"";
		(prop.width)?extra[extra.length] = "width="+prop.width:"";

		extra[extra.length] = (prop.channelmode)?"channelmode="+prop.channelmode:"channelmode=no";
		extra[extra.length] = (prop.directories)?"directories="+prop.directories:"directories=no";
		extra[extra.length] = (prop.fullscreen)?"fullscreen="+prop.fullscreen:"fullscreen=no";
		extra[extra.length] = (prop.location)?"location="+prop.location:"location=no";
		extra[extra.length] = (prop.menubar)?"menubar="+prop.menubar:"menubar=no";
		extra[extra.length] = (prop.resizable)?"resizable="+prop.resizable:"resizable=no";
		extra[extra.length] = (prop.scrollbars)?"scrollbars="+prop.scrollbars:"scrollbars=yes";
		extra[extra.length] = (prop.status)?"status="+prop.status:"status=no";
		extra[extra.length] = (prop.titlebar)?"titlebar="+prop.titlebar:"titlebar=no";
		extra[extra.length] = (prop.toolbar)?"toolbar="+prop.toolbar:"toolbar=no";
	}
	extra = extra.join(",");

	var newwin=window.open(uri,name,extra);
	newwin.focus();
}



/**********************************************************
* forpng
*/

/*
 * IE PNG Fix v1.4
 *
 * Copyright (c) 2006 Takashi Aida http://www.isella.com/aod2/
 *
 */

// IE5.5+ PNG Alpha Fix v1.0RC4
// (c) 2004-2005 Angus Turnbull http://www.twinhelix.com

// This is licensed under the CC-GNU LGPL, version 2.1 or later.
// For details, see: http://creativecommons.org/licenses/LGPL/2.1/

if (typeof IEPNGFIX == 'undefined') {
//--============================================================================

var IEPNGFIX = {
	blank:  'http://www.isella.com/aod2/images/blank.gif',
	filter: 'DXImageTransform.Microsoft.AlphaImageLoader',

	fixit: function (elem, src, method) {
		if (elem.filters[this.filter]) {
			var filter = elem.filters[this.filter];
			filter.enabled = true;
			filter.src = src;
			filter.sizingMethod = method;
		}
		else {
			elem.style.filter = 'progid:' + this.filter +
				'(src="' + src + '",sizingMethod="' + method + '")';
		}
	},

	fixwidth: function(elem) {
		if (elem.currentStyle.width == 'auto' &&
			elem.currentStyle.height == 'auto') {
			elem.style.width = elem.offsetWidth + 'px';
		}
	},

	fixchild: function(elem, recursive) {
		if (!/MSIE (5\.5|6\.|7\.)/.test(navigator.userAgent)) return;

		for (var i = 0, n = elem.childNodes.length; i < n; i++) {
			var childNode = elem.childNodes[i];
			if (childNode.style) {
				if (childNode.style.position) {
					childNode.style.position = childNode.style.position;
				}
				else {
					childNode.style.position = 'relative';
				}
			}
			if (recursive && childNode.hasChildNodes()) {
				this.fixchild(childNode, recursive);
			}
		}
	},

	fix: function(elem) {
		if (!/MSIE (5\.5|6\.|7\.)/.test(navigator.userAgent)) return;

		var bgImg =
			elem.currentStyle.backgroundImage || elem.style.backgroundImage;

		if (elem.tagName == 'IMG') {
			if ((/\.png$/i).test(elem.src)) {
				this.fixwidth(elem);
				this.fixit(elem, elem.src, 'scale');
				elem.src = this.blank;
				elem.runtimeStyle.behavior = 'none';
			}
		}
		else if (bgImg && bgImg != 'none') {
			if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i)) {
				var s = RegExp.$1;
				this.fixwidth(elem);
				elem.style.backgroundImage = 'none';
				this.fixit(elem, s, 'scale'); // crop | image | scale

				if (elem.tagName == 'A' && elem.style) {
					if (!elem.style.cursor) {
						elem.style.cursor = 'pointer';
					}
				}

				this.fixchild(elem);
				elem.runtimeStyle.behavior = 'none';
			}
		}
	},

	hover: function(elem, hvImg) {
		var bgImg = elem.style.backgroundImage;

		if (!bgImg && elem.currentStyle) bgImg = elem.currentStyle.backgroundImage;

		if (elem.tagName == 'IMG' && hvImg) {
			var image = elem.src;
			elem.onmouseover = function() {
				elem.src = hvImg;
				IEPNGFIX.fix(elem);
			};
			elem.onmouseout = function() {
				elem.src = image;
				IEPNGFIX.fix(elem);
			};
		}
		else if (bgImg && bgImg != 'none' && hvImg) {
			elem.onmouseover = function() {
				elem.style.backgroundImage = 'url(' + hvImg + ')';
				IEPNGFIX.fix(elem);
			};
			elem.onmouseout = function() {
				elem.style.backgroundImage = bgImg;
				IEPNGFIX.fix(elem);
			};
		}

		IEPNGFIX.fix(elem);
	}
};

//--============================================================================
} // end if (typeof IEPNGFIX == 'undefined')

/**********************************************************
* stripe
*/
function stripeEffect(){
	var i = 0, table, tables = document.getElementsByTagName('table');
	while (table = tables[i++]) {
		var tbody = table.getElementsByTagName('tbody')
		if (tbody)
			table = tbody[0];
		var j = 0, tr, trs = table.getElementsByTagName('tr');
		while (tr = trs[j++]) {
			tr.className = j % 2 == 0 ? 'rowb' : 'rowa';
		}
	}
}







/**
* js debug
*/
document.writeln("<style>.js-debug{border:1px solid #f00;}</style>");

/**
 * 
 */
function Trace(){
	this.pane;
	this.initialize();
	var self = this;
	window.trace = function(){
		self.info({arg:arguments});
	}
}
Trace.prototype = {
	initialize:function(){
		try{
			if(console.info){}
		}catch(e){
			this.pane = document.createElement("div");
			this.pane.style.cssText = "position:absolute; float:right;top:0; right:0; border:1px solid #ccc; padding:1em; background:#fff; z-index:987654321;";
			document.body.insertBefore(this.pane, document.body.firstChild);
		}
	}
	,info:function(){
		var arg = (arguments.length>0 && arguments[0].arg)?arguments[0].arg:arguments;
		if(arg.length<1) return false;
		
		var ary = new Array();
		for(var i=0; i<arg.length; i++){
			ary.push(arg[i]);
		}
		var msg = ary.join(" : ");
		// for IE7
		try{
			if(console && console.info){
				console.info(msg);
			}else{
				this.infoPane(msg);
			}
		}catch(e){
			this.infoPane(msg);
		}
	}
	,infoPane:function(msg){
		try{
			if(console.info){}
		}catch(e){
			this.pane.innerHTML += '<p>'+msg+'</p>'
		}
	}
}/**
 * 
 */
Array.$break = 1;
Array.$continue = 2;
Array.prototype.iterate = function(iterator){
	for(var i=0; i<this.length; i++){
		var ret = iterator(this[i], i);
		if(ret==Array.$continue) continue;
		if(ret==Array.$break) break;
	}
}
Array.prototype.copy = function(){
	return new Array().concat(this);
}
Array.prototype.add = function(val){
	this[this.length] = val;
}
Array.prototype.clean = function(){
	var tmp = new Array();
	for(var i=0; i<this.length; i++){
		if(this[i] != "" && this[i] != null && this[i] != undefined){
			tmp.add(this[i]);
		}
	}
	return tmp;
}
Array.prototype.randamize = function(){
	this.sort(
	  function (a, b) {
	    return Math.ceil(Math.random() * 3) - 2;	
	  }
	);
}
/**
 * 
 */
String.prototype.strReplace = function(key, alt){
	return this.split(key).join(alt);
}
String.prototype.stripHTML = function(){
	return this.strReplace(/<\/?[^>]+>/gi, '');
}
String.prototype.escapeHTML = function(){
	var div = document.createElement('div');
	var text = document.createTextNode(this);
	div.appendChild(text);
	return div.innerHTML;
}
String.prototype.unescapeHTML = function(){
	var div = document.createElement('div');
	div.innerHTML = this.stripHTML();
	return div.firstChild ? div.firstChild.nodeValue : '';
}


this.JS_DIRECTRY = "/common/scripts/"; //javascript files path
function setJsDir(dirStr){
	this.jsDir = dirStr;
}
function uaImport(){
	var len = arguments.length;
	for(var i=0; i<len; i++){
		document.writeln('<script language="JavaScript" type="text/javascript" src="'+this.JS_DIRECTRY+arguments[i]+'.js"></script>');
	}
}

/**
 * @author uniteair.co.jp
 * @since 2006/08/01
 * @version 1.0
 */
function UaUtil(){
}
UaUtil.prototype = {
	addClass:function(elem, cls){
		if(elem.className){
			var classArr = elem.className.split(" ");
			var sts = true;
			var len = classArr.length;
			for(var i=0; i<len; i++){
				if(classArr[i]==cls){
					sts = false;
					break;
				}
			}
			if(sts){
				classArr.add(cls);
				elem.className = classArr.join(" ");
			}
		}else{
			elem.className = cls;
		}
	},
	removeClass:function(elem, cls){
		if(elem.className){
			var classArr = elem.className.split(" ");
			var newClasses = new Array();
			var len = classArr.length;
			for(var i=0; i<len; i++){
				if(classArr[i] != cls){
					newClasses.add(classArr[i]);
				}
			}
			elem.className = newClasses.join(" ");
		}
	},
	replaceClass:function(elem, cls, alt){
		if(elem.className){
			var classArr = elem.className.split(" ");
			var newClasses = new Array();
			var len = classArr.length;
			for(var i=0; i<len; i++){
				if(classArr[i] != cls){
					newClasses.add(classArr[i]);
				}else{
					newClasses.add(alt);
				}
			}
			elem.className = newClasses.join(" ");
		}
	},
	hasClassName:function(elem, pClassName){
		if(!elem || !elem.className){return false;}
		var classes = elem.className.split(" ");
		var len = classes.length;
		for(var i=0; i<len; i++){
			if(classes[i]==pClassName){
				return true;
			}
		}
		return false;
	},
	getAnElementByClassName:function(pClassName, pParent){
		var res = document.uaUtil.getElementsByClassName(pClassName, pParent);
		return (res[0])?res[0]:null;
	},
	getElementsByClassName:function(pClassName, pParent){
		var res = new Array();
		var tags = pParent.getElementsByTagName("*");
		var len = tags.length;
		for(var i=0; i<len; i++){
			if(document.uaUtil.hasClassName(tags[i], pClassName)){
				res[res.length] = tags[i];
			}
		}
		return res;
	},
	show:function(elem, bool){
		var isBlock = (elem.tagName=="div" || elem.tagName=="p" || elem.tagName=="tr" || elem.tagName=="td" || elem.tagName=="th");
		if(isBlock){
			elem.style.display = (bool)?"block":"none";
		}else{
			elem.style.display = (bool)?"inline":"none";
		}
	},
	visible:function(elem, bool){
		elem.style.visibility = (bool)?"visible":"hidden";
	},
	toggle:function(elem, bool){
		var isBlock = (elem.tagName=="div" || elem.tagName=="p" || elem.tagName=="tr" || elem.tagName=="td" || elem.tagName=="th");
		if(isBlock){
			if(bool!=undefined){
				elem.style.display = (bool)?"block":"none";
			}else{
				elem.style.display = (elem.style.display!="block")?"block":"none";
			}
		}else{
			if(bool!=undefined){
				elem.style.display = (bool)?"inline":"none";
			}else{
				elem.style.display = (elem.style.display!="inline")?"inline":"none";
			}
		}
	},
	visiToggle:function(elem){
		elem.style.visibility = (elem.style.visibility!="hidden")?"hidden":"";
	},
	getWH:function(elem){
		return (elem.offsetWidth)?{w: elem.offsetWidth, h: elem.offsetHeight}:null;
	},
	searchAncestor:function(elem, prop){
		var idName = (prop.id)?prop.id:null;
		var clsName = (prop.cls)?prop.cls:null;
		var tgName = (prop.tag)?prop.tag:null;
		var idCriteria = (idName)?true:false;
		var tElem = elem.parentNode;
		var res = null;
		while(tElem){
			if(idName){
				if(tElem.id && tElem.id == idName){
					res = tElem;
					break;
				}
			}else if(clsName){
				if(tElem.className && tElem.className.indexOf(clsName)>-1){
					res = tElem;
					break;
				}
			}else if(tgName){
				if(tElem.tagName && tElem.tagName == tgName){
					res = tElem;
					break;
				}
			}
			tElem = tElem.parentNode;
		}
		return res;
	},
	getFormValue:function(elem){
		var res = null;
		var obj = elem;
		var tag = obj.tagName;
		switch(tag.toLowerCase()){
			case "input" :
				var type = obj.getAttribute("type");
				switch(type.toLowerCase()){
					case "text" : res = obj.value; break;
					case "radio" : res = this.getRadioValue(obj); break;
					case "checkbox" : res = obj.checked; break;
				}
				break;
			case "textarea" : res = obj.value; break;
			case "select" : 
				var idx = obj.selectedIndex;
				var ops = obj.getElementsByTagName("option");
				return ops[idx].value;
			break;
			case "div" :;
			case "td" :;
			case "span" : res = obj.innerHTML;
		}
		return res;
	},
	getRadioValue:function(elem){
		var res = null;
		var ename = elem.name;
		var formNode = document.uaUtil.searchAncestor(elem, {tag:"FORM"});
		if(formNode && formNode[ename]){
			var len = formNode[ename].length;
			for(var i=0; i<len; i++){
				if(formNode[ename][i].checked){
					res = formNode[ename][i].value;
					break;
				}
			}
		}
		return res;
	},
	setSelectValue:function(selectElem, val){
		var optionElems = selectElem.getElementsByTagName("OPTION");
		var len = optionElems.length;
		for(var i=0; i<len; i++){
			var optionElem = optionElems[i];
			optionElem.selected = (optionElem.value==val);
		}
	}
}

/**********************************************************
* 
*/
var uaUtil = new UaUtil();
document.uaUtil = new UaUtil();
var $GEI = function(id){return (typeof id == "string")?document.getElementById(id):id;}
var $GET = function(tag){return document.getElementsByTagName(tag);}
var $GEC = function(pClassName, pParent){return document.uaUtil.getElementsByClassName(pClassName, pParent);}
var $GAEC = function(pClassName, pParent){return document.uaUtil.getAnElementByClassName(pClassName, pParent);}
var $SA  = function(elem, prop){return document.uaUtil.searchAncestor(elem, prop);}


/**********************************************************
* focus_input
*/

function highliteThis(obj){
	obj.style.background="#fff";
	obj.style.border="1px solid #c00";
}

function lowliteThis(obj){
	obj.style.background="#fff";
	obj.style.border="1px solid #7f9db9";
}

/**********************************************************
* コピーライト対応
*/

function setCurYear() {
	setDate = new Date();
	getYear = setDate.getYear();
	getCurYear = (getYear < 2000) ? getYear+1900 : getYear ;
	document.write(getCurYear);
}


