/** * add behaviour to all input fields to show help on focus */ function init_help() { var allInputs = $('#siteContent input'); if (allInputs.length > 0) { allInputs.helpable('.hintMsg'); } var allSelects = $('#siteContent select'); if (allSelects.length > 0) { allSelects.helpable('.hintMsg'); } var allTextareas = $('#siteContent textarea'); if (allTextareas.length > 0) { allTextareas.helpable('.hintMsg'); } } function init_pageToolsBookmarks() { var pageToolsBookmark = $('#pageToolsBookmark'); if (pageToolsBookmark.length == 1) { var bookmarks = $('#pageToolsBookmarks'); pageToolsBookmark.mouseenter(function() { bookmarks.show(); }); bookmarks.mouseleave(function() { bookmarks.hide(); }); bookmarks.find('input').bind('click', function(){ this.select(); // Select input field contents }); } } function init_headLogin() { var headLoginCfg = {backgroundElement:'#headLogin h4 a',backgroundPosition:'0 0',slideElement:'#headLogin .headLoginExt'}; var headLoginCfgOut = {backgroundElement:'#headLogin h4 a',backgroundPosition:'0 -12px',slideElement:'#headLogin .headLoginExt'}; $("#headLogin").hoverIntent({ sensitivity: 3, interval: 200, over: function(){$(this).jSlider('over', headLoginCfg)}, timeout: 250, out: function(){$(this).jSlider('out', headLoginCfgOut)} }); // login form username input $('#signin_username').inputAdvise(); // login form password input $('#signin_password').inputAdvise(); // search form searchterm input $('#searchWord').inputAdvise(); } function init_headBasket() { var headBasketCfg = {backgroundElement:'#headBasket h4 a',backgroundPosition:'0 -48px',className:'open',slideElement:'#headBasket .headBasketExt'}; var headBasketCfgOut = {backgroundElement:'#headBasket h4 a',backgroundPosition:'0 -36px',className:'open',slideElement:'#headBasket .headBasketExt'}; $("#headBasket").hoverIntent({ sensitivity: 3, interval: 200, over: function(){$(this).jSlider('over', headBasketCfg)}, timeout: 250, out: function(){$(this).jSlider('out', headBasketCfgOut)} }); // Basket Articles Carousel var iBasketContentsSize = 3; $("#basketContents").each(function(){ var ul = $("ul", $(this)), li = $("li", ul); if (0 < li.size() && li.size() < 3) iBasketContentsSize = li.size(); }); $("#basketContents").jCarouselLite({ btnPrev: "#headBasket .scrollUpLink", btnNext: "#headBasket .scrollDownLink", vertical: true, circular: false, visible: iBasketContentsSize }); // hide the basket after jCarousel init $("#headBasket .headBasketExt").hide(); } function init_headSearch() { var searchInput = $('#searchWord'); var defaultValue = searchInput.attr('alt'); var init = function(val) { defaultValue = val; searchInput.val(defaultValue); } searchInput.focus(function () { if($(this).val() == defaultValue) { $(this).val(''); } }); searchInput.blur(function () { if(typeof($(this).val()) == 'undefined' || $(this).val() == '') { $(this).val(defaultValue); } }); $('#quickSearchForm').bind('submit', function(e) { if(typeof(searchInput.val()) == 'undefined' || searchInput.val() == '' || searchInput.val() == defaultValue) { searchInput.val(defaultValue); e.preventDefault(); } }); var searchSelect = $('#searchArea'); searchSelect.selectbox(); searchSelect.bind('change', function() { init($(this).find('option:selected').attr('title')); }); if(typeof(searchInput.val()) == 'undefined' || searchInput.val() == '') { init(defaultValue); } } function init_Navigation() { var navigation = $('#navigation'); // Subnavigation Hover navigation.find('ul > li > ul > li').hoverIntent(function() { $(this).addClass("currentSubnav"); $(this).find(".thirdLevelNav").show(); } , function() { $(this).removeClass("currentSubnav"); $(this).find(".thirdLevelNav").hide(); }); /* // Third Level Navigation Hover navigation.find('.thirdLevelNav > ul').hover(function() { $(this).addClass("productHover"); } , function() { $(this).removeClass("productHover"); }); // Sequence Navigation Hover $("#sequenceNav ul > li > a").hover(function() { $(this).parent().addClass("currentSubnav"); navigation.find('.thirdLevelNav').hide(); } , function() { $(this).parent().removeClass("currentSubnav"); });*/ // Category Filter Selectbox width (for ie) var navFilterSelect = $('#jq_nav_category_filter select'); navFilterSelect.focus(function () { $(this).css("width","auto"); }); navFilterSelect.blur(function () { $(this).css("width","156px"); }); } function init_charcount() { if ($('#jq_charcount_parent').length == 1) { var countables = $('.jq_char_countable'); countables.prev('label').append($('#jq_charcount_parent')); countables.bind('charcount', function() { var chars = $(this).val().length; $('#jq_charcount').html(chars); }); countables.keyup(function(e) { $(this).trigger('charcount'); }); countables.trigger('charcount'); } } function init_submitLink() { $('#site').find('a.jq_submit_link').click(function() { $(this).closest('form').submit(); return false; }); } function fillSelect(inputElement, elementObj, firstElement, options) { $(inputElement).attr("value", elementObj.text()); $(firstElement).empty().append(elementObj.text()); } function init_chronik() { // history Carousel $("#chronikContents").jCarouselLite({ btnPrev: "#chronik .scrollUpLink", btnNext: "#chronik .scrollDownLink", vertical: true, circular: false, visible: 4.2 }); } function init_horizontalCarousel() { // Horizontal Carousel var noticeModalLarge = $('#noticeModalLarge'); if(noticeModalLarge.length = 1) { noticeModalLarge.find('.imageNavShort').jCarouselLite({ btnPrev: "#noticeModalLarge .imageNavPrevImage", btnNext: "#noticeModalLarge .imageNavNextImage", vertical: false, circular: false, visible: 3 }); // set background image on hover noticeModalLarge.find('.imageNav > ul > li').hover(function() { $(this).addClass("liHover"); } , function() { $(this).removeClass("liHover"); }); } var noticeModal = $('#noticeModal'); if(noticeModal.length = 1) { noticeModal.find('.imageNavShort').jCarouselLite({ btnPrev: "#noticeModal .imageNavPrevImage", btnNext: "#noticeModal .imageNavNextImage", vertical: false, circular: false, visible: 3 }); // set background image on hover noticeModal.find('.imageNav > ul > li').hover(function() { $(this).addClass("liHover"); } , function() { $(this).removeClass("liHover"); }); } var siteContent = $('#siteContent'); if(siteContent.length == 1){ siteContent.find('.imageNav').jCarouselLite({ btnPrev: "#siteContent .imageNavPrevImage", btnNext: "#siteContent .imageNavNextImage", vertical: false, circular: false, visible: 4 }); // set background image on hover siteContent.find('.imageNav > ul > li').hover(function() { $(this).addClass("liHover"); } , function() { $(this).removeClass("liHover"); }); } } function init_fancybox() { var mcBilder = $('#mcBilder'); if (mcBilder.length > 0) { mcBilder.find("a[rel='productDetail']").fancybox(); mcBilder.find('a.mcZoomLink').fancybox({ // TODO use dynamic width and height of XXL image size const frameWidth: 576, frameHeight: 576 }); mcBilder.find('a.jqImageZoom').jqzoom({ zoomWidth: 370, zoomHeight: 360, xOffset: 18, yOffset: -12, position: "right", title: false, showPreload: false }); } } function init_confirm() { // init basket articlelist delete confirm => init last! $('#siteContent #basket .deleteBasketItem.basketItem').click(function() { var artid = $(this).attr('rel'); deleteBasketConfirm(artid, $aBasketItems); return false; }); } function init_faqs() { if ($("#faqs_accordion").length > 0) { $("#faqs_accordion").accordion({ header: 'h3', autoHeight: false }).bind('accordionchangestart', function(event, ui) { $('#faqs_accordion .roundedBox').each(function(){ if ($(this).find('.ui-state-active').hasClass('.ui-state-active')) $(this).addClass('roundedBoxActive'); else $(this).removeClass('roundedBoxActive'); }); }); } } /** * bd cms slot * * @param options mixed serverside options * @return void */ function bdCMSSlot(options) { var formSelector = '#pk-slot-form-'+options.slotname+'-'+options.permid; var searchInProgress = false; var searchTerm = ''; var timeout; var delay = 1000; var minChars = 0; var mediatype = $('#'+options.preview_update_id).is('object') || $('#'+options.preview_update_id).is('div') ? 'flash' : 'image'; $(formSelector+' .jq_bd_cms_trigger_select').click(function(e) { $(formSelector+' .jq_bd_cms_select_media').toggle(); return false; }); function browseMedia() { searchInProgress = true; var indicator = new loadIndicator(options.text_load_search); $.ajax({ async: false, url: options.url_browse, data: jQuery.param({search: searchTerm}), beforeSend: function() { indicator.showAfter(formSelector+' .jq_bd_cms_search_media'); }, success: function(data) { $(formSelector+' .jq_bd_cms_media_list').html(data); }, complete: function() { indicator.hide(); searchInProgress = false; } }); } $(formSelector+' .jq_bd_cms_search_media').bind('keyup', function(){ searchTerm = $(this).val(); if(!searchInProgress && searchTerm.length > minChars) { if(timeout) { clearTimeout(timeout); } timeout = setTimeout(browseMedia, delay); } }); $(formSelector+' .jq_bd_cms_search_media').bind('keypress', function(e){ var key; if(window.event) { key = window.event.keyCode; //IE } else { key = e.which; //firefox } return (key != 13); }); $(formSelector+' .jq_bd_cms_template_select_control').bind('change', function(){ var image_mapping = cms_image_mapping[$(this).val()]; $(formSelector+' .jq_image_upload_label').text('Bild '+(image_mapping.width)+' x '+(image_mapping.height)); }); $(formSelector+' a.jq_bd_cms_select_item').live("click", function(){ var selectedMedia = $(this).attr('rel'); $(formSelector+' .jq_bd_cms_media_url').val(selectedMedia); // update image preview if(mediatype == 'image') { var selectedTemplate = $(formSelector+' .jq_bd_cms_template_select_control').val(); var indicator = new loadIndicator(options.text_load_preview); $.ajax({ async: false, url: options.url_preview, dataType: 'json', data: jQuery.param({mediaurl: selectedMedia, template: selectedTemplate}), beforeSend: function() { indicator.showAfter(formSelector+' .jq_bd_cms_trigger_select'); }, success: function(data) { $('#'+options.preview_update_id).attr('src', data.url) }, complete: function() { indicator.hide(); } }); } // update swf preview else if(mediatype == 'flash') { swfobject.embedSWF('/'+options.path_upload+selectedMedia, options.preview_update_id, options.template_params.width, options.template_params.height, "9.0.0", "/uploads/cms/expressInstall.swf"); } $(formSelector+' a.jq_bd_cms_select_item').removeClass('current'); $(this).addClass('current'); }); $(formSelector+' a.jq_bd_cms_delete_item').live("click", function(){ var selectedMediaId = $(this).attr('rel'); var indicator = new loadIndicator(options.text_load_delete); var deleteConfirm = confirm(options.text_confirm_delete); if (deleteConfirm) { $.ajax({ async: false, url: options.url_delete, data: jQuery.param({id: selectedMediaId, type: mediatype}), beforeSend: function() { indicator.showAfter(formSelector+' .jq_bd_cms_trigger_select'); }, success: function(data) { $(formSelector+' .jq_bd_cms_media_list').html(data); }, complete: function() { indicator.hide(); } }); } }); $(formSelector+' .jq_bd_cms_remove_media').bind('click', function(e){ if(mediatype == 'image') { $('#'+options.preview_update_id).attr('src', ''); $(formSelector+' .jq_bd_cms_media_url').val(''); } e.preventDefault(); }); var cleanRemoveTinymce = function() { if(typeof(tinyMCE) != 'undefined') { var ed = tinyMCE.get('bdCMSEditorialTeaserSlotForm-'+options.slotname+'-'+options.permid+'_value'); if(typeof(ed) != 'undefined') { ed.save(); ed.remove(); } } } $(formSelector+' .jq_bd_cms_trigger_upload').click(function(){ var slotForm = $(formSelector); var indicator = new loadIndicator(options.text_load_upload); // bind ajax form submit event slotForm.bind('submit', function() { slotForm.ajaxSubmit({ async: false, beforeSend: function() { indicator.showAfter(formSelector+' .jq_bd_cms_upload_media'); // add enctype multipart/form-data to the form and unbind other submit listener slotForm.attr('enctype', 'multipart/form-data'); slotForm.unbind('submit'); cleanRemoveTinymce(); }, success: function(data) { }, target: formSelector+' .jq_bd_cms_select_media_form', complete: function() { slotForm.unbind('submit'); slotForm.attr('enctype', ''); init_tinymce('#bdCMSEditorialTeaserSlotForm-'+options.slotname+'-'+options.permid+'_value'); indicator.hide(); } }); return false; }); // trigger jquery.form js function ajaxSubmit to trigger iframe upload slotForm.submit(); return false; }); $(formSelector+' .jq_bd_cms_select_content').bind('change', function(e) { var entity = $(e.target).val(); if(typeof(entity) != 'undefined' && entity != '') { var isSidebar = 0; if(typeof(options.template_params.sidebar) != 'undefined') { isSidebar = options.template_params.sidebar == true ? 1 : 0; } var indicator = new loadIndicator(options.text_load_templates); $.ajax({ async: true, url: options.url_get_templates, dataType: 'json', data: jQuery.param({entity: entity, sidebar: isSidebar}), beforeSend: function() { indicator.showAfter(formSelector+' .jq_bd_cms_select_content'); }, success: function(data) { var options = ''; for(var option in data) { options += ''; } $(formSelector+' .jq_bd_cms_select_template').html(options); }, complete: function() { indicator.hide(); } }); } }); $(formSelector+' .jq_bd_cms_select_template').bind('change', function(e) { var template = $(e.target).val(); if(typeof(template) != 'undefined' && template != '') { var template_type = template.split('_', 1)[0]; var searchControls = $(formSelector+' .jq_bd_cms_search_controls'); var entityList = $(formSelector+' .jq_bd_cms_entities_list'); // var listTitle = $(formSelector+' .jq_bd_cms_list_title'); if(template_type == 'list') { searchControls.fadeOut(); // listTitle.fadeIn(); entityList.empty(); } else { searchControls.fadeIn(); // listTitle.val(''); // listTitle.fadeOut(); browseEntity(); } } }); function browseEntity() { var target = $(formSelector+' .jq_bd_cms_search_entity'); var search = $(target).val(); var entity = $(formSelector+' .jq_bd_cms_select_content').val(); var indicator = new loadIndicator(options.text_load_search); $.ajax({ async: true, url: options.url_browse, data: jQuery.param({entity: entity, search: search}), beforeSend: function() { indicator.showAfter(target); }, success: function(data) { $(formSelector+' .jq_bd_cms_entities_list').html(data); }, complete: function() { indicator.hide(); } }); } $(formSelector+' .jq_bd_cms_search_entity').bind('keyup', function(){ searchTerm = $(this).val(); if(!searchInProgress && searchTerm.length > minChars) { if(timeout) { clearTimeout(timeout); } timeout = setTimeout(browseEntity, delay); } }); $(formSelector+' .jq_bd_cms_search_entity').bind('keypress', function(e){ var key; if(window.event) { key = window.event.keyCode; //IE } else { key = e.which; //firefox } return (key != 13); }); $(formSelector+' a.jq_bd_cms_select_entity').live("click", function(e){ var selected = $(this).attr('rel'); $(formSelector+' .jq_bd_cms_id').val(selected); $(formSelector+' a.jq_bd_cms_select_entity').removeClass('current'); $(this).addClass('current'); e.preventDefault(); }); } function starRating(options) { var defaults = { form_element: '', counter_element: '', rating_value: 0, voteable: true, entity_id: undefined, user_id: undefined, rating_url: '', text_load_rate: '' }; var o = $.extend(defaults, options); var ratingForm = $(o.form_element); var ratingRadios = ratingForm.find('input'); this.init = function() { ratingRadios.rating(); ratingForm.show(); } var rate = function(e){ var link = e.target; var rating_points = $(link).text(); var indicator = new loadIndicator(o.text_load_rate); $.ajax({ url: o.rating_url, data: { entity_id: o.entity_id, user_id: o.user_id, rating_points: rating_points }, dataType: 'json', method: 'post', beforeSend: function() { indicator.showAfter(o.form_element); }, success: function(data) { ratingForm.find(':radio.star').rating('select', String(data.average_rating)); $(o.counter_element).text(data.quantity_ratings_fulltext); setVotable(false); }, complete: function() { indicator.hide(); } }); e.preventDefault(); } var setVotable = function(voteable) { if(voteable) { ratingForm.find('a').bind('click', rate); ratingForm.find(':radio.star').rating('readOnly', false); } else { ratingForm.find('a').unbind('click'); ratingForm.find(':radio.star').rating('readOnly', true); } } // call init, although native plugin already to this on load. But for ajax issues we need manuelly call. init(); ratingRadios.rating('select', o.rating_value); setVotable(o.voteable); } /** * init a scroll teaser * * @param options * @return void */ function scrollTeaser(options) { var defaults = { element: '', circular: false, visible: 3, auto: null, speed: 0 }; var o = $.extend(defaults, options); var teaserElement = $(o.element); teaserElement.find('.jq_scroll_teaser').jCarouselLite({ btnPrev: teaserElement.find('.jq_scroll_up'), btnNext: teaserElement.find('.jq_scroll_down'), vertical: true, circular: o.circular, visible: o.visible, auto: o.auto, speed: o.speed }); } function init_load_indicator() { // TODO i18n message $('#siteContent').globalLoadIndicator({ text_load: 'Bitte warten ...' }); } function init_printLink() { var printLink = $('#pageToolsPrint'); if(printLink.length == 1){ printLink.click(function(){ window.print(); return false; }) } } function init_tweet() { if ($('#jq_tweet_link').length > 0) { var pageTitle = document.title; var pageUrl = document.location; var url = 'http://json-tinyurl.appspot.com/?url=' + encodeURIComponent(pageUrl) + '&callback=?'; $.getJSON(url, function(data){ tweetUrl ="http://twitter.com/home/?status=" + escape(pageTitle) + "+" + escape(data.tinyurl) + "+via+@fressnapf.de"; $('#jq_tweet_link').attr('href',tweetUrl); }); } } /** * init pager * * @return void */ function init_pager(options) { var pager = $('#siteContent .jq_pager'); if(pager.length > 0) { pager.find('select.jq_pager_select_filter').bind('change', function() { if($(this).closest("form[name='paginationForm']").length == 1) { $(this).closest("form[name='paginationForm']").trigger('submit'); } }); } } /** * submit forms hitting enter for IE */ function init_returnSubmit() { // this property is false in ie if(jQuery.support.htmlSerialize == false) { $('#wrapper input').keydown(function(e){ // only ie matching if (window.event.keyCode == 13) { var parentForm = $(this).parents('form'); if(parentForm.length == 1) { parentForm.trigger('submit'); } } // be sure to don't break event bubbling; omit return false or e.preventDefaults }); } } /** * document dom is ready; occurs during page render while * objects are still downloading. */ $(document).ready(function() { init_printLink(); init_charcount(); init_submitLink(); init_pageToolsBookmarks(); init_headLogin(); init_headBasket(); init_headSearch(); init_Navigation(); init_chronik(); init_confirm(); // call before fancy !! init_fancybox(); init_faqs(); // TODO specific intitalize init_pager(); init_load_indicator(); }); /** * document loaded; occurs after all objects called by the HTML * (including