


///////////////////////////////////////////////////////////////////////////////////////////////////////
//
//使い回し出来るファンクション
//euc-jpで保存しています。
//
///////////////////////////////////////////////////////////////////////////////////////////////////////





var n$ = new Object();

n$ = {



/*
=====================================================================
最初に設定しておく値
=====================================================================
*/



start: "2008",//コピーライト：制作年
company:"デザイニングナスカ",//コピーライト：会社名
th1:"color1",//thの着色クラス　初期値
th2:"color2",//thの着色クラス　初期値
td1:"color1",//tdの着色クラス　初期値
td2:"color2",//tdの着色クラス　初期値
w_name:"window",//別窓の名前
w_resizable:"no",//別窓のパラメーター　初期値
w_scrollbars:"0",//別窓のパラメーター　初期値
exp:7,//クッキー　有効期限日数　初期値
path:1,//クッキー　参照可能ページ（0…発行したページのみ参照可能、1…ドメイン内はどこでも参照可能）
ssl:0,//クッキー　SSLセッションの時は1に設定



/*
=====================================================================
ファンクション
=====================================================================
*/



//divを返す
$: function(id)
	{
		return document.getElementById(id);
	},

//divの表示、非表示を繰り返す
innerdiv: function(sender)
	{
		//表示しているdivを消す
		if(n$.$(sender).style.display != "block")
			{
				n$.$(sender).style.display = "block";
				n$.$(sender).style.visibility  = 'visible';
			}
		else
			{
				n$.$(sender).style.display = "none";
				n$.$(sender).style.visibility  = 'hidden';
			}
	},

//divを閉じる
closediv: function(sender)
	{
		n$.$(sender).style.display = "none";
		n$.$(sender).style.visibility  = 'hidden';
	},

//divを開く
opendiv: function(sender)
	{
		n$.$(sender).style.display = "block";
		n$.$(sender).style.visibility  = 'visible';
	},

//DIVレイヤーの表示、非表示を設定する
/*
divName -> 表示、非表示を設定したいdiv名
type -> hidden or visible
topPos -> 上からの位置
leftPos -> 左からの位置
*/
div: function(divName,type,topPos,leftPos)
	{
		n$.$(divName).style.visibility  = type;
		n$.$(divName).style.top= (Number(topPos))+'px';
		n$.$(divName).style.left=(Number(leftPos))+'px';
	},

//指定ID名のinnerHTMLにvalueを挿入
inner: function(idName,value)
	{
		n$.$(idName).innerHTML = value;
	},

//指定ID名のinnerHTMLの値を取得
getinner: function(idName)
	{
		return n$.$(idName).innerHTML;
	},

//-------------------------------------------------------------------------------------------------------------------------

//簡単なブラウザ判定
browser: function()
	{
		var ua = navigator.userAgent.toLowerCase();
		
		//判定結果を変数に入れておく
		var ie8 = ua.indexOf('msie 8') != -1;
		var ie7 = ua.indexOf('msie 7') != -1;
		var ie6 = ua.indexOf('msie 6') != -1;
		var safari = ua.indexOf('safari') != -1;
		var firefox = ua.indexOf('firefox') != -1;
		var opera = ua.indexOf('opera') != -1;
		
		//値を返す
		if(ie8){return 'ie8';}
		else if(ie7){return 'ie7';}
		else if(ie6){return 'ie6';}
		else if(safari){return 'safari';}
		else if(firefox){return 'firefox';}
		else if(opera){return 'opera';}
		else{return 'other';}
	},

//ブラウザサイズの取得
windowsize: function()
	{
		var ua = n$.browser();
		var tmp = new Array();
		
		//処理振分け：IE
		if(ua == "ie" || ua == "ie7")
			{
				tmp[0] = document.body.scrollTop || document.documentElement.scrollTop;//スクロールした距離を取得
				tmp[1] = document.documentElement.clientHeight;
				tmp[2] = document.documentElement.clientWidth;
			}
		//処理振分け：サファリ
		if(ua == "safari")
			{
				tmp[0] = document.body.scrollTop || document.documentElement.scrollTop;//スクロールした距離を取得
				tmp[1] = window.innerHeight;
				tmp[2] = window.innerWidth;
			}
		//処理分け：その他
		if(ua == "gecko")
			{
				tmp[0] = 0;
				tmp[1] = document.documentElement.clientHeight;
				tmp[2] = document.documentElement.clientWidth;
			}
		
		return tmp;
	},

//-------------------------------------------------------------------------------------------------------------------------

//テキストエリアにタグを追加する
getAreaRange: function(obj)
	{
		var pos = new Object();
		var isIE = (navigator.appName.toLowerCase().indexOf('internet explorer')+1?1:0);
		if (isIE)
			{
				obj.focus();
				var range = document.selection.createRange();
				var clone = range.duplicate();
				clone.moveToElementText(obj);
				clone.setEndPoint( 'EndToEnd', range );
 				pos.start = clone.text.length - range.text.length;
				pos.end = clone.text.length - range.text.length + range.text.length;
			}
		else if(window.getSelection())
			{
				pos.start = obj.selectionStart;
				pos.end = obj.selectionEnd;
			}
		return pos;
		//alert(pos.start + "," + pos.end);
	},

insertTag: function(tag,obj)
	{
		var target = document.getElementById(obj);
		var pos = this.getAreaRange(target);
 		var val = target.value;
		var range = val.slice(pos.start, pos.end);
		var beforeNode = val.slice(0, pos.start);
		var afterNode = val.slice(pos.end);
		var insertNode;
		if(tag == "a")
			{
				starttag = 'a href="URL"';
				endtag = "a";
			}
		else if(tag == "a.blank")
			{
				starttag = 'a href="URL" target="_blank"';
				endtag = "a";
			}
		else if(tag == "small" || tag == "green" || tag == "blue" || tag == "red")
			{
				starttag = 'span class="'+tag+'"';
				endtag = "span";
			}
		else
			{
				starttag = tag;
				endtag = tag;
			}
		if (range || pos.start != pos.end)
			{
				insertNode = '<' + starttag + '>' + range + '</' + endtag + '>';
				target.value = beforeNode + insertNode + afterNode;
			}
		else if (pos.start == pos.end)
			{
				insertNode = '<' + starttag + '>' + '</' + endtag + '>';
				target.value = beforeNode + insertNode + afterNode;
			}
	},

//-------------------------------------------------------------------------------------------------------------------------

//別窓
openWinint: function(url,width,height)
	{
		var thiswidth = "width="+width;
		var thisheight = "height="+height;
		var prm = thiswidth+","+thiswidth+",resizable="+this.w_resizable+",scrollbars="+this.w_scrollbars;
		newWin = window.open(url,this.w_name,prm);
	},

//-------------------------------------------------------------------------------------------------------------------------

//テーブルのセルに1行づつ色を付ける
colorTable: function(tableid)
	{
		//指定tableidを持つtableのtrの数を取得
		var r = document.getElementById(tableid).getElementsByTagName('tr');
		var line = 0;
		for (var i=0; i<r.length; i++)
			{
				//trに含まれるtdとthの数を取得
				var objTDList = r.item(i).getElementsByTagName("td");
				var objTHList = r.item(i).getElementsByTagName("th");
				
				if(line < 1)
					{
						//tdの着色
						for (var ii=0; ii<objTDList.length; ii++)
							{
								objTDList[ii].className = this.td2;
							}
						
						//thの着色
						for (var ii=0; ii<objTHList.length; ii++)
							{
								objTHList[ii].className = this.th2;
							}
						line++;
					}
				else
					{
						//tdの着色
						for (var ii=0; ii<objTDList.length; ii++)
							{
								objTDList[ii].className = this.td1;
							}
						
						//thの着色
						for (var ii=0; ii<objTHList.length; ii++)
							{
								objTHList[ii].className = this.th1;
							}
						line = 0;
					}
			}
	},

//-------------------------------------------------------------------------------------------------------------------------

//コピーライトの書き出し
copy: function()
		{
			mydate = new Date();
			Ye = mydate.getFullYear();
			document.write("Copyright &copy; "+this.start+" - "+Ye+" "+this.company+" All Rights Reserved. ");
		},



/*
=====================================================================
クッキーファンクション
=====================================================================
*/

//受け入れ可能か調べる
cookie_accept: function()
	{
		if (window.navigator.cookieEnabled)
			{
				return true;
			}
		else
			{
				return false;
			}
	},

//値が存在するか調べる（全データの取得兼ねる）
cookie_check: function()
	{
		if(document.cookie)
			{
				return document.cookie;
			}
		else
			{
				return false;
			}
	},

//-------------------------------------------------------------------------------------------------------------------------
/*値の取得*/

//希望のクッキー値の取得
/*
valueName -> クッキーの名前
*/
cookie_get: function(name)
	{
		if(this.cookie_check())
			{
				var d = this.cookie_check().split("; ");
				for (var i = 0; i < d.length; i++)
					{
						var tmp = d[i].split("=");
						if(tmp[0] == name)
							{
								return unescape(tmp[1]);
								break;
							}
					}
				return false;
			}
		else
			{
				return false;
			}
	},

//-------------------------------------------------------------------------------------------------------------------------
/*値のセット、削除*/

//有効期限の設定（値のセット用）
cookie_set_expires: function()
	{
		var now = new Date().getTime();
		var clear = new Date(now + (60 * 60 * 24 * 1000 * this.exp));
		var expires = clear.toGMTString();
		return expires;
	},

//有効期限の設定（値の削除用）
cookie_del_expires: function()
	{
		var old = new Date();
		var expires = old.toGMTString();
		return expires;
	},

//値をセットする
cookie_set: function(name,value)
	{
		var str = name + "=" + escape(value) + "; expires=" + this.cookie_set_expires();//名前と値、日付の基本セット
		this.cookie_setcookies(str);
	},

//値を削除する
cookie_del: function(name)
	{
		var str = name + "=" + this.cookie_get(name) + "; expires=" + this.cookie_del_expires();//名前と値、日付の基本セット
		this.cookie_setcookies(str);
	},

//値をセットする
cookie_setcookies: function(str)
	{
		//ドメイン以下すべてから読み出せるようにする場合　location.pathname
		if(this.path == 1)
			{
				str += "; path=/";
			}
		
		//SSLで暗号化にしたい場合追加する
		if (this.ssl == 1 && location.protocol == "https:")
			{
				str += "; secure";
			}
		
		document.cookie = str;//値のセット
	}



}//end of myjs



















