/* (C) KAIZU */
/*@cc_on _d=document;eval('var document=_d')@*/
//<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> // for DW


function $(id) {
	return document.getElementById(id);
}


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.isGecko  = this.env.ua.match(/Gecko\//);
	this.env.isSafari = this.env.ua.match(/AppleWebKit/);
	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.domain = 'www.sksp.co.jp/online/nyanko/';
	this.conf.png = document.location.protocol + '//' + this.conf.domain + 'img/png.gif';
	this.preloadImages = {};
	if (this.env.isIE6) {
		try {
			document.execCommand("BackgroundImageCache", false, true);
		} catch(err) {
		}
	}
}


SKSP.prototype = {
	
	addEvent : function (o, e, f, c) {
		if (!o) return false;
		if (o.addEventListener) {
			o.addEventListener(e, f, c);
		} else {
			o.attachEvent('on' + e, f);
		}
	},

	removeEvent : function (o, e, f, c) {
		if (!o) return false;
		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;
	},

	setup : function() {
		var isOldIE = S.env.isOldIE;
		
		var imgs = document.getElementsByTagName('img');
		for (var i = 0, count = imgs.length; i < count; i++) {
			var img = imgs[i];
			if (isOldIE && img.src.match(/.png$/)) {
				S.replaceBackgroundImage(img);
			}
		}
		
		var buttons = new Array();
		var imgs = S.getElementsByClassName('img', 'button');
		var inputs = S.getElementsByClassName('input', 'button');
		for (var i = 0, count = imgs.length; i < count; i++) buttons.push(imgs[i]);
		for (var i = 0, count = inputs.length; i < count; i++) buttons.push(inputs[i]);
		for (var i = 0, count = buttons.length; i < count; i++) {
			var btn = buttons[i];
			btn._alphaImgLoader = (isOldIE && btn.src.match(/.png$/));
			btn._originalSrc = btn.src;
			btn._mouseoverSrc = btn.src.replace(/(\.gif|\.jpg|\.png)/, S.conf.mouseOverSuffix + '$1');
			S.addEvent(btn, 'mouseover', S.swapOverImage);
			S.addEvent(btn, 'mouseout',  S.swapOriginalImage);
			S.preloadImage(btn, 'mouseover');				
		}
		
		var printButton = $('print');
		if (printButton) {
			S.addEvent(printButton, 'click', function(){ window.print(); });
		}
		
	},
	
	swapOverImage : function(e) {
		var o = (document.addEventListener) ? this : e.srcElement;
		if (o._alphaImgLoader) {
			S.replaceBackgroundImage(o, 'mouseover');
		} else {
			o.src = o._mouseoverSrc;
		}
		o.style.cursor = 'pointer';
	},
	
	swapOriginalImage : function(e) {
		var o = (document.addEventListener) ? this : e.srcElement;
		if (o._alphaImgLoader) {
			S.replaceBackgroundImage(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];
		var handler = (type == 'mouseover') ? S.swapOverImage : S.swapDownImage;
		var preloadSrc = (type == 'mouseover') ? img._mouseoverSrc : ('mousedown') ? img._mousedownSrc : img._disabledSrc;
		g.onerror = function() {
			S.removeEvent(img, type, handler);
		};
		g.src = preloadSrc;
	},

	replaceBackgroundImage : function(img, type)
	{
		var imageHref = img.href;
		if (!imageHref) return;
		var imageWidth = img.width;
		var imageHeight = img.height;
		img.src = S.conf.png;
		img.width = imageWidth;
		img.height = imageHeight;
		var src = (!type) ? (img._originalSrc ? img._originalSrc : imageHref) : (type == 'mouseover') ? img._mouseoverSrc : (type == 'mousedown') ? img._mousedownSrc : img._disabledSrc;
		img.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + src + '", sizingMethod="scale")';
	}
	
}

if(!Array.indexOf){
	// IEでindexOfが配列にも使えるようにする
  Array.prototype.indexOf = function(object){
    for(var i = 0; i < this.length; i++){
      if(this[i] == object){
        return i;
      }
    }
    return -1;
  };
}

var S = new SKSP();
S.addEvent(window, 'load', S.setup);
