/* --- FONTS --- */
Cufon.replace('h1, .events .i h2, .events .i h3, .offers .i h2, .offers .i h3', {fontFamily: 'HeliosLight', fontSize: '36px'});
Cufon.replace('.m1 li, .nav-back', {fontFamily: 'Helios', fontSize: '12px', hover: true});
Cufon.replace('.events h2.title, .desc h1', {fontFamily: 'HeliosLight', fontSize: '20px'});

var tmplBase = "/wp-content/themes/crystal_hall/";

/* --- FLASH --- */
swfobject.embedSWF(tmplBase + 'swf/logo.swf', 'logoSWF', '490', '100', '9.0.115', tmplBase + 'swf/expressInstall.swf', false, {wmode: 'opaque', bgcolor: '#000000'});
var tourVars = {
    data: 'swf/tour/gallery.xml',
    content: 'swf/tour.swf',
    animation: 'swf/tour_interior.swf'
};
var tourParams = {
    allowscriptaccess: 'always',
    wmode: 'opaque',
    bgcolor: '#000000',
		base: tmplBase
};
swfobject.embedSWF(tmplBase + 'swf/tour_loader.swf', 'tourSWF', '980', '855', '9.0.115', tmplBase + 'swf/expressInstall.swf', tourVars, tourParams);



/* --- DOM READY --- */
$(function(){
    $('select.custom').selectbox();

    $('.focusable').focusable();
    $('.text.focusable').focusable({'prefix': 'text-'});
    $('.textarea.focusable').focusable({'prefix': 'textarea-'});
    $('label.placeholder').placeHolder();

    $('.profile .button-file').fileButton();
    $('.profile').profileEdit();

    $('a.booking-link').fancybox({
        padding: 0,
        frameWidth: 590,
        overlayColor: '#000',
        overlayOpacity: 0.7,
        hideOnOverlayClick: false,
        hideOnContentClick: false,
        callbackOnShow: function(){
            $('#fancy_div label').each(function(){
                var label = $(this);
                label.attr('for', label.attr('for') + 'Modal');
            });
            $('#fancy_div input').each(function(){
                var input = $(this);
                input.attr('id', input.attr('id') + 'Modal');
            });
						$('#fancy_div .text.focusable').each(function(){
                var div = $(this);
                div.attr('id', div.attr('id') + 'Modal');
            });
            /*$('#fancy_div form').submit(function(){
                $(this).hide().next('.success').fadeIn('fast');
                return false;
            });*/
            $('.focusable').focusable();
            $('.text.focusable').focusable({'prefix': 'text-'});
            $('.textarea.focusable').focusable({'prefix': 'textarea-'});
            $('label.placeholder').placeHolder();
						//  init WPCF7 form
						wpcf7init();
        }
    });
});



/* --- PLUGINS --- */
// selectbox
(function($){
    $.fn.selectbox = function(settings){
        this.each(function(){
            var sb = $(this);
            var sbWidth = this.offsetWidth;
            var sbOptions = $('option', sb);
            var sbSelected = $('option:selected', sb);

            var cbHTML = '<div class="select" style="width: '+sbWidth+'px;">';
            cbHTML += '<div class="title">'+sbSelected.text()+'</div>';
            cbHTML += '<div class="list"><ul>';
            $('option', sb).each(function(){
                var option = $(this);
                var li = '<li>'+$(this).text()+'</i></li>';
                cbHTML += li;
            });
            cbHTML += '</ul></div>';
            cbHTML += '<i class="arr"></i><i class="select-lt"></i><i class="select-rt"></i><i class="select-rb"></i><i class="select-lb"></i></div>';

            sb.hide().after(cbHTML);

            var cb = sb.next();
            var cbTitle = $('.title', cb);
            var cbList = $('.list', cb);
            var cbItems = $('li', cbList);
            var cbClicked = false;

            cb.click(function(){
                if (cbTitle.is(':visible')) {
                    cbTitle.hide();
                    cbList.show();
                    cb.addClass('select-drop');
                } else {
                    cbTitle.show();
                    cbList.hide();
                    cb.removeClass('select-drop');
                }
                cbClicked = true;
            });

            cbItems.click(function(){
                var item = $(this);
                var index = cbItems.index(item);
                sb.val(sbOptions.eq(index).val());
                cbTitle.text(item.text());
            }).hover(
                function(){
                    $(this).addClass('hover');
                },
                function(){
                    $(this).removeClass('hover');
                }
            );

            $(document).click(function(){
                if (!cbClicked) {
                    cbTitle.show();
                    cbList.hide();
                    cb.removeClass('select-drop');
                }
                cbClicked = false;
            });
        });
        return this;
    };
})(jQuery);


// hoverable
(function($){
$.fn.hoverable = function(settings){
    var config = {
        'prefix': ''
    };
    if (settings) $.extend(config, settings);

    this.each(function(){
        var el = $(this);
        el.hover(
            function(){
                el.removeClass('hover');
                el.addClass(config.prefix + 'hover');
            },
            function(){
                el.removeClass(config.prefix + 'hover');
            }
        );
    });
    return this;
};
})(jQuery);


// focusable
(function($){
$.fn.focusable = function(settings){
    var config = {
        'prefix': ''
    };
    if (settings) $.extend(config, settings);

    this.each(function(){
        var el = $(this);
        $('input, textarea', el).focus(function(){
            el.removeClass('focus');
            el.addClass(config.prefix + 'focus');
        }).blur(function(){
            el.removeClass(config.prefix + 'focus');
        });
    });
    return this;
};
})(jQuery);


// placeHolder
(function($){
    $.fn.placeHolder = function(settings){
        var config = {
            'className': 'placeholder'
        };
        if (settings) $.extend(config, settings);

        this.each(function(){
            var label = $(this);
            var labelText = label.text();
            var input = $('#'+label.attr('for'));

            if (input.val() == '' || input.val() == labelText) {
                input.addClass(config.className).val(labelText);
            }

            input.focus(function(){
                input.removeClass(config.className);
                if (input.val() == labelText) input.val('');
            }).blur(function(){
                if (input.val() == '') input.val(labelText).addClass(config.className);
            });
        });
        return this;
    };
})(jQuery);


// fileButton
(function($){
$.fn.fileButton = function(settings){
    this.each(function(){
        var el = $(this);
        el.css({
            'position': 'relative',
            'overflow': 'hidden'
        }).find('input:file').css({
            'height': '100%',
            'right': 5,
            'top': 0,
            'position': 'absolute',
            'cursor': 'pointer',
            'opacity': 0
        }).change(function(){
            el.siblings('.button-submit').hide().filter('button').show();
        });
    });
    return this;
};
})(jQuery);


// profileEdit
(function($){
$.fn.profileEdit = function(){
    this.each(function(){
        var profile = $(this);
        var form = $('form', profile);
        var values = $('.value', profile);
        var edits = $('.edit', profile);
        var editLinks = $('a', edits);
        var textFields = $('.i div.text', profile);
        var buttons = $('.i button', profile);
        var uploadForms = $('.upload', profile);

        edits.each(function(){
            var edit = $(this);
            var editLink = $('a', edit);
            var value = edit.siblings('.value');
            var textField = edit.siblings('div.text');
            var button = edit.siblings('button');
            var uploadForm = edit.siblings('.upload');
            var uploadFormClose = $('.close', uploadForm);

            editLink.click(function(){
                edits.show();
                edit.hide();
                values.show();
                value.hide();
                textFields.css({'position': 'absolute'});
                textField.css({'position': 'static'}).find('input.text').focus();
                buttons.css({'position': 'absolute'});
                button.css({'position': 'static'});
                uploadForms.hide();
                uploadForm.show();
                return false;
            });

            uploadFormClose.click(function(){
                uploadForm.hide();
                edits.show();
            });
        });
    });
    return this;
};
})(jQuery);