// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults




// 複数チェック用
// Version 1.0  2008/09/07
// 一括チェックボタンのチェックボックスには、check_allを
// 個々のチェックボタンには、check_all_backを、それぞれonclick属性でつける。
// 次のように使います。
// 一括ボタン
// <input type="checkbox" name="checkAll" onclick="check_all( this.form.elements['check_ids[]'] , this.form.checkAll.checked );" /> すべてにチェック 
// 個々のボタン
// <%= check_box_tag "check_ids[]" , fellow.id , @selected_fellow_ids.include?( fellow.id.to_s ) ,
// :onclick=>"check_all_back(this.form.elements['check_ids[]'],this,this.form.check_all);" %>
// ページロード時にも、すべてチェックしている場合があるときは、一括ボタンもチェックされているように
// EventObserve(window,"load",function () { 
// check_all_back_sub(document.forms['form'].elements['check_ids[]'], document.forms['form'].elements['check_all']);
//  } );
// のような工夫が必要。


function check_all(els,sw) {
	if (els) {
		if (els.length) { // 配列の場合
			for (var i=0;i<els.length;i++) {
				els[i].checked = sw;
			}
		} else {
			els.checked = sw;
		}
	}
}

function check_all_back(els,this_checkbox,checkbox_all) {
	if (this_checkbox.checked) {
		check_all_back_sub(els,checkbox_all);
	} else {
		checkbox_all.checked = false;
	}
}

function check_all_back_sub(els,checkbox_all) {
	if (els) {
		if (els.length) {
			var sw = true;
			for (var i = 0; i < els.length; i++) {
				if (!els[i].checked) {
					sw = false;
				}
			}
			checkbox_all.checked = sw;
		}
		else {
			checkbox_all.checked = els.checked;
		}
	}
}


// チェックされているvalueを全て取得

function getCheckedBox(els) {
	var ids=new Array();
	if (els) {
		if (els.length) {
			for (var i = 0; i < els.length; i++) {
				if (els[i].checked == true) {
					ids.push(els[i].value);
				}
			}
		} else {
			if (els.checked == true) {
				ids.push(els.value);
			}
		}
	}
	return ids.join(",");
}

// すべてのチェックを削除
function deleteAllChecks(els) {
	var ids=new Array();
	if (els) {
		if (els.length) {
			for (var i = 0; i < els.length; i++) {
				els[i].checked = false;
			}
		} else {
			els.checked = false;
		}
	}
}

// マウス位置にサブウィンドウを開く

// http://allabout.co.jp/internet/javascript/closeup/CU20020828/index.htm
 function openPopup(e,url,targetName,offsetx,offsety,width,height){

    //マウスの現在位置
    var mouseXonScreen = null
    var mouseYonScreen = null
  
    //マウスの現在位置取得
    if(document.all){    
                           
       //e4,e5,e6
       mouseXonScreen = window.event.screenX 
       mouseYonScreen = window.event.screenY

    } else if(document.layers || document.getElementById ){

       //n4,n6,n7,m1,o6
       mouseXonScreen = e.screenX
       mouseYonScreen = e.screenY

    }

    //マウスの現在位置から何ピクセル離すかをセット
    var setx = mouseXonScreen + offsetx
    var sety = mouseYonScreen + offsety

    //サブウインドウを開く
    //(引数以外のパラメータも下記でセットできます)
    var para =""
             +" left="        +setx
             +",screenX="     +setx
             +",top="         +sety
             +",screenY="     +sety
             +",toolbar="     +0
             +",location="    +0
             +",directories=" +0
             +",status="      +0
             +",menubar="     +0
             +",scrollbars="  +0
             +",resizable="   +1
             +",innerWidth="  +width
             +",innerHeight=" +height
             +",width="       +width
             +",height="      +height

      helpwin=window.open(url,targetName,para)
      helpwin.focus()
  }



// 自動で、マウス位置近くにサブウィンドウを開く
// 画面左側だと右側へ、右側だと左側へ
// 画面上側だと下側へ、下側だと上側へ

// http://allabout.co.jp/internet/javascript/closeup/CU20020828/index.htm
 function openPopupAuto(e,url,offsetx0,offsety0,targetName,width,height){

	var sw = screen.width;
	var sh = screen.height;
	
    //マウスの現在位置
    var mouseXonScreen = null
    var mouseYonScreen = null
  
    //マウスの現在位置取得
    if(document.all){    
                           
       //e4,e5,e6
       mouseXonScreen = window.event.screenX 
       mouseYonScreen = window.event.screenY

    } else if(document.layers || document.getElementById ){

       //n4,n6,n7,m1,o6
       mouseXonScreen = e.screenX
       mouseYonScreen = e.screenY

    }

	var offsetx = offsetx0;
	var offsety = offsety0;
	if (mouseXonScreen > sw/2) {
		offsetx = -offsetx0 - width;
	}
	if (mouseYonScreen > sh/2) {
		offsety = -offsety0 - height;
	}

    //マウスの現在位置から何ピクセル離すかをセット
    var setx = mouseXonScreen + offsetx
    var sety = mouseYonScreen + offsety

	//	alert( offsetx + ":" + setx + ":" + offsety + ":" + sety );
    //サブウインドウを開く
    //(引数以外のパラメータも下記でセットできます)
    var para =""
             +" left="        +setx
             +",screenX="     +setx
             +",top="         +sety
             +",screenY="     +sety
             +",toolbar="     +0
             +",location="    +0
             +",directories=" +0
             +",status="      +0
             +",menubar="     +0
             +",scrollbars="  +0
             +",resizable="   +1
             +",innerWidth="  +width
             +",innerHeight=" +height
             +",width="       +width
             +",height="      +height

      helpwin=window.open(url,targetName,para)
      helpwin.focus()
  }


// 位置は指定せずにサブウィンドウを開く
 function openPopupNoPos(e,url,targetName,width,height){

    //マウスの現在位置
    var mouseXonScreen = null
    var mouseYonScreen = null
  
    //マウスの現在位置取得
    if(document.all){    
                           
       //e4,e5,e6
       mouseXonScreen = window.event.screenX 
       mouseYonScreen = window.event.screenY

    } else if(document.layers || document.getElementById ){

       //n4,n6,n7,m1,o6
       mouseXonScreen = e.screenX
       mouseYonScreen = e.screenY

    }

    //マウスの現在位置から何ピクセル離すかをセット
//    var setx = mouseXonScreen + offsetx
//    var sety = mouseYonScreen + offsety

    //サブウインドウを開く
    //(引数以外のパラメータも下記でセットできます)
    var para =""
             +",toolbar="     +0
             +",location="    +0
             +",directories=" +0
             +",status="      +0
             +",menubar="     +0
             +",scrollbars="  +0
             +",resizable="   +1
             +",innerWidth="  +width
             +",innerHeight=" +height
             +",width="       +width
             +",height="      +height

      helpwin=window.open(url,targetName,para)
      helpwin.focus()
  }

