/**
 * チェックボックスのON/OFFをする。
 *
 * @param   string	フォーム名
 * @param   string	チェックボックス名
 * @param   boolean	ON/OFF
 *
 * @return  boolean
 */
function setCheckboxes(formName, checkboxName, flag) {

	if (typeof(document.forms[formName]) == 'undefined') {
		alert('フォーム名 = "'+formName+'"が不正です。');
		return false;
	}

	if (typeof(document.forms[formName].elements[checkboxName]) == 'undefined') {
		alert('チェックボックス名 = "'+checkboxName+'"が不正です。');
		return false;
	}

	var checkboxes = document.forms[formName].elements[checkboxName];
    var checkboxesCount  = (typeof(checkboxes.length) != 'undefined')?checkboxes.length:0;
    if (checkboxesCount) {
        for (var i = 0; i < checkboxesCount; i++) {
            checkboxes[i].checked = flag;
        }
    } else {
        checkboxes.checked = flag;
    }
/*
	alert('チェックボックス数 = "'+checkboxesCount+'"');
	var msg = '';
    for (var i = 0; i < checkboxesCount; i++) {
        msg += 'type = "'+checkboxes[i].type+'"';
        msg += ' name = "'+checkboxes[i].name+'"';
        msg += ' value = "'+checkboxes[i].value+'"';
        msg += ' on/off = "'+checkboxes[i].checked+'"';
        msg += '\n';
    }
	alert(msg);
*/
    return true;
}

/**
 * PDFファイルを作成する。
 *
 * @param   string	フォーム名
 * @param   string	チェックボックス名
 * @param   int		動作モード{1:発注書/2:納品書}
 * @param   string	URL
 *
 * @return  boolean
 */
function createPdf(formName, checkboxName, mode, baseUrl) {

	if (typeof(document.forms[formName]) == 'undefined') {
		alert('フォーム名 = "'+formName+'"が不正です。');
		return false;
	}

	if (typeof(document.forms[formName].elements[checkboxName]) == 'undefined') {
		alert('チェックボックス名 = "'+checkboxName+'"が不正です。');
		return false;
	}

	if (mode != 1 && mode != 2) {
		alert('動作モード{1:発注書/2:納品書} = "'+mode+'"が不正です。');
		return false;
	}

	if (baseUrl == '') {
		alert('URL = "'+baseUrl+'"が不正です。');
		return false;
	}

	var checkboxes = document.forms[formName].elements[checkboxName];
    var checkboxesCount  = (typeof(checkboxes.length) != 'undefined')?checkboxes.length:0;

    var order_id = '';
    if (checkboxesCount) {
        for (var i = 0; i < checkboxesCount; i++) {
        	if (checkboxes[i].checked == true) {
	        	if (order_id != '') order_id += ',';
	            order_id += checkboxes[i].value;
        	}
        }
    } else {
    	if (checkboxes.checked == true) {
	        order_id += checkboxes.value;
    	}
    }

	if (order_id == '') {
		return false;
	}

	var url = '';;
	url += baseUrl;
	url += '?mode='+mode;
	url += '&order_id='+order_id;

//	alert('url = "'+url+'"');

	window.open(url, '_blank', 'directories=no, location=no, menubar=no, resizable=yes, status=no, toolbar=no');

    return true;
}


/**
 * CSVファイルを作成する。
 *
 * @param   string	フォーム名
 * @param   string	チェックボックス名
 * @param   string	URL
 *
 * @return  boolean
 */
function createCsv(formName, checkboxName, baseUrl) {

	if (typeof(document.forms[formName]) == 'undefined') {
		alert('フォーム名 = "'+formName+'"が不正です。');
		return false;
	}

	if (typeof(document.forms[formName].elements[checkboxName]) == 'undefined') {
		alert('チェックボックス名 = "'+checkboxName+'"が不正です。');
		return false;
	}


	if (baseUrl == '') {
		alert('URL = "'+baseUrl+'"が不正です。');
		return false;
	}

	var checkboxes = document.forms[formName].elements[checkboxName];
    var checkboxesCount  = (typeof(checkboxes.length) != 'undefined')?checkboxes.length:0;

    var order_id = '';
    if (checkboxesCount) {
        for (var i = 0; i < checkboxesCount; i++) {
        	if (checkboxes[i].checked == true) {
	        	if (order_id != '') order_id += ',';
	            order_id += checkboxes[i].value;
        	}
        }
    } else {
    	if (checkboxes.checked == true) {
	        order_id += checkboxes.value;
    	}
    }

	if (order_id == '') {
		return false;
	}

	var url = '';
	url += baseUrl;
	url += '?order_id='+order_id;

//	alert('url = "'+url+'"');

	win = window.open(url, '_blank', 'directories=no, location=no, menubar=no, resizable=yes, status=no, toolbar=no');

//alert('win = "'+win+'"');
//win.close();
    return true;
}


/**
 * グラフを作成する。
 *
 * @param   int		動作モード{1:売上/2:粗利益/3:数量}
 * @param   string	URL
 * @param   string	パラメーター
 *
 * @return  boolean
 */
function createGraph(mode, baseUrl, param) {

	if (baseUrl == '') {
		alert('URL = "'+baseUrl+'"が不正です。');
		return false;
	}

	var url = '';;
	url += baseUrl;
	url += '?';
	url += 'mode='+mode;
	url += '&';
	url += param;

//	alert('url = "'+url+'"');

	window.open(url, '_blank', 'directories=no, location=no, menubar=no, resizable=yes, scrollbars=yes, status=no, toolbar=no');

    return true;
}


/**
 * チェックボックスのON/OFFチェックする。
 *
 * @param   string	フォーム名
 * @param   string	チェックボックス名
 * @param   string	メッセージ
 * @param   boolean	メッセージを表示する方のフラグ(true/false)
 *
 * @return  boolean
 */
function isChecked(formName, checkboxName, msg, flag) {

	if (typeof(document.forms[formName]) == 'undefined') {
		alert('フォーム名 = "'+formName+'"が不正です。');
		return false;
	}

	if (typeof(document.forms[formName].elements[checkboxName]) == 'undefined') {
		alert('チェックボックス名 = "'+checkboxName+'"が不正です。');
		return false;
	}

	if (document.forms[formName].elements[checkboxName].checked == flag) {
		alert(msg);
		return false;
	} else {
		return true;
	}
}


/**
 * チェックボックスのON/OFFチェックする。
 *
 * @param   string	フォーム名
 * @param   string	チェックボックス名
 * @param   string	メッセージ
 * @param   boolean	メッセージを表示する方のフラグ(true/false)
 *
 * @return  boolean
 */
function isChecked4Array(formName, checkboxName, msg, flag) {

	if (typeof(document.forms[formName]) == 'undefined') {
		alert('フォーム名 = "'+formName+'"が不正です。');
		return false;
	}

	if (typeof(document.forms[formName].elements[checkboxName]) == 'undefined') {
		alert('チェックボックス名 = "'+checkboxName+'"が不正です。');
		return false;
	}


	var checkboxes = document.forms[formName].elements[checkboxName];
    var checkboxesCount  = (typeof(checkboxes.length) != 'undefined')?checkboxes.length:0;
    var isChecked = false;
    if (checkboxesCount) {
        for (var i = 0; i < checkboxesCount; i++) {
            if (checkboxes[i].checked == flag) {
				isChecked = true;
            } else {
				isChecked = false;
				break;
            }
        }
    } else {
        if (checkboxes.checked  == flag) {
			isChecked = true;
        }
    }


	if (isChecked) {
		alert(msg);
		return false;
	} else {
		return true;
	}
}

/**
 * 選択項目が選択されているかチェックする。
 *
 * @param   string	フォーム名
 * @param   string	選択項目名
 * @param   string	メッセージ
 * @param   string	未選択時の値
 *
 * @return  boolean
 */
function isSelected(formName, selectName, msg, value) {

	if (typeof(document.forms[formName]) == 'undefined') {
		alert('フォーム名 = "'+formName+'"が不正です。');
		return false;
	}

	if (typeof(document.forms[formName].elements[selectName]) == 'undefined') {
		alert('選択項目名 = "'+checkboxName+'"が不正です。');
		return false;
	}

	if (document.forms[formName].elements[selectName].value == value) {
		alert(msg);
		return false;
	} else {
		return true;
	}
}


/**
 * 日付(年月日)に当日日付をセットする。
 *
 * @param   string	フォーム名
 * @param   string	年
 * @param   string	月
 * @param   string	日
 *
 * @return  boolean
 */
function setDate(formName, yearName, monthName, dayName) {

	if (typeof(document.forms[formName]) == 'undefined') {
		alert('フォーム名 = "'+formName+'"が不正です。');
		return false;
	}

	if (typeof(document.forms[formName].elements[yearName]) == 'undefined') {
		alert('年 = "'+yearName+'"が不正です。');
		return false;
	}

	if (typeof(document.forms[formName].elements[monthName]) == 'undefined') {
		alert('月 = "'+monthName+'"が不正です。');
		return false;
	}

	if (typeof(document.forms[formName].elements[dayName]) == 'undefined') {
		alert('日 = "'+dayName+'"が不正です。');
		return false;
	}

	//日付
	var data = new Date();

	document.forms[formName].elements[yearName].value = data.getFullYear();
	document.forms[formName].elements[monthName].value = data.getMonth() + 1;
	document.forms[formName].elements[dayName].value = data.getDate();

	return true;
}


/**
 * 日付(年月日)リセットする。
 *
 * @param   string	フォーム名
 * @param   string	年
 * @param   string	月
 * @param   string	日
 *
 * @return  boolean
 */
function resetDate(formName, yearName, monthName, dayName) {

	if (typeof(document.forms[formName]) == 'undefined') {
		alert('フォーム名 = "'+formName+'"が不正です。');
		return false;
	}

	if (typeof(document.forms[formName].elements[yearName]) == 'undefined') {
		alert('年 = "'+yearName+'"が不正です。');
		return false;
	}

	if (typeof(document.forms[formName].elements[monthName]) == 'undefined') {
		alert('月 = "'+monthName+'"が不正です。');
		return false;
	}

	if (typeof(document.forms[formName].elements[dayName]) == 'undefined') {
		alert('日 = "'+dayName+'"が不正です。');
		return false;
	}

	document.forms[formName].elements[yearName].value = null;
	document.forms[formName].elements[monthName].value = null;
	document.forms[formName].elements[dayName].value = null;

	return true;
}


/**
 * ユーザーCSVファイルを作成する。
 *
 * @param   string	フォーム名
 * @param   string	URL
 *
 * @return  boolean
 */
function createUserCsv(formName, baseUrl) {

	if (typeof(document.forms[formName]) == 'undefined') {
		alert('フォーム名 = "'+formName+'"が不正です。');
		return false;
	}


	if (baseUrl == '') {
		alert('URL = "'+baseUrl+'"が不正です。');
		return false;
	}

	var form = document.forms[formName];
//	alert('form.elements.length = "'+form.elements.length+'"');

	var urlBuf = '';
	var test = '';

	for (var i = 0; i < form.elements.length; i++) {
		if (form.elements[i].type == 'checkbox') {
			if (!form.elements[i].checked) continue;
		}

		if (urlBuf != '') urlBuf += "&";
		urlBuf += form.elements[i].name+"="+form.elements[i].value+"";

		if (test != '') test += "&";
		test += form.elements[i].name+"="+form.elements[i].value+" (type='"+form.elements[i].type+"')\n";
	}

//alert(test);

	var url = '';
	url += baseUrl;
	url += '?'+urlBuf;

//	alert('url = "'+url+'"');

	win = window.open(url, '_blank', 'directories=no, location=no, menubar=no, resizable=yes, status=no, toolbar=no');

    return true;
}

