/**
 * common.js
 */

function campaignMake(){
	if (document.getElementById('campaignArea')){
		var outHtml='';
		outHtml+='<ul>';
		outHtml+='<li><a href="../campaign/"><img class="imgover" src="../img/camp-normal.gif" alt="キャンペーン情報" /></a></li>';
		outHtml+='<li><a href="../campaign/#campaignStudents"><img src="../img/campaign7.png" class="imgover" alt="学生特割" /></a></li>';
		outHtml+='<li><a href="http://www.heiwa-cs.co.jp/toyo/campaign/"><img class="imgover" src="../img/camp.gif" alt="キャンペーン情報" /></a></li>';
		outHtml+='<li><a href="../flow/#paymentMethod"><img src="../img/camp-payment.gif" class="imgover" alt="お支払い方法" /></a></li>';
		outHtml+='</ul>';
		document.getElementById('campaignArea').innerHTML=outHtml;
	}
}

function accMake(){
	var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
	if (gaJsHost=='http:'){
		document.getElementById('footer').innerHTML += '<img src="http://www.heiwa-cs.co.jp/toyo/acc/acclog.cgi?referrer='+document.referrer+'&width='+screen.width+'&height='+screen.height+'&color='+screen.colorDepth+'">';
	}
}

function makeBlankLink(className){
	var allLink = document.getElementsByTagName('a');
	for(i=0; i<allLink.length; i++){
		if (allLink[i].className == className){
			allLink[i].target = '_blank';
		}
	}	
}

/**
 * common.js
 * @version		2.1.7 - 12:55 2009/10/15
 */

var Kaas = {
	
	ver: '2.1.7',
	mainColomn: 'col-a',
	
	init: function() {
		
		this.ready(function() {
			
			campaignMake();
			accMake();
			Kaas.imageRollover.init();
			Kaas.externalLink();
			makeBlankLink('blankLink');
			
		});
		
	},
	
	imageRollover: {
		
		opacity: .6,
		
		init: function() {
			
			var imgs = document.getElementsByTagName('img');
			for (var i = 0, l = imgs.length; i < l; i++) this.set(imgs[i], i);
			
		},
		
		set: function(target) {
			
			var t = Kaas.$(target);
			var _src = t.getAttribute('src');
			t.index = typeof arguments[1] == 'number' ? arguments[1] : 0;
			
			// src="xxx_rollover.png"
			if (_src && _src.match(/_rollover\./)) this._hover(t, _src, 'rollover');
			// src="xxx_alpha.png"
			else if (_src && _src.match(/_alpha\./)) Kaas.mouseEvent.opacity(t, Kaas.imageRollover.opacity);
			// class="imgover"
			else if (_src && Kaas.hasClassName(t, 'imgover')) this._hover(t, _src);
			
		},
		
		/**
		 * @private
		 */
		_hover: function(target, src, type) {
			
			var t = target;
			t.offSrc = src;
			t.ext    = t.offSrc.substring(t.offSrc.lastIndexOf('.'), t.offSrc.length);
			t.onSrc  = type == 'rollover'
				? t.offSrc.replace('_rollover' + t.ext, t.ext)
				: t.offSrc.replace(t.ext, '_o' + t.ext);
			
			var preload = new Image();
			preload.setAttribute('src', t.onSrc);
			
			t.onmouseover = function() {
				this.setAttribute('src', this.onSrc);
			};
			t.onmouseout = t.onclick = function() {
				this.setAttribute('src', this.offSrc);
			};
			
		}
		
	},
	
	mouseEvent: {
		
		opacity: function(target, op) {
			if (!target) return;
			var t = Kaas.$(target);
			t.onmouseover = function() {
				var _opacity = op;
				this.style.filter = 'alpha(opacity=' + (_opacity * 100) + ')';
				this.style.opacity = _opacity.toString();
				this.style.MozOpacity = _opacity.toString();
			};
			t.onmousedown = function() {
				var _opacity = op - .1;
				this.style.filter = 'alpha(opacity=' + (_opacity * 100) + ')';
				this.style.opacity = _opacity.toString();
				this.style.MozOpacity = _opacity.toString();
			};
			t.onmouseout = t.onclick = t.onmouseup = function() {
				this.setAttribute('style', '');
				this.removeAttribute('style');
			};
		}
		
	},
	
	externalLink: function(container) {
		
		var t = Kaas.$(container);
		var e = t.getElementsByTagName('a');
		
		for (var i = 0, l = e.length; i < l; i++) {
			var a = e[i];
			if (a.getAttribute('rel') == 'external') {
				if (a.title) a.title += ' : 新しいウィンドウで開きます';
				a.onclick = function() {
					window.open(this.getAttribute('href'), '_blank');
					return false;
				}
			}
		}
		
	},
	
	/**
	 * 指定要素の偶数行にclass="even"を追加する
	 * @param	element:String - 要素名
	 * @param	container:* - id名 || ELEMENT_NODE || undefined
	 * @return	{Void}
	 */
	even: function(element, container) {
		var t = Kaas.$(container);
		var e = t.getElementsByTagName(element);
		var flag = false;
		for (var i = 0, l = e.length; i < l; i++) {
			if (flag) this.addClass(e[i], 'even');
			flag = !flag;
		}
	},
	
	/**
	 * tr の偶数行にclass="trEven"を追加する
	 * thead, tfoot内のtrは無視する
	 * @param	container:* - id名 || ELEMENT_NODE || undefined
	 * @return	{Void}
	 */
	trRows: function(container) {
		var tr = Kaas.$(container).getElementsByTagName('tr');
		var flag = false;
		for (var i = 0, l = tr.length; i < l; i++) {
			var _parentNodeName = tr[i].parentNode.tagName.toLowerCase();
			if (flag && _parentNodeName != 'thead' && _parentNodeName != 'tfoot') this.addClass(tr[i], 'trEven');
			flag = !flag;
		}
	},
	
	// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Utilities
	
	/**
	 * @param	obj:* - id名 || ELEMENT_NODE || undefined
	 * @return	{Object}
	 */
	$: function(obj) {
		if (obj && typeof obj == 'string') {
			if (document.getElementById(obj)) {
				return document.getElementById(obj);
			} else {
				throw new Error('There is no "' + obj + '" ');
			}
		} else if (obj && obj.nodeType == 1) {
			return obj;
		} else {
			return document;
		}
	},
	
	/**
	 * @param	target:Object - ELEMENT_NODE
	 * @return {Boolean}
	 */
	hasClassName: function(target, value) {
		var c = target.className.split(' ');
		var i = c.length;
		while(i--) {
			if (c[i] == value) {
				return true;
				break;
			}
		}
	},
	
	/**
	 * @param	target:Object - ELEMENT_NODE
	 * @return	{Void}
	 */
	addClass: function(target, value) {
		if (this.hasClassName(target, value)) return false;
		if (!target.className) target.className = value;
		else target.className += ' ' + value;
	},
	
	/**
	 * @param	target:Object - ELEMENT_NODE
	 * @return	{Void}
	 */
	removeClass: function(target, value) {
		var c = target.className.split(' ');
		target.className = '';
		for (var i = 0, l = c.length; i < l; i++) {
			if (c[i] != value) target.className += (i != l - 1)? c[i] + ' ' : c[i];
		}
		if (target.className == '') (target.getAttribute('className'))? target.removeAttribute('className') : target.removeAttribute('class');
	},
	
	/**
	 * addElement
	 * @param	element:String - 要素名
	 * @param	attr:Object - 属性（オプション）
	 * @param	parentObject:Object - ELEMENT_NODE（オプション）
	 * @return	{Object}
	 */
	addElement: function(element, attr, parentObject) {
		var newElement = document.createElement(element);
		for (var i in attr) newElement.setAttribute(i, attr[i]);
		var _parent = (parentObject)? parentObject : document.body;
		return _parent.appendChild(newElement);
	},
	
	load: {
		/**
		 * js
		 * @return	{HTMLScriptElement}
		 */
		js: function(filename) {
			var attr = {
				'type': 'text/javascript',
				'src': Kaas.root() + filename
			};
			return Kaas.addElement('script', attr, document.getElementsByTagName('head')[0]);
		},
		
		/**
		 * css
		 * @return	{HTMLLinkElement}
		 */
		css: function(filename, media) {
			var attr = {
				'rel': 'stylesheet',
				'type': 'text/css',
				'href': Kaas.root() + filename,
				'media': (media)? media : 'screen, print'
			};
			return Kaas.addElement('link', attr, document.getElementsByTagName('head')[0]);
		}
	},
	
	/**
	 * browser
	 * Based on Prototype.js
	 * @see	http://www.prototypejs.org/
	 */
	browser: {
		IE:		!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1),
		Opera:	navigator.userAgent.indexOf('Opera') > -1,
		WebKit:	navigator.userAgent.indexOf('AppleWebKit/') > -1,
		Gecko:	navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') === -1,
		MobileSafari:	!!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
	},
	
	/**
	 * isIEVer
	 * @return	{Boolean}
	 */
	isIEVer: function(v) { return this.browser.IE && navigator.appVersion.indexOf('MSIE ' + v) > 0; },
	
	/**
	 * isFF2
	 * @return	{Boolean}
	 */
	isFF2: function() { return this.browser.Gecko && navigator.userAgent.toLowerCase().indexOf('firefox/2') != -1 },
	
	/**
	 * os (beta)
	 * @return	{Array}
	 */
	os: {
		WindowsME:    navigator.userAgent.match(/Win(dows)? (9x 4\.90|ME)/),
		Windows2000:  navigator.userAgent.match(/Win(dows)? (NT 5\.0|2000)/),
		WindowsXP:    navigator.userAgent.match(/Win(dows)? (NT 5\.1|XP)/),
		WindowsVista: navigator.userAgent.match(/Win(dows)?  NT 6\.0/)
	},
	
	/**
	 * currentPath
	 * @return	{String}
	 */
	currentPath: function() {
		var s = document.getElementsByTagName('script');
		for (var i = 0, l = s.length; i < l; i++) {
			if (s[i].src && s[i].src.match(/common\.js(\?.*)?$/)) {
				return s[i].src.replace(/common\.js(\?.*)?$/, '');
				break;
			}
		}
	},
	
	/**
	 * root
	 * @return	{String}
	 */
	root: function() { return this.currentPath() + '../'; },
	
	/**
	 * addEvent
	 * @return	{Void}
	 */
	addEvent: function(elm, listener, fn) {
		try {
			elm.addEventListener(listener, fn, false);
		} catch(e) {
			elm.attachEvent('on' + listener, fn);
		}
	},
	
	/**
	 * ready
	 * equal to Kaas.addEvent(window, 'load', myfunc);
	 * @return	{Void}
	 */
	ready: function(fn) { this.addEvent(window, 'load', fn); },
	
	/**
	 * alerts
	 * @return	{Function}
	 */
	alerts: function() {
		var str = '';
		for (var i = 0, l = arguments.length; i < l; i++) {
			str += (i != 0)? ', ' + arguments[i] : arguments[i];
		}
		return alert(str);
	},
	
	/**
	 * isVersion
	 * @return	{Boolean}
	 */
	isVersion: function(v) { return v === parseInt(this.ver.substring(0, 1)); },
	
	/**
	 * toString
	 * @return	{String}
	 */
	toString: function() { return '[object Kaas]'; }

};

Kaas.init();

// console.log()

