﻿
function acceptInvite(invId)
{               
    hideInvitationReceived();
    
    var ajax = new Ajax.Updater('inviteChk', '/invitations/accept.aspx', { parameters:'invId=' + invId, method:'get', onComplete: inviteAccepted });                        
}   

function checkInvitations()
{
    var ajax = new Ajax.Updater('inviteChk', '/invitations/check.aspx', { method:'get', onComplete: checkResponse });        
}

function checkResponse(req)
{
    // show the invitation if inv id present            
    if (parseInt(req.responseText) > 0)  
        showInvitationReceived(req.responseText);
    else    
    {
        // start the timer to check again in 15 seconds
        setTimeout("checkInvitations()", 15000);        
    }
}

function declineInvite(invId) 
{
    hideInvitationReceived();
    
    var ajax = new Ajax.Updater('inviteChk', '/invitations/decline.aspx', { parameters:'invId=' + invId, method:'get', onComplete: checkResponse });                    
} 

function hideInvitationReceived() 
{
    Modalbox.hide();
}    

function inviteAccepted(req)
{
    if (req.responseText.length > 0) 
        parent.location.href = '/LiveSwap.aspx?swapId=' + req.responseText;
    else 
    {
        // this should never occur unless there was a db error
        alert('Sorry, a database error has occurred. Click ok to continue');
        
        setTimeout("checkInvitations()", 15000);    
    }
}

function sendInvite(itemId)
{           
    // send the envite, on invite completion, show the modal box
    new Ajax.Updater('inviteTxt', '/invitations/send.aspx', { parameters:'itemId=' + encodeURIComponent(itemId), asynchronous:true, evalScripts:true});
    
    showInviteCountdown(itemId)       
}

function showInviteCountdown(itemId)
{
    showTimeRemaining(60, itemId);
    
    Modalbox.show($('invitationSent'), {title: "Awaiting Reply to Your Invitation", height: 400, width: 400, overlayClose:false });                                   
}

function showInvitationReceived(invId) 
{                        
    document.getElementById('links').innerHTML = "<a href=\"JavaScript:acceptInvite('" + invId + "')\">Yes</a> <a href=\"JavaScript:declineInvite('" + invId + "');\">No</a>";
    
    Modalbox.show($('invitationReceived'), {title: "Invitation Received", height: 400, width: 500, overlayClose:false });     
}

function showTimeRemaining(maxSeconds, itemId)
{            
    var dateDiv = document.getElementById("timeRemaining");    
    
    dateDiv.innerHTML = maxSeconds +  " seconds remaining";
    
    maxSeconds--;
    
    if (maxSeconds > 0)
    {
        // every 5 seconds check if the invite has been accepted
        if (maxSeconds % 5 == 0)
            var ajax = new Ajax.Updater('inviteTxt', '/invitations/send.aspx', { parameters:'itemId=' + itemId + '&expired=0', asynchronous:true, evalScripts:true});
    
        setTimeout("showTimeRemaining(" + maxSeconds + ", " + itemId + ")", 1000);        
    }
    else
    {
        // time expired, show message that offer was not accepted
        var ajax = new Ajax.Updater('inviteTxt', '/invitations/send.aspx', { parameters:'itemId=' + itemId + '&expired=1', asynchronous:true, evalScripts:true});
    }
}

function setCookie(name, value, expires, path, domain, secure) {
  document.cookie= name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else {
    begin += 2;
  }
  var end = document.cookie.indexOf(";", begin);
  if (end == -1) {
    end = dc.length;
  }
  return unescape(dc.substring(begin + prefix.length, end));
}

function hideSpecLayer()
{
    var specLayerDiv = document.getElementById("specLayer");
    var specDetailDiv = document.getElementById("specDetails");
    
    specLayerDiv.style.display = "none";
    specLayerDiv.style.visibility = "hidden";
}

function showSpecDetails()
{
    var specLayerDiv = document.getElementById("specLayer");

    specLayerDiv.style.display = "block";
    specLayerDiv.style.visibility = "visible";    
}

function showSpecLayer(itemId, az, e) 
{
    var specLayerDiv = document.getElementById("specLayer");
    var specDetailDiv = document.getElementById("specDetails");
    
    var tempX = 0;
    var tempY = 0;
    var offset = 5;
    
    if (document.all) 
    {
        tempX = event.clientX + document.body.scrollLeft;
        tempY = event.clientY + document.body.scrollTop;
    } else {
        tempX = e.pageX;
        tempY = e.pageY;
    }
    
    if (tempX < 0){tempX = 0}
    if (tempY < 0){tempY = 0}
    
    specLayerDiv.style.top = (tempY + offset - 195) + 'px';
    specLayerDiv.style.left = (tempX + offset) + 'px';    
            
    var ajax = new Ajax.Updater('specDetails', '/swapbar/specs.aspx', { parameters:'itemId=' + itemId + '&az=' + az, method:'get', onComplete: showSpecDetails });                        
}
