/*
common.js
REQUIRES: prototype.js, scriptaculous.js
Site URI: http://www.osk-ymca-intl.ed.jp/ihs/
Description: インターナショナルスクール 大阪YMCA国際専門学校国際高等課程
Since: 2009-01-26
Author: Takuro Hishikawa
Updated: 2009-02-06
*/


// *************************************************
// ページの読み込み時に起動
// *************************************************

Event.observe( window, 'load', function(){
	setRollOver('roll');
	setPullDownMenu('global_navi','menu','sub-navi');
	setFaqToggle('faq_box');
	NewMarkUp();
});



// *************************************************
// 汎用関数
// *************************************************


// eventSetter
var isIE = isIE = (document.documentElement.getAttribute("style") == document.documentElement.style);

function eventSetter(obj,eventType,func){
	if(isIE) {
		obj.setAttribute(eventType,new Function(func));
	} else {
		obj.setAttribute(eventType,func);
	}
}


// open new window
function newWindow(uri,width,height){
	var myWindow = window.open(uri, 'newWindow', 'resizable=yes,scrollbars=yes,status=0,width='+width+',height='+height);
	if (myWindow.focus!=null) {
		myWindow.focus();
	}
}


// print window
function printWindow(){
	if(document.getElementById || document.layers){
		window.print();
	}
}


// Ajax recover UTF-8 (for Safari)
function recover_utf8(text){
	if(navigator.appVersion.indexOf('KHTML') > -1){
		var esc = escape(text);
		if(esc.indexOf('%u') < 0 && esc.indexOf('%') > -1){
			text = decodeURIComponent(esc);
		}
	}
	return text;
}


// input clear
function inputClear(id,txt){
	if ($(id).value == txt) $(id).value = '';
}

// scroll to top
function scrollToTop() {
	new Effect.ScrollTo("top",{duration: 0.5});
}


//最新の年度アーカイブへのリンク
function FiscalYear(url,label) {
	var myDate = new Date();
	var myYear = myDate.getFullYear();
  var fiscal = myYear - 1;
	document.write("<a href='"+url+fiscal+"'>"+label+"</a>");
}


// *************************************************
// 画像ロールオーバー
// *************************************************

var ImgRollOver = Class.create();
ImgRollOver.prototype = {
	initialize: function(img,type){
		this.img = img;
		this.outImgSrc = img.src;
		var imgSrcArray = img.src.split('.');
		var fileType = imgSrcArray[imgSrcArray.length - 1];
		this.overImgSrc = img.src.split('.' + fileType)[0] + '_o.' + fileType;
		if(type == "img"){
			Event.observe(
				img.parentNode,
				'mouseover',
				this.mouseOver.bindAsEventListener(this)
			);
			Event.observe(
				img.parentNode,
				'mouseout',
				this.mouseOut.bindAsEventListener(this)
			);
		}else if(type == "input"){
			Event.observe(
				img,
				'mouseover',
				this.mouseOver.bindAsEventListener(this)
			);
			Event.observe(
				img,
				'mouseout',
				this.mouseOut.bindAsEventListener(this)
			);
		}
		var preImage = new Image();
		preImage.src = this.overImgSrc;
	},
	mouseOver: function(){
		this.img.src = this.overImgSrc;
	},
	mouseOut: function(){
		this.img.src = this.outImgSrc;
	}
}

function setRollOver(className){
	var imgs = document.getElementsByTagName('img');
	var inputs = document.getElementsByTagName('input');
	var preImages = new Array();
	var preInputs = new Array();
	if(imgs){
		for(var i = 0,num = imgs.length;i < num;i++){
			img = imgs[i];
			if(Element.hasClassName(img, className)){
				new ImgRollOver(img,"img");
			}
		}
	}
	if(inputs){
		for(var i = 0,num = inputs.length;i < num;i++){
			input = inputs[i];
			if(input.type == 'image' && Element.hasClassName(input, className)){
				new ImgRollOver(input,"input");
			}
		}
	}
}


// *************************************************
// プルダウンメニュー
// *************************************************

var PullDownMenu = Class.create();
PullDownMenu.prototype = {
	initialize: function(menu,subnavi){
		this.menu = menu;
		this.img = this.menu.firstChild.firstChild;
		this.outImgSrc = this.img.src;
		this.subNavi = this.menu.getElementsByClassName(subnavi)[0];
		var imgSrcArray = this.img.src.split('.');
		var fileType = imgSrcArray[imgSrcArray.length - 1];
		this.overImgSrc = this.img.src.split('.' + fileType)[0] + '_o.' + fileType;
		Event.observe(
			this.menu,
			'mouseover',
			this.mouseOver.bindAsEventListener(this)
		);
		Event.observe(
			this.menu,
			'mouseout',
			this.mouseOut.bindAsEventListener(this)
		);
		var preImage = new Image();
		preImage.src = this.overImgSrc;
	},
	mouseOver: function(){
		this.img.src = this.overImgSrc;
		this.subNavi.style.display = 'block';
	},
	mouseOut: function(){
		this.img.src = this.outImgSrc;
		this.subNavi.style.display = 'none';
	}
}

function setPullDownMenu(wrapperID,navi,subnavi){
	if($(wrapperID)){
		var gnavi = $(wrapperID);
		var menus = gnavi.getElementsByClassName(navi);
		for(var i = 0,num = menus.length;i < num;i++){
			menu = menus[i];
			new PullDownMenu(menu,subnavi);
		}
	}
}


// *************************************************
// よくある質問
// *************************************************

var FaqToggle = Class.create();
FaqToggle.prototype = {
	initialize: function(id){
		this.id = id;
		this.qitem = $(this.id).getElementsByClassName('question')[0];
		this.aitem = $(this.id).getElementsByClassName('answer')[0];
		Event.observe(
			this.qitem,
			'click',
			this.click.bindAsEventListener(this)
		);
		Element.setStyle(this.qitem, {'cursor':'pointer'});
		Element.hide(this.aitem);
	},
	click: function(){
		if(this.aitem.style.display == 'none'){
			new Effect.BlindDown(this.aitem, {duration: 0.3});
		} else {
			new Effect.BlindUp(this.aitem, {duration: 0.3});
		}
	}
}

function setFaqToggle(wrapperID){
	if($(wrapperID)){
		var wrapper = $(wrapperID);
		var lists = wrapper.getElementsByTagName("li");
		for(var i = 0,num = lists.length;i < num;i++){
			list = lists[i];
			list.id = 'list' + i;
			new FaqToggle(list.id);
		}
	}
}

function NewMarkUp(){
	// passage time
	var pass = 168;
	 
	// display content
	var content = "&nbsp;&nbsp;<img src='/hc/images/icon_new.gif' alt='New!' />";
	 
	var currentDate = new Date(); 
	var spans = document.getElementsByTagName('span');
	for (i = 0; i < spans.length; i++) {
			if (spans[i].getAttribute('class') == 'new' ||
					spans[i].getAttribute('className') == 'new') {
					if (spans[i].childNodes[0]) {
							time = spans[i].childNodes[0].nodeValue.split(":");
							var entryDate = new Date(time[0], time[1]-1, time[2], time[3], time[4], time[5]); 
							var now = (entryDate.getTime() - currentDate.getTime())/(60*60*1000); 
							now = Math.ceil(now);
							if(-now <= pass){
									spans[i].innerHTML = content;
									spans[i].style.display = 'inline';
							}
							else{
									spans[i].innerHTML = "";
							}
					}
			}
	}
}