
function dispTime(){ 

	clearTimeout(this.dtid);
	var now = new Date();
	var wday = new Array( "日","月","火","水","木","金","土" );

	var y = now.getYear();
	if( y < 1900){
		y += 1900;
	}
	var m = "0"+(now.getMonth()+1);
	m = m.substring(m.length-2,m.length);
	var d = "0"+now.getDate();
	d = d.substring(d.length-2,d.length);
	var h = "0"+now.getHours();
	h = h.substring(h.length-2,h.length);
	var i = "0"+now.getMinutes();
	i = i.substring(i.length-2,i.length);
	var s = "0"+now.getSeconds();
	s = s.substring(s.length-2,s.length);

	var watch1 = y + "年" + m + "月" + d + "日" + " (" + wday[now.getDay()] + ") " + h +":" + i + ":" + s;
	document.getElementById('time').innerHTML = watch1; /* ローカル時 */
	this.dtid = setTimeout("dispTime()", 1000); 

}

function quotemeta (string) {
	return string.replace(/[^0-9A-Za-z_]/g, function(m){
		return '\\' + m;
	});
}

// css process

function Display(id){

	var style = (document.getElementById) ? document.getElementById(id).style : document.all(id).style;

	if( style['display'] == "block" ){
		 style['display'] = "none";
	}else if( style['display'] == "none"){
		 style['display'] = "block";
	}

	return false;
}

// cross event

var addEvent = window.addEventListener ? function(target, type, listener) { target.addEventListener(type, listener, false); } : function(target, type, listener) { target.attachEvent('on' + type, function() { listener.call(target, window.event); }); };

// open window

function openWindow(x,y) {
style = "toolbar=0,location=0,scrollbars=1,width=" + x + ",height=" + y + ",resizable=yes";
window.open("","newwin",style);
}

function openWin(url,win,x,y) {
style = "toolbar=0,location=0,scrollbars=1,width=" + x + ",height=" + y + ",resizable=yes";
window.open(url,win,style);
return false;
}

function openCWindow(uri, width, height){
	var left = Math.floor((screen.width-width)/2);
	var top  = Math.floor((screen.height-height)/2);
	var win = window.open(uri, "_blank", "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width="+width+",height="+height+",left="+left+",top="+top);
	if(document.all === void 0 && document.layers === void 0 && document.getElementById === void 0){
		win.resizeTo(width, height);
		win.moveTo(left, top);
	}
	win.focus();
}


// Flash tag

//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}


// アンカースクロール

var SMScroll = function(){

	/**
	 * calculate X-coord in a page
	 * @param elem element
	 * @returns {Number} X-coordinate
	 */
	function calculateXcoord(elem) {
		var xCoord = 0;
		while (elem) {
			xCoord += new Number(elem.offsetLeft);
			elem = elem.offsetParent;
		}
		if (navigator.userAgent.indexOf('Mac') != -1 &&
				typeof document.body.leftMargin != 'undefined') {
			xCoord += new Number(document.body.leftMargin);
		}
		return xCoord;
	}
	/**
	 * calculate Y-coord in a page
	 * @param elem element
	 * @returns {Number} Y-coordinate
	 */
	function calculateYcoord(elem) {
		var yCoord = 0;
		while (elem) {
			yCoord += new Number(elem.offsetTop);
			elem = elem.offsetParent;
		}
		if (navigator.userAgent.indexOf('Mac') != -1 &&
				typeof document.body.topMargin != 'undefined') {
			yCoord += new Number(document.body.topMargin);
		}
		return yCoord;
	}
	/**
	 * start smoothscroll action
	 * @param elem_dst element to jump
	 */
	function startScroll(elem_dst) {
		var destY = calculateYcoord(elem_dst);
		var ename = elem_dst.id ? elem_dst.id : elem_dst.name;
		var urlHash = (ename) ? ('#'+ename) : null;
		var interval = 40;  // millisecond
		var steps = 10;  // times
		var crnt = 0;  // counter
		var scrollTop = null;
		if (document.body.parentNode.scrollTop != null) {  //IE
			scrollTop = document.body.parentNode.scrollTop;
		} else if (window.scrollY != null) {  //NN5
			scrollTop = window.scrollY;
		} else if (window.pageYOffset != null) {  //NN4
			scrollTop = window.pageYOffset;
		}
		var diff = destY - scrollTop;
		var timerid = setInterval(function () {

			if (crnt++ < steps) {
				var t = crnt / steps;
				var f = t-1/Math.PI*Math.sin(Math.PI*t);
				var y = scrollTop + diff * f;
				window.scrollTo(0, y);
			} else {
				clearInterval(timerid);
				if (urlHash) {
					document.location.hash = urlHash;
				}
				if (navigator.userAgent.indexOf('Opera 8.01') != -1) {
					document.location.reload();  // Opera8.01 bug
				}
				return true;
			}
		}, interval);
	}
	/**
	 * closure that returns onclick handler for link
	 * @param anchor element to jump
	 * @returns event handler function
	 */
	function cloOnLinkClick(anchor) {
		return function(event) {
			startScroll(anchor);
			//Event.stop(event);  // prevent browser default action(jump)
			return false;
		};
	}
	
	// ページ内リンクでスムーススクロールするハンドラを全リンクに自動設定
	var myURL = document.location.href;
//.replace(document.location.hash, ''); // remove hash
	myURL = myURL.replace( /\#.+$/, '');
	var regex = '^'+ quotemeta(myURL) +'#';
	var anchorMap = new Object();  // hash -> anchor
	for (var i = 0; i < document.anchors.length; i++) {
		var a = document.anchors[i];
		var aname = a.id ? a.id : a.name;
		anchorMap['#'+aname] = a;
	}
	for (var i = 0; i < document.links.length; i++) {
		var link = document.links[i];
		var eid = link.hash.replace(/\#.+$/, '');
		if (!link.onclick && !link.onmousedown && link.href && link.href.match(regex) && anchorMap[link.hash] ) {
			// onclick,onmousedownハンドラ未定義　かつ　ページ内リンク
			var anchor = anchorMap[link.hash];
//			Event.observe(link, 'click', cloOnLinkClick(anchor), false);
			link.onclick = cloOnLinkClick(anchor);
//			link.href = 'javascript:void(0);';
		}
	}

};


/* URL から取得した内容を指定ID内へ格納 */
function getWeb2Div( id, url ){

if(!this.ajax){
if(window.XMLHttpRequest) {
    this.ajax = new XMLHttpRequest();
} else if(window.ActiveXObject) {
    try {
    this.ajax = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
    this.ajax = new ActiveXObject("Microsoft.XMLHTTP");
    }
}
}
	this.ajax.open("GET", url);
	this.ajax.onreadystatechange = function() {
		if (ajax.readyState == 4 && ajax.status == 200) {
			var obj = document.getElementById( id );
			obj.innerHTML = this.ajax.responseText;
		}
	}
	this.ajax.send("");
}

// 外部リンクは _blank
var setLink = {};
(function(){
function getIdx(a,b,hosts) {
	var ret = 1;
	var p =[getHost(a), getHost(b)];
	if ( p[0] != p[1] ) ret= 0;
	if ( !a.href.match(/^(file|http|ftp)/) ) ret= 1;
	if ( !ret && hosts && a.href.match(hosts) ) ret = 1;
	return ret;
}

function getHost(p){
	var ret='file';
	if( !p.href.match(/^(file|javascript)/i) ) {
		ret = p.hostname;
	}
 return ret;
}

function quotemeta (string) {
	return string.replace(/\r\n/g,"\n").replace(/\r/g,"\n").replace(/\n/g,'\\n').replace(/([^0-9a-zA-Z_])/g, "\\$1");
}
function isArray(x) { return ((typeof x == 'object') && (x.constructor == Array)); }


setLink.Target = function(hosts){
var i,x;

if( typeof hosts == 'string'){
	hosts = [ hosts ];
}
if( isArray(hosts) ){
	var buf=[];
	for(var i=0; i<hosts.length; ++i){
		buf.push( quotemeta( hosts[i] ) );
	}
	hosts = buf.join('|');
	eval('hosts = /('+ hosts +')/');
}
for (var i=0;x=document.links[i];++i){
	if( !x.onclick && !x.onmousedown && x.href && !x.target ){
		x.target=['_blank','_self'][getIdx(x, location, hosts)];
	}
}
}

// https時の特定リンクをhttp化
setLink.http = function(host, links){
var i,x;
if( typeof links == 'string'){
	links = [ links ];
}
if( isArray(links) ){
	var buf=[];
	for(var i=0; i<links.length; ++i){
		buf.push( quotemeta( links[i] ) );
	}
	urls = buf.join('|');
	eval('urls = /'+ quotemeta('https://'+ host) +'('+ urls +')/');
}
for (var i=0;x=document.links[i];++i){
	if( !x.onclick && !x.onmousedown && x.href.match(urls) ){
		x.href = x.href.replace(/https/,'http');
	}
}
}

setLink.getHost = getHost;

}());




// window.onload

addEvent( window,'load', SMScroll );
addEvent( window,'load', function(){setLink.Target('fct.co.jp')} );
addEvent( window,'load', function(){setLink.http(setLink.getHost(location),["/","/program/","/news/","/goji/","/goji/cook/","/event/","/tenki/","/announce/","/hiroba/","/outline/","/privacy/","/outline/recruit/","/contact/","/character/","/goji/cook/","/tenki/","/link/","/sitemap/","/howto/"])} );


