//////////////////////////////////////////////////////////////////////
// Features to change appearance of the document
// http://www.remus.dti.ne.jp/~a-satomi/common/script/head.js

//////////////////////////////////////////////////////////////////////
// message on status bar
function msg(str) {
	// Gecko which set up to prevent changing status bar, will stops script.
	if (env.Moz) return;
	window.status = (str) ? str + "..." : "";
}

//////////////////////////////////////////////////////////////////////
// browser distinction
function GetEnv() {
	var ua	  = navigator.userAgent;
	this.Moz  = (ua.indexOf("Gecko/")	   != -1			  ); // Gecko
	this.Sfri = (ua.indexOf("AppleWebKit") != -1			  ); // Safari, OmniWeb 4.5, etc
	this.Omn  = (ua.indexOf("OmniWeb")	   != -1 && !this.Sfri); // old OmniWeb
	this.Op6  = (ua.match(/Opera.6/)	   != null			  ); // Opera 6.x
	this.IE	  = (document.all					 && !this.Op6 ); // IE
	this.IE40 = (ua.indexOf("MSIE 4.0")	   != -1 &&	 this.IE  ); // IE 4.0x
	this.IE50 = (ua.indexOf("MSIE 5.0")	   != -1 &&	 this.IE  ); // IE 5.0x
	this.NN4  = (document.layers				 && !this.Omn ); // Netscape Navigator 4

	this.Win  = (ua.indexOf("Windows") != -1);
	this.Mac  = (ua.indexOf("Mac")	   != -1);

	return this;
}

//////////////////////////////////////////////////////////////////////
// add quote mark to q element (WinIE only)
function appendQuotes(){
	if (!env.IE || !env.Win) return;

	msg("\u5F15\u7528\u7B26\u8FFD\u52A0\u51E6\u7406\u4E2D");
	var OBJs = this.document.getElementsByTagName("q");
	for (var i = 0; i < OBJs.length; i++) {
		var obj  = OBJs[i];
		var lang = obj.getAttribute("lang");
		var kakkoStart, kakkoEnd;
		if (!lang || lang.indexOf("ja") != -1)
			kakkoStart = "\u300C", kakkoEnd = "\u300D";
		else
			kakkoStart = kakkoEnd = "\u0022";
		obj.insertBefore(document.createTextNode(kakkoStart), obj.firstChild);
		obj.appendChild(document.createTextNode(kakkoEnd));
	}
}

//////////////////////////////////////////////////////////////////////
// replace Amazon links without a merchandise image
// 
function amazonNoImg(imgSrc) {
    var imgs = this.document.images;
    for (var i = 0; i < imgs.length; i++) {
        if (imgs[i].src.match('http://images-[a-z]+.amazon.com/') && imgs[i].width == 1 && imgs[i].height == 1 ){
            imgs[i].src = imgSrc;
        }
    }
}

//////////////////////////////////////////////////////////////////////
// Initialization
// http://sh.sakura.ne.jp/~obj/vector/diary/200307.html
// http://www.remus.dti.ne.jp/~a-satomi/nikki/2003/08c.html#d29n02

var env = new GetEnv();

function addEvent(obj, type, listener) {
    var prev  = obj[type];
    obj[type] = (prev) ? function() { prev(); listener(); } : listener;
}
window.addOnload = function(listener) { addEvent(window, "onload", listener) };

window.addOnload(function() {
	appendQuotes();				// q element control
	amazonNoImg('http://images-jp.amazon.com/images/G/09/x-locale/detail/thumb-no-image.gif'); 	// replace Amazon link image
	msg();						// status bar cleaning
});
