var isIeOrOpera = $.browser.msie || $.browser.opera;

var isIE6 = false;
if ($.browser.msie && $.browser.version < 7) {
    isIE6 = true;
}

var isIE7 = false;
if ($.browser.msie && $.browser.version > 6 && $.browser.version < 8) {
    isIE7 = true;
}

var isIE8 = false;
if ($.browser.msie && $.browser.version > 7 && $.browser.version < 9) {
    isIE8 = true;
}

var isFF2 = false;
if ($.browser.mozilla && (parseFloat($.browser.version) < 1.9)) {
    isFF2 = true;
}


//Timestamp um Caching zu verhindern
$.wwGetTimestamp = function(){

    var timestamp = new Date();
    return timestamp.getTime();
    
};


//Hash Rueckgabe, da in IE7 manchmal der ganze href, nicht nicht der hash ausgegeben wird.
$.wwGetHash = function(href){

    var hash = href;
    if (href.indexOf('#') !== -1) {
        var pos = href.indexOf('#') + 1;
        hash = href.substring(pos);
    }
    return hash;
    
};


//Location Rueckgabe, da in IE7 manchmal der ganze href, nicht nicht der href ausgegeben wird.
$.wwGetHref = function(location){

    var location = ' ' + location;
    var href = location;
    if (location.lastIndexOf('/') !== -1) {
        var pos = location.lastIndexOf('/') + 1;
        href = location.substring(pos);
    }
    
    return href;
    
};


//Erstellen des Flyouts
$.wwBuildHover = function(content, target, offsetY, offsetXArrow, sensitive){

    var $appendTarget;
    
    switch (sensitive) {
        case false:
            $appendTarget = $(target).parent();
            break;
        case true:
            $appendTarget = $(target);
        default:
    }
    
    var speed = 300;
    
    //HTML erstellen
    if (isIE6) {
        var html = '<div class="hover">';
        html += '<div class="hoverContent">' + content + '</div>';
        html += '</div>';
    }
    else {
        var html = '<div class="hover"><div class="mod" id="corners-nb"><span class="x1"><span class="x1a"/></span><span class="x2"><span class="x2a"/></span><div class="hoverArrowTop"></div><div class="mod-content">';
        html += '<div class="hoverContent">' + content + '</div>';
        html += '<div class="ft"><div class="ft-content"><div class="hoverArrowBottom"></div></div></div></div></div></div>';
    }
    
    //Zu DOM hinzufuegen
    $appendTarget.append(html);
    $appendTarget.children('div.hover').css({
        visibility: 'hidden'
    });
    setTimeout(function(){
    
        //Positionierung - Berechnung
        var bodyWidth = $('body').width();
        var thisLeft = $(target).position().left;
        var thisTop = $(target).position().top;
        var thisHeight = $(target).height();
        var thisWidth = $(target).width();
        var hoverHeight = $appendTarget.children('div.hover').height();
        var hoverWidth = $appendTarget.children('div.hover').width();
        
        
        if ($.browser.opera && $('#pgLinienuebersicht').length !== 0) {
            offsetY += 90;
        }
        
        if ($('#pgProduktuebersicht').length !== 0 || $('#pgProduktdetailseite').length !== 0) {
            offsetY -= 15;
        }
        
        $('div.hoverArrowTop', $appendTarget).add('div.hoverArrowBottom', $appendTarget).css({
            right: offsetXArrow,
            left: 'auto'
        });
        
        //nach links verschieben, falls Platz rechts nicht reicht (Aufloesung)
        var hoverLeft = thisLeft + (thisWidth - hoverWidth) / 2;
        
        var offsetRight = 20;
        if ($('#pgLinienuebersicht').length !== 0) {
            offsetRight = 20;
        }
        else 
            if ($('#pgProduktFinder').length !== 0) {
                offsetRight = 35;
            }
        
        if (bodyWidth < hoverLeft + hoverWidth + offsetRight + ((bodyWidth - $('.wrapper').width()) / 2)) {
        
            hoverLeft = $('.wrapper').width() - hoverWidth - offsetRight;
            
            var arrowLeft = thisLeft + 5 - hoverLeft;
            $('div.hoverArrowTop', $appendTarget).add('div.hoverArrowBottom', $appendTarget).css({
                left: arrowLeft + 'px'
            });
        }
        var hoverTop = thisTop + thisHeight - hoverHeight - offsetY;
        var headerOffset = -60;
        
        if (isFF2 || isIE7 || isIE6) {
            headerOffset = -20;
        }
        
        //nach unten klappen, weil Platz oben nicht reicht
        if ($(target).attr('id') !== 'intSite' && $('#pgProduktFinder').length !== 0 && hoverTop < headerOffset) {
            hoverTop = thisTop + thisHeight + offsetY - 5;
            $('div.hoverArrowTop', $appendTarget).css({
                display: 'block'
            });
        }
        else {
            $('div.hoverArrowBottom', $appendTarget).css({
                display: 'block'
            });
        }
        
        //Positionierung
        $appendTarget.children('div.hover').css({
            left: hoverLeft + 'px',
            top: hoverTop + 'px',
            visibility: 'visible'
        });
        
        //Einblenden
        if ($.browser.msie) {
            //IE verkraftet opacitiy und pngs nicht 
            $appendTarget.children('div.hover').css({
                display: 'block'
            });
        }
        else {
            $appendTarget.children('div.hover').css({
                display: 'block',
                opacity: 0
            }).animate({
                opacity: 1
            }, {
                duration: speed,
                easing: 'easeInOutQuad'
            });
        }
        
    }, 300);
    
};

//Entfernen des Flyouts
$.wwDestroyHover = function(target, sensitive){

    var $appendTarget;
    
    switch (sensitive) {
        case false:
            $appendTarget = $(target).parent();
            break;
        case true:
            $appendTarget = $(target);
        default:
    }
    
    var speed = 300;
    
    if ($.browser.msie) {
        //IE verkraftet opacitiy und pngs nicht
        $appendTarget.children('div.hover').remove();
    }
    else {
        $appendTarget.children('div.hover').css({
            opacity: 1
        }).animate({
            opacity: 0
        }, {
            duration: speed,
            easing: 'easeInOutQuad',
            complete: function(){
                $(this).remove();
            }
        });
    }
    
};


/*
//Headline Skinning wird iniziiert
$.wwInitCufonElements = function(){

    //Text
    Cufon.replace('h1').replace('h3').replace('h2').replace('#navLeft span.active').replace('#proNav span.active').replace('#ergHeadline').replace('#ergCount').replace('#mkzCount');
    
    //Links
    var linkOptions = {
        hover: true
    };
    Cufon.replace('#proNav a', linkOptions).replace('#proDownloads a', linkOptions).replace('#subNavLeft a', linkOptions).replace('#header a', linkOptions).replace('#navLeft a', linkOptions).replace('a.accLink', linkOptions).replace('#clearMerkzettel', linkOptions).replace('#allMontageanleitungen', linkOptions).replace('#clearMontageanleitungen', linkOptions).replace('#pgLaenderauswahl a', params);
    
    //init Cufon
    Cufon.now();
    
};
*/


//Headline Skinning wird iniziiert
$.wwInitCufonElements = function(){
    
	//Params
    var params = {
        fontFamily: 'Burgbad',
		fontWeight: '400'
    };

    //Text
    Cufon.replace('#pgInspiration div.content div.pages #pager span', params).replace('#pgInspiration #page1 div.head', params).replace('h1', params).replace('h3', params).replace('h2', params).replace('#navLeft span.active', params).replace('#proNav span.active', params).replace('#ergHeadline', params).replace('#ergCount', params).replace('#mkzCount', params);
    
    //Links
    params.hover = true;
    Cufon.replace('#proNav a', params).replace('#proDownloads a', params).replace('#subNavLeft a', params).replace('#header a', params).replace('#navLeft a', params).replace('a.accLink', params).replace('#clearMerkzettel', params).replace('#allMontageanleitungen', params).replace('#clearMontageanleitungen', params);
    
	//Inspiration
	params.fontWeight = '700';
	Cufon.replace('#pgInspiration div.head h4', params);
	
	params.fontWeight = '300';
	Cufon.replace('#pgInspiration div.head h5', params);
	
    //init Cufon
    Cufon.now();
    
};



//Form Skinning wird iniziiert
$.wwInitFormElements = function(){

    $('form').jqTransform({
        imgPath: 'img/formSkinning'
    });
    
};


//Aufruf aus jQuery jqtransform Plugin um an Form noch weitere JS Funktionen anzuhaengen
$.wwFormActive = function(target, type, attr){

    var value;
    switch (type) {
        case 'radio':
        case 'checkbox':
            var value = target.value;
            break;
        case 'select':
            var value = target;
            break;
    }
    
    if ($('#pgProduktFinder').length !== 0 && type === 'radio') {
    
        if (value === 'alle') {
            var sectionTemp = target.id;
            var section = sectionTemp.substring(4);
            $.wwSetCheckboxes(section, 'alle');
            if (!isIE6) {
                $.wwToggleAccordeon('#produktFinder' + section, 'close');
            }
        }
        
        if (value === 'benutzer') {
            var sectionTemp = target.id;
            var section = sectionTemp.substring(8);
            if (!isIE6) {
                $.wwToggleAccordeon('#produktFinder' + section, 'open');
            }
        }
    }
    else 
        if ($('#pgProduktFinder').length !== 0 && type === 'checkbox') {
            var section = target.id;
            $.wwSetCheckboxes(section, attr);
        }
        else 
            if ($('#pgProduktFinder').length !== 0 && type === 'select') {
                $.wwChangeResult();
            }
            else 
                if ($('#pgFaq').length !== 0 && type === 'select') {
                    $.wwShowFaqQuestions();
                }
    
};


//Fehler Felder bei Formularen 
$.wwShowFormError = function(length, dataError){

    for (i = 0; i < length; i++) {
    
        var error = dataError[i].field;
        
        $('input[name=' + error + '][type=text]').parent().parent().parent().addClass('jqTransformInputWrapperError');
        $('select[name=' + error + ']').parent().removeClass('').addClass('jqTransformSelectWrapperError');
        $('input[name=' + error + '][type=checkbox]').parent().addClass('jqTransformCheckboxWrapperError');
        $('input[name=' + error + '][type=radio]').parent().addClass('jqTransformRadioWrapperError');
        $('textarea[name=' + error + ']').parent().parent().parent().parent().parent().addClass('jqTransformTextareaError');
    }
    
};


//Fehler Felder bei Formularen ausblenden
$.wwHideFormError = function(length, dataError){

    $('input[type=text]').parent().parent().parent().removeClass('jqTransformInputWrapperError');
    $('select').parent().removeClass('').removeClass('jqTransformSelectWrapperError');
    $('input[type=checkbox]').parent().removeClass('jqTransformCheckboxWrapperError');
    $('input[type=radio]').parent().removeClass('jqTransformRadioWrapperError');
    $('textarea').parent().parent().parent().parent().parent().removeClass('jqTransformTextareaError');
    
};


//Spezial*** fuer IE6
$.wwPimpIE6 = function(){

    //Seiten Hoehe berechnen
    if ($('div.conRight').length !== 0) {
    
        var pageHeight = $('div.conRight').height() + 400;
        
        $('div.content').css({
            height: pageHeight
        });
    }
    
    //Spezialansicht Produkte Finden
    if ($('#pgProduktFinder').length !== 0) {
        $.wwPimpIE6ProduktFinder();
    }
    
    //Pseudoklasse :hover simmulieren - Nav Header
    $('li', $('#header')).bind('mouseenter', function(){
        $(this).find('div.subnav').css({
            display: 'block'
        });
    });
    
    $('li', $('#header')).bind('mouseleave', function(){
        $(this).find('div.subnav').css({
            display: 'none'
        });
    });
    
    //Pseudoklasse :hover simmulieren - Fachhaendler Merzettel Button
    $('div.item', $('#pgFachhaendler')).bind('mouseenter', function(){
        $(this).find('a.button').css({
            display: 'block'
        });
    });
    
    $('div.item', $('#pgFachhaendler')).bind('mouseleave', function(){
        $(this).find('a.button').css({
            display: 'none'
        });
    });
    
    
};


$.wwPimpFF2 = function(){

    $('div.subnav').css({
        width: '200px',
        left: '-40px'
    });
    
};


//Noscript Elemente entfernen (fuer Opera benoetigt)
$.wwRemoveNoscript = function(){
    $('noscript').remove();
    $('div.noscriptBg').remove();
    $('div.noscriptContent').remove();
};
