var common_setting = function() {
	var os,ua,parameters,dom_event,minw_init = false;
	var initialize = function(){
		var u = navigator.userAgent.toLowerCase();
		var o = navigator.platform.toLowerCase();
		//os
		os = {};
		os.win = /win/.test(o)? true : false;
		os.mac = /mac/.test(o)? true : false;
		//navigator
		ua = {};
		ua.ie = /*@cc_on!@*/false ? parseFloat(u.replace(/^.*msie[^\d]*([\d\.]+).*$/,'$1')) : false;
		ua.iequirks = /BackCompat/i.test(document.compatMode) ? true : false;
		ua.webkit = /webkit/.test(u)? parseFloat(u.replace(/^.*webkit[^\d]*([\d\.]+).*$/,'$1')) : false;
		ua.opera = /opera/.test(u) ? parseFloat(u.replace(/^.*opera[^\d]*([\d\.]+).*$/,'$1')) : false;
		ua.nn = /netscape/.test(u) ? parseFloat(u.replace(/^.*netscape[^\d]*([\d\.]+).*$/,'$1')) : false;
		ua.ff = /firefox/.test(u) ? parseFloat(u.replace(/^.*firefox[^\d]*([\d\.]+).*$/,'$1')) : false;//ff+nn9.
	}();

	var addEvent = function(elm,ftype,func,usecap) {
		try{
			elm.addEventListener(ftype,func,usecap);
		} catch(e){
			try {
				elm.attachEvent('on'+ ftype,func);
			} catch(e){
				return;
			}
		}
	}

	var initRollovers = function() {
		var tags = ['img','input'];
		var p_images = new Array();
		
		for(var i = 0; i < tags.length ; i++) {
			var elms = document.getElementsByTagName(tags[i]);
			for(var j = 0; j < elms.length;j++) {
				if(elms[j].className && String(elms[j].className).indexOf('imgover') >= 0) {
					var src = elms[j].getAttribute('src');
					var ftype = src.substring(src.lastIndexOf('.'), src.length);
					var hsrc = src.replace(ftype, '_on'+ftype);
		
					elms[j].setAttribute('hsrc', hsrc);
					
					p_images[p_images.length] = new Image();
					p_images[p_images.length - 1].src = hsrc;
					
					var target = elms[j];
					if(elms[j].parentNode.tagName.toLowerCase() == 'a'){
						target = elms[j].parentNode;
					}
					target.onmouseover = target.onfocus = function() {
						var _self = this;
						if(this.tagName.toLowerCase() == 'a') _self = this.getElementsByTagName('img')[0];
						_self.setAttribute('src', _self.getAttribute('hsrc'));
					};

					target.onmouseout = target.onblur = function() {
						var _self = this;
						if(this.tagName.toLowerCase() == 'a') _self = this.getElementsByTagName('img')[0];
						_self.setAttribute('src', _self.getAttribute('src').replace('_on', ''));
					};
					
				}
			}
		}
		
	}
	//label for webkit(safari1.x - 2.x)
	var fmSafariLabelSupport = function() {
		if(!ua.webkit || !os.mac) return;
		if(ua.webkit < 522){
			var l = document.getElementsByTagName('label');
			var attr;
			for(var i = 0 ; i < l.length ; i++){
				attr = l[i].getAttribute('for');
				if(attr && document.getElementById(attr)){
					l[i].onclick = function() {
						var t = document.getElementById(this.getAttribute('for'));
						if(t.tagName.toLowerCase() == 'input'){
							if(t.getAttribute('type').toLowerCase() == 'radio') t.checked = true;
							else if(t.getAttribute('type').toLowerCase() == 'checkbox') t.checked = !t.checked;
						} 
						t.focus();
					}
				}
			}
		}
	}
	var fmToggleInitWord = function(elm,txt,color) {
		if(!elm) return;
		if(elm.value == "") {
			elm.value = txt;
		}
		if(elm.value == txt) elm.style.color = color;
		
		elm.onfocus = function() {
			elm.style.color = "#333";
			if(elm.value == txt) elm.value = "";
		}
		elm.onblur = function() {
//			if(elm.value.replace(/[ 　\t]/g,"") == "") {
			if(/^[ 　\t]*$/.test(elm.value)) {
				elm.value = txt;
				elm.style.color = color;
			} 
		}
	}
	


	//onloadイベントはここに追加
	var callLoadEvent = function() {
		initRollovers();
		fmSafariLabelSupport();
	}
	var addLoadEvent = function() {
		addEvent(window,"load",callLoadEvent,false);
	}();
	/*
	 * public API method
	 */
	var setInitWords = function() {
		fmToggleInitWord(document.getElementById('txtTransArea'),'ここに翻訳したい文章を入力してください。','#666');
		fmToggleInitWord(document.getElementById('transWeb'),'ここにURLを入力してください。','#666');
	}
	 
	return {
		setInitWords : setInitWords
	}
}();



