/* (C)kaizu */
/*@cc_on _d=document;eval('var document=_d')@*/


function SKSP()
{
	this.env = {};
	this.env.ua       = navigator.userAgent;
	this.env.isMac    = this.env.ua.match(/Mac/);
	this.env.isWin    = this.env.ua.match(/Win/);
	this.env.isNN     = document.layers;
	this.env.isGecko  = this.env.ua.match(/Gecko\//);
	this.env.isSafari = this.env.ua.match(/AppleWebKit/);
	this.env.isTouch  = (this.env.isSafari && this.env.ua.match(/Mobile/));
	this.env.isOpera  = window.opera;
	this.env.isIE     = (document.all && !this.env.isOpera);
	this.env.isIE4    = this.env.ua.match(/MSIE 4\./);
	this.env.isIE5    = this.env.ua.match(/MSIE 5\./);
	this.env.isIE6    = this.env.ua.match(/MSIE 6\.0/);
	this.env.isMacIE  = (this.env.isMac && this.env.isIE);
	this.env.isOldIE  = (this.env.isIE4 || this.env.isIE5 || this.env.isIE6 || this.env.isMacIE);
	this.env.DOMok    = (document.documentElement && document.getElementsByTagName);
	this.conf = {};
	this.conf.mouseOverSuffix = '_o';
	this.conf.mouseDownSuffix = '_d';
	this.preloadImages = {};
}


SKSP.prototype = {

	setup : function() {
		if (!S.env.isMacIE && !S.env.isTouch) {
			S.setupRollOverImage();
			S.setupTableSeparator();
			if (document.getElementById("GoogleMap") && GBrowserIsCompatible()) {
			var posi_y = 37.920799;
			var posi_x = 139.047968;
			var map    = new GMap2(document.getElementById("GoogleMap"));
			var mark   = new GMarker(new GLatLng(posi_y, posi_x));
			map.setCenter(new GLatLng(posi_y, posi_x), 18);
			map.addOverlay(mark);
			map.addControl(new GSmallMapControl());
			}
		}
	},
	
	addEvent : function (o, e, f, c) {
		if (o.addEventListener) {
			o.addEventListener(e, f, c);
		} else {
			o.attachEvent('on' + e, f);
		}
	},

	removeEvent : function (o, e, f, c) {
		if (o.removeEventListener) {
			o.removeEventListener(e, f, c);
		} else {
			o.detachEvent('on' + e, f);
		}
	},

	getElementsByClassName : function(tagName, className)
	{
		var results  = new Array();
		var elements = document.getElementsByTagName(tagName);
		for (var i = 0, elmLength = elements.length; i < elmLength; i++) {
			if (!elements[i].className) continue;
			var classes = elements[i].className.split(' ');
			for (var j = 0, clsLength = classes.length; j < clsLength; j++) {
				if (classes[j] == className) {
					results[results.length] = elements[i];
					break;
				}
			}
		}
		return results;
	},

	setupRollOverImage : function()
	{
		var isWinOldIE = (S.env.isWin && (S.env.isIE5 || S.env.isIE6));
		var imgs = document.getElementsByTagName('img');
		var inputs = document.getElementsByTagName('input');
		
		if (!imgs && !inputs) return;
		
		for (var i = 0, imgLength = imgs.length; i < imgLength; i++) {
			var img = imgs[i];
			if (img.parentNode.tagName.toLowerCase() == 'a') {

				img.originalSrc  = img.src;
				if (isWinOldIE && img.src.match(/.png/)) {
					img.usingAlphaImgLoader = true;				
					S.replaceAlphaImage(img);
				} else {
					img.usingAlphaImgLoader = false;	
				}

				img.mouseoverSrc = img.originalSrc.replace(/(\.gif|\.jpg|\.png)/, S.conf.mouseOverSuffix + '$1');
				S.addEvent(img, 'mouseover', S.swapOverImage);
				S.preloadImage(img, 'over');
				
				img.mousedownSrc = img.originalSrc.replace(/(\.gif|\.jpg|\.png)/, S.conf.mouseDownSuffix + '$1');
				S.addEvent(img, 'mousedown', S.swapDownImage);
				S.preloadImage(img, 'down');
				
				S.addEvent(img, 'mouseout', S.swapOriginalImage);
				
			} else if (isWinOldIE && imgs[i].src.match(/.png/)) {
				S.replaceAlphaImage(imgs[i]);
			}
		}
		
		for (var i = 0, inputLength = inputs.length; i < inputLength; i++) {
			var inp = inputs[i];
			if (inp.src) {
				inp.originalSrc  = inp.src;
				if (isWinOldIE && inp.src.match(/.png/)) {
					inp.usingAlphaImgLoader = true;				
					S.replaceAlphaImage(inp);
				} else {
					inp.usingAlphaImgLoader = false;	
				}
				
				inp.mouseoverSrc = inp.originalSrc.replace(/(\.gif|\.jpg|\.png)/, S.conf.mouseOverSuffix + '$1');
				S.addEvent(inp, 'mouseover', S.swapOverImage);
				S.preloadImage(inp, 'over');
				
				inp.mousedownSrc = inp.originalSrc.replace(/(\.gif|\.jpg|\.png)/, S.conf.mouseDownSuffix + '$1');
				S.addEvent(inp, 'mousedown', S.swapDownImage);
				S.preloadImage(inp, 'down');
				
				S.addEvent(inp, 'mouseout', S.swapOriginalImage);
			}
		}
	},
	
	swapOverImage : function(e)
	{
		var o = (document.addEventListener) ? this : e.srcElement;
		if (o.usingAlphaImgLoader) {
			S.replaceAlphaImage(o, 'over');
		} else {
			o.src = o.mouseoverSrc;
		}
	},
	
	swapDownImage : function(e)
	{
		var o = (document.addEventListener) ? this : e.srcElement;
		if (o.usingAlphaImgLoader) {
			S.replaceAlphaImage(o, 'down');
		} else {
			o.src = o.mousedownSrc;
		}		
	},
	
	swapOriginalImage : function(e)
	{
		var o = (document.addEventListener) ? this : e.srcElement;
		if (o.usingAlphaImgLoader) {
			S.replaceAlphaImage(o);
		} else {
			o.src = o.originalSrc;
		}
	},	
	
	preloadImage : function(img, type)
	{
		var i = S.preloadImages.length;
		S.preloadImages[i] = new Image();
		var g = S.preloadImages[i];
		if (type == 'over') {
			g.onerror = function() {
				S.removeEvent(img, 'mouseover', S.swapOverImage);
			};
			g.src = img.mouseoverSrc;
		} else {
			g.onerror = function() {
				S.removeEvent(img, 'mousedown', S.swapDownImage);			
			};
			g.src = img.mousedownSrc;
		}
	},

	replaceAlphaImage : function(img, type)
	{
		var imageHref = img.href;
		if (!imageHref) return;
		var imageWidth = img.width;
		var imageHeight = img.height;
		img.src  = 'http://honcho-furumachi.jp/share/parts/png.gif';
		img.width = imageWidth;
		img.height = imageHeight;
		var src = (!type) ? (img.originalSrc ? img.originalSrc : imageHref) : (type == 'over') ? img.mouseoverSrc : img.mousedownSrc;
		img.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + src + '", sizingMethod="scale")';
	},
	
	setupTableSeparator : function()
	{
		var seps = S.getElementsByClassName('tr', 'separator1');
		if (!seps) return;
		for (var i = 0, sepCount = seps.length; i < sepCount; i++) {
			S.addEvent(seps[i], 'mouseover', function(e) {
				var o = (document.addEventListener) ? this : e.srcElement;
				o.className += '_o';
			});
			S.addEvent(seps[i], 'mouseout', function(e) {
				var o = (document.addEventListener) ? this : e.srcElement;
				o.className = o.className.replace('_o', '');
			});
			S.addEvent(seps[i], 'click', function(e) {
				var o = (document.addEventListener) ? this : e.srcElement;
				var span = o.getElementsByTagName('span')[0];
				if (span.className == 'minus') {
					var container = o.parentNode;
					var rows = container.getElementsByTagName('tr');
					for (var j = 1, rowCount = rows.length; j < rowCount; j++) {
						rows[j].style.display = 'none';
					}
					span.className = 'plus';
				}
				else {
					var container = o.parentNode;
					var rows = container.getElementsByTagName('tr');
					for (var j = 1, rowCount = rows.length; j < rowCount; j++) {
						rows[j].style.display = '';
					}
					span.className = 'minus';
				}
			});
		}
	},
	
	createCookie : function(cookieName, value, days)
	{
		if (days) {
			var date = new Date();
			date.setTime(date.getTime() + (24 * 60 * 60 * 1000 * days));
			var expires = "; expires=" + date.toGMTString();
		} else {
			expires = "";
		}
		document.cookie = cookieName + "=" + value + expires + '; path=/';
	},
	
	readCookie : function(cookieName)
	{
		var c = document.cookie.split(';');
		for (var i = 0, cookieLength = c.length; i < cookieLength; i++) {
			if (c[i].indexOf(cookieName + '=') > -1) {
				var v = c[i].split('=');
				return v[1];
			}
		}
		return null;
	}
	
}

var S = new SKSP();
S.addEvent(window, 'load', S.setup);
