﻿

// cache action icons

function PopulatePageIndex(TotalCount,CurrentIndex)
{
    var theElement = document.g.p;
        theElement.length = TotalCount;
        for (var x=0;x<theElement.length;x++)
        {
            theElement.options[x].text = x+1;
            theElement.options[x].value = x+1;
        }
        theElement.selectedIndex = CurrentIndex;
}

var arrDetailImg = new Array("email","save","saved","remove","removed","print","apply","map");
                            
var arrDetailStates = new Array("norm","over","bubble");
    
for (x=0;x<arrDetailImg.length;x++)
{
    for (y=0;y<arrDetailStates.length;y++)
    {
        eval(arrDetailImg[x] + "_" + arrDetailStates[y] + " = new Image();");
        eval(arrDetailImg[x] + "_" + arrDetailStates[y] + ".src = '../Images/detail/" + arrDetailImg[x] + "_" + arrDetailStates[y] + ".png';");
    }
}
var email_hot = new Image();
    email_hot.src = '../Images/detail/email_hot.png';


/*========================================================\
|   DetailBubble
|   requires [String] bubbletype
|   opens descriptive bubble above detail action buttons
`========================================================*/
function DetailBubble(bubbletype)
{
    var AB = document.getElementById("actionbubble");
    var AI = document.getElementById("actionicons");
    
    if (bubbletype == undefined)
    {
        AB.style.left = "1px";
        AB.style.top = "1px";
        AB.style.visibility = "hidden";
        return;
    }
    
    var AILeft = RecurseOffset(AI,"Left");
    var AITop = RecurseOffset(AI,"Top");
    
        eval("AB.src = " + bubbletype + "_bubble.src;");
        AB.style.left = (AILeft) + "px";
        AB.style.top = (AITop - AB.offsetHeight) + "px";
        AB.style.visibility = "visible";
}


/*========================================================\
|   SaveJob
|   requires [String] jobid
|   saves job if user is logged in
`========================================================*/
function SaveJobDetail(jobid)
{
    if (UserCookieID==null) // defined in top.aspx
    {
        window.alert("Please register to save jobs.");
        return;
    }
    else if (MaxJobsSaved==true)
    {
        window.alert("You have already saved the maximum number of saved jobs.");
        return;
    }
    else
    {

        var ico = document.getElementById("jobicon" + jobid);
            ico.src = remove_over.src;
            DetailBubble("saved");
        var tt = setTimeout("DetailBubble()",1000);
                
            //======================================================== reset event listeners
            ico.onclick = function()
            {
                RemoveJobDetail(jobid);
            }
            ico.onmouseover = function()
            {
                ico.src = remove_over.src;
                DetailBubble('remove');
            }
            ico.onmouseout = function()
            {
                ico.src = remove_norm.src;
                DetailBubble();
            }
        document.getElementById("savejobtarget").src = "../Includes/Components/SaveJob.aspx?JobID=" + jobid + "&Action=Save";
        resetSavedJobs(+1);
    }
}
/*========================================================\
|   RemoveJob
|   requires [String] jobid, [String] rowtype
|   removes saved job if user is logged in
`========================================================*/
function RemoveJobDetail(jobid)
{
    if (UserCookieID==null) // defined in top.aspx
    {
        window.alert("Please register to save jobs.");
        return;
    }
    else
    {
        var ico = document.getElementById("jobicon" + jobid);
            ico.src = save_over.src;
            DetailBubble("removed");
        var tt = setTimeout("DetailBubble()",1000);
            
            //======================================================== reset event listeners
            ico.onclick = function()
            {
                SaveJobDetail(jobid);
            }
            ico.onmouseover = function()
            {
                ico.src = save_over.src;
                DetailBubble('save');
            }
            ico.onmouseout = function()
            {
                ico.src = save_norm.src;
                DetailBubble();
            }

        document.getElementById("savejobtarget").src = "../Includes/Components/SaveJob.aspx?JobID=" + jobid + "&Action=Remove";
        resetSavedJobs(-1);
    }
}


/*========================================================\
|   EmailFriend
`========================================================*/
function EmailFriend()
{
    var jdemail = document.getElementById("jdemail");
    var ifr = document.getElementById("componenttarget");
        DetailBubble();
        
    if (jdemail.src == email_hot.src) // close email friend
    {
        ifr.style.left = "1px";
        ifr.style.top = "1px";
        ifr.style.width = "1px";
        ifr.style.height = "1px";
        ifr.style.visibility = "hidden";
        jdemail.src = email_norm.src;
        ifr.src = "../Includes/Components/Default.aspx";
    }
    else // open email friend
    {
            ifr.style.width = "380px";
            ifr.style.height = "320px";
        
        var jdemailLeft = RecurseOffset(jdemail,"Left");
        var jdemailTop = RecurseOffset(jdemail,"Top");
        
            jdemail.src = email_hot.src;
            
        var theForm = document.applydetail;
            theForm.action = "../Includes/Components/EmailFriend.aspx";
            theForm.target = "componenttarget";
            theForm.submit();
            //theForm.action = "../Jobs/SearchResults.aspx"; // reset
            //theForm.target = "_top"; // reset
            
            ifr.style.left = ((jdemailLeft + jdemail.offsetWidth) - ifr.offsetWidth) + "px";
            ifr.style.top = (jdemailTop + jdemail.offsetHeight) + "px";
            ifr.style.visibility = "visible";
    }
}

/*========================================================\
|   PrintJob
`========================================================*/
function PrintJob(jobid)
{   
    var url = "../Jobs/Detail.aspx?jobdetailid=" + jobid + "&print=true";
    var newwin = window.open(url,"newwin","width=500,height=350,menubar=1,resizable=1,scrollbars=1");
}

