var shouldHideHint=true;
var hintHideTimeout=null;
function showHint(element){
    shouldHideHint = false;
    clearTimeout(hintHideTimeout);
    var elem=document.getElementById(element);
    var id = elem.id.split("_");
    
    var el = document.getElementById("elementHint");
    if(el)el.innerHTML="";
    
    
    
    var params="utils/item_commex.jsp?cat="+id[1]+"&item="+id[2];
    var req=new AJAXRequest(params,"elementHint");
    req.doGet();
    
    var position = getElementPosition(elem);  
    var cur_element = document.getElementById("elementHint"); 
    cur_element.style.left=position[1]+10;
    cur_element.style.top=position[0]+elem.offsetHeight;    
    cur_element.style.visibility = "visible";
    //alert(position[1]+":"+position[0]);
}

function showAdditHint(element,param){
    shouldHideHint = false;
    clearTimeout(hintHideTimeout);
    var elem=document.getElementById(element);    
    
    var el = document.getElementById("elementHint");
    if(el)el.innerHTML="";
    
    var x = 0, y = 0;  
  
    var e = window.event;  
  
    if (e.pageX || e.pageY)  
    {  
        x = e.pageX;  
        y = e.pageY;  
    }  
    else if (e.clientX || e.clientY)  
    {  
        x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;  
        y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;  
    }  
    
    
    var params="";    
    params="../utils/item_hint.jsp?item="+elem.id;
    //alert(params);
    var req=new AJAXRequest(params,"elementHint");
    req.doGet();
    
    var position = getElementPosition(elem);  
    var cur_element = document.getElementById("elementHint"); 
    cur_element.style.left=x;
    cur_element.style.top=y;    
    cur_element.style.visibility = "visible";
    //alert(position[1]+":"+position[0]);
}

function recipeHint(element){
    shouldHideHint = false;
    clearTimeout(hintHideTimeout);
    var elem=document.getElementById(element);
    var id = elem.id.split("_");

    var el = document.getElementById("recipeHint");
    if(el)el.innerHTML="";

    var params="prof/recipe_hint.jsp?recipe="+id[1]+"&recipe_type="+id[2];
    var req=new AJAXRequest(params,"recipeHint");
    req.doGet();

    var position = getElementPosition(elem);
    var cur_element = document.getElementById("recipeHint");
    cur_element.style.left=position[1]+10;
    cur_element.style.top=position[0]+elem.offsetHeight;
    cur_element.style.visibility = "visible";
    //alert(position[1]+":"+position[0]);
}

function calendHint(element){
    hideHint("calendHint");
    shouldHideHint = false;
    clearTimeout(hintHideTimeout);
    var elem=document.getElementById(element);
    var id = elem.id.split("|");

    var el = document.getElementById("calendHint");
    if(el)el.innerHTML="";

    var params="calendar/birth_hint.jsp?date="+id[1];
    //alert(params);
    var req=new AJAXRequest(params,"calendHint");
    req.doGet();

    var position = getElementPosition(elem);
    var cur_element = document.getElementById("calendHint");
    cur_element.style.left=position[1]+10;
    cur_element.style.top=position[0]+elem.offsetHeight;
    cur_element.style.visibility = "visible";
    //alert(position[1]+":"+position[0]);
}

function onExtHintOut(name){
    shouldHideHint = true;
    hintHideTimeout = setTimeout("hideHint('"+name+"')", 300);
}

function onRecipeHintOut(){
    shouldHideHint = true;
    hintHideTimeout = setTimeout("hideHint('recipeHint')", 300);
}

function onHintOut(){
    shouldHideHint = true;
    hintHideTimeout = setTimeout("hideHint('elementHint')", 300);
}

function onHintOver(){
    shouldHideHint = false;
}

function hideHint(elem){
    if ( shouldHideHint ){
        var element = document.getElementById(elem);
        element.style.visibility = "hidden"; 
        shouldHideHint = false;
    }
}
