/*

	JavaScript for Niigata Bar Association

	author S.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.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.isIE7    = this.env.ua.match(/MSIE 7\.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.niigata-bengo.or.jp/';
	this.conf.png = document.location.protocol + '//' + this.conf.domain + 'shared/img/png.gif';
	this.preloadImages = {};
	this.rollOverElements = [];
	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, count = elements.length; i < count; 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;
	},
	
	setRollOverByID : function(ID, withAnchor)
	{
		var container = document.getElementById(ID);
		if (!container) return;
		if (container.tagName.toLowerCase() == 'img' || container.tagName.toLowerCase() == 'input') {
			S.rollOverElements.push(container);
		}
		else {
			var imgs = container.getElementsByTagName('img');
			for (var i = 0, count = imgs.length; i < count; i++) {
				var img = imgs[i];
				if (withAnchor && img.parentNode.tagName.toLowerCase() != 'a') continue;
				S.rollOverElements.push(img);
			}
		}
	},
	
	setRollOverByClassName : function(tagName, className, withAnchor)
	{
		var elements = S.getElementsByClassName(tagName, className);
		for (var i = 0, count = elements.length; i < count; i++) {
			var element = elements[i];
			if (element.tagName.toLowerCase() == 'img' || element.tagName.toLowerCase() == 'input') {
				if (withAnchor && element.parentNode.tagName.toLowerCase() != 'a') continue;
				S.rollOverElements.push(element);
			} 
			else {
				var imgs = element.getElementsByTagName('img');
				var inputs = element.getElementsByTagName('inputs');
				var targets = new Array();
				for (var j = 0, targetCount = imgs.length; j < targetCount; j++) targets.push(imgs[j]);
				for (var j = 0, targetCount = inputs.length; j < targetCount; j++) targets.push(inputs[j]);
				for (var j = 0, targetCount = targets.length; j < targetCount; j++) {
					var target = targets[j];
					if (target.tagName.toLowerCase() == 'img' && withAnchor && target.parentNode.tagName.toLowerCase() != 'a') continue;
					if (target.tagName.toLowerCase() == 'input' && (target.type == 'image' && !target.name)) continue;
					S.rollOverElements.push(target);
				}
			}
		}
	},
	
	setRollOverImage : function(container, withAnchor)
	{
		var imgs = container.getElementsByTagName('img');
		for (var i = 0, count = imgs.length; i < count; i++) {
			var img = imgs[i];
			if (withAnchor && img.parentNode.tagName.toLowerCase() != 'a') continue;
			S.rollOverElements.push(img);
		}
	},
	
	setRollOverInputByClassName : function(container, buttonClassName)
	{
		var inputs = container.getElementsByTagName('input');
		for (var i = 0, count = inputs.length; i < count; i++) {
			var input = inputs[i];
			if (buttonClassName && input.className != buttonClassName) continue;
			S.rollOverElements.push(input);
		}
	},
		
	setupRollOverElements : function()
	{
		var elements = S.rollOverElements;
		for (var i = 0, count = elements.length; i < count; i++) {
			var element = elements[i];
			element._originalSrc  = element.src;
			element._mouseoverSrc = element.src.replace(/(\.gif|\.jpg|\.png)/, S.conf.mouseOverSuffix + '$1');
			S.addEvent(element, 'mouseover', function(e) {
				var o = (document.addEventListener) ? this : e.srcElement;
				o.src = o._mouseoverSrc;
			});
			S.addEvent(element, 'mouseout',  function(e) {
				var o = (document.addEventListener) ? this : e.srcElement;
				o.src = o._originalSrc;
			});
			S.preloadImages[i] = new Image();
			S.preloadImages[i].src = element._mouseoverSrc;
		}
	},
	
	setupPNGFilterIE : function() {
		if ((S.env.isIE5 || S.env.isIE6) && S.env.isWin) {
			var imgs = document.getElementsByTagName('img');
			for (var i = 0, count = imgs.length; i < count; i++) {
				var img = imgs[i];
				if (img.src.match(/\.png/) && img.onmouseover == null) {
					S.replaceAlphaImage(img);
				}
			}
		}
	},
	
	replaceAlphaImage : function(element, type) {
		var imageHref = element.href;
		if (!imageHref) return;
		var imageWidth = element.width;
		var imageHeight = element.height;
		element.src  = S.conf.png;
		element.width = imageWidth;
		element.height = imageHeight;
		var src = type ? (type == 'mouseover' ? element._mouseoverSrc : element._mousedownSrc) : (element._originalSrc ? element._originalSrc : imageHref);
		element.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + src + '", sizingMethod="scale")';
	},
	
	createSWFObject : function(src, param) {
		document.write('\n<object');
		if (S.env.isIE) {
			 document.write(' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"');
		}
		document.write(' data="' + src + '" type="application/x-shockwave-flash">\n');
		document.write('<param name="movie" value="' + src + '" />\n');
		
		var v = '';
		if (navigator.plugins && navigator.mimeTypes.length) {
			var tmp = navigator.plugins['Shockwave Flash'].description.match(/([0-9]+)/);
			v = parseInt(tmp[0]);
		}
		else {
			var tmp = new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').match(/([0-9]+)/);
			v = parseInt(tmp[0]);
		}
		
		if (param) {
			for (var key in param) {
				if (key != 'wmode') {
					document.write('<param name="' + key + '" value="' + param[key] + '" />\n');
				}
				else if (param[key] == 'transparent' || v < 10) {
					document.write('<param name="wmode" value="' + param[key] + '" />\n');
				}
			}
		}
		else 	if (v < 10) {
			document.write('<param name="wmode" value="opaque" />\n');
		}

		document.write('</object>');
	}
	
}