//スワップイメージとカレント
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)){
			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("_on" + imageExtension)){
			return false;
		}
		src = src.replace("." + imageExtension,"_on." + imageExtension);
		targetElement.src = src;
		StopPropagation(e);
	}
	function restore(e){
		var targetElement = EventTarget(e);
		var src = targetElement.src;
		src = src.replace("_on." + imageExtension,"." + imageExtension);
		targetElement.src = src;
		StopPropagation(e);
	}
	function preload(image){
		var preloadSrc = image.src;
		preloadSrc = preloadSrc.replace("." + imageExtension,"_on." + 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,"_ch." + 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","");
					currentName2 = currentName.replace("anyfam_navi_","");
					//alert(currentName);
					//alert(nowUrl);
					if(nowUrl.match(currentName2)){
						RemoveEventListener(allTags[i],"mouseout",restore);
						RemoveEventListener(allTags[i],"mouseover",swap);
						allTags[i].src = allTags[i].src.replace(currentName,currentName + "_ch");
					}
				}
			}
		}
	}
}

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(/-/g,"\\"));
				}else{
					comparArray.push(aTags[i].id.replace(/-/g,"/"));
				}
			}
		}
	}
	
	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;
	}
}



//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;
}

