/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


function InitImageLayover(){
    /* CONFIG */

    xOffset = 10;
    yOffset = 30;

    // these 2 variable determine popup's distance from the cursor
    // you might want to adjust to get the right result

    /* END CONFIG */
    $("a.preview").hover(function(e){
        this.t = this.title;
        this.title = "";
        var c = (this.t != "") ? "<br/>" + this.t : "";
        $("body").append("<p id='preview'><img id='previewImage' src='"+ this.href +"' alt='Image preview' />"+ c + "</p>");
        $("#preview")
        .css("position","absolute")
        .css("top",(GetTop(e.pageY,yOffset,$('#preview').height(),e.pageX,xOffset,$('#preview').width())) + "px")
        .css("left",(GetLeft(e.pageY,yOffset,$('#preview').height(),e.pageX,xOffset,$('#preview').width())) + "px")
        .css("display","block")
        .fadeIn("fast");
            
    },
    function(){
        this.title = this.t;
        $("#preview").remove();
    });
    $("a.preview").mousemove(function(e){
        $("#preview")
        .css("top",(GetTop(e.pageY,yOffset,$('#preview').height(),e.pageX,xOffset,$('#preview').width())) + "px")
        .css("left",(GetLeft(e.pageY,yOffset,$('#preview').height(),e.pageX,xOffset,$('#preview').width())) + "px");
    });

}

function GetTop(pageY,offsetY,imageHeight,pageX,offsetX,imageWidth){
    if(IsImageOutsideBottom(pageY, offsetY, imageHeight)){
        if(IsImageOutsideRight(pageX, offsetX, imageWidth)){
            //BOTTOM NOK RIGHT NOK
            return pageY - imageHeight -offsetY;
        }else{
            //BOTTOM NOK RIGHT OK
            return $(window).height()+$(window).scrollTop() - imageHeight - offsetY;
        }
    }else{
        //BOTTOM OK RIGHT OK
        if(IsImageOutsideRight(pageX, offsetX, imageWidth)){
        return pageY-offsetY;
        }else{
            return $(window).height()+$(window).scrollTop() - imageHeight - offsetY;
        
        }
    }
}

function GetLeft(pageY,offsetY,imageHeight,pageX,offsetX,imageWidth){
    if(IsImageOutsideRight(pageX, offsetX, imageWidth)){
        //RIGHT NOK
       return $(window).width()-$(window).scrollLeft()-imageWidth - offsetX;
    }else{
        //RIGHT OK
        return pageX+offsetX;
    }
}

function IsImageOutsideBottom(pageY,offsetY,imageHeight){
    if((($(window).height() + $(window).scrollTop()) < (pageY-offsetY+imageHeight))){
        return true;
    }
    else{
        return false;
    }
}

function IsImageOutsideRight(pageX,offsetX,imageWidth){
    //$('#preview').append(($(window).width() + $(window).scrollLeft())+'<'+ (pageX+offsetX+imageWidth)+' ');
    if((($(window).width() + $(window).scrollLeft()) < (pageX+offsetX+imageWidth))){
        return true;
    }else{
        return false;
    }
}

