﻿/*
* 
* 
*/
(function ($) {
    /*

    */

    $.fn.extend({
        fieldForm: {
            radioButton: function (root, options) {
                if (root.length < 1) {
                    return;
                }

                root.each(function () {
                    var $item = $(this);
                    var $labelList = $item.find(options.wrap);

                    $labelList.each(function (i, item) {
                        var $element = $(this);

                        $element.find("input:radio").hide()
							.after($("<img>", { id: "btn-radio", src: root.data("radioImg"), alt: "" }));
                        $element.find("#btn-radio").click(function (event) {

                            if ($(event.target).is("#btn-radio")) {

                                $labelList.each(function (index, c) {
                                    $(c).removeClass("on").addClass("off")
										.find("img").each(function () {
										    this.src = this.src.replace("_on", "_off");
										});
                                    $(c).find("input:radio").each(function () {
                                        $(this).attr({ 'checked': false });
                                    });
                                });

                                $element.removeClass("off").addClass("on")
									.find("img").each(function () {
									    this.src = this.src.replace("_off", "_on");
									});
                                $element.find("input:radio").each(function () {
                                    $(this).attr({ 'checked': true });
                                });
                            }
                        });
                    });
                    $labelList.eq(0).find("#btn-radio").click();
                });
            },
            checkButton: function (root, options) {
                root.find(":checkbox").hide()
				.before($("<img>", {
				    id: "checkbox-visual",
				    src: root.data("checkboxImg")
				}));
                root.each(function (index, item) {
                    var _self = $(this);
                    var imgObj = _self.find("#checkbox-visual");
                    _self.toggle(function () {
                        _self.find(":checkbox").attr({ checked: true });
                        imgObj.attr({ "src": imgObj.attr("src").replace("_off", "_on") });
                        _self.removeClass("off").addClass("on");
                    }, function () {
                        _self.find(":checkbox").attr({ checked: false });
                        imgObj.attr({ "src": imgObj.attr("src").replace("_on", "_off") });
                        _self.removeClass("on").addClass("off");
                    });
                });
            },
            selectBox: function (root, options) {
                var $form;
                var count = root.length;
                root.each(function (i, box) {
                    $form = $(box);

                    var formWidth = !!box.style.width ? parseInt(box.style.width) : 90;
                    var wrapIndex = count--;

                    var container = $("<span>", { 'class': 'sltContainerCss', 'css': { 'width': formWidth + "px", 'z-index': wrapIndex} });
                    var optWrap = $("<div>", { 'class': 'sltOptWrapCss', 'css': { 'width': formWidth - 2 + "px", 'z-index': wrapIndex} })
									.appendTo(container);
                    var topWrap = $("<div>", { 'class': 'sltTopWrapCss', 'css': { 'width': formWidth - 2 + "px"} })
						.append($("<span>", { 'id': "slt-text", 'class': 'sltTextCss', 'css': { 'width': formWidth - 18 + "px"} }))
						.append($("<span>", { 'class': 'sltBtnCss' }).append($("<img>", { 'src': root.data("selectBtnImg") })))
						.appendTo(container)
						.click(function () {
						    if (optWrap.is(":visible")) {
						        container.find("div.scrollbar").hide();
						        optWrap.slideUp("fast");
						    } else {
						        optWrap.slideDown("fast", function () {
						            if (!!$(this).data('tsb')) {
						                container.find("div.scrollbar").show();
						                container.find("div.scrollbar").css({ left: optWrap.width() - 5 });
						                optWrap.tinyscrollbar_update();
						            }
						        });
						    }
						});

                    var opt = $("<div>", { 'id': "slt-option", 'class': 'sltOptCss' });
                    $form.find("option").each(function (optIndex, item) {
                        opt.clone(false).text(item.text).data({ "value": item.value, "id": $form.attr("id") })
						.click(function (e) {

						    var me = $(this);
						    var elem = topWrap.find("#slt-text");
						    optWrap.find(".sltOptCss").css({ backgroundColor: "#fff" });

						    elem.text(me.text()).data("value", me.val());
						    me.css({ backgroundColor: "#efefef" });

						    $form.find("option:selected").removeAttr("selected");
						    $(item).attr({ "selected": "selected" });
						    container.find("div.scrollbar").hide();
						    optWrap.slideUp("fast");

						    if (!!options.callback) {
						        options.callback(me);
						    }

						}).appendTo(optWrap);
                    });

                    $form.hide().after(container);

                    if (optWrap.children("div").length > 7) {
                        optWrap.css({ height: 147, overflow: "hidden" }).tinyscrollbar({
                            usedisable: true
                        });
                        optWrap.find(".overview").css({ width: optWrap.width() });
                    }

                    var initialize = function () {
                        optWrap.find(".sltOptCss:first").click();
                    } ();
                });
            }
        }
    });

    $.fn.extend({
        commonForm: function () {
            return $(this).data({
                radioImg: "/Images/common/bg_radio02_off.gif",
                checkboxImg: "/Images/common/bg_check_off.gif",
                selectBtnImg: "/Images/common/ico_gy_arrw.gif"
            });
        },
        fullBannerForm: function () {
            return $(this).data({
                checkboxImg: "/Images/common/bg_check01_off.gif"
            });
        },
        ticketform: function () {
            return $(this).data({
                radioImg: "/Images/ticket/ico/ico_radio_off.gif",
                checkboxImg: "/Images/ticket/ico/ico_check_off.gif"
            });
        },
        select: function (options) {
            //alert(options);
            var settings = $.extend({
                index: 0
            }, options);
            $.fn.fieldForm.selectBox($(this), settings);
            return this;
        },
        radio: function (options) {
            var settings = $.extend({
                wrap: "label",
                index: 0
            }, options);
            $.fn.fieldForm.radioButton($(this), settings);
            return this;
        },
        checkbox: function (options) {
            var settings = $.extend({
        }, options);
        $.fn.fieldForm.checkButton($(this), settings);
        return this;
    }
});

})(jQuery);

$(document).ready(function () {

    $("#ticketWrap .radio label").ticketform().radio();
    $("#ticketWrap .check label").ticketform().checkbox();
    $(".todayClose label").fullBannerForm().checkbox();

    //	$("#wrap .sectionA:visible .radio label").commonForm().radio();
    $("#wrap .sectionA:visible .radio").commonForm().radio();

    $("#header .radio").commonForm().radio();
    $("#wrap .sectionA:visible .check label").commonForm().checkbox();

    $("#header .check label").commonForm().checkbox();
    //	$("select").commonForm().select();


    // M4_storybox_all.html
    //	$("#wrap .sectionA:visible .sCuriosity .radio").commonForm().radio();

});
