Tapestry.ErrorPopup = Class.create(Tapestry.ErrorPopup, {
    BUBBLE_HEIGHT: "58px",
    BUBBLE_VERT_OFFSET: -60,
    BUBBLE_HORIZONTAL_OFFSET: 0,

    initialize : function($super, field)    {
      $super(field);
      this.outerDiv.setAttribute("class","t-error-popup");
      }
});


Tapestry.ElementEffect.modal = function(n) {

    var popupEl  = $('changeZone');
    popupEl.setStyle({display:"block"});
    var win = windowSize();
    var popupContent = popupEl.firstDescendant();
    var contentTop = win[1]/2 -(popupContent.getHeight()/2);
    if(contentTop < 0) contentTop = 0;
    popupContent.setStyle({top:contentTop+"px"});
    popupContent.setStyle({left:win[0]/2 -(popupContent.getWidth()/2) +"px"});

};


Tapestry.ElementEffect.highlight = function(n) {
};

Tapestry.ElementEffect.warenkorb = function(n) {
        $$('.t-error-popup').each(function(item) {
            item.remove();
        });
        if($('cartError')) {
            var button = $('cartError').getAttribute("rel");
            button = $(button);
            var text = $('cartError').childNodes[0].nodeValue;
            showErrorPopup(button, text);
        }
        else {
        if($('sprechblase')) {
                var button = $('sprechblase').getAttribute("rel");
                button = $(button);
                Effect.Appear($('sprechblase'));
                positionBubble(button);
            }

            }
};








    function showSuccessMsg() {
        /*$$('#successMsg').each(function(item) {
            item.setStyle({width:"0px",height:"0px",visibility:"hidden"});
            var successText = "";
            if(item.childNodes.length>0) {
                successText = item.childNodes[0].nodeValue;
            }
            load: {
                if(successText) {
                    showNotice(item, successText);
                }
            }
            item.setStyle({width:"",height:"",visibility:"normal"});
        });*/
    }

/*

Event.observe(document, "dom:loaded",  function() {
    preloadImages('.preloadImage');

});
*/



Event.observe(window, 'load', function() {
    init();
});

function windowSize() {
    var myWidth = 0, myHeight = 0;
    if( typeof( window.innerWidth ) == 'number' )
    {
        //Non-IE
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
    } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
        //IE 6+ in 'standards compliant mode'
        myWidth = document.documentElement.clientWidth;
        myHeight = document.documentElement.clientHeight;
    } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
        //IE 4 compatible
        myWidth = document.body.clientWidth;
        myHeight = document.body.clientHeight;
    }
    return new Array(myWidth, myHeight);
}


function showPopup(url){
    new Ajax.Updater('popup', url, {
        method: 'get',
        onComplete: function(transport) {
            var win = windowSize();
            $('popup').setStyle({height:$('container').getHeight()+$('footer').getHeight()+"px"});
            $('popup').setStyle({display:"block"});
            $('popup').setStyle({width:"none"});
            var popupContent = $('popup').firstDescendant();
            popupContent.setStyle({top:win[1]/2 -(popupContent.getHeight()/2) +"px"});
            popupContent.setStyle({left:win[0]/2 -(popupContent.getWidth()/2) +"px"});
            var firstInnerDiv = $('popup').getElementsByTagName("div")[0];
            $('closePopup').setStyle({marginLeft:firstInnerDiv.getWidth()-50+"px"});
            var popupY = win[1]/2 -(firstInnerDiv.getHeight()/2);
            if(popupY <0) {
                popupY = 0;
            }
            firstInnerDiv.setStyle({top:popupY+"px"});
            firstInnerDiv.setStyle({left:win[0]/2 -(firstInnerDiv.getWidth()/2) +"px"});
            firstInnerDiv.setStyle({position:"absolute"});
        }

    });
}


function display_effect(id){
    $(id).setOpacity(0);
    $(id).setStyle({display:"block"});
    new Effect.Opacity($(id), { from: 0, to: 1, duration: 0.5 });
}

function showZoom(){

    $('detailsPic').setStyle({display:"none"});
    display_effect('origImage');

    //if($('mainSlide')) $('mainSlide').setStyle({display:"none"});
    display_effect('zoomImage');

    $('detailsZoomOn').setStyle({display:"none"});
    $('detailsZoomOff').setStyle({display:"block"});

    glassOn(1);


}

function hideZoom(){


    $('origImage').setStyle({display:"none"});
    $('zoomImage').setStyle({display:"none"});
    $('detailsZoomOff').setStyle({display:"none"});

    display_effect('detailsPic');
    if($('mainSlide')) display_effect('mainSlide');
    $('detailsZoomOn').setStyle({display:"block"});
    glassOn(0);

}

function init(){
    $('searchInput').setValue("SUCHE");
    Event.observe($('searchInput'), "click", function(e){
        if($('searchInput').getValue()=='SUCHE'){
            $('searchInput').setValue("");
        }
    }, false);
    Event.observe($('searchInput'), "blur", function(e){
        if($('searchInput').getValue()==''){
            $('searchInput').setValue("SUCHE");
        }
    }, false);

    if($('loginUSERNAME')) {
        $('loginUSERNAME').setValue("E-Mail");
        Event.observe($('loginUSERNAME'), "click", function(e){
            if($('loginUSERNAME').getValue()=='E-Mail'){
                $('loginUSERNAME').setValue("");
            }
        }, false);
        Event.observe($('loginUSERNAME'), "blur", function(e){
            if($('loginUSERNAME').getValue()==''){
                $('loginUSERNAME').setValue("E-Mail");
            }
        }, false);
    }

    /*$('loginPASSWORD').setValue("Passwort");
    Event.observe($('loginPASSWORD'), "click", function(e){
        if($('loginPASSWORD').getValue()=='Passwort'){
            $('loginPASSWORD').setValue("");
        }
    }, false);
    Event.observe($('loginPASSWORD'), "blur", function(e){
        if($('loginPASSWORD').getValue()==''){
            $('loginPASSWORD').setValue("Passwort");
        }
    }, false);
*/
}



function showNotice(element,message) {
    var errorPopup = new Tapestry.ErrorPopup(element);
    errorPopup.showMessage(message);
    errorPopup.outerDiv.setStyle({backgroundImage:"none"});
    errorPopup.outerDiv.setStyle({backgroundColor:"#FF9A00"});
    errorPopup.outerDiv.setStyle({height:"30px"});
    errorPopup.innerSpan.setStyle({backgroundImage:"none"});
    errorPopup.innerSpan.setStyle({height:"20px"});
    errorPopup.innerSpan.setStyle({fontWeight:"bold"});
    setTimeout("this.errorPopup.fadeOut()", 2000);
}

/* show the standard clientside-validation-popup manually with a custom error message */
function showErrorPopup(element,message) {
    Tapestry.currentFocusField = element;
    var errorPopup =  $(element.id+':errorpopup');
    if(errorPopup) errorPopup.remove();
    errorPopup = new Tapestry.ErrorPopup(element);
    errorPopup.showMessage(message);
}


function showError(element,message) {
    var errorPopup = new Tapestry.ErrorPopup(element);
    errorPopup.showMessage(message);
    errorPopup.outerDiv.setStyle({backgroundImage:"none"});
    errorPopup.outerDiv.setStyle({backgroundColor:"red"});
    var count = this.errorPopup.innerSpan.getElementsByTagName("br").length;
    errorPopup.outerDiv.setStyle({height:30*count+ "px"});
    errorPopup.innerSpan.setStyle({backgroundImage:"none"});
    errorPopup.innerSpan.setStyle({minHeight:"20px"});
    errorPopup.innerSpan.setStyle({fontWeight:"bold"});
    setTimeout("this.errorPopup.stopAnimation()",1000);
//    setTimeout("this.errorPopup.fadeOut()", 5000);
}

function closePopup(){
    $('popup').setStyle({display:"none"});
    $('popupContent').remove();
}
function closeChangeZone() {
    $('changeZone').setStyle({display:"none"});
    $('popupContent').remove();
}


function positionBubble(button) {
    var BUBBLE_VERT_OFFSET = -72;
    if(button.id == 'addToCartButton') BUBBLE_VERT_OFFSET = -60;
    var BUBBLE_HORIZONTAL_OFFSET = 0;
     var BUBBLE_WIDTH = "auto";
     var BUBBLE_HEIGHT = "58px";

    var button_x = Position.positionedOffset(button)[0];
    var button_y = Position.positionedOffset(button)[1];

    $('sprechblase').setStyle ({
            top: (button_y + BUBBLE_VERT_OFFSET) + "px",
            left: (button_x + BUBBLE_HORIZONTAL_OFFSET) + "px",
            //width: BUBBLE_WIDTH,
            height: BUBBLE_HEIGHT
    });
    setTimeout(function() {Effect.Fade($('sprechblase'));}, 3000);
}

function hideBubble() {
    $('sprechblase').toggle();
}



function preloadImages(id){

    $$(id).each(function(image) {
        var orig_src = image.src;

        if (image.complete) {
                image.setStyle({visibility: "visible" });
        } else {
            image.onload = function() {
                image.setStyle({visibility: "visible" });
            }.bind(this);
        }
        image.src         = "/images/blank.gif";
        image.setStyle({ backgroundImage: 'url(' + "/images/spinner.gif" + ')', backgroundPosition: '50% 50%', backgroundRepeat: 'no-repeat'});
        var newImage     = null;
        newImage         = new Image();
        newImage.src     = orig_src;

        if (newImage.complete) {
            new Effect.Opacity(image, { from: 1, to: 0, duration: 0.5, afterFinish:function(){
                image.src     = newImage.src;
                new Effect.Opacity(image, { from: 0, to: 1, duration: 0.5 });
            } });

        } else {
            newImage.onload = function() {
                new Effect.Opacity(image, { from: 1, to: 0, duration: 0.5, afterFinish:function(){
                    image.src     = newImage.src;
                    if (image.complete) {
                            new Effect.Opacity(image, { from: 0, to: 1, duration: 0.5 });
                    } else {
                        image.onload = function() {
                            new Effect.Opacity(image, { from: 0, to: 1, duration: 0.5 });
                        }
                    }
                } });
            }.bind(this);
        }
    });

}


function display_effect(id){
    new Effect.Opacity($(id), { from: 1, to: 0, duration: 0 });
    $(id).setStyle({display:"block"});
    new Effect.Opacity($(id), { from: 0, to: 1, duration: 0.5 });
}




function showSlider(slide){
    if($('origImage').getStyle("display") != "block"){
        $(slide).setOpacity(0);

        var topPos = Position.positionedOffset($('detailsIcos'))[1] + 30;
        $(slide).setStyle({top:topPos+"px"});

        $(slide).setStyle({display:"block"});
        new Effect.Opacity($(slide), { from: 0, to: 1, duration: 0.5 });
    }
}

function hideSlider(){
    if($('origImage').getStyle("display") != "block"){
        if($('fitSlide') && $('fitSlide').getStyle("display") == "block"){
            new Effect.Opacity($('fitSlide'), { from: 1, to: 0, duration: 0.5, afterFinish: function(){
                $('fitSlide').setStyle({display:"none"});
            } });
        }
        if($('detailsSlide') && $('detailsSlide').getStyle("display") == "block"){
            new Effect.Opacity($('detailsSlide'), { from: 1, to: 0, duration: 0.5, afterFinish: function(){
                $('detailsSlide').setStyle({display:"none"});
            } });
        }
        if( $('pflegehinweiseSlide') && $('pflegehinweiseSlide').getStyle("display") == "block"){
            new Effect.Opacity($('pflegehinweiseSlide'), { from: 1, to: 0, duration: 0.5, afterFinish: function(){
                $('pflegehinweiseSlide').setStyle({display:"none"});
            } });
        }
    }
}


function handle(delta) {
    bigSlider.setValueBy(delta*20*(-1));
}

function wheel(event){
    var delta = 0;
    if (!event) event = window.event;
    if (event.wheelDelta) {
        delta = event.wheelDelta/120;
        if (window.opera) delta = -delta;
    } else if (event.detail) {
        delta = -event.detail/3;
    }
    if (delta)
        handle(delta);
        if (event.preventDefault)
                event.preventDefault();
        event.returnValue = false;
}

function altImageSelected(smallUrl) {

    var mediumImgEl1 = $('productMain');
    var mediumImgEl2 = $('productImage');
    var largeImgEl = $('productZoomed');
    var imgname = smallUrl.substring(smallUrl.lastIndexOf("/"));
    var mediumUrl = "/images/products/detail"+imgname;
    mediumImgEl1.setAttribute("src", mediumUrl);
    mediumImgEl2.setAttribute("src", mediumUrl);
    var largeUrl = "/images/products/large"+imgname;
    largeImgEl.setAttribute("src", largeUrl);
    $('detailsZoomOn').show();

}



function onImgErrorSmall(source) {
    var parent = $(source.id).parentNode;
    parent.onclick = function() {};
    source.src = "/images/products/no-image-100px.gif";
    source.onerror = "";
    $('detailsZoomOn').show();
    $$('.detailsImgContainer').each(function(item) {
            item.setStyle({border:"solid 1px #ffffff"});
        });
    $(parent).setStyle({cursor:"default"});
    return true;
}

function onImgErrorDetail(source) {
    var parent = $(source.id).parentNode;
    parent.onclick = function() {};
    source.src = "/images/products/no-image-200px.gif";
    source.onerror = "";
    $('detailsZoomOn').hide();
    return true;
}

