// 自動処理(とりあえず動くけどあとで確認)
var DisableSubmit = {
   init: function() {
      this.addEvent(window, 'load', this.set());
   },

   set: function() {
      var self = this;
      return function() {
         for (var i = 0; i < document.forms.length; ++i) {
            if(document.forms[i].onsubmit) continue;
            document.forms[i].onsubmit = function() {
               self.setDisable(this.getElementsByTagName('input'));
            };
         }
      }
   },

   setDisable: function(elms) {
      for (var i = 0, elm; elm = elms[i]; i++) {
         if ((elm.type == 'submit' || elm.type == 'image') && !elm.disabled) {
            Set(elm);
            //unSet(elm);
         }
      }

      function Set(button) {
         window.setTimeout(function() { button.disabled = true; }, 1);
      }
      function unSet(button) {
         window.setTimeout(function() { button.disabled = false; }, 100000);
      }
   },

   addEvent: function(elm, type, event) {
      if(elm.addEventListener) {
         elm.addEventListener(type, event, false);
      } else if(elm.attachEvent) {
         elm.attachEvent('on'+type, event);
      } else {
         elm['on'+type] = event;
      }
   }
}
DisableSubmit.init();

// 質問を追加
function addNextQ( id ){
	var template = '';
	template+= '<dl>';
	template+= '	<dt>質問名（管理用）</dt>';
	template+= '<dd><p><input type="text" name="q[{n}][label]"  id="q-{n}-label"  class="small" value=""></p></dd>';
	template+= '<dt><label for="q-{n}-label">表示順, 表示, 必須</label></dt>';
	template+= '	<dd>';
	template+= '		<p>';
	template+= '			<input type="text" name="q[{n}][number]" id="q-{n}-number" class="num"   value="">';
	template+= '			<select name="q[{n}][type]" onChange="if($(\'q-{n}-other\')) $(\'dt-options-{n}\').style.display = (this.value==\'text\'||this.value==\'textarea\') ? \'none\' : \'block\'; $(\'dd-options-{n}\').style.display = (this.value==\'text\'||this.value==\'textarea\') ? \'none\' : \'block\'; $(\'q-{n}-other\').disabled = ( this.value==\'radio\' || this.value==\'check\' || this.value==\'select\' ) ? false : true;">';
	template+= '				<option value="select" selected="selected">単一回答（セレクトボックス）</option>';
	template+= '				<option value="radio"   >単一回答（ラジオボタン）</option>';
	template+= '				<option value="check"   >複数回答（チェックボックス）</option>';
	template+= '				<option value="text"    >テキスト（一行）</option>';
	template+= '				<option value="textarea">テキスト（複数行）</option>';
	template+= '				<option value="none"  >表示しません（無効）</option>';
	template+= '			</select>';
	template+= '			<input type="checkbox" name="q[{n}][required]" id="q-{n}-required" value="1"><label for="q-{n}-required">必須</label>';
	template+= '		</p>';
	template+= '	</dd>';
	template+= '	<dt><label for="q-{n}-text">質問文（投稿画面）</label></dt>';
	template+= '	<dd>';
	template+= '		<p><input type="text" name="q[{n}][text]" id="q-{n}-text" class="long" value=""></p>';
	template+= '	</dd>';
	template+= '	<dt class="ftwNormal" id="dt-options-{n}">選択肢</dt>';
	template+= '	<dd id="dd-options-{n}">';
	template+= '		<ul>';
	template+= '			<li id="q-{n}-options-1"><input type="text" name="q[{n}][options][1]" class="small" value=""></li>';
	template+= '			<li id="q-{n}-options-2"><input type="text" name="q[{n}][options][2]" class="small" value=""></li>';
	template+= '		</ul>';
	template+= '		<p><input type="checkbox" name="q[{n}][other]" id="q-{n}-other" value="1"><label for="q-{n}-other">その他（テキスト入力欄付き）</label></p>';
	template+= '		<p>';
	template+= '			<input type="button" value="項目を増やす" onClick="addNext(\'q-{n}-options\')">';
	template+= '			<input type="button" value="項目を減らす" onClick="removeLast(\'q-{n}-options\')">';
	template+= '		</p>';
	template+= '	</dd>';
	template+= '</dl>';
	// ノードを追加
	for( var num = 1; document.getElementById(id+'-'+num); num++ ){
		var last_num = num;
		var next_num = num + 1;
	}
	var last_parent = document.getElementById(id+'-'+last_num);
	var next_parent = last_parent.cloneNode(true);
	next_parent.id = id + '-' + next_num;
	next_parent.innerHTML = template.replace( /\{n\}/g, next_num );
	last_parent.parentNode.appendChild(next_parent);
}
// 選択肢を追加
function addNext(id){
	// id正規表現を作成
	id_re = new RegExp(id + '-\\d+','g');
	// nameとname正規表現を作成
	ids = id.split('-');
	for(var i = 1; i < ids.length; i++){ //先頭だけ[]外す
		ids[i] = '[' + ids[i] + ']';
	}
	name = ids.join('');
	name_re = new RegExp('^' + name.replace(/(\[|\])/g,'\\$1') + '\\[\\d+\\]');
	// ノードを追加
	var start = (document.getElementById(id+'-'+0)) ? 0 : 1; //最初が0か1か
	for(var num = start; document.getElementById(id+'-'+num); num++){
		var last_num = num;
		var next_num = num + 1;
	}
	var last_parent = document.getElementById(id+'-'+last_num);
	var next_parent = last_parent.cloneNode(true);
	next_parent.id = id + '-' + next_num;
	// label,input,select,textareaを処理
	var labels    = next_parent.getElementsByTagName('label');
	var inputs    = next_parent.getElementsByTagName('input');
	var selects   = next_parent.getElementsByTagName('select');
	var textareas = next_parent.getElementsByTagName('textarea');
	var lis       = next_parent.getElementsByTagName('li');
	var dds       = next_parent.getElementsByTagName('dd');
	var ps        = next_parent.getElementsByTagName('p');
	var trs       = next_parent.getElementsByTagName('tr');
	var tds       = next_parent.getElementsByTagName('td');
	var tags = [labels,inputs,selects,textareas,lis,dds,ps,trs,tds];
	for(var i = 0; i < tags.length; i++){
		var elements = tags[i];
		for(var j = 0; j < elements.length; j++){
			if(elements[j].attributes['for'])        elements[j].parentNode.innerHTML = elements[j].parentNode.innerHTML.replace( id_re, id+'-'+next_num );
			if(elements[j].getAttribute('onChange')) elements[j].parentNode.innerHTML = elements[j].parentNode.innerHTML.replace( id_re, id+'-'+next_num );
			if(elements[j].type == 'button')         elements[j].parentNode.innerHTML = elements[j].parentNode.innerHTML.replace( id_re, id+'-'+next_num );
		}
	}
	for(var i = 0; i < tags.length; i++){
		var elements = tags[i];
		for( var j = 0; j < elements.length; j++ ){
			if(elements[j].name            ) elements[j].name = elements[j].name.replace( name_re, name+'['+next_num+']' );
			if(elements[j].id              ) elements[j].id   = elements[j].id.replace( id_re, id+'-'+next_num );
			if(elements[j].type == 'text'  ) elements[j].value = '';
			if(elements[j].type == 'hidden') elements[j].value = '';
			if(elements[j].type == 'file'  ) elements[j].value = '';
			if(elements[j].checked         ) elements[j].checked = false; //checkboxのみ
		}
	}
	last_parent.parentNode.appendChild(next_parent);
}
// 選択肢を削除
function removeLast(id){
	var start = (document.getElementById(id+'-'+0)) ? 0 : 1; //最初が0か1か
	for(var num = start; document.getElementById(id+'-'+num); num++){
		var last_num = num;
	}
	if(start < last_num){ //1個しかなければ削除しない
		var last_child = document.getElementById(id+'-'+last_num);
		var inputs = last_child.getElementsByTagName('input');
		var is_blank = true;
		for(var i = 0; i < inputs.length; i++){
			if(inputs[i].type == 'text' && inputs[i].value != ''){
				is_blank = false;
			}
		}
		if(is_blank || confirm('該当欄に文字が記入されていますが、削除してもよろしいですか？')){
			last_child.parentNode.removeChild( last_child );
		}
	}
}
// すべてチェック切り替え
function checkAll(id){
	var parent = document.getElementById(id);
	var inputs = parent.childNodes;
	var blank  = false;
	for(var i = 0; i < inputs.length; i++){
		if(inputs[i].type == 'checkbox' && inputs[i].checked == false){ //ひとつでもブランクがあれば
			blank = true;
		}
	}
	for(var i = 0; i < inputs.length; i++){
		if(inputs[i].type == 'checkbox'){
			inputs[i].checked = blank ? true : false;
		}
	}
}

// 画像のポップアップ
function imagePopup( url, width, height ){
	window.open( url, '_blank', 'width='+width+', height='+height+', menubar=no, toolbar=no, location=no, status=yes, scrollbars=no, resizable=yes');
}

// Mini Ajax - http://www.bigbold.com/snippets/posts/show/2025
function $(e){if(typeof e=='string')e=document.getElementById(e);return e};
function collect(a,f){var n=[];for(var i=0;i<a.length;i++){var v=f(a[i]);if(v!=null)n.push(v)}return n};
ajax={};
ajax.x=function(){try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(e){return new XMLHttpRequest()}}};
ajax.serialize=function(f){var g=function(n){return f.getElementsByTagName(n)};var nv=function(e){if(e.name)return encodeURIComponent(e.name)+'='+encodeURIComponent(e.value);else return ''};var i=collect(g('input'),function(i){if((i.type!='radio'&&i.type!='checkbox')||i.checked)return nv(i)});var s=collect(g('select'),nv);var t=collect(g('textarea'),nv);return i.concat(s).concat(t).join('&');};
ajax.send=function(u,f,m,a){var x=ajax.x();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4)f(x.responseText)};if(m=='POST')x.setRequestHeader('Content-type','application/x-www-form-urlencoded');x.send(a)};
ajax.get=function(url,func){ajax.send(url,func,'GET')};
ajax.gets=function(url){var x=ajax.x();x.open('GET',url,false);x.send(null);return x.responseText};
ajax.post=function(url,func,args){ajax.send(url,func,'POST',args)};
ajax.update=function(url,elm){var e=$(elm);var f=function(r){e.innerHTML=r};ajax.get(url,f)};
ajax.submit=function(url,elm,frm){var e=$(elm);var f=function(r){e.innerHTML=r};ajax.post(url,f,ajax.serialize(frm))};


//利用規約ポップアップ

function PolicyopenWin(theURL,winName) {
 PolicyWin=window.open(theURL,winName,'scrollbars=1,width=500,height=500,resizable=0,directories=0,toolbar=0,status=0,location=0');
 PolicyWin.focus();
}


//サンプルポップアップ

function CmsopenWin(theURL,winName) {
 CmsWin=window.open(theURL,winName,'scrollbars=1,width=740,height=600,resizable=0,directories=0,toolbar=0,status=0,location=0');
 CmsWin.focus();
}


// IE判定
var isIE = (document.documentElement.getAttribute("style") == document.documentElement.style);

