jQuery.fn.extend({
    hintedForm: function () {
        var that = this;
    
        function FormField(my) {
            var myNode = jQuery(my),
                label  = myNode.parent().find('[for=' + String(myNode.attr('id')) + ']');
        
            function writeDefault() {
                if (myNode.val() === '') {
                    myNode.val(label.text());
                }
            }

            function clearDefault() {
                if (myNode.val() === label.text()) {
                    myNode.val('');
                }
            }
        
            label.hide();
            writeDefault();
            myNode.focus(clearDefault)
                  .blur(writeDefault)
                  .parents('form')
                  .submit(clearDefault)
                  .addClass('js');
        
            return {};
        };
    
        jQuery(this).each(function () {
            FormField(this);
        });
    
        return {};
    },
    
    mediaGallery: function () {
        var that = jQuery(this),
            thumbs = that.find('.more-views'),
            base = that.find('.product-base-img');
        
        function swapForImage(num) {
            var maybeItem = jQuery(thumbs.find('li').get(num));
            
            if (maybeItem.length) {
                maybeItem.addClass('active').siblings().removeClass('active');
                base.attr('src', maybeItem.find('a').attr('href'));
            }
        }
        
        function handleClick(obj) {
            var num = jQuery(this).parent().index();
            
            jQuery(this).click(function (e) {
                swapForImage(num);
                e.preventDefault();
            });
        }
        
        // Correct for incorrectly set active state.
        thumbs.find('a[href='+ String(base.attr('src')) +']').parent().addClass('active').siblings().removeClass('active');
        
        that.find('.more-views a').each(handleClick);
    }
});

function customAlert(msg) {
	var box = jQuery('<div id="dialog-message" title="Unvollst&auml;ndige Eingabe"><p>' + String(msg) + '</p></div>');
	box.dialog({
		modal: true,
		buttons: {
			Ok: function () {
				jQuery(this).dialog('close');
			}
		}
	});
}

function main () {
    jQuery('form.hinted input:text, textarea').hintedForm();
    jQuery('.product-view').length && jQuery('.product-view').mediaGallery();
}

jQuery(main);