
document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className.split(" ");
for (var j = 0; j < classes.length; j++) {
var className = classes[j];
if (className == cl) {
retnode.push(elem[i]);
}
}
}
return retnode;
}

var DomHTML = {

getDocumentWidth: function (_document) {
if (!_document) { _document = document;}
if(_document.body) {
if(_document.body.scrollWidth || _document.body.scrollWidth == 0) {
return _document.body.scrollWidth;
}
if(_document.documentElement) {
return _document.documentElement.offsetWidth;
}
return _document.body.offsetWidth;
}

if(_document.width || _document.width == 0) {
return _document.width;
}
return 0;
},


getScrollTop: function() {
if(window.scrollY) { return window.scrollY;}
if(window.pageYOffset) { return window.pageYOffset;}
if(document.documentElement && document.documentElement.scrollTop){
return document.documentElement.scrollTop;
} else if(document.body && document.body.scrollTop) {
return document.body.scrollTop;
}
return 0;
},


getDocumentHeight: function () {
if(document.body) {
if(document.body.scrollHeight || document.body.scrollHeight == 0) {
return document.body.scrollHeight;
}
if(document.documentElement) {
return document.documentElement.offsetHeight;
}
return document.body.offsetHeight;
}
if(document.height || document.height == 0) {
return document.height;
}
return 0;
},


effects: {

width: function(_target, _width, _fade) {
var current = _target.offsetWidth;
if (!_fade) {
var width = _width;
} else {
var width = current + ((_width - current) / _fade);
if (width != current) {
setTimeout(function() { DomHTML.effects.width(_target, _width, _fade / 1.25)}, 50);
}
}
_target.style.width = width + "px";
},

opacity: function(_target, _opacity, _fade, _fadetype) {
var current = _target.style.opacity * 100;
if (!_fade) {
var opacity = _opacity;
} else {
var opacity = Math.round(current + ((_opacity - current) / _fade));
if (opacity != current) {
setTimeout(function() { DomHTML.effects.opacity(_target, _opacity, _fade / 1.25)}, 50);
}
}
_target.style.zoom = 1;
_target.style.filter = 'alpha(opacity=' + (opacity) + ')';
_target.style.MozOpacity = opacity / 100;
_target.style.opacity = opacity / 100;
}
},


addEvent: function(elemObj, eventType, funcName, useCapture) {
if (!elemObj) { return false;}
if (elemObj.addEventListener){
elemObj.addEventListener(eventType, funcName, useCapture);
} else if (elemObj.attachEvent){
elemObj.attachEvent("on"+eventType, funcName);
} else {
return false;
}
return true;
}

};


var imageReplace = {

mainImage: "",
title: "",

start: function() {

var images = document.getElementsByTagName("img");
var imax = images.length;
for (var i=0;i<imax;i++) {
if (!images[i].className) { continue;}
if (images[i].className.match(/ImageReplacePlace/)) {
imageReplace.mainImage = images[i];
continue;
}
if (!images[i].className.match(/ImageReplaceOrigin/)) { continue;}
if (images[i].className.match(/Click/)) {
images[i].onclick = imageReplace.setReplace (images[i].src, images[i].alt);
images[i].style.cursor = 'pointer';
} else {
images[i].onmouseover = imageReplace.setReplace (images[i].src, images[i].alt);
}
}

},


setReplace: function(SRC, TITLE) {
var func = function() {
imageReplace.mainImage.src = SRC;
if (document.getElementById('image-replace-title')) {
document.getElementById('image-replace-title').innerHTML = TITLE;
}
}
return func;
}

};

var confirmAndExe = {

start: function() {
var links = document.links;
var imax = links.length;
for (var i=0;i<imax;i++) {
if (links[i].rel.match (/confirmAndExe/)) {
links[i].onclick = confirmAndExe.set(links[i].href, links[i].title);
}
}
},

set: function (_url, _message) {
var func = function() {
var res = confirm (_message + "\nよろしいですか？");
if (res) {
location.href = _url;
}
return false;
}
return func;
}

}

var htmlWindow = {

message: "新しいウィンドウで開きます。",

start: function() {
var links = document.getElementsByTagName("a");
var imax = links.length;
for (var i=0;i<imax;i++) {
if (!links[i].className) { continue;}
if (!links[i].className.match(/NewWindow/)) { continue;}
var args = links[i].className.split(" ");
var jmax = args.length;
for (var j = 0; j < jmax; j++) {
if (args[j].match(/NewWindow/)) {
args = args[j];
break;
}
}
args = args.replace("NewWindow", "").split(".");
args.shift();
args.unshift(links[i].title);
args.unshift(links[i].href);
links[i].onclick = htmlWindow.setOpen (args);
links[i].title = htmlWindow.message;
}
},


setOpen: function(_args) {
var func = function() {
htmlWindow.open(_args);
return false;
}
return func;
},
open: function(_args) {
    var win;
URL = _args[0];
NAME = _args[1] || "NewWindow";
WIDTH = _args[2] || 640;
HEIGHT = _args[3] || 480;
SCROLL = _args[4] || "yes";
RESIZE = _args[5] || "yes";
TOOLBAR = _args[6] || "no";
LOCATION = _args[7] || "no";
DIRECTORIES = _args[8] || "no";
STATUS = _args[9] || "no";
MENUBAR = _args[10] || "no";
NAME = '';
    win = window.open(
URL,
NAME,
"toolbar=" + TOOLBAR +
",location=" + LOCATION +
",directories=" + DIRECTORIES +
",status=" + STATUS +
",menubar=" + MENUBAR +
",scrollbars=" + SCROLL +
",resizable=" + RESIZE +
", width="+ WIDTH +
", height=" + HEIGHT
);
    win.focus();
}
};

var visMenu = {

list: "",

start: function() {

var links = document.links;
var imax = links.length;
var href = "";
visMenu.list = new Array ();
for (var i=0;i<imax;i++) {
if (links[i].className.match (/VisMenu/)) {
href = links[i].href.split(/#/)[1];
links[i].onclick = visMenu.set(href);
visMenu.list.push(href);
}
}

var current_id = visMenu.current_id();
if ((current_id.length <= 0) && document.cookie) {
var current = visMenu.current_path();
var cookies = document.cookie.split("; ");
var imax = cookies.length;
for (var i = 0; i < imax; i++) {
var str = cookies[i].split("=");
if (str[0] == "visMenu_" + current) {
current_id = str[1];
break;
}
}
}

visMenu.close(current_id);

},


set: function (_id) {
var func = function() {
visMenu.close(_id);
document.getElementById(_id).style.display = "block";
if (document.getElementById('error')) { document.getElementById('error').style.display = 'none';}
if (document.getElementById('state')) { document.getElementById('state').style.display = 'none';}
return false;
}
return func;
},


close: function (_id) {
imax = visMenu.list.length;
document.cookie = "visMenu_" + visMenu.current_path() + "=" + _id + ";";
for (var i = 0; i < imax; i++) {
if (visMenu.list[i] == _id) { continue;}
document.getElementById(visMenu.list[i]).style.display = "none";
}
},


current_path: function () {
return location.href.split(/#/)[0].split(/\?/)[0];
},


current_id: function () {
var str = new Array();
str = location.href.split(/#/);
if (str.length > 1) {
return str[1];
} else {
return "";
}
}

}


var slideBanner = {

element: false,
current: 0,
target: 0,
interval: 5000,
movespeed: 20,
unit: 0,
count: 0,
timer: false,


start: function(_element, _unit, _intervalsec, _movespeed) {

slideBanner.count = document.getElementsByClassName('SlideBanner').length

slideBanner.element = _element;
slideBanner.unit = _unit;
if (_intervalsec) { slideBanner.interval = _intervalsec * 1000;}
if (_movespeed) { slideBanner.movespeed = _movespeed;}
_element.style.width = (_unit * slideBanner.count) + 'px';

var nav = document.createElement('ul');
for (var i = 0; i < slideBanner.count; i++) {
var list = document.createElement('li');
var wrap = document.createElement('span');
var link = document.createElement('a');
link.innerHTML = 'Banner' + i;
link.onclick = function(i) {
var func = function() {
slideBanner.target = i;
clearTimeout(slideBanner.timer);
slideBanner.setCurrent();
slideBanner.move();
}
return func;
}(i)
link.id = 'slide-banner-nav-' + i;
wrap.appendChild(link);
list.appendChild(wrap);
nav.appendChild(list);
}
nav.id = 'slide-banner-nav';
_element.parentNode.insertBefore(nav, _element.nextSibling);

slideBanner.setCurrent();
slideBanner.slider();

},


slider: function() {
if (slideBanner.target >= (slideBanner.count - 1)) {
slideBanner.target = 0;
} else {
slideBanner.target++;
}
clearTimeout(slideBanner.timer);
slideBanner.timer = setTimeout(slideBanner.move, slideBanner.interval);
setTimeout(slideBanner.setCurrent, slideBanner.interval);
},


setCurrent: function() {
for (var i = 0; i < slideBanner.count; i++) {
if (slideBanner.target == i) {
document.getElementById('slide-banner-nav-' + i).className = 'Current';
} else {
document.getElementById('slide-banner-nav-' + i).className = '';
}
}
},


move: function() {

var target = 0 - slideBanner.target * slideBanner.unit;

var move = target - slideBanner.current;
if ((move < 3) && (move > -3)) {
slideBanner.current = target;
}

slideBanner.element.style.left = slideBanner.current + 'px';

if (target != slideBanner.current) {
slideBanner.timer = setTimeout (arguments.callee, 5);
} else {
slideBanner.slider();
}
slideBanner.current = slideBanner.current + ((target - slideBanner.current) / slideBanner.movespeed);

}

}

function page_load() {
switch (document.body.id) {
case "toppage":
slideBanner.start(document.getElementById('main-banners'), 730, 8, 10);
  break;
case "shop_item":
case "shop_images":
imageReplace.start();
break;
case "shop_mypage":
confirmAndExe.start();
break;
case "access":
imageReplace.start();
break;
}
htmlWindow.start();
}
DomHTML.addEvent (window, "load", page_load);

