﻿// Load user tags ajax style
var loaded = "n";
var tizCount = 0;

function loadUserTags()
{
    // only make one trip to the server 
    if (loaded == "n")
    {
        var loader = "<img src='/images/loaders/17-1.gif' />";
        $get('loadingMsg').innerHTML = "loading tags..." + loader;
        PageMethods.LoadUserTags(onSucceeded, onFailed);        
    }        
}

function onSucceeded(retText) 
{    
    $get('loadingMsg').style.display = 'none';
    $get('tagsMessage').innerHTML = retText;
    loaded = "y";
}

function onFailed(error)
{
    $get('loadingMsg').innerHTML = "";
    alert(error.get_message());
    //$get('tagsMessage').innerHTML = "error!";
}

function UnCacheTags()
{
    loaded = "n";
    loadUserTags();
}


function UnCacheTagsAndHistory()
{        
    UnCacheTags();
    showAllTizmos();    
    AddHistoryPoint("");    
}

//Toggle tags div
function ToggleTags()
{
    var tagBox = $get('tagsBox');
    Effect.toggle(tagBox, 'slide', {duration:0.3});
    var link = $get('tagsLink');
    link.innerHTML = (link.innerHTML != 'Hide Tags' ? 'Hide Tags' : 'View Tags' );    
}

function FilterTizmos(tag)
{        
    var tizCount = 0;
    //assign hidden field to selected tag to restore state in async postback
    $get(hfSelectedTag).value = tag;
    
    //get all nodes
    var arrTizmos = $get("tizmos").childNodes;
    
    for (var i = 0; i < arrTizmos.length; i++)
    {
        var node = arrTizmos[i];
        if (node.nodeType == 1) //only gets elements - no whitespace, etc...
        {
            node.style.display = 'block';
            //hide tizmos that match selected tag
            if (node.title.indexOf(tag) == -1)
            {                
                node.style.display = 'none';
            }
            else 
            {
                tizCount++;
            }
        }
    } 
    
    //When deleting, if someone deletes the last tizmo with a specific tag, we need to show all to avoid an empty screen
    if (tizCount == 0)
    {
        showAllTizmos();
        return;
    }
    
   
    //Set title and view all link since some tizmos are still on the page
    
    var viewAllLink = "<a onclick='showAllTizmos(); AddHistoryPoint(\"\"); return false;' href='#'>All</a>";
    $get('tagcrumb').innerHTML = '&nbsp;[ ' + viewAllLink + ' > ' + tag + ' ]';
}

function AddHistoryPoint(tag)
{
  if (tag == "")
  {
    Sys.Application.addHistoryPoint({t: "*"}, "Showing All Tizmos  - See and Access Your Favorite Sites Anywhere");
  }
  else
  {
    Sys.Application.addHistoryPoint({t: tag}, "Tizmos Tagged: " + tag + " - See and Access Your Favorite Sites Anywhere");
  }
}

function showAllTizmos()
{
    $get(hfSelectedTag).value = "";
    var arrTizmos = $get("tizmos").childNodes;
    
    //Loop through each tizmo and show it
    for (var i = 0; i < arrTizmos.length; i++)
    {
        var node = arrTizmos[i];
        if (node.nodeType == 1)
        {
            node.style.display = 'block';
        }
    }
    //$get('mainTitle').innerHTML = "Showing all Tizmos";
    $get('tagcrumb').innerHTML = "";
    
    return false;
}

function onJsNavigate(sender, e)
{    
    var selectedTagState = e.get_state().t;  
    
    if (selectedTagState != "" && selectedTagState != undefined && selectedTagState != "*")
    {      
        FilterTizmos(selectedTagState); // filter to tag stored in history
    }
    else // history is empty so show all
    {
        showAllTizmos();
    }
}
