var bRewrite = false;

var preloadImages = new Array();

if(window.attachEvent) {
	window.attachEvent('onload', rewrite_document);
} else if(window.addEventListener) {
	window.addEventListener('load', rewrite_document, false);
	window.addEventListener('pageshow', rewrite_document, false);
	
	if(get_browser() == "SA1") {
		window.addEventListener('unload', function(){}, false);
	}
}



function get_browser()
{
    var checkOP = window.opera;            // OP
    var checkN6 = document.getElementById; // N6
    var checkIE = document.all;            // IE
    var checkN4 = document.layers;         // N4

    if(checkOP) {
        return "OP6";  // Opera 6 or above
    } else if(checkIE) {
        return "IE4";  // Internet Explorer 4.0 or above
    } else if(checkN6) {
		var userAgent = navigator.userAgent;
		if(userAgent.indexOf("Chrome") >= 0) {
			return "CH";  // Google Chrome
		}
		if(userAgent.indexOf("Safari") >= 0) {
			return "SA1";  // Safari 1.X
		}
        return "NS6";  // Netscape 6 or above
    } else if(checkN4) {
        return "NN4";  // Netscape Navigator 4 to 5
    } else {
        if(navigator.appName == "Netscape") {
            return "NS";
        } else if(navigator.appName == "Microsoft Internet Explorer") {
            return "IE";
        }
    }

    return "UNKNOWN";
}



function get_os()
{
	var platform = navigator.platform;
	
	if(platform >= "Win") {
		return "WIN";
	} else if(platform >= "Mac") {
		return "MAC";
	}
	
	return "UNKNOWM";
}



function putSWF(swfURL, swfWidth, swfHeight, bgcolor, name, article_id)
{
	var protocol = location.protocol;
	
    return      ('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"')
	          + ('        codebase="'+protocol+'//fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"')
	          + ('        width="'+swfWidth+'" height="'+swfHeight+'" align="" id="'+name+'" name="'+name+'">')
              + ('   <param name="movie" value="'+swfURL+'" />')
              + ('   <param name="quality" value="high" />')
              + ('   <param name="bgcolor" value="'+bgcolor+'" />')
			  + ('   <param name="flashvars" value="article_id='+article_id+'" />')
              + ('   <embed src="'+swfURL+'" quality="high" bgcolor="'+bgcolor+'" width="'+swfWidth+'" height="'+swfHeight+'" align=""')
			  + ('          name="'+name+'" id="'+name+'" flashvars="article_id='+article_id+'" swliveconnect="true"')
	          + ('          type="application/x-shockwave-flash" pluginspage="'+protocol+'//www.macromedia.com/go/getflashplayer"></embed>')
              + ('</object>')
}



function popupImage(imgURL, imgWidth, imgHeight, imgTitle)
{
	var winWidth = imgWidth + 20;
	var winHeight = imgHeight + 20;
	var title = unescape(imgTitle);

	var br = get_browser();
	
	if(br=="SA1" || br=="CH") {
		var newWin = window.open("", "", "toolbar=no,location=no,directoryies=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width="+winWidth+",height="+winHeight);
		if(br != "CH") {
			newWin.moveTo(10, 10);
		}
	} else {
		var newWin = window.open("./", "", "toolbar=no,location=no,directoryies=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width="+winWidth+",height="+winHeight);
		newWin.moveTo(10, 10);
	}

	newWin.document.open();
	
	newWin.document.writeln('<?xml version="1.0" encoding="utf-8"?>');
	newWin.document.writeln('');
	newWin.document.writeln('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">');
	newWin.document.writeln('');
	newWin.document.writeln('<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">');
	newWin.document.writeln('');
	newWin.document.writeln('<head profile="http://gmpg.org/xfn/11">');
	newWin.document.writeln('    <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />');
	newWin.document.writeln('    <meta http-equiv="content-language" content="ja" />');
	newWin.document.writeln('    <meta http-equiv="content-style-type" content="text/css" />');
	newWin.document.writeln('    <meta http-equiv="imagetoolbar" content="no" />');
	newWin.document.writeln('');	
	newWin.document.writeln('    <style type="text/css"><![CDATA[');
	newWin.document.writeln('        * { margin:0px; paddingt:0px; border-style:none; border-width:0px; }');
	newWin.document.writeln('        html { overflow-y:hidden; overflow-x:hidden; }');
	newWin.document.writeln('        body { margin:0px; padding:10px; }');
	newWin.document.writeln('    ]]></style>');
	newWin.document.writeln('');
	newWin.document.writeln('    <title>'+title+'</title>');
	newWin.document.writeln('</head>');
	newWin.document.writeln('');
	newWin.document.writeln('<body>');
	newWin.document.writeln('<div><img src="'+imgURL+'" width="'+imgWidth+'" height="'+imgHeight+'" title="'+title+'" alt="'+title+'" /></div>');
	newWin.document.writeln('</body>');
	newWin.document.writeln('');
	newWin.document.writeln('</html>');
	
	newWin.document.close();
}



function document_out(id_str, out_str)
{
    var br = get_browser();
	
    if(br=="IE4" || br=="OP6"){           // IE4の時の表示
        document.all(id_str).innerHTML = out_str;
    } else if (br == "NN4") {    // NN4の時の表示
        document.layers[id_str].document.open();
        document.layers[id_str].document.write(out_str);
        document.layers[id_str].document.close();
    } else {
        document.getElementById(id_str).innerHTML = out_str;
    }
}

function rewrite_slideshow_caption(caption, padding)
{
	if(!document.getElementsByTagName) {
		return;
	}
	
	var tds = document.getElementsByTagName('td');
	
	for(var i=0; i<tds.length; i++) {
		var td = tds[i];
		var classes = td.className.split(" ");
		
		for(var j=0; j<classes.length; j++) {				
			if(classes[j] == 'slideshowCaption') {
				td.style.paddingLeft = String(padding) + "px";
				td.style.paddingRight = String(padding) + "px";
				document_out("slideshowCaption", caption)
				return;
			}
		}
	}
}



function rewrite_document()
{
	if(bRewrite) {
		return;
	}
	bRewrite = true;
	
	if(!document.getElementsByTagName) {
		return;
	}
	
	
	
	var divs = document.getElementsByTagName('div');
	
	for(var i=0; i<divs.length; i++) {
		var div = divs[i];
		var classes = div.className.split(" ");
		var bFlashContentBox = false;
		var articleID = 0;
		
		for(j=0; j<classes.length; j++) {				
			if(classes[j] == 'slideshowBox') {
				bFlashContentBox = true;
			} else if(classes[j].substr(0, 1) == "i") {
				articleID = classes[j].substr(1, 9999);
			}
		}
		
		if(bFlashContentBox && articleID!=0) {
			div.style.width = "600px";
			div.style.height = "450px";
			div.innerHTML = putSWF("slideshow.swf", 600, 450, "#FFFFFF", "slideshowFlash", articleID);
		}
	}
	
	
	
	var anchors = document.getElementsByTagName('a');
	
	for(var i=0; i<anchors.length; i++) {
		var a = anchors[i];
		var classes = a.className.split(" ");
	
		if(a.href) {
			var bTargetBlank = false;
			var bPopupImage = false;
			var imgWidth = 0;
			var imgHeight = 0;
			
			for(var j=0; j<classes.length; j++) {				
				if(classes[j] == 'popupNewWindow') {
					bTargetBlank = true;
				} else if(classes[j] == "popupImage") {
					bPopupImage = true;
				} else if(classes[j].substr(0, 1) == "w") {
					imgWidth = classes[j].substr(1, 9999);
				} else if(classes[j].substr(0, 1) == "h") {
					imgHeight = classes[j].substr(1, 9999);
				}
			}
			
			if(bTargetBlank) {
				a.target = '_blank';
			}
			
			if(bPopupImage && imgWidth!=0 && imgHeight!=0) {
				a.href = 'javascript:popupImage("'+a.href+'", '+imgWidth+', '+imgHeight+', "'+escape(a.title)+'");';
			}
		}
	}
	
	
	
	var images = document.getElementsByTagName('img');
	
	for(i=0; i<images.length; i++) {
		var img = images[i];
		var classes = img.className.split(" ");
		var bRollOver = false;
		
		for(j=0; j<classes.length; j++) {				
			if(classes[j] == 'rollOverButton') {
				bRollOver = true;
				break;
			}
		}
		
		if(bRollOver) {
			var path = img.src.split("/");
			var filename = path[path.length - 1].split(".");
			
			var target = new RegExp("_0$");
			if(!filename[0].match(target)) {
				continue;
			}
			var rolloverFilename = filename[0].replace(target, "_1");
			
			var rolloverImg = path[0];
			for(j=1; j<path.length-1; j++) {
				rolloverImg += "/" + path[j];
			}
			rolloverImg += "/" + rolloverFilename + "." + filename[1];
			
			img.srcMouseOut = img.src;
			img.srcMouseOver = rolloverImg;
			
			img.onmouseover = function func() { this.src = this.srcMouseOver; };
			img.onmouseout = function func() { this.src = this.srcMouseOut; };
			
			img.style.cursor = "pointer";
		}
	}
}
