// defaultProps settings and extra code for tooltips using ajax
// for use with dyn-web.com tooltips code

dw_Tooltip.defaultProps = {
    content_source: 'ajax',
    actuatorQual: 'queryVal',
    queryVal: 'prodID'
}

dw_Tooltip.request = null;
dw_Tooltip.requestFailure = function(req) {
    // message on failure (req.statusText not always available for firefox)
    var msg = 'Data unavailable';
    dw_Tooltip.respRecd = true;
    dw_Tooltip.writeTip(msg, true);
    dw_Tooltip.adjust();
}

// Called from dw_Tooltip.getActuatorInfo for ajax requests
// id is value of dw_Tooltip.defaultProps.queryVal for actuator
// useful for holding retrieved data in content_vars
function dw_TooltipRequest(reqData, id) {
    // page that performs the query 
    //var url = '/livepages/test/ajax_tooltips/lookup.php';
    var url = '/cms/common/ajax_tooltips/lookup.php';
    // append request data and timestamp (to avoid caching)
    // dw_Tooltip.getActuatorInfo could pass tgt if entire query string needed for request
    url += '?' + reqData + '&rnd=' + new Date().getTime(); 
    
    // abort any pending tooltip request
    if ( dw_Tooltip.request ) {
        dw_Tooltip.request.abort();
    }
    // set success and failure handlers
    var callback = {
        success: function(req) { dw_updateTooltip(req, id); },
        failure: dw_Tooltip.requestFailure
    }
    
    dw_Tooltip.request = dw_XHR.makeRequest(url, callback );
}

function dw_updateTooltip(req, id) {
    // assumes responseText is tooltip content 
    var msg = req.responseText;
    
    // if json or xml result, could  parse here 
    
    // could use id to save result in content_vars 
    
    
    dw_Tooltip.respRecd = true;
    dw_Tooltip.writeTip(msg, true);
    dw_Tooltip.adjust();
    dw_Tooltip.request = null; // dereference when done
}

dw_Tooltip.on_hide = function() {
    if (dw_Tooltip.request) {
        dw_Tooltip.request.abort();
        dw_Tooltip.resetReqFlags();
    }
} 
