// ブラウザ依存解消の為のID取得関数
function get_Browser(id){
if (document.getElementById) return document.getElementById(id);
else if (document.all) return document.all[id];
else if (document.layers) return document[id];
}

// 小窓を開く
var subWin;
function popWin(url,width,height){
	subWin = window.open(url,'win','width=100,height=100,status=no,menubar=no,directories=no,location=no,toolbar=no,resizable=yes,scrollbars=no');

	subWin.resizeTo( width , height ) ;
	
	subWin.moveTo( 100 , 200 );
	subWin.focus();
}

/*
 * フォームのaction切り替え
 * buttonのonclickイベントに設置
 * @param elem : フォームのオブジェクト（this.form）
 * @param url : 送信先のurl
 */
function chgAct(elem, url){
	elem.action = url;
	elem.submit();
}

/*
 * selectmenu で年月日の連動(年)
 * get_Browser必須
 * フォーム内、selectのonchangeイベントに設置
 * @param string year : 変更基準となるフォームのID（年）
 * @param string month : 変更するフォームのID（月）
 * @param string day : 変更するフォームのID（日）
 */
function selectYear( year, month, day ) {
	// 現在時刻を取得
	myD       = new Date();
	myYear    = myD.getYear();
	myYear4   = (myYear < 2000) ? myYear+1900 : myYear;
	myMonth   = myD.getMonth() + 1;
	//myDate    = myD.getDate();

	objY = get_Browser(year);
	objM = get_Browser(month);
	
	for(i=objM.options.length;i>0;i--){
		objM.options[i] = null;
	}
	
	n = objY[objY.selectedIndex].value;
	if(n==(myYear4+1)){
		// 選択年と来年が同じだったら、終了月は当月
		var endMonth = myMonth;
	} else {
		// それ以外は12月まで
		var endMonth = 12;
	}
	if(n==myYear4){
		// 当年が選択されていたら、開始月は当月
		var srtMonth = myMonth;
	} else {
		// それ以外は1月
		var srtMonth = 1;
	}
	// プルダウンの中身をセット
	for (i=0; i<=(endMonth-srtMonth); i++){
		objM.options[i] = new Option((i+srtMonth),(i+srtMonth));
	}
	
	selectMonth(year, month, day);
}

/*
 * selectmenu で年月日の連動(月)
 * get_Browser必須
 * フォーム内、selectのonchangeイベントに設置
 * @param string year : 変更基準となるフォームのID（年）
 * @param string month : 変更するフォームのID（月）
 * @param string day : 変更するフォームのID（日）
 */
function selectMonth( year, month, day ) {
	// 現在時刻を取得
	myD       = new Date();
	myYear    = myD.getYear();
	myYear4   = (myYear < 2000) ? myYear+1900 : myYear;
	myMonth   = myD.getMonth() + 1;
	myDate    = myD.getDate();

	objY = get_Browser(year);
	objM = get_Browser(month);
	obj = get_Browser(day);
	if(objY.value % 4 == 0){
	    monthday = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
	} else {
	    monthday = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
	}
	// 初期化
	for(i=obj.options.length;i>0;i--){
		obj.options[i] = null;
	}
	n = objM[objM.selectedIndex].value;
	if(objY.value == (myYear4+1) && n == myMonth){
	//if(objY.value == myYear4 && n == myMonth){
		// 来年当月が選択されていたら、当日まで
		var endDay = myDate;
	} else {
		// それ以外は該当月の最終日まで
		var endDay = monthday[n-1];
	}
	if(objY.value == myYear4 && n == myMonth){
		// 当年当月が選択されていたら、開始日は当日
		//var srtDay = myDate;
		var srtDay = 1;	// 1日始まりにします
	} else {
		// それ以外は1日
		var srtDay = 1;
	}
	
	// プルダウンの中身をセット
	for (i=0; i<=(endDay-srtDay); i++)
	{
		obj.options[i] = new Option((i+srtDay),(i+srtDay));
	}
}

/**
 * 年月日セレクト（ニュース）
 */ 
function SelectYearNews(year, month, day){
	// 現在時刻を取得
	myD       = new Date();
	myYear    = myD.getYear();
	myYear4   = (myYear < 2000) ? myYear+1900 : myYear;
	myMonth   = myD.getMonth() + 1;

	objY = get_Browser(year);
	objM = get_Browser(month);
	
	for(i=objM.options.length;i>0;i--){
		objM.options[i] = null;
	}
	
	n = objY[objY.selectedIndex].value;
	if(n==(myYear4)){
		// 選択年と当年が同じだったら、終了月は当月
		var endMonth = myMonth;
	} else {
		// それ以外は12月まで
		var endMonth = 12;
	}
	if(n==2008){
		// 2008が選択されていたら、開始月は3月
		var srtMonth = 3;
	} else {
		// それ以外は1月
		var srtMonth = 1;
	}
	// プルダウンの中身をセット
	for (i=0; i<=(endMonth-srtMonth); i++){
		objM.options[i] = new Option((i+srtMonth),(i+srtMonth));
	}
	
	selectMonthNews(year, month, day);
}

/**
 * 年月日セレクト（ニュース）
 */ 
function selectMonthNews(year, month, day){
	// 現在時刻を取得
	myD       = new Date();
	myYear    = myD.getYear();
	myYear4   = (myYear < 2000) ? myYear+1900 : myYear;
	myMonth   = myD.getMonth() + 1;
	myDate    = myD.getDate();

	objY = get_Browser(year);
	objM = get_Browser(month);
	obj = get_Browser(day);
	if(objY.value % 4 == 0){
	    monthday = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
	} else {
	    monthday = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
	}
	// 初期化
	for(i=obj.options.length;i>0;i--){
		obj.options[i] = null;
	}
	n = objM[objM.selectedIndex].value;
	if(objY.value == myYear4 && n == myMonth){
		// 当年当月が選択されていたら、当日まで
		var endDay = myDate;
	} else {
		// それ以外は該当月の最終日まで
		var endDay = monthday[n-1];
	}
	if(objY.value == myYear4 && n == myMonth){
		// 当年当月が選択されていたら、開始日は当日
		//var srtDay = myDate;
		var srtDay = 1;	// 1日始まりにします
	} else {
		// それ以外は1日
		var srtDay = 1;
	}
	
	// プルダウンの中身をセット
	for (i=0; i<=(endDay-srtDay); i++)
	{
		obj.options[i] = new Option((i+srtDay),(i+srtDay));
	}
}

/**
 * テキストのバイト数を取得
 * @param string text 文字列
 * @return int count  文字列のバイト数
 */
function getByte(text)
{
	count = 0;
	for (i=0; i<text.length; i++)
	{
		n = escape(text.charAt(i));
		if (n.length < 4) count++; else count+=2;
	}
	return count;
}



/**
 * flash 表示用関数
 * @param array arg	uri等パラメータ
 * 'url','_width=','_height=',"_flashvars="
 */
function flash_write( arg )
{
	var parm = []
	for( i = 0 ; i < arguments.length ; i++ ){
		parm[i] = arguments[i].split(' ').join('').split('=')
		
		switch (parm[i][0]) {
			case '_swf'     : var _swf     = parm[i][1] ; break ;
			case '_quality' : var _quality = parm[i][1] ; break ;
			case '_loop'    : var _loop    = parm[i][1] ; break ;
			case '_bgcolor' : var _bgcolor = parm[i][1] ; break ;
			case '_wmode'   : var _wmode   = parm[i][1] ; break ;
			case '_play'    : var _play    = parm[i][1] ; break ;
			case '_menu'    : var _menu    = parm[i][1] ; break ;
			case '_scale'   : var _scale   = parm[i][1] ; break ;
			case '_salign'  : var _salign  = parm[i][1] ; break ;
			case '_height'  : var _height  = parm[i][1] ; break ;
			case '_width'   : var _width   = parm[i][1] ; break ;
			case '_hspace'  : var _hspace  = parm[i][1] ; break ;
			case '_vspace'  : var _vspace  = parm[i][1] ; break ;
			case '_align'   : var _align   = parm[i][1] ; break ;
			case '_class'   : var _class   = parm[i][1] ; break ;
			case '_id'      : var _id      = parm[i][1] ; break ;
			case '_name'    : var _name    = parm[i][1] ; break ;
			case '_style'   : var _style   = parm[i][1] ; break ;
			case '_declare' : var _declare = parm[i][1] ; break ;
			default        :;
		}
	}
	var htm = ""
	
	htm+="<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width='" + _width + "' height='" + _height + "'>"

	if(!!_swf)     htm+="<param  name     = 'movie'   value ='" + _swf     + "'>"
	if(!!_quality) htm+="<param  name     = 'quality' value ='" + _quality + "'>"
	if(!!_loop)    htm+="<param  name     = 'loop'    value ='" + _loop    + "'>"
	if(!!_bgcolor) htm+="<param  name     = 'bgcolor' value ='" + _bgcolor + "'>"
	if(!!_play)    htm+="<param  name     = 'play'    value ='" + _play    + "'>"
	if(!!_menu)    htm+="<param  name     = 'menu'    value ='" + _menu    + "'>"
	if(!!_scale)   htm+="<param  name     = 'scale'   value ='" + _scale   + "'>"
	if(!!_salign)  htm+="<param  name     = 'salign'  value ='" + _salign  + "'>"
	if(!!_wmode)   htm+="<param  name     = 'wmode'   value ='" + _wmode   + "'>"
	htm+=""
	htm+="<embed                          "
	htm+="        pluginspage='https://www.macromedia.com/go/getflashplayer'"
	if(!!_width)   htm+="        width    = '" + _width   + "'"
	if(!!_height)  htm+="        height   = '" + _height  + "'"
	if(!!_hspace)  htm+="        hspace   = '" + _hspace  + "'"
	if(!!_vspace)  htm+="        vspace   = '" + _vspace  + "'"
	if(!!_align)   htm+="        align    = '" + _align   + "'"
	
	if(!!_class)   htm+="        class    = '" + _class   + "'"
	if(!!_id)      htm+="        id       = '" + _id      + "'"
	if(!!_name)    htm+="        name     = '" + _name    + "'"
	if(!!_style)   htm+="        style    = '" + _style   + "'"
	htm+="        type     = 'application/x-shockwave-flash' "
	if(!!_declare) htm+="                    " + _declare  
	if(!!_swf)     htm+="        src      = '" + _swf     + "'"
	if(!!_quality) htm+="        quality  = '" + _quality + "'"
	if(!!_loop)    htm+="        loop     = '" + _loop    + "'"
	if(!!_bgcolor) htm+="        bgcolor  = '" + _bgcolor + "'"
	if(!!_play)    htm+="        play     = '" + _play    + "'"
	if(!!_menu)    htm+="        menu     = '" + _menu    + "'"
	if(!!_scale)   htm+="        scale    = '" + _scale   + "'"
	if(!!_salign)  htm+="        salign   = '" + _salign  + "'"
	htm+="></embed>"
	htm+="</object>"

	document.write(htm);
}

/* 一行フォームでエンターキーでの送信を禁止する
 * BlockEnter必須
 * htmlタグ中に<script>attachBlockEnter('formid');</script> と記載
 * formid にはフォームのidを入れる
 */
function attachBlockEnter(formid) {
	var elements = document.forms[formid].elements;
	for (var j=0; j < elements.length; j++) {
		var e = elements[j];	
		if (e.type == "text"){
			e.onkeypress=BlockEnter;
		}
	}
}
function BlockEnter(evt){
	evt = (evt) ? evt : event; 
	var charCode=(evt.charCode) ? evt.charCode : 
		((evt.which) ? evt.which : evt.keyCode);
	if ( Number(charCode) == 13 || Number(charCode) == 3) {
		return false;
	} else {
		return true;
	}
}


/**
 *javascript動的読み込み２
 * 出典元（http://sagittarius.dip.jp/~toshi/Ajax/yui.html）
 */
function load( url ) {
	try {
		xhr = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
			xhr = false;
		}
	}
	if (!xhr && typeof XMLHttpRequest!='undefined') {
		xhr = new XMLHttpRequest();
	}
	i = 0;
	var str = "";
	if (xhr) {
		if(CheckBrowser() == true){
			// IEでは onload はない
			xhr.onload = function(){
				if (xhr.readyState == 4 && xhr.status == 200) {
					str = xhr.responseText;
				}
			}
		} else {
			// FireFoxでは onreadystatechange が入ってこない
			xhr.onreadystatechange = function() {
				if (xhr.readyState == 4 && xhr.status == 200) {
					str = xhr.responseText;
				}
			}
		}
		
		//HTTPリクエストを送ったりするとこここから 
		//xhr.open('GET', url);
		xhr.open('GET', url, false);
		xhr.send(null);
	}
	return str;
}
/**
 * onlaodをサポートしているブラウザならtrue
 */
function CheckBrowser(){
	var ua = navigator.userAgent
	var safari    = ua.indexOf("Safari")!=-1
	var konqueror = ua.indexOf("Konqueror")!=-1
	var mozes     = ((a=navigator.userAgent.split("Gecko/")[1] )?a.split(" ")[0]:0) >= 20011128 
	
	if(window.opera || safari || konqueror || mozes){
		return true;
	} else {
		return false;
	}
}


var n=0,s=0,elem=null
function pos(e){
elem=e
var sel=document.selection.createRange()
var r=elem.createTextRange()
r.moveToPoint(sel.offsetLeft,sel.offsetTop)
r.moveEnd("character",sel.text.length)
s=r.text.replace(/\r/g,"").length
r.moveEnd("textedit")
n=r.text.replace(/\r/g,"").length+(elem.value.match(/(\r\n)*$/),RegExp.lastMatch.length/2)
}

function insLink() {
	var link = prompt('URL: ', 'http://');
	var startTag = '<a href="' + link + '" target="_blank">';
	var endTag   = '</a>';
	if(link != null) ins(startTag, endTag);
}

function insBold() {
	var startTag = '<span style="font-weight:bold;">';
	var endTag   = '</span>';
	ins(startTag, endTag);
}

function insRedBold() {
	var startTag = '<span style="font-weight:bold;color:#FF0000;">';
	var endTag   = '</span>';
	ins(startTag, endTag);
}

function ins(a,b){
if(!elem)return
var r=elem.createTextRange()
r.collapse()
r.moveStart("character",elem.value.replace(/\r/g,"").length-n)
r.moveEnd("character",s)
r.text=a+r.text+b
r.collapse(false)
r.select()
r.parentElement().focus()
s=0
pos(elem)

}

function CheckNewsDel(id, url){
	flag = confirm(id+" : "+"のニュースを削除します。よろしいですか？");
	if(flag){
		// 削除！
		location = url+'&id='+id;
	} else {
		// 何もしない
		return false;
	}
}

function OpenDetailWin(url){
	popWin(url,450,400);
}



function CheckExamDel(name, url){
	flag = confirm(name+"を削除します。よろしいですか？");
	if(flag){
		// 削除！
		location = url;
	} else {
		// 何もしない
		return false;
	}
}

