/* based on: prototype.js v1.4.0 (at least) */

////////////////////////////////////////////////////////////////////
function addListener(elem, eventType, func, cap){
	if(typeof(elem)!='Object') elem = $(elem);
	elem = $(elem);
	if(elem.addEventListener){
		elem.addEventListener(eventType, func, cap);
	}else if(elem.attachEvent){
		elem.attachEvent('on'+eventType, func);
	}else{
		alert("申し訳ありません. ご利用のブラウザーはサポート対象外です.");
		return false;
	}
}
////////////////////////////////////////////////////////////////////
function multiple_select_up(id){
	_so = document.getElementById(id);
	_st = [];
	for(_i=0;_i<_so.length;_i++){
		if(_so[_i].selected)_st.push(_i);
	}
	for(_i=0;_i<_st.length;_i++){
		_n   = _st[_i];
		if(_n=='0' || _so[_n-1].selected) continue;
		_tmptxt = _so[_n].text;
		_tmpval = _so[_n].value;
		_so[_n].text    = _so[_n-1].text;
		_so[_n].value   = _so[_n-1].value;
		_so[_n-1].text  =_tmptxt;
		_so[_n-1].value =_tmpval;
		_so[_n].selected   = false;
		_so[_n-1].selected = true;
		updateListener = true;
	}
}
////////////////////////////////////////////////////////////////////
function multiple_select_dw(id){
	_so = document.getElementById(id);
	_st = [];
	for(_i=0;_i<_so.length;_i++){
		if(_so[_i].selected)_st.push(_i);
	}
	_st.reverse();
	for(_i=0;_i<_st.length;_i++){
		_n   = _st[_i];
		if(_n==_so.length-1 || _so[_n+1].selected) continue;
		_tmptxt = _so[_n].text;
		_tmpval = _so[_n].value;
		_so[_n].text    = _so[_n+1].text;
		_so[_n].value   = _so[_n+1].value;
		_so[_n+1].text  = _tmptxt;
		_so[_n+1].value = _tmpval;
		_so[_n].selected   = false;
		_so[_n+1].selected = true;
		_so.changed    = true;
		updateListener = true;
	}
}
////////////////////////////////////////////////////////////////////
function multiple_select_updater(_id, _mode){
	_so = document.getElementById(_id);
	_buff = "";
	for(_i=0;_i<_so.length;_i++){
		_buff = _buff + _so[_i].value + "/";
	}
	if(_mode=='rank2') alert(_buff);
	_url = "cmd.php?mode=" + _mode + "&list=" + _buff;
	new Ajax.Request(_url,{
		method: "get", 
		onComplete:function(){
			for(i=0;i<_so.length;i++){_so[i].selected = false;}
			alert("保存しました");
		}
	});
}
////////////////////////////////////////////////////////////////////
function gsort_updater(_form){
	_url = 'gsort.php?' + Form.serialize(_form) + "&cache="+(new Date()).getTime();
	new Ajax.Request(_url,{
		asynchronous: true,
		method: "get",
		onSuccess :function(_obj){
			if(_obj.responseText==1){
				alert("保存しました");
			}else{
				alert("保存できませんでした");
			}
		}
	});
}
////////////////////////////////////////////////////////////////////
function gsort_updater2(_form){
	_url = 'gsort2.php?' + "cache="+(new Date()).getTime();
	new Ajax.Request(_url,{
		asynchronous: true,
		method: "post",
		postBody: Form.serialize(_form), 
		onSuccess :function(_obj){
			if(_obj.responseText==1){
				alert("保存しました");
			}else{
				alert("保存できませんでした");
			}
		}
	});
}
////////////////////////////////////////////////////////////////////
// 監視関数 
function bc(){
	for(_i=0;_i<watch_ids.length;_i++){
		_flag = Field.present(watch_ids[_i]);
		$(watch_ids[_i]).style.backgroundColor = (!_flag)? "#ffffb0":"";
	}
}
////////////////////////////////////////////////////////////////////
// 投稿 
function fsubmit(obj){
	var _blank = 0;
	for(_i=0;_i<watch_ids.length;_i++){
		_flag = Field.present(watch_ids[_i]);
		if(!_flag) _blank++;
	}
	if(_blank>0){
		alert("必須項目が入力されていません");
		for(i=0;i<watch_ids.length;i++){
			if(!Field.present(watch_ids[i])){
				Field.activate(watch_ids[i]);
				break;
			}
		}
		return false;
	}else{
		if(confirm('データを保存します')){
			document.forms[0].submit();
		}
	}
}
////////////////////////////////////////////////////////////////////
// 画像削除 
function dsubmit(){
	if(confirm('画像データも含め全て削除されます')){
		location.replace("g.edit.php?mode=gal.delete&gid=" + $('delete_gid').value );
	}
	return false;
}
////////////////////////////////////////////////////////////////////
// 監視関数
function loop(){
	setInterval("bc()", 100);
}
////////////////////////////////////////////////////////////////////
// ページ初期化
function pageInit(_page){
	switch(_page){
		case "gal.add":
			addListener(window,     'load',  loop,     false);
			addListener('submitbtn','click', fsubmit,  false);
			break;
			
		case "gal.edit":
			addListener(window,      'load',  loop,    false);
			addListener('submitbtn', 'click', fsubmit, false);
			addListener('delbtn',    'click', dsubmit, false);
			break;

		case "exbbs":
			Try.these(
				function(){Field.activate('from'); },
				function(){Field.activate('title');},
				function(){Field.activate('body'); }
			);
			addListener(window,      'load',  loop,    false);
			addListener('submitbtn', 'click', fsubmit, false);
			break;
			
		case "bbs":
			Try.these(
				function(){Field.activate('from');    },
				function(){Field.activate('bbstitle');},
				function(){Field.activate('bbsbody'); },
				function(){Field.activate('bbsbody2');}
			);
			addListener(window,      'load',  loop,    false);
			addListener('submitbtn', 'click', fsubmit, false);
			break;
			
		case "mov":
			Try.these(
				function(){Field.activate('from');    },
				function(){Field.activate('movtitle');},
				function(){Field.activate('movbody'); },
				function(){Field.activate('movbody2');}
			);
			addListener(window,      'load',  loop,    false);
			addListener('submitbtn', 'click', fsubmit, false);
			break;
			
		case "gal.conf":
			var updateListener = false;
			break;
			
		case "plist":
			Try.these(
				function(){Field.activate('plisttitle');},
				function(){Field.activate('plistbody'); }
			);
			addListener(window,      'load',  loop,    false);
			addListener('submitbtn', 'click', fsubmit, false);
			break;

		case "boxlist":
			Try.these(
				function(){Field.activate('txt1');},
				function(){Field.activate('txt2');}
			);
			addListener(window,      'load',  loop,    false);
			addListener('submitbtn', 'click', fsubmit, false);
			break;
			
		case "ban_edit":
			addListener(window,       'load', loop,    false);
			addListener('submitbtn', 'click', fsubmit, false);
			break;
			
	}
}
////////////////////////////////////////////////////////////////////
function switcher(_appid, _id, _colname){
	var _url = "switch.php?app=" + _appid + "&id=" + _id + "&col=" + _colname + "&cache=" + (new Date).getMilliseconds();
	new Ajax.Request(_url,{
		method: "get", 
		onComplete:function(_obj){
			switch(_colname){
			case "flg1":if(_obj.responseText=='1'){$("new_"+_id).src='img/new1.gif';}else{$("new_"+_id).src='img/new2.gif';}break;
			case "flg2":if(_obj.responseText=='1'){$("up_" +_id).src='img/up1.gif'; }else{$("up_"+_id).src ='img/up2.gif' ;}break;
			}
		}
	});
}
////////////////////////////////////////////////////////////////////
function confirm_go(_msg, _url){
	if(_msg!='' && !confirm(_msg)) return false;
	location.href = _url;
	return true;
}
////////////////////////////////////////////////////////////////////
function ajaxpage(_appid, _tpl, _page, _num){
	_o = new Date();
	_cache = _o.getFullYear() + "/" + (_o.getMonth()+1) + "/" + _o.getDate() + "/" + _o.getHours() + ":" + _o.getMinutes() ;
	_url = _tpl+"?id="+_appid+"&tpl="+_tpl+"&page="+_page+"&num="+_num+"&cache="+_cache;
	$(_appid).innerHTML = "<img src='/images/loading.gif' alt='loading...' style='margin:25px;'>";
	new Ajax.Request(_url,{
		asynchronous: true,
		method: "get",
		onSuccess :function(_obj){
			$(_appid).innerHTML = _obj.responseText;
		}
	});
}
////////////////////////////////////////////////////////////////////
function simpleTemplate(template, paramObj){ /*(c)wingproject*/
	var result = template;
	for(var paramName in paramObj){
		value  = paramObj[paramName];
		reg    = new RegExp("#" + paramName + "#", "g");
		result = result.replace(reg, value);
	}
	return result;
}
////////////////////////////////////////////////////////////////////
function playSearch(){
	_url = "search.php";
	new Ajax.Request(_url,{
		asynchronous: true,
		method      : "post",
		postBody    : Form.serialize('pForm') + "&cache="+(new Date()).getTime(),
		onSuccess :function(_obj){
			$('gal_search_result').innerHTML = _obj.responseText;
		},
		onLoading :function(_obj){
			$('gal_search_result').innerHTML = "<img src='/images/searching.gif' align='absmiddle'> <span style='color:#98886e'>検索中....</span>";
		}
	});
}
////////////////////////////////////////////////////////////////////
function OnOff(_c1,_c2){
	if($(_c1).style.display=='none')  $(_c1).style.display = 'block';
	if($(_c2).style.display=='block') $(_c2).style.display = 'none';
}
////////////////////////////////////////////////////////////////////
