﻿//
// Image Rollover Support
//
//  Make a construct like:
//  <a href="xyz" class="rollover"><img src="imageoff.gif" /></a>
//
//  Then make sure images named "imageoff.gif" and "imageon.gif" exist.  
//  You're done. (works with any file extension).
//
//  Based on Langridge p. 34, but fixed to work with multiple child nodes
//  of the <a>.
//

// From an event handler, get the Anchor element in which the event occurred.
function findAnchorTarget(e)
{
    var anchor = YAHOO.util.Event.getTarget(e);
    if ( !anchor ) return null;
 
    while (anchor != document.body && anchor.nodeName.toLowerCase() != 'a')
        anchor = anchor.parentNode;
 
    if ( anchor.nodeName.toLowerCase() != 'a' )
        return null;
 
    return anchor;
}

function rollover_mouseover(e)
{
    var target = findAnchorTarget(e);
    if ( !target ) return;
 
    var img_tag = target.getElementsByTagName('img')[0];
    img_tag.src = img_tag.src.replace(/(off)(\.[^.]+)$/, 'on$2');
}

function rollover_mouseout(e)
{
    var target = findAnchorTarget(e);
    if ( !target ) return;    
    
    var img_tag = target.getElementsByTagName('img')[0];
    img_tag.src = img_tag.src.replace(/(on)(\.[^.]+)$/, 'off$2');
}

function rolloveri_mouseover(e) // for inputs, as rendered by asp:ImageButton
{
    var target = YAHOO.util.Event.getTarget(e);
    target.src = target.src.replace(/(off)(\.[^.]+)$/, 'on$2');
}

function rolloveri_mouseout(e)
{
    var target = YAHOO.util.Event.getTarget(e);
    target.src = target.src.replace(/(on)(\.[^.]+)$/, 'off$2');
}

var imgArray = [];
function setupRollovers()
{
    if ( !document.getElementsByTagName)
        return;

    var all_links = document.getElementsByTagName('a');

    for (var i = 0; i < all_links.length; i++)
    {
        var link = all_links[i];
        if ( link.className && (' ' + link.className + ' ').indexOf(' rollover ') != -1 )
        {            
            YAHOO.util.Event.addListener(link, "mouseover", rollover_mouseover);
            YAHOO.util.Event.addListener(link, "mouseout", rollover_mouseout);
            if ( typeof link.src != 'undefined' )
            {
                var onlink = link.src.replace(/(off)(\.[^.]+)$/, 'on$2');
                imgArray[onlink] = new Image();
                imgArray[onlink].src = onlink;
            }
        }
    }
    
    all_links = document.getElementsByTagName('input');

    for (var i = 0; i < all_links.length; i++)
    {
        var link = all_links[i];
        if ( link.className && (' ' + link.className + ' ').indexOf(' rollover ') != -1 )
        {            
            YAHOO.util.Event.addListener(link, "mouseover", rolloveri_mouseover);
            YAHOO.util.Event.addListener(link, "mouseout", rolloveri_mouseout);
            if ( typeof link.src != 'undefined' )
            {
                var onlink = link.src.replace(/(off)(\.[^.]+)$/, 'on$2');
                imgArray[onlink] = new Image();
                imgArray[onlink].src = onlink;            
            }
        }
    }    
}

function mouseOverBadge(firstTarget, secondTarget, thirdTarget){
     YAHOO.util.Dom.addClass(firstTarget, 'cihover');
     setOpacityById(secondTarget, 60);
   document.getElementById(thirdTarget).style.display='block';
}

function mouseOutBadge(firstTarget, secondTarget, thirdTarget){
     YAHOO.util.Dom.removeClass(firstTarget, 'cihover');
     setOpacityById(secondTarget, 100);
   document.getElementById(thirdTarget).style.display='none';
}

function RemoveRingtone(id, callback, favorite)
{
    YAHOO.util.Connect.asyncRequest('POST', '/ajax/removeringtone/', { success: callback }, 'type=' + (favorite ? 'favorite' : 'ringtone') + '&id=' + id);
}

function RemoveBadge(sender, id, contentType, favorite)
{
    var confirmation;
    
    if( favorite )
        confirmation = 'Are you sure you want to remove this item from your favorites?';
    else 
        confirmation = 'Are you sure you want to remove this ' + contentType + ' from your history?';
    
    if ( confirm( confirmation ) )
    {
        RemoveRingtone(id, function () { sender.parentNode.removeChild(sender); }, favorite);
    }
}

YAHOO.util.Event.onDOMReady(setupRollovers);