//スワップイメージとカレント
function SwapImage(){}
SwapImage.Load = function(id,extension,currentFlag,currentPath){
	var nowUrl = document.URL;
	var imageId = id;
	var imageExtension = extension;
	var allTags = document.getElementsByTagName("*");
	for(i=0;i<allTags.length;i++){
		if(allTags[i].id.match(imageId)){
			if(allTags[i].src.match("_r." + imageExtension)){
				allTags[i].src = allTags[i].src.replace("_r." + imageExtension,"." + imageExtension);
			}
			preload(allTags[i]);
			AddEventListener(allTags[i],'mouseover',swap);
			AddEventListener(allTags[i],'mouseout',restore);
		}
	}
	if(currentFlag){
		current();
	}
	
	function swap(e){
		var targetElement = EventTarget(e);
		var src = targetElement.src;
		if(src.match("_r" + imageExtension)){
			return false;
		}
		src = src.replace("." + imageExtension,"_r." + imageExtension);
		targetElement.src = src;
		StopPropagation(e);
	}
	function restore(e){
		var targetElement = EventTarget(e);
		var src = targetElement.src;
		src = src.replace("_r." + imageExtension,"." + imageExtension);
		targetElement.src = src;
		StopPropagation(e);
	}
	function preload(image){
		var preloadSrc = image.src;
		preloadSrc = preloadSrc.replace("." + imageExtension,"_r." + imageExtension);
		var imageObject = new Image();
		imageObject.src = preloadSrc;
	}
	function current(){
		//例外処理をする場合
		if(currentPath){
			var tmpPath = currentPath;
			var currentObj = document.getElementById(imageId);
			var currentSrc = currentObj.src;
			if(nowUrl.indexOf("\\") >= 0){
				tmpPath = tmpPath.replace("/","\\");
			}
			if(nowUrl.indexOf(tmpPath) >= 0){
				RemoveEventListener(currentObj,"mouseout",restore);
				RemoveEventListener(currentObj,"mouseover",swap);
				currentObj.src = currentSrc.replace("." + imageExtension,"_r." + imageExtension);
			}
		}else{//通常のカレント
			var slash = "/";
			//ローカルで確認中だったら、区切り文字を\に
			var slashReg = new RegExp("/\\/");
			if(nowUrl.match(slashReg)){
				slash = "\\";
			}
			var urlSplit = nowUrl.split(slash);
			for(i=0;i<allTags.length;i++){
				var reg = new RegExp(imageId);
				if(allTags[i].id.match(reg)){
					var srcSplit = allTags[i].src.split("/");
					var currentSrc = srcSplit[(srcSplit.length) - 1];
					var currentName = currentSrc.replace(".gif","");
					currentName = currentName.replace(".jpg","");
					if(nowUrl.match(currentName)){
						RemoveEventListener(allTags[i],"mouseout",restore);
						RemoveEventListener(allTags[i],"mouseover",swap);
						allTags[i].src = allTags[i].src.replace(currentName,currentName + "_r");
					}
				}
			}
		}
	}
}

//カレント　テキストバージョン
function CurrentText(){};

CurrentText.Load = function(ID,CLASSNAME){
	var nowURL = document.URL;
	var menuObject = document.getElementById(ID);
	var aTags = menuObject.getElementsByTagName("a");
	var targetObjects = new Array();
	var comparArray = new Array();
	setTargetObjects();
	setComparArray();
	
	setClassName();
	
	function setTargetObjects(){
		for(i=0;i<aTags.length;i++){
			if(aTags[i].id){
				targetObjects.push(aTags[i]);
			}
		}
	}
	
	function setComparArray(){
		for(i=0;i<aTags.length;i++){
			if(aTags[i].id){
				if(nowURL.indexOf("\\") >= 0){
					comparArray.push(aTags[i].id.replace("-","\\"));
				}else{
					comparArray.push(aTags[i].id.replace("-","/"));
				}
			}
		}
	}
	
	function setClassName(){
		for(i=0;i<targetObjects.length;i++){
			if(nowURL.indexOf(comparArray[i]) >= 0){
				targetObjects[i].className = CLASSNAME;
			}
		}
	}
}


function PageTop(){}

PageTop.Load = function(CLASSNAME){
	var pTags = document.getElementsByTagName("p");
	var nowHeight;
	var timerID;
	for(i=0;i<pTags.length;i++){
		if(pTags[i].className.indexOf(CLASSNAME) >= 0){
			var clickObject = pTags[i].firstChild;
			AddEventListener(clickObject,'click',MoveSet);
		}
	}
	function MoveSet(e){
		timerID = setTimeout(Move,0);
		
		StopPropagation();
		PreventDefault(e);
	}
	function Move(){
		var nowScrollY;
		if(GetBrowser() == "Safari"){
			nowScrollY = document.body.scrollTop;
		}else{
			nowScrollY = document.documentElement.scrollTop;
		}
		
		if(nowScrollY > 0){
			var step = nowScrollY * 0.07;
			if(step < 1){
				step = 0.5;
			}
			if(GetBrowser() == "Safari"){
				document.body.scrollTop = nowScrollY - step;
			}else{
				document.documentElement.scrollTop = nowScrollY - step;
			}
			setTimeout(Move,0);
		}else{
			if(GetBrowser() == "Safari"){
				document.body.scrollTop = 0;
			}else{
				document.documentElement.scrollTop = 0;
			}
			clearTimeout(timerID);
		}
	}
}


//イベント・リスナーをセットする
function AddEventListener(element,type,func,capture){
	if(!element){return false;};
	if(!capture){capture = false;};
	if(element.addEventListener){
		element.addEventListener(type,func,capture);
	}else if(element.attachEvent){
		element.attachEvent('on' + type,func);
	}else{
		return false;
	}
}

//イベント・リスナーを解除する
function RemoveEventListener(element,type,func,capture){
	if(!element){return false;};
	if(!capture){capture = false;};
	if(element.removeEventListener){
		element.removeEventListener(type,func,capture);
	}else if(element.detachEvent){
		element.detachEvent('on' + type,func);
	}else{
		return false;
	}
}

//イベント・ターゲットを特定する
function EventTarget(e){
	if(e && e.target){
		if(e.target.nodeType == 3){
			return e.target.parentNode;
		}else{
			return e.target;
		}
	}else if(window.event && window.event.srcElement){
		return window.event.srcElement;
	}else{
		return null;
	}
}

//デフォルト・アクションを抑止する
function PreventDefault(e){
	if(e && e.preventDefault){
		e.preventDefault();
		e.currentTarget["on" + e.type] = function(){return false;};
	}else if(window.event){
		window.event.returnValue = false;
	}
}

//イベントの伝播を抑止する
function StopPropagation(e){
	if(e && e.stopPropagation){
		e.stopPropagation();
	}else if(window.event){
		window.event.cancelBubble = true;
	}
}

//ウィンドウリサイズ
function ThisWinResize(width,height){
	this.resizeTo(width,height);
	if(window.opera || document.layers){//N4、O6用
		var w = self.innerWidth;
		var h = self.innerHeight;
	}else if(document.all){//IE用
		var w = self.document.body.clientWidth;
		var h = self.document.body.clientHeight;
	}else if(document.getElementById){//N6、N7、M1用
		var w = self.innerWidth;
		var h = self.innerHeight;
	}
}

//XMLHttpRequestオブジェクト作成
function CreateXMLHttp(){
	try{
		return new XMLHttpRequest();
		
	}catch(e){
		try{
			return new ActiveXObject("Microsoft.XMLHTTP");
		}catch(e){
			try{
				return new ActiveXObject("Msxml2.XMLHTTP");
			}catch(e){
				return null;
			}
		}
	}
	return null;
}

//クッキーをセット
function SetCookie(name,value,expires,domain,path){
	var cookie = name + "=" + encodeURIComponent(value);
	if(expires){
		cookie += "; expires=" + expires.toGMTString();
	}
	if(domain){
		cookie += "; domain=" + domain;
	}
	if(path){
		cookie += "; path=" + path;
	}
	document.cookie = cookie;
}

//クッキーを呼び出し
function GetCookie(name){
	var sRegExp = "(?:; )?" + name + "=([^;]*);?";
	var oRegExp = new RegExp(sRegExp);
	if(oRegExp.test(document.cookie)){
		return decodeURIComponent(RegExp["$1"]);
	}else{
		return "";
	}
}

//ブラウザ判別
function GetBrowser(){
	var ua = navigator.userAgent;
	var strBrowser;
	if(ua.indexOf("MSIE") >= 0){
		strBrowser = "IE";
	}else if(ua.indexOf("Netscape") >= 0){
		strBrowser = "NN";
	}else if (ua.indexOf("Safari") >= 0){
		strBrowser = "Safari";
	}else if(ua.indexOf("Opera") >= 0){
		strBrowser = "Opera";
	}else if(ua.indexOf("Firefox") >= 0){
		strBrowser = "Firefox";
	}else if(ua.indexOf("Gecko") >= 0){
		strBrowser = "Mozilla";
	}else if(ua.indexOf("Mozilla/4") >= 0){
		strBrowser = "NN";
	}else{
		strBrowser = "";
	}
	return strBrowser;
}


