var couponCodes = new Array();

var closeTimer = null;
var couponUrl = '';
var storeId = 0;
var couponId = '';
var currentMerchant = '';

var isFlash = !(window.clipboardData && clipboardData.setData); // IE?

var hasFlash = navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"];

$(function() {
    if (isFlash && !hasFlash) $('span.messageCouponSpan').each(function() {this.innerHTML = this.attributes.coupon.value;});
});


function getFlashMovie(movieName) {   var isIE = navigator.appName.indexOf("Microsoft") != -1;   return (isIE) ? window[movieName] : document[movieName];  }

function showMessageCoupon(ref, id, mid)
{
    if (isFlash && !hasFlash)
    {
        return;
    }
    
    cRef = document.getElementById('messageCoupon');

    if(closeTimer)
        clearTimeout(closeTimer);

    spanLoc = getCouponXY(ref);

    if (isFlash)
    {
        document.getElementById('messageCouponCb').style.display = 'block';
        document.getElementById('messageCouponCb').style.left = spanLoc.x + 'px';
        document.getElementById('messageCouponCb').style.top = spanLoc.y + 'px';    
        document.getElementById('messageCouponCb').style.width = ref.offsetWidth + 'px';
        document.getElementById('messageCouponCb').style.height = ref.offsetHeight + 'px';        
        document.getElementById('messageCouponCb').onmouseout = function() { startHideCouponTimer() };
        document.getElementById('messageCouponCb').onmouseover = function() { clearTimeout(closeTimer) };
        
        document.getElementById('FWClipboardDoodad').style.width = ref.offsetWidth + 'px';
        document.getElementById('FWClipboardDoodad').style.height = ref.offsetHeight + 'px';
        document.getElementById('FWClipboardDoodad2').style.width = ref.offsetWidth + 'px';
        document.getElementById('FWClipboardDoodad2').style.height = ref.offsetHeight + 'px';
        
        getFlashMovie('FWClipboardDoodad').sendTextToFlash(couponCodes[id].couponCode, 'clickCoupon');
    }
    else
    {
        ref.onclick = function() { clickCoupon(); };
        ref.onmouseout = function() { startHideCouponTimer() };
    }

    cRef.onclick = function() { clickCoupon(); };
    
    document.getElementById('couponCodeMerchnantName').innerHTML = couponCodes[id].couponCodeMerchant;
    
    couponUrl = couponCodes[id].couponCodeUrl;
    couponId = id;
    messageId = mid;
    currentMerchant = couponCodes[id].couponCodeStoreId;

    cRef.style.left = (spanLoc.x + $(ref).width() + 2) + 'px';
    cRef.style.top = (spanLoc.y - 4) + 'px';
    cRef.zIndex = '200';

    cRef.style.display = 'block';
}

function clickCoupon()
{
    if (!isFlash)
    {
        clipboardData.setData("Text", couponCodes[couponId].couponCode);
    }
    
    var url = '/redirect/bounce.php?fmcid=' + couponId + '&mid=' + messageId + '&url=' + encodeURI(couponUrl);
    var win = window.open(url, 'fwc_' + currentMerchant, '');
    if (!win)
    {
        document.location = url;
    }
    
    return;
}

function rateIsWorking(id, value)
{
    $.getJSON('/query/message_coupon_vote.php', { working : value, couponid : id}, rateIsWorkingCallback);
}

function rateIsWorkingCallback(data)
{
    if (data.error == '1')
    {
        alert('Error: ' + data.message);        
    }
    else
    {
        hideMessageCoupon();
    }
}

function startHideCouponTimer()
{
    closeTimer = setTimeout(hideMessageCoupon, 500);
}

function hideMessageCoupon()
{
    document.getElementById('messageCoupon').style.display = 'none';
    
    if (isFlash)
    {
        document.getElementById('messageCouponCb').style.left = '-1000px';
        document.getElementById('messageCouponCb').style.top = '-1000px';
    }
}

function getCouponXY(obj)
{
    var curLeft = curTop = 0;
    
    if (obj.offsetParent)
    {
        curLeft = obj.offsetLeft;
        curTop = obj.offsetTop;
        while (obj = obj.offsetParent)
        {
            curLeft += obj.offsetLeft;
            curTop += obj.offsetTop
        }
    }

    return { x : curLeft, y: curTop };
}