/* PNG-Fix for IE6 */
(function($){jQuery.fn.pngFix=function(settings){settings=jQuery.extend({blankgif:'blank.gif'},settings);var ie55=(navigator.appName=="Microsoft Internet Explorer"&&parseInt(navigator.appVersion)==4&&navigator.appVersion.indexOf("MSIE 5.5")!=-1);var ie6=(navigator.appName=="Microsoft Internet Explorer"&&parseInt(navigator.appVersion)==4&&navigator.appVersion.indexOf("MSIE 6.0")!=-1);if(jQuery.browser.msie&&(ie55||ie6)){jQuery(this).find("img[src$=.png]").each(function(){jQuery(this).attr('width',jQuery(this).width());jQuery(this).attr('height',jQuery(this).height());var prevStyle='';var strNewHTML='';var imgId=(jQuery(this).attr('id'))?'id="'+jQuery(this).attr('id')+'" ':'';var imgClass=(jQuery(this).attr('class'))?'class="'+jQuery(this).attr('class')+'" ':'';var imgTitle=(jQuery(this).attr('title'))?'title="'+jQuery(this).attr('title')+'" ':'';var imgAlt=(jQuery(this).attr('alt'))?'alt="'+jQuery(this).attr('alt')+'" ':'';var imgAlign=(jQuery(this).attr('align'))?'float:'+jQuery(this).attr('align')+';':'';var imgHand=(jQuery(this).parent().attr('href'))?'cursor:hand;':'';if(this.style.border){prevStyle+='border:'+this.style.border+';';this.style.border='';}
if(this.style.padding){prevStyle+='padding:'+this.style.padding+';';this.style.padding='';}
if(this.style.margin){prevStyle+='margin:'+this.style.margin+';';this.style.margin='';}
var imgStyle=(this.style.cssText);strNewHTML+='<span '+imgId+imgClass+imgTitle+imgAlt;strNewHTML+='style="white-space:pre-line;display:inline-block;background:transparent;'+imgAlign+imgHand;strNewHTML+='width:'+jQuery(this).width()+'px;'+'height:'+jQuery(this).height()+'px;';strNewHTML+='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader'+'(src=\''+jQuery(this).attr('src')+'\', sizingMethod=\'scale\');';strNewHTML+=imgStyle+'"></span>';if(prevStyle!=''){strNewHTML='<span style="display:inline-block;'+prevStyle+imgHand+'width:'+jQuery(this).width()+'px;'+'height:'+jQuery(this).height()+'px;'+'">'+strNewHTML+'</span>';}
jQuery(this).hide();jQuery(this).after(strNewHTML);});jQuery(this).find("*").each(function(){var bgIMG=jQuery(this).css('background-image');if(bgIMG.indexOf(".png")!=-1){var iebg=bgIMG.split('url("')[1].split('")')[0];jQuery(this).css('background-image','none');jQuery(this).get(0).runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+iebg+"',sizingMethod='scale')";}});jQuery(this).find("input[src$=.png]").each(function(){var bgIMG=jQuery(this).attr('src');jQuery(this).get(0).runtimeStyle.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader'+'(src=\''+bgIMG+'\', sizingMethod=\'scale\');';jQuery(this).attr('src',settings.blankgif)});}
return jQuery;};})(jQuery);


/** 
 * viega.js
 * General JavaScripts and custom webtrekk integration
 *
 * @requires jQuery
 */
var isIE = false /*@cc_on || @_jscript_version <= 5.7 @*/;


/**
 * Opens a horizontally centered popup
 * 
 * @param {String} url      
 * @param {String} width
 * @param {String} height
 */
function openPopup(url, width, height)
{
    var popup = window.open(url, 'popup', 'width=' + width + ',height=' + height + ',left=' + (Math.ceil(screen.width - width) / 2) + ',top=50,scrollbars=yes,resizable=yes,location=no,menubar=no,toolbar=no');
    popup.focus();
    return false;
}

/******************************************************************************
 * Viega Download Center
 */
var downloadCenter = (function()
{
    return {
        /**
         * Inits accordion effect, handles hash parameters
         */
        initToggles: function()
        {
            var $dynSections = $('div.impanded, div.expandend');
            // Expand sections if URL contains hash value, otherwise expand first section
            if (window.location.hash !== '' && window.location.hash !== '#CatalogInfo')
            {
                $dynSections.filter(window.location.hash).removeClass('impanded').addClass('expanded').end();
            } else {
                $dynSections.eq(0).removeClass('impanded').addClass('expanded').end();
            }
        
            $('h4', $dynSections).click(function()
            {
                $dynSections.removeClass('expanded').addClass('impanded');
                var $activeSection = $(this).parent();
                $activeSection.toggleClass('impanded').toggleClass('expanded');
                window.location.hash = $activeSection.hasClass('impanded') ? '' : $activeSection.attr('id');
            });
            
            // whatever:hover for IE
            if (isIE)
            {
                $('h4', $dynSections).mouseover(function()
                {
                    $('span', this).css({
                        'text-decoration': 'underline',
                        'cursor': 'pointer'
                    });
                })
                .mouseout(function()
                {
                    $('span', this).css({
                        'text-decoration': 'none',
                        'cursor': 'default'
                    });
                });
            }
        },
        
        /**
         * Attach parameters to the form action, according to selected attributes
         */
        submitSearch: function()
        {
            var formAction = "downloadcenter_197.html?state=Search&show=";
            var categories = "|Product_1|";
            var downloadForm = $("form[name='dl_searchMask']");
            if ($("input[name='chk_solution']:checked", downloadForm).length !== 0) { categories += "Product_2|"; }
            if ($("input[name='chk_fileType']:checked", downloadForm).length !== 0) { categories += "Product_3|"; }
            formAction += categories + '#searchAnchor';
            downloadForm.attr('action', formAction).submit();
        }
    };
})();

/******************************************************************************
 * Viega Consumer Application
 * 
 * http://www.viega.de/visign/
 */
var consumer = {
    exitApplication: function() { window.location.href = '/'; }
};

/******************************************************************************
 * Viega Product Catalog
 * Only used for country websites, will successively be replaced by dynamic catalog
 * 
 * Initializes toggeling of catalog tabs
 * 
 * @deprecated
 */
function initCatalogContainer()
{
    catNavigation = document.getElementById('CatalogNavigation');
    catNavLinks = catNavigation.getElementsByTagName('a');
    catNavSpans = catNavigation.getElementsByTagName('span');
    catNavLinks[0].onclick = function ()
    {
        catNavSpans[0].className = 'on';
        catNavSpans[1].className = '';
        document.getElementById('CatalogInfo').style.display = 'block';
        document.getElementById('CatalogAssortment').style.display = 'none';
    };
    catNavLinks[1].onclick = function ()
    {
        catNavSpans[0].className = '';
        catNavSpans[1].className = 'on';
        document.getElementById('CatalogInfo').style.display = 'none';
        document.getElementById('CatalogAssortment').style.display = 'block';
    };
}
 
/******************************************************************************
 * webtrekk - Custom website tracking functions
 * 
 * http://viega.de/viega/js/heatmap_config.js <-- per FTP
 * http://viega.de/viega/js/webtrekk.js       <-- per CMS
 */
var webtrekk = function()
{
    return {
        
        /**
         * Customized Webtrekk function, submits AJAX request instead of creating an inline image
         * @param {String} p        Tracking parameter
         * @param {String} mode     Tracking mode (click/link)
         */
        sendinfo: function(param, mode) {
            var p = "";
            if (param){ p += "&ct=" + wt_escape(wt_maxlen(param, 255)); } 
            if (p) {
                //wt_quicksend();
                if (!wt_dm || !wt_ci) { return; }
                // Ajax call to http(s)://www.viega.xx/webtrekk/ gets Redirected to http(s)://img04.webtrekk.net/
                var wt_url = "/webtrekk/" + wt_ci + "/wt.pl?p=" + wt_version + "," + wt_escape(wt_be.split(";")[0]) + ",1," + wt_baseparams() + p + wt_encoding();
                $.get(wt_url);
            }
        },
        
        /**
         * Sanitize page headline: Remove HTML, transform colons and spaces in lowercase string
         * 
         * @param {String} str
         */
        sanitizeHeadline: function(str)
        {
            str = $('<div></div>').html(str).text();  // Decode HTML enities
            str = str.replace(/<[^>]*>/g, '');        // Remove HTML tags
            str = str.replace(/[!%&\/\+\']/g, '');    // Filter special chars
            str = str.toLowerCase();
            str = str.replace(/:/g, '-');
            str = str.replace(/\s/g, '_');
            return str;
        },
        
        /**
         * Get logged in user name from cookie and calculate checksum
         * 
         * @return checksum of user name
         */
        getLoginName: function()
        {
            var cookieUsername = document.cookie.match(/viega_login=(.*?);/i);
            if (cookieUsername && cookieUsername.length === 2) {
                cookieUsername = cookieUsername[1];
                
                var result = '';
                var salt = 0;
                for (var i = 0; i < cookieUsername.length; i++) {
                    salt = (i === 0) ? 23 : parseInt(cookieUsername.charCodeAt(i - 1), 10);
                    result += (parseInt(cookieUsername.charCodeAt(i), 10) ^ salt).toString(16);
                }
                result = result.toUpperCase();
            }
            return (result ? result : '');
        },
    
        
        /**
         * Track click information from flash applications
         * 
         * @param {String} webtrekkParameter
         * @param {String} track
         */
        flashInformation: function(webtrekkParameter, track)
        {
            var wtParameter = [];
            if (webtrekkParameter.indexOf('http') !== -1) {
                wtParameter = [wt_be + ".flash." + track, 'click'];
            } else if(webtrekkParameter.indexOf('hotspot') !== -1) {
                wtParameter = [wt_be1 + ".flash." + webtrekkParameter, 'click'];
            } else if(webtrekkParameter.indexOf('contact') !== -1) {
                wtParameter = [wt_be1 + ".flash." + webtrekkParameter, 'click'];
            } else {
                wtParameter = [wt_be + ".flash." + webtrekkParameter];
            }
            
            if (wtParameter.length == 1) {
                wt_sendinfo(webtrekk.sanitizeHeadline(wtParameter[0]));
            } else {
                wt_sendinfo(webtrekk.sanitizeHeadline(wtParameter[0]), wtParameter[1]);
            }
        },
        
        /**
         * Link handling for flash applications: Trigger webtrekk and open URL
         * 
         * @param {String} url
         * @param {String} track
         */
        flashGetUrl: function(url, track)
        {
            if (window.wt_sendinfo) { webtrekkFlashInformation(url, track); }
            window.setTimeout(
                function() {
                    // Check for missing http://
                    if (!(/^http:\/\//i).test(url)) { url = 'http://' + url; }
                
                    // TODO: Only pages from www.viega.de should be loaded inside the frameset
                    //if (/(html?|\/)$/i.test(url)) {
                    //    showWebsite(url);
                    //} else {
                        var newWindow = window.open(url);
                        // Open link in current location if popup blocker is active
                        if (!newWindow) { window.location.href = url; }
                    //}
                }, 250
            );
        },
        
        /**
         * Inititalizes tracking functions on page load
         */
        init: function()
        {
            var wtParameter = [];

            // Handle links        
            $('a:not(.noTrekk)').click(function(e)
            {

                // This line screws up IE ... I don't know why.
                // e.stopPropagation();
            
                var $target = $(e.target);
                var $image;
                var text = '';
                var wtType = '';
            
                // Navigation elements
                if ($target.parents('#logo').length !== 0)           { wtParameter = [wt_be + '.link.logo.logo.click', 'link']; }
                if ($target.parents('#ServiceNavi').length !== 0)    { wtParameter = [wt_be + '.link.service_navi.' + $.trim($target.text()) + '.click', 'link']; }
                if ($target.parents('#top-navigation').length !== 0) { wtParameter = [wt_be + '.link.top_navigation.' + $.trim($target.text()) + '.click', 'link']; }
                if ($target.parents('#sub-navigation').length !== 0) { wtParameter = [wt_be + '.link.sub_navigation.' + $.trim($target.text()) + '.click', 'link']; }
                if ($target.parents('#BreadCrumb').length !== 0)     { wtParameter = [wt_be + '.link.breadcrumb.' + $.trim($target.text()) + '.click', 'link']; }
                if ($target.parents('#Footer').length !== 0)
                {
                    wtType = ($target.attr('onclick') ? 'click' : 'link');
                    wtParameter = [wt_be + '.link.footer.' + $.trim($target.text()) + '.click', wtType];
                }
                
                // Sidebar links
                if ($target.parents('.sideBarContainer').length !== 0) {
                    text = $target.text();
                    if (text === '') {
                        if ($target.attr('alt')) {
                            wtParameter = [wt_be + '.link.side_bar.image.' + $.trim($target.attr('alt').replace(/\./g, "_")) + '.click', 'link'];
                        }
                    } else {
                        wtType = (($target.attr('target') === '_blank' || $target.attr('href').indexOf('mailto') !== -1) ? 'click' : 'link');
                        wtParameter = [wt_be + '.link.side_bar.' + $.trim(text).replace(/\./g, "_") + '.click', wtType];
                    }
                }
                
                // ----------------------------------------------------------------------------
                // Content links
                if ( $target.parents('#PageContent').length !== 0 && ($target.parents('.catNav').length === 0 || $target.parents('.expanded').length === 0 || $target.parents('.impanded').length === 0 || $target.parents('.subCatNav').length === 0) )
                {
                    text = $target.text();
                    if (text === '') {
                        if ($target.attr('alt')) { wtParameter = [wt_be + '.link.page_content.image.' + $.trim($target.attr('alt').replace(/\./g, "_")) + '.click', 'link']; }
                    } else {
                        wtType = (($target.attr('target') === '_blank' || ($target.attr('href') && $target.attr('href').indexOf('mailto') !== -1)) ? 'click' : 'link');
                        wtParameter = [wt_be + '.link.page_content.' + $.trim(text).replace(/\./g, "_") + '.click', wtType];
                    }
                }
                // ----------------------------------------------------------------------------
                
                // Old product catalog: Navigation
                if ($target.parents('#CatalogNavigation').length !== 0 && $target.text() !== '') {
                    wtParameter = [wt_be + '.link.page_content.' + $.trim($target.text()) + '.show', 'click'];
                }
                
                // Old product catalog: Sub navigation
                if ($target.parents('.subCatNav').length !== 0 && $target.text() !== '') {
                    wtParameter = [wt_be + '.link.page_content.' + $.trim($target.text()) + '.show', 'click'];
                }
                
                wt_sendinfo(webtrekk.sanitizeHeadline(wtParameter[0]), wtParameter[1]);
            }); // Handle links: End

            $('#PageContent embed').click(function() {
                wtParameter = [wt_be + '.link.page_content.' + $.trim($(this).attr("name")) + '.click', 'link'];
                wt_sendinfo(webtrekk.sanitizeHeadline(wtParameter[0]), wtParameter[1]);
            });
            // Sidebar image input fields
            $('#SideBar input:image').click(function() {
                wtParameter = [wt_be + '.link.side_bar.image.'+ $.trim($(this).attr("alt")) +'.click', 'click'];
                wt_sendinfo(webtrekk.sanitizeHeadline(wtParameter[0]), wtParameter[1]);
            });
      
            // Form dropdowns
            $('select').change(function()
            {
                wtParameter = [wt_be + '.link.select.'+ $.trim($(this).attr("name")) + '.click', 'click'];
                wt_sendinfo(webtrekk.sanitizeHeadline(wtParameter[0]), wtParameter[1]);
            });
    
            // Accordion for old product catalog and download center
            $("#CatalogInfo div h4 span, #CatalogAssortment div, #PageContent form div div h4 span").mousedown(function()
            {
                if( $(this).html() !== '')
                {
                    var status = ( $(this).parents(".impanded").length !== 0 || $(this).hasClass("impanded") ) ? '.show' : '.hide';
                    wtParameter = [wt_be + '.link.page_content.'+ $.trim($(this).text()) + status, 'click'];
                    wt_sendinfo(webtrekk.sanitizeHeadline(wtParameter[0]), wtParameter[1]);
                }
            });       
        } // init
    }; 
}(); // webtrekk


/**
 * Dummy forwarding functions
 */
function webtrakkEditHeadline(param1) { return webtrekk.sanitizeHeadline(param1); }
function getLoginName(param1) { return webtrekk.getLoginName(param1); }
function exitApplication() { consumer.exitApplication(); }
function showApplication() { consumer.showApplication(); }
function showWebsite(url)  { consumer.showWebsite(url); }
function webtrekkFlashInformation(param1, param2) { webtrekk.flashInformation(param1, param2); }
function flashGetUrl(param1, param2) { webtrekk.flashGetUrl(param1, param2) }
function openNewsletter(url, name, width, height) { openPopup(url, width, height); }

/******************************************************************************
 * Initialize when DOM is ready
 */

try {
    jQuery(function()
    {
        // Website tracking
        if (window.wt_sendinfo)
        {
            // Init Webtrekk variables
            if (document.cookie) { var wt_cd = webtrekk.getLoginName(); }
            webtrekk.init();
        }
        // Dropdown navigation in IE
        if (isIE)
        {
            var topNavigation = $('#top-navigation > li')
                .mouseover(function(){ $(this).addClass('over'); })
                .mouseout(function(){ $(this).removeClass('over'); })
                .find('li:last-child').addClass('last');

            $('#Content').pngFix();
        }
    })();
} catch(e) {}

