<?php /** * popup関係の関数 * $Id: do_select_popup.php * @author zhouz * @access public * @package manager.public_html.dynamicscripts */ // クラス・設定読み込み require_once("../manager_include.inc"); ?> // <!-- /** * doHelpPopup(); * @return */ function doHelpPopup(html_data , event) { var event = event || window.event; var width_min = 320; var width_max = 320; var height_min = 320; var height_max = 320; var win_x = document.body.clientWidth; var win_y = document.body.clientHeight; var mouse_x = event.pageX; var mouse_y = event.pageY; var selectdialogouterframe = document.getElementById('selectdialogouterframe'); if (mouse_x <= (win_x - 340) && mouse_y <= (win_y - 325)) { selectdialogouterframe.style.top = (mouse_y + 5) + "px"; selectdialogouterframe.style.left = (mouse_x + 20) + "px"; } else if (mouse_x <= (win_x - 340) && mouse_y > (win_y - 325)) { selectdialogouterframe.style.top = (mouse_y - 325) + "px"; selectdialogouterframe.style.left = (mouse_x + 20) + "px"; } else if (mouse_x > (win_x - 340) && mouse_y <= (win_y - 325)) { selectdialogouterframe.style.top = (mouse_y + 5) + "px"; selectdialogouterframe.style.left = (mouse_x - 325) + "px"; } else { selectdialogouterframe.style.top = (mouse_y - 325) + "px"; selectdialogouterframe.style.left = (mouse_x - 325) + "px"; } selectdialogouterframe.style.zIndex = "3"; selectdialogouterframe.style.visibility = "visible"; selectdialogouterframe.style.position = "absolute"; selectdialogouterframe.style.margin = "0px"; doPopup(html_data,width_min, width_max, height_min, height_max); $("#selectdialogouterframe").mouseout(function(){ $("body").click(function(){ closeSelectPopup(); }); }); } /** * doSelectPopup(); * @return */ function doSelectPopup(html_data) { var width_min = <?=POPUP_WINDOW_INFO_MIN_WIDTH ?>; var width_max = <?=POPUP_WINDOW_INFO_MAX_WIDTH ?>; var height_min = <?=POPUP_WINDOW_INFO_MIN_HEIGHT ?>; var height_max = <?=POPUP_WINDOW_INFO_MAX_HEIGHT ?>; var selectpopup = window.parent.document.getElementById('selectpopup'); selectpopup.className = "showdialog"; doPopup(html_data,width_min, width_max, height_min, height_max); } /** * setCheckboxValue * @param viewTarget * @param valueTarget * @param requestUrl */ function setCheckboxValue(viewTarget, valueTarget, requestUrl, formName) { var arr = new Array(); var checkbox = document.getElementsByName("id_array[]"); for(var i = 0;i < checkbox.length; i++){ if(checkbox[i].checked) { arr.push(checkbox[i].value); } } var id_array = arr.toString(); if (valueTarget == "category_name") { if (id_array.length > 0) { requestUrl = requestUrl + "&category_name=" + id_array; $.getJSON(requestUrl, function(json){ var view = new Array(); for (var i=0; i < json.length; i++) { view[i] = json[i]["title"]; } document.getElementsByName(viewTarget)[0].value = view.join(","); }) } else { selectClear(formName, 'category_title', 'category_name'); } } else { document.getElementById('contentFrame').contentWindow.document.getElementsByName(viewTarget)[0].value = id_array; } document.getElementById('contentFrame').contentWindow.document.getElementsByName(valueTarget)[0].value = id_array; // セットしたら閉める closeSelectPopup(); } /** * setRadioboxValue * @param viewTarget * @param valueTarget * @param requestUrl */ function setRadioboxValue(viewTarget, valueTarget, requestUrl, formName) { var radios = document.getElementsByName("radio_array[]"); var checked_value = 0; for (var i = 0; i < radios.length; i++) { var radio = radios[i]; if (radio.checked) { var checked_value = radio.value; } } if (valueTarget == "course_id") { if (checked_value != 0) { requestUrl = requestUrl + "&id=" + checked_value; $.getJSON(requestUrl, function(json){ document.getElementById('contentFrame').contentWindow.document.getElementsByName(viewTarget)[0].value = json[0]["title"]; }) } else { selectClear(formName, 'course_name', 'course_id'); } } else { document.getElementById('contentFrame').contentWindow.document.getElementById('contentFrame').contentWindow.document.getElementsByName(viewTarget)[0].value = checked_value; } document.getElementById('contentFrame').contentWindow.document.getElementsByName(valueTarget)[0].value = checked_value; // セットしたら閉める closeSelectPopup(); } /** * 選んだ候補をセットします。 * @param formName * @param viewTarget * @param valueTarget * @param viewValue * @param valueValue */ function setSelectValue(obj, formName, viewTarget, valueTarget, viewValue, valueValue) { // TODO 存在チェック var targetForm = document.getElementsByName(formName)[0]; //alert("DEBUG:" + " " + viewTarget + " " + valueTarget + " " + viewValue + " " + valueValue); // 複数 // if (targetForm.elements[viewTarget].value != "") { // targetForm.elements[viewTarget].value += "," + viewValue; // } else { // targetForm.elements[viewTarget].value = viewValue; // } // if (targetForm.elements[valueTarget].value != "") { // targetForm.elements[valueTarget].value += "," + valueValue; // } else { // targetForm.elements[valueTarget].value = valueValue; // } // 一つだけ targetForm.elements[viewTarget].value = viewValue; targetForm.elements[valueTarget].value = valueValue; obj.disabled = true; // セットしたら閉める closeSelectPopup(); } /** * ポップアップを閉めます。 * @return */ function closeSelectPopup() { var selectpopup = document.getElementById('selectpopup'); selectpopup.className = "hiddendialog"; var innerframe = document.getElementById('innerframe'); innerframe.innerHTML = ""; var selectdialogouterframe = document.getElementById('selectdialogouterframe'); selectdialogouterframe.style.zIndex = "0"; selectdialogouterframe.style.visibility = "hidden"; selectdialogouterframe.style.position = "relative"; selectdialogouterframe.style.marginTop = "40px"; selectdialogouterframe.style.marginLeft = "auto"; selectdialogouterframe.style.marginRight = "auto"; $("body").unbind("click"); } /** * 選択クリア。 * @return */ function selectClear(formName,name1,name2) { var targetForm = document.getElementsByName(formName)[0]; targetForm.elements[name1].value = ""; if (name2 != "") { targetForm.elements[name2].value = ""; } } /** * 選択クリア。 * @return */ function in_array(val, arr) { for (key in arr) { if (arr[key] == val) { return true; } } return false; } // -->