/**
 *  _____ _____ _____ _____ _____ _____ _____ 
 * | __  |  _  |     |     |     |     |   | |
 * |    -|     |   --|   --|  |  |  |  | | | |  ∧＿_∧
 * |__|__|__|__|_____|_____|_____|_____|_|___| <´･ェ･`>
 *                                            
 * raccoon.js
 * @author Tenderfeel
 * @ver 1.0
 * @HOME http://tenderfeel.xsrv.jp/
 * 
 * @Need:mootools 1.2
 *
 * ---MIT License--------------------------------------------
 * Copyright (c) 2008 Tenderfeel all rights reserved.
 * ----------------------------------------------------------
 */

var URI = location.href.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/i);
var DOMAIN = URI[1]+URI[3]+"/";

window.addEvent('domready', function(){
									 
	//new mooPingfix();
	//new wtnRollover({area:"#main"});
	//new wtnLinkIcons({excludeStr:["file:///D:/WebSite/tono/","http://web-zero.jp"],iconDir:"images/filetype/",QuickBox:true,open:"blank"});
	

	var nuko = new Element("div",{id:"nuko",
				morph: {duration:1200,transition: Fx.Transitions.Expo.easeOut},
				styles:{
					"width":170,
					"height":122,
					"position":"absolute",
					"bottom":-32,
					"right":0
					}});
	
		if(Browser.Engine.trident && Browser.Engine.version < 5){
			nuko.setStyle("filter","progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/nuko.png', sizingMethod='scale')");
			
			nuko.inject($("masthead")).morph({"bottom":[100,-32]});
		}else{
			nuko.setStyle("background","url(images/nuko.png) no-repeat left top");
			nuko.inject($("masthead")).morph({"bottom":[100,-32],"opacity":[0,1]});
		}
		
		if(Browser.Engine.trident){
			$("content-wrapper").setStyles({
										   "background":"url(images/bg_main_b.png) repeat-y left top",
										   "border":"none",
										   "-moz-border-radius":0,
										   "-webkit-border-radius":0});
			$("content").setStyles({ "background":"none",
									 "border":"none",
									 "-moz-border-radius":0,
									 "-webkit-border-radius":0});
			new Element("div",{
							styles:{
								"height":6,
								"width":670,
								"font-size":0,
								"line-height":0,
								 "background":"url(images/bg_main_t.png) no-repeat left top",
								 "float":"left"
							}
						}).inject($("content-wrapper"),"top");
			
			new Element("div",{
							styles:{
								"height":6,
								"width":670,
								"font-size":0,
								"line-height":0,
								 "background":"url(images/bg_main_u.png) no-repeat left top"
							}
						}).inject($("content-wrapper"),"bottom");
		}
	
	//イベント情報一覧
	if(location.href.indexOf("event.php")!==-1){
		var myAccordion = new Fx.Accordion($("event"),$$('dl.topics dt'), $$('dl.topics dd'), {
			display:-1,
			opacity: false,
			onActive: function(toggler, element){
				toggler.setStyle('color', 'yellow');
			},
			onBackground: function(toggler, element){
				toggler.setStyle('color', '#fff');
			} 
		});

		
	}
	
	//略名の縦サイズ統一
	var floorList = $$('.floor div.line');
	if(floorList){
		floorList.flatten().each(function(div,i){
			var abbrs = div.getElements('abbr');
			var size =abbrs[0].getSize().y
			
			for(n=0; n < abbrs.length; n++){
				var s = abbrs[n].getSize().y;
				size = (size < s)? s:size;
			}
			abbrs.setStyle('height',size);
		
		});
	}
	
	/* go to top */
	new GotoTop();
	

	/* アナログIE 
	new mooAnalogIE();*/
	
});

/** QuickBox Plugin */
//var QuickBox_js = new Asset.javascript(DOMAIN+'js/QuickBox.js');
//var QuickBox_CSS = new Asset.css(DOMAIN+"css/quickbox.css",{ "media":"screen"});



/** 
 * 
 * Google Ajax API 
 * 
 */
 
var gAPIkey = 'ABQIAAAAwrzVu2iAWtCM12EpP4ZXHBQE255lfOAwZZOBulvE8-cMrvC0UBT3nHuL1mx0-wI2R1mrV9cpiLKmng';
var gs,gm,gf;


/** Gmap */

var gmConfig = {
	"pageName":"access.php",//表示するページ
	"gmLat":35.225455,  //GLat
	"gmLng":137.071609, //GLng
	"gmDivID":"gmap",    //地図を表示する要素のID
	"gmScope":17,        //拡大率
	"markerAdd":true,  //マーカーの表示
	"SMap_Controler":false, //小さいコントローラ
	"LMap_Controler":true, //大きいコントローラ
	"Type3_Controler":true, //地図タイプ切り替え（３種）
	"Type2_Controler":false, //地図タイプ切り替え（2種）
	"Scale_Controler":true, //スケール
	"OV_Controler":true, //右下の縮小地図
	"WheelZoom":false, //ホイールでのズーム操作
	"DClickZoom":true //ダブルクリックでのズーム操作
}

/** 情報ウィンドウのHTML */
var gmIWhtml = "<em>みんなのたまちゃん</em><br />愛知県瀬戸市北山町38-1";


if(location.href.indexOf(gmConfig.pageName)!==-1){
	new Asset.javascript(DOMAIN+'js/gmap.js');var gm=true;
}


new Asset.javascript('http://www.google.com/jsapi?callback=googleAPIloadings&key='+gAPIkey);

function googleAPIloadings(){
	if(gm){google.load("maps", "2",{"callback" : mapsLoaded,"language" : "ja"});}
}

/**
 * GotoTop
 * @ver 1.0
 * ページのトップに戻るボタン
 */
var GotoTop = new Class({
	
	Implements: [Options],

	options: {
		id:'gototop',
		width:100
	},
	initialize: function(options) {
		this.setOptions(options);
		this.width = this.options.width;
		this.gototop =  $(this.options.id);
		new SmoothScroll({duration:500});
		if(this.gototop) this.start();
		else return false;
	},
	start:function(){
		var self=this;
		self.gototop.set('opacity','0').setStyle('display','block');
		window.addEvent('scroll',function(e) {
			if(Browser.Engine.trident4) {
				self.gototop.setStyles({
					'position': 'absolute',
					'bottom': window.getPosition().y + 10,
					'width': this.width
				});
			}
			self.gototop.fade((window.getScroll().y > 300) ? 'in' : 'out');
		});
	}
});

/**
 * wtnRollover
 * @ver 1.0
 * リンク下にある画像をロールオーバーor透過処理させる
 */

var wtnRollover = new Class({
	
	Implements: [Options],

	options: {
		current:true,
		area:"body",
		over:"_on",
		off:"_off"
	},
	initialize: function(options) {
		this.setOptions(options);
		this.overTxt = this.options.over;
		this.offTxt = this.options.off;
		this.imgs =  $$(this.options.area + " a img");
		if(this.imgs) this.Roll();
		return true;
	},
	Roll:function(){
		var self = this;
		self.imgs.each(function(img,index){
			var current;
			if($type(img)=="element"&& !img.hasClass("rollskip")){
				if(self.options.current==true){
					current = self.Current(img);
				}
				img.addEvents({
					"mouseover":function(){
						if(img.src.indexOf(self.offTxt) === -1)
							img.set("tween",{duration: 200}).tween("opacity",[1,0.5]);
						else
							img.src = img.src.replace(self.offTxt,self.overTxt);
						},
					 "mouseleave":function(){
					 	if(img.src.indexOf(self.overTxt) === -1||current==true)
							img.fade(1);
						else
							img.src = img.src.replace(self.overTxt,self.offTxt);
					 }
				});
			}
		});
		return;
	},
	Current:function(img){
		var URL = this.FilePass(document.location.href);
		var Href =  this.FilePass(img.getParent().href);
		if(Href === URL && Href){
			img.src = img.src.replace(this.offTxt,this.overTxt);
			return true;
		}
	},
	FilePass:function(str){
		var FilePass = str.substring(str.lastIndexOf("/")+1,str.length);
		return FilePass;
	}
});

/**
 * wtnLinkIcons
 * @ver 1.3
 * 
 * 別窓を開くアイコンとhrefの拡張子に応じたアイコンや属性を追加
 */

var wtnLinkIcons = new Class({					
	Implements: [Options],		
	options: {
		//search area
		areaID:"",
		//External Link OPTIONS
		ExternalLink:true,
		linkTitle:"リンクを新しいウインドウで開く",
		addExtIconClass:"exiAdd", //AddExternalIcon
		open:"blank",
		excludeStr:[],
		//Filetype Icon OPTIONS
		FiletypeIcon:true,
		ImagetypeIcon:false,//PNG JPG GIF
		media:["pdf","doc","zip","xls","mov","mp3","psd","swf","txt","wmv",".ai","exe","ppt","mpg","flv"],
		iconType:"gif",
		iconDir:"images/filetype/",
		iconW:16,
		iconH:16,
		//USE QuickBox OPTIONS
		QuickBox:false
		
	},
	initialize: function(options) {
		this.setOptions(options);
		this.exStr = this.options.excludeStr;
		this.addExI = this.options.addExtIconClass;
		this.media = this.options.media;
		this.iconD = this.options.iconDir;
		this.iconT = this.options.iconType;
		this.iconW = this.options.iconW;
		this.iconH = this.options.iconH;
		this.linkT = this.options.linkTitle;
		this.imgR = this.options.imgRel;
		this.FtI = this.options.FiletypeIcon;
		this.QuickBox = this.options.QuickBox;
		this.External = this.options.ExternalLink;
		this.gallery = false;
		this.gNum = 0;
		if(this.options.areaID =="")
			this.area = $(document.body);
		else
			this.area = $(this.options.areaID);
			
		this.area.getElements('a[href]').each(this.addIcon,this);
		return true;
	},
	
	addExternal:function(a){
		if(!this.External) return;
		if(this.options.open == "js"){
			var ANC = new Element("a",{"href":"#","title":this.linkT,"class":"newWin",events:{"click":function(){window.open(a.href);return false;}}});
		}else{
			var ANC = new Element("a",{"href":a.href,"title":this.linkT,"target":"_blank", "class":"newWin"});
		}
		ANC.set("html",'<img src="'+this.iconD +'external.'+this.iconT+'" width="'+this.iconW+'" height="'+this.iconH+'" alt="" />')
		ANC.inject(a,"after");
	},
	
	addArgs:function(qb,a){
		if(qb==1){//USE QuickBox
			var rel = a.getProperty("rel");
			var gal = ""; rel = (rel!=null)? " "+rel:"";
			//if((a.hasClass("start")&&!this.gallery)||this.gallery){ gal ="[img"+this.gNum+"]"; this.gallery = true; }
			//if(a.hasClass("end")){ gal ="[img"+this.gNum+"]"; this.gNum++; this.gallery = null; }
			a.setProperty("rel","quickbox"+gal+rel);
		}else{
			if(!this.External) return;
			if(this.options.open == "js"){a.addEvent("click",function(){window.open(this.href);return false;});}
			else{a.setProperty("target","_blank");}
		}
	},
	
	createIcon:function(tn,alt){
		return new Element("img",{
			"class":"icon",
			"src":this.iconD+tn+"."+this.iconT,
			"width":this.iconW,
			"height":this.iconH,
			"alt":alt
		});
	},
	
	addIcon:function(item,index){
		var self = this;
		var h = item.href;
		var t = h.replace(h.slice(0, -3), "").toLowerCase();
		var txt = item.get("text");
		var pct = item.getChildren("img");
		var icoskip = exiskip = expAdd = exiAdd = false;
		var prop = item.getProperties("target","onclick","Class");
		if(this.options.ImagetypeIcon==true){this.media.extend(["jpg","gif","png"]);}
		//Skip
		if(item.hasClass("icoSkip")||item.hasClass("jbiwnjtorzbrnezsjqya")){icoskip = true;}
		if(item.hasClass("exiSkip")||prop.target||(prop.onclick&&prop.onclick.indexOf("window.open")!==-1)||item.hasClass("jbiwnjtorzbrnezsjqya")){exiskip = true;}
		//Add
		if(item.hasClass("expAdd")){expAdd = true;}
		if(item.hasClass(this.addExI)){exiAdd =true;}
		//excludeString Check
		var exclude = this.exStr.some(function(str){ if(h.indexOf(str) !== -1) return true; })+$chk(h.match(/\.gif$|\.png$|\.jpg$|\.doc$|\.psd$|\.zip$|\.xls$|\.ai$|\.exe$|^mailto:|window\.print\(\)/));
		//Images Link
		if(t=="jpg"||t=="gif"||t=="png"){
			if(this.QuickBox===true){
				icoskip = true; self.addArgs(1,item);
			//Pict only & QuickBox OFF
			}else if (txt=="" && this.QuickBox===false){
				icoskip = true;self.addArgs(0,item);
			}else if(this.QuickBox===false){//
				self.addExternal(item);
			}
		}else if(!exiskip){
			//Add External
			if(!exiskip&&expAdd||expAdd){
				self.addArgs(2,item);
			}else{
				if(t=="txt"||t=="pdf"||t=="swf"||t=="mpg"||t=="mp3"||(h!="" && !exclude &&pct.length==0)||exiAdd){
					self.addExternal(item);
				}else if((txt!= ""&&pct.length!=0&& h!=""&& !exclude)||(txt==""&& pct.length!=0 &&h!=""&& !exclude)){
					self.addArgs(2,item);
				}
			}
		}
		//Add Filetype Icon
		if(!icoskip && this.FtI == true){
			if(prop.Class&&prop.Class.indexOf("icoAdd")!==-1){
				var n = prop.Class.slice(7);
				self.createIcon(n.toLowerCase(),n.toUpperCase() + " File").inject(item,"before");
			}
			//AddIconType Array Check
			if (this.media.contains(t)) {
				if(t.slice(0, 1)=="."){t=t.replace(".", "");}//2length Name
				self.createIcon(t,t.toUpperCase() + " File").inject(item,"before");
			}else if(item.protocol=="mailto:"){
				self.createIcon("email","Mail").inject(item,"before");
			}else if(item.protocol==="https:"){
				self.createIcon("https","SSL Page").inject(item,"before");
			}else if(h=="javascript:window.print()"){
				self.createIcon("print","Print").inject(item,"before");
			}
		}
	}
});
