// 多重クリック防止
var time_out = true;
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++) {
			// ファイルパスチェック（IEのみ）
			if (elm.type == 'file' && navigator.appName.indexOf("Microsoft") > -1) {
				var file_path = elm.value;
				if( file_path.match(/^[a-zA-Z]:\\.+/) == null) {
					return;
				}
			}

			// previewボタンが存在する場合は非活性化しない
			if (elm.name == 'preview') {
				return;
			}
		}

		// ボタンの活性・非活性 ＆ タイムアウト設定
		for (var i = 0, elm; elm = elms[i]; i++) {
			if ((elm.type == 'submit' || elm.type == 'image') && !elm.disabled) {
	           Set(elm, true, 1);
	           if (time_out == true) {
                 // タイムアウトセット
                 Set(elm, false, 1000);
	           }
			}
		}

		function Set(button, bln, time) {
			setTimeout(function() { button.disabled = bln; }, time);
		}
	},

	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();


// DisableSubmit タイムアウトセット
function setTimeOut(flg) {
  time_out = flg;
}


// value値のクリア
function clearValue(pNodeID) {
  var pNode = document.getElementById(pNodeID);

  // inputタグ
  var elms_i = pNode.getElementsByTagName('input');
  for( i = 0; i < elms_i.length; i++){
    var elm_ipt = elms_i[i];
    switch (elm_ipt.type){	
      case "text":
        elm_ipt.value = "";
      case "radio":
        elm_ipt.checked = "";
    }
  }
  
  // selectタグ
  var elms_s = pNode.getElementsByTagName('select');
  for( i = 0; i < elms_s.length; i++){
    elms_s[i].selectedIndex = 0
  }
}

/* 
 * 再生回数更新処理
 * 
 */
function countUpPlayback(movie_id){
	// 呼び出しアドレス
	var url = '/movie/countUpPlayback';
	
	// 呼び出し
	var myAjax = new Ajax.Request(
		url,
		{
			method : 'post',
			parameters : "movie_id=" + movie_id 
		});
}

/* 
 * 別ウィンドウ表示＋POST送信
 *
 *   frm    … form名
 *   action … 遷移先URL
 *   size_w … ウインドウサイズ幅
 *   size_h … ウインドウサイズ高さ
 */
function submit_popup(frm, action, size_w, size_h) {
  // 引数セット
  switch (arguments.length) {
    case 2:
      size_w = 0;
      size_h = 0;
      break;
    case 3:
      size_h = 0;
      break;
  }

  // オプション設定
  var option = 'scrollbars=yes, resizable=yes'
  if (size_w != 0) {
    option += ', width=' + size_w
  }
  if (size_h != 0) {
    option += ', height=' + size_h
  }
  
  var frmMain = document.getElementById(frm);
  frmMain.target = frmMain.name;
  frmMain.method = "post";
  frmMain.action = action;
  
  newWin = window.open(action, frmMain.name, option);
  newWin.focus();
  return false;
}


/* 
 * POST送信
 *
 *   frm    … form名
 *   action … 遷移先URL
 */
function submit_self(frm, action) {
  var frmMain = document.getElementById(frm);
  frmMain.target = "_self";
  frmMain.method = "post";
  frmMain.action = action;
}


/* 
 * 別ウィンドウ表示
 *
 *   action … 遷移先URL
 *   size_w … ウインドウサイズ幅
 *   size_h … ウインドウサイズ高さ
 *   win_name … ウィンドウ名
 */
function winOpen(action, size_w, size_h, win_name) {
  // 引数セット
  switch (arguments.length) {
    case 1:
      size_w = 0;
      size_h = 0;
      win_name = "new";
      break;
    case 2:
      size_h = 0;
      win_name = "new";
      break;
    case 3:
      win_name = "new";
      break;
  }
  
  // オプション設定
  var option = 'scrollbars=yes, resizable=yes'
  if (size_w != 0) {
    option += ', width=' + size_w
  }
  if (size_h != 0) {
    option += ', height=' + size_h
  }

  newWin = window.open(action, win_name, option);
  newWin.focus();
}


/* 
 * 他サイトへのURLリンク 別ウィンドウ表示
 *
 *   action … 遷移先URL
 *   win_name … ウィンドウ名
 */
function urlOpen(action, win_name) {
  // 引数セット
  switch (arguments.length) {
    case 1:
      win_name = "new";
  }

  // オプション設定
  var option = 'resizable=yes, scrollbars=yes, width=800, height=600, menubar=yes,location=yes,directories=yes,toolbar=yes'
  
  newWin = window.open(action, win_name, option);
  newWin.focus();
}
