var isReadySubmit = false;

$(function() {
    $(window).unload(function() {
        isReadySubmit = false;
    });
});

function unmarkSubmit()
{
    return isReadySubmit = false;
}

function markSubmit()
{
    if (isReadySubmit == true)
        return false;

    return isReadySubmit = true;
}


function previewSubmitBtn(form , action)
{
    form.target = "_blank";
    form.action = action;
    form.submit();
    form.target = "";
    return false;
}

function submitBtn(form , action)
{
    if(isReadySubmit == true) {
        return false;
    } else {
        isReadySubmit = true;
    }
    form.action = action;
    form.submit();
    return false;
}

function submitBtnKiyaku(form , action)
{
	if ($("#agree").is(":checked") != true) {
		$("#login-kiyaku").addClass("login-kiyaku-error");
		alert("規約に同意していただく必要があります");
		return false;
	}
    if(isReadySubmit == true) {
        return false;
    } else {
        isReadySubmit = true;
    }
    form.action = action;
    form.submit();
    return false;
}

function btnSubmit(form)
{
    if (isReadySubmit == true)
        return false;

    isReadySubmit = true;

    return true;
}

function sendSubmit() {
    var s = $("#list").jqGrid('getGridParam','selarrrow');
    if(s.length <= 0) {
        alert("送信対象が選択されていません。");
        return false;
    }

    if(!confirm('送信してもよろしいですか？')) {
        return false;
    }

    if(isReadySubmit == true) {
        return false;
    } else {
        isReadySubmit = true;
    }

    return true;
}

function updateSubmit() {
    var s = $("#list").jqGrid('getGridParam','selarrrow');
    if(s.length <= 0) {
        alert("更新対象が選択されていません。");
        return false;
    }

    if(!confirm('更新してもよろしいですか？')) {
        return false;
    }

    if(isReadySubmit == true) {
        return false;
    } else {
        isReadySubmit = true;
    }

    return true;
}

function updateSubmitBtn(form , action)
{
    if(!confirm('更新してもよろしいですか？')) {
        return false;
    }

    return submitBtn(form , action);
}

function deleteSubmitBtn(form , action)
{
    if(!confirm('削除してもよろしいですか？')) {
        return false;
    }
    
    return submitBtn(form , action);
}

function cloneNode(defaultNum , fieldName , itemTem)
{
   $(function(){
       var ItemField = {
           defaultNumber : defaultNum,
           currentNumber : defaultNum,
           itemTemplate  : itemTem,
           add : function () {
               this.currentNumber++;
               var parentfield = document.getElementById(fieldName);
               var field = document.getElementById(fieldName + this.currentNumber);
               var newItem = this.itemTemplate.replace(/__count__/mg, this.currentNumber);
               var newItem = newItem.replace(/__countplus__/mg, this.currentNumber+1);
               field.innerHTML = newItem;

               var nextNumber = this.currentNumber + 1;
               var new_area = document.createElement("div");
               new_area.setAttribute("id", fieldName + nextNumber);
               parentfield.appendChild(new_area);
            },
            remove : function () {
                //if ( this.currentNumber == 0 || this.currentNumber == this.defaultNumber) { alert('これ以上は削除できません。'); return; }
                if ( this.currentNumber == 0) { alert('これ以上は削除できません。'); return; }
                var parentfield = document.getElementById(fieldName);
                var field1 = document.getElementById(fieldName + this.currentNumber);
                parentfield.removeChild(field1);
                var field2 = document.getElementById(fieldName + (this.currentNumber + 1));
                parentfield.removeChild(field2);

                this.currentNumber--;
                var new_area = document.createElement("div");
                var nextNumber = this.currentNumber + 1;
                new_area.setAttribute("id", fieldName + nextNumber);
                parentfield.appendChild(new_area);
                
            } 
       }
       $("#addbutton").click(function(){
           ItemField.add();
       });
       $("#removebutton").click(function(){
           ItemField.remove();
       });
   });
}

//--------

function isMiss(o)
{
    return o == null || o == undefined;
}

function isObject(o)
{
    return !isMiss(o) && typeof(o) == 'object';
}

function isString(o)
{
    return typeof(o) == 'string';
}

function strize(s)
{
    if (isMiss(s))
        return '';

    return '' + s;  // s.toString();
}

function xtrim(s)
{
    var txt = strize(s);

    txt = txt.replace(/[\t\n\r 　]+$/, '');
    txt = txt.replace(/^[\t\n\r 　]+/, '');
    //txt = txt.replace(/[ 　]+/g, ' ');

    return txt;
}

function intize(s, all)
{
    var badval = -2147483648;
    var n, rad;

    s = xtrim(s);

    if (s.length <= 0)
        return badval;

    rad = 10;

    if (!isMiss(all)) {
        if (s.length > 1 && s.substring(0, 1) == '#') {
            rad = 16;
            s = s.substring(1);
        } else if (s.length > 2 && s.substring(0, 2) == '0x') {
            rad = 16;
            s = s.substring(2);
        }
    }

    n = parseInt(s, rad);

    if (isNaN(n) || !isFinite(n))
        return badval;

    //if (n < 0)
    //  return badval;

    return n;
}

function isLeap(yy)
{
    return yy % 400 == 0 || (yy % 100 != 0 && yy % 4 == 0);
}

function monthDays(yy, mm)
{
    switch (mm) {
    case 2:
        return isLeap(yy) ? 29 : 28;
    case 4:
    case 6:
    case 9:
    case 11:
        return 30;
        }

    return 31;
}

function fmttime(y, m, d, h, i)
{
    y = intize(y);
    m = intize(m);
    d = intize(d);
    h = intize(h);
    i = intize(i);

    if (y < 2010 || 2029 < y)
        return null;
    if (m < 1 || 12 < m)
        return null;
    if (d < 1 || monthDays(y, m) < d)
        return null;
    if (h < 0 || 23 < h)
        return null;
    if (i < 0 || 59 < i)
        return null;

    var s;

    s = strize(y);
    s += '/';
    if (m < 10)
        s += '0';
    s += strize(m);
    s += '/';
    if (d < 10)
        s += '0';
    s += strize(d);
    s += ' ';
    if (h < 10)
        s += '0';
    s += strize(h);
    s += ':';
    if (i < 10)
        s += '0';
    s += strize(i);
    s += ':00';

    return s;
}

function getDom(id)
{
    if (isString(id)) {
        if (id.length <= 0)
            return null;
        return document.getElementById(id);
    }

    if (isObject(id))
        return id;

    return null;
}

function getDomChecked(dom)
{
    dom = getDom(dom);

    return isObject(dom) && dom.checked;
}

function setDomChecked(dom, val)
{
    dom = getDom(dom);

    if (isObject(dom))
        dom.checked = val;
}

function getDomCheckedExist(dom)
{
    dom = getDom(dom);

    if (!isObject(dom))
        return -1;

    return dom.checked ? 1 : 0;
}

function getDomValue(dom)
{
    dom = getDom(dom);

    return isObject(dom) ? dom.value : '';
}

function xtrimDomValue(dom)
{
    var txt = '';

    dom = getDom(dom);

    if (isObject(dom)) {
        txt = xtrim(dom.value);
        dom.value = txt;
    }

    return txt;
}

function showOtherWindow(url, tgt)
{
    if (isMiss(tgt))
        tgt = '_blank';

    w = window.open(url, tgt,
      'directories=no,location=no,menubar=no,status=no,toolbar=no');

    w.focus();
}


