/************************************************
  
    Site Name: 
	Description: common script
	Version: 
	Author: 
	Last Modified :

************************************************/

/**
 * @name      SendForm
 * @abstract  リンク先を変えてサブミット
 * @param     Object  フォームオブジェクト
 * @param     string  リンク先
 * @since     2008/09/26
 * @author    sou asada
 */
function SendForm(FormName, Url) {
    FormName.action = Url;

    FormName.submit();

    return ;
}

/**
 * @name      ForceDateSetDay
 * @abstract  プルダウンボックスの日付設定
 * @param     Object  年フォーム
 * @param     Object  月フォーム
 * @param     Object  日フォーム
 * @since     2008/09/29
 * @author    sou asada
 */
function ForceDateSetDay(Year, Month, Day) {
    var year  = Year.value;
    var month = Month.value;
    var day   = Day.value;
    var max;

    do {
        /* 月設定 */
        SetOption(Month, 12, month);

        /* MAX 日取得 */
        max = CmnTimeGetNrDay(year, month);

        /* 今月以外の日設定 */
        SetOption(Day, max, day);
    } while(0);

    return;
}

/**
 * @name      CmnTimeGetNrDay
 * @abstract  指定した年月の日数取得
 * @param     Object  年フォーム
 * @param     Object  月フォーム
 * @since     2008/09/29
 * @author    sou asada
 */
function CmnTimeGetNrDay(year, month) {
    var iRet  = 0;
    var list  = new Array(2);
    var leap;

    do {
        /* 配列作成 */
        list[0] = new Array(31,28,31,30,31,30,31,31,30,31,30,31); /* 通常用 */
        list[1] = new Array(31,29,31,30,31,30,31,31,30,31,30,31); /* うるう年用 */

        /* うるう年判定 */
        leap = (((year)%4 == 0) && (((year) % 100) != 0 || ((year) % 400) == 0)) ? true : false;

        iRet = list[(leap==true) ? 1 : 0][month - 1];
    } while(0);

    return iRet;
}

/**
 * @name      SetOption
 * @abstract  Option 作成
 * @param     Object   フォームオブジェクト
 * @param     integer  月の MAX 日
 * @param     integer  月の MIN 日
 * @since     2008/09/29
 * @author    sou asada
 */
function SetOption(FormName, Max, Now) {
    var i, s;

    /* Option を 0 に初期化 */
    FormName.length = 0;

    for (i=0; i<Max; i++) {
        FormName.options[i] = new Option(i + 1, i + 1, false, false);
    }

    if (Max < Now) {
        FormName.options[Max - 1].selected = true;
    } else {
        FormName.options[Now - 1].selected = true;
    }

    return ;
}

/**
 * @name      SetTodayDate
 * @abstract  日付フォームを本日に設定
 * @param     Object  年フォーム
 * @param     Object  月フォーム
 * @param     Object  日フォーム
 * @since     2008/10/01
 * @author    sou asada
 */
function SetTodayDate(Year, Month, Day) {
    var today = new Date();

    Year.value  = today.getFullYear();
    Month.value = today.getMonth() + 1;
    Day.value   = today.getDate();

    return ;
}

/**
 * @name      MakePassword
 * @abstract  パスワード自動生成
 * @param     Object   フォームオブジェクト
 * @param     integer  パスワードの桁数
 * @since     2008/10/10
 * @author    sou asada
 */
function MakePassword(FormName, Length) {
    var pass = "";
    var moji = "";

    /* 文字定義 */
    moji += "0123456789";
    moji += "abcdefghijklmnopqrstuvwxyz";
    moji += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    moji += "-_";

    /* パスワード生成 */
    for (var i=0; i<Length; i++){
        num = Math.floor(Math.random() * moji.length);

        pass += moji.charAt(num);
    }

    FormName.value = pass;

    return ;
}