﻿// Photoback Global Object
var PBGlobal = {};

PBGlobal.showDiv = function (id, msg) {
    $('body').append('<div id="' + id + '">' + msg + '</div>');
}

PBGlobal.removeDiv = function (id) {
    $('#' + id).remove();
}

/// <summary>Enterキーの動作を抑制します。</summary>
PBGlobal.throughEnterKey = function (e) {
    if (!e) {
        e = event;
    }
    if (PBGlobal.keyCode(e) == 13) {
        if (window.event) {
            if (window.event.srcElement.type != 'submit' && window.event.srcElement.type != 'textarea') {
                return false;
            }
        } else {
            if (e.target.type != 'submit' && e.target.type != 'textarea') {
                return false;
            }
        }
    }
}

/// <summary>キーコードを取得します。</summary>
PBGlobal.keyCode = function (e) {
    if (document.all)
        return e.keyCode;
    else if (document.getElementById)
        return (e.keyCode) ? e.keyCode : e.charCode;
    else if (document.layers)
        return e.which;
}

/// <summary>ラベルに画像を使っても動作するように拡張します。</summary>
/// <param name="label">ラベルタグをthisで渡します。</param>
PBGlobal.clickLabel = function (label) {
    var e = null;
    try {
        e = document.getElementById(label.htmlFor);
    }
    catch (exception) { }
    if (e == null) {
        var node;
        for (var i = 0; i < label.childNodes.length; i++) {
            node = label.childNodes.item(i);
            if (node.nodeName == 'INPUT') {
                e = node;
                break;
            }
        }
    }
    if (e != null) {
        switch (e.type) {
            case 'checkbox':
                e.checked = !e.checked;
                return false;
            case 'radio':
                e.checked = true;
                return false;
            case 'text': case 'password': case 'textarea':
                e.focus();
                return false;
        }
    }
}

/// <summary>エレメントの表示・非表示を切り替えます。</summary>
/// <param name="id"></param>
PBGlobal.switchDisplay = function (id) {
	var ele = document.getElementById(id);
	ele.style.display = (ele.style.display == "none") ? "block" : "none";
	return false;
}

/// <summary>指定した名前のformのaction URLにフラグメントを付加します。</summary>
/// <param name="f">formのname</param>
/// <param name="fragment">フラグメント</param>
PBGlobal.addFragment = function (f, fragment) {
    document.forms[f].action = document.forms[f].action + "#" + fragment;
}

/// <summary>スクロール可能でリサイズできないミニウィンドウを開きます。</summary>
/// <param name="url">開くURL</param>
/// <param name="name">ウィンドウ名</param>
/// <param name="width">ウィンドウの幅</param>
/// <param name="height">ウィンドウの高さ</param>
PBGlobal.openMiniWindow = function (url, name, width, height) {
    var newwin = window.open(url, name, 'width=' + width + ',height=' + height + ',toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=no');
    newwin.focus();
}

/// <summary>スクロール・リサイズ可能なウィンドウを開きます。</summary>
/// <param name="url">開くURL</param>
/// <param name="name">ウィンドウ名</param>
/// <param name="width">ウィンドウの幅</param>
/// <param name="height">ウィンドウの高さ</param>
PBGlobal.openSubWindow = function (url, name, width, height) {
    var newwin = window.open(url, name, 'width=' + width + ',height=' + height + ',toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes');
    newwin.focus();
}

