
/** @author WordOver.com */

var checkers  = ['crossword-solver', 'simple-search'];
var bookmarks = [

    ['del.icio.us', 'http://del.icio.us/post?url=[URL]&amp;title=[TITLE]', 'bookmark-delicious.png'],
    ['Digg it', 'http://digg.com/submit?phase=2&amp;url=[URL]&amp;title=[TITLE]', 'bookmark-digg.png'],
    ['Furl', 'http://www.furl.net/storeIt.jsp?t=[TITLE]&amp;u=[URL]', 'bookmark-furl.gif'],    
    ['Yahoo MyWeb', 'http://myweb2.search.yahoo.com/myresults/bookmarklet?t=[TITLE]&amp;u=[URL]', 'bookmark-yahoo-myweb.png'],    
    ['StumbleUpon', 'http://www.stumbleupon.com/submit?url=[URL]&title=[TITLE]', 'bookmark-su.png'],    
    ['Google', 'http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=[URL]&amp;title=[TITLE]', 'bookmark-goog.png'],
    ['Technorati', 'http://www.technorati.com/faves?add=[URL]', 'bookmark-technorati.png'],    
    ['BlinkList', 'http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=[URL]&amp;Title=[TITLE]', 'bookmark-blinklist.png'],    
    ['Newsvine', 'http://www.newsvine.com/_wine/save?popoff=0&amp;u=[URL]&amp;h=[TITLE]', 'bookmark-newsvine.png'],    
    ['ma.gnolia', 'http://ma.gnolia.com/bookmarklet/add?url=[URL]&amp;title=[TITLE]', 'bookmark-magnolia.png'],    
    ['reddit', 'http://reddit.com/submit?url=[URL]&amp;title=[TITLE]', 'bookmark-reddit.gif'],    
    ['Windows Live', 'https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=[URL]&amp;title=[TITLE]', 'bookmark-live.gif'],    
    ['Tailrank', 'http://tailrank.com/share/?title=[TITLE]&amp;link_href=[URL]', 'bookmark-tailrank2.png'],    
    ['Slashdot', 'http://slashdot.org/bookmark.pl?url=[URL]&amp;title=[TITLE]', 'bookmark-slashdot.png'],    
    ['Facebook', 'http://www.facebook.com/sharer.php?u=[URL]', 'bookmark-facebook.gif']

];

/**
 *    Search Choice
 *    @param link checker
 */
function searchChoice(link)
{
   var id = link.id.substr(0, link.id.length - ('-link').length);
   if ($(id).style.display != ''){
      for (var i = 0; i < checkers.length; i++){
         if (id == checkers[i]){
            $(checkers[i]).style.display       = '';
            slowlyShow($(checkers[i]), 0, 1);
            $(checkers[i] + '-link').className = 'select';
         }
         else{
            $(checkers[i]).style.display       = 'none';
            $(checkers[i] + '-link').className = '';
         }
      }
   }
}

/** 
 *  Create Url's
 *  @param uId
 */
function createUrls(uId)
{
   urllink = new Array();
   namelink = new Array();
   word = $(uId).innerHTML;
   strresult = "";
   namelink[0] = "Encarta World Dictionary";
   urllink[0] = "http://encarta.msn.com/dictionary_/" + word + ".html";
   namelink[1] = "OneLook Dictionaries";
   urllink[1] = "http://www.onelook.com/?w=" + word;
   namelink[2] = "Merriam-Webster";
   urllink[2] = "http://www.m-w.com/cgi-bin/dictionary?book=Dictionary&va=" + word + "&x=0&y=0";
   namelink[3] = "Google Search";
   urllink[3] = "http://www.google.com/search?q=" + word;
   for (i = 0; i < urllink.length; i ++)
   {
      strresult += "<a href=\"" + urllink[i] + "\" target=\"_blank\">" + namelink[i] + "</a>";
      if (i < urllink.length - 1) strresult += ", ";
   }
   $(uId).innerHTML = strresult;
}

/**
 *   Slowly Show for Element
 *   @param 
 */
function slowlyShow(elm, start, stop)
{
   elm.setOpacity(start);
   if (start < stop){ setTimeout( function(){ slowlyShow(elm, start+0.01, stop); }, 1 ); }
}

/**
 *    Select Word Length
 *    @param length length of word
 */
function selectWordLength(length)
{
   $('crossword-solver-length').value = length;
   for (var i = 0; i < 24; i++){
      crossword_solver_cells[i].style.display = (i < length) ? '' : 'none';
   }
}

/**
 *    Symbol of select
 *    @param link link
 */
function selectLengthSymbol(link)
{
   if (window.last_selected_number) last_selected_number.style.color = 'rgb(194,201,64)';
   link.style.color = '#959595';
   window['last_selected_number'] = link;   
}

window.addEvent('load', function(){
   
   for (var i = 0; i < checkers.length; i++){ $(checkers[i] + '-link').addEvent('click', function(){ searchChoice(this); }); }
   
   // elements initialization
   window['crossword_solver_links'] = $$('#form-elements td');
   window['crossword_solver_cells'] = document.getElementById('form-elements').getElementsByTagName('input');
   
   // set cursor type
   crossword_solver_links.filter(function(item, index){ if (parseInt(item.innerHTML)) item.style.cursor = 'pointer'; });
   
   crossword_solver_links.addEvent('click', function(){
      var length = parseInt(this.innerHTML);
      if (length > 1){
         selectLengthSymbol(this);
         selectWordLength(length);
      }
   });
   
   // add url's
   if (document.getElementById('url-link')) createUrls('url-link');
   
   /** Bookmarks */
   addBookmarks('bookmarks', bookmarks);
});

/**
 *  Add Bookmarks
 *  @param id ul id
 *  @param bookmarks array
 *  format: ['title', 'url', 'image']
 */
function addBookmarks(id, bookmarks)
{
    var this_url = escape('http://' + location.host + '/');
    var images_prefix = 'http://' + location.host + '/view/images/';
    var this_title = escape('WordDetector.com');
    for (var i = 0; i < bookmarks.length; i++){
        new Element('li').injectInside(id).setHTML('<a target="_blank" href="' + bookmarks[i][1].replace('[TITLE]', this_title).replace('[URL]', this_url) + '" title="' + bookmarks[i][0] + '"><img src="' + images_prefix + bookmarks[i][2] + '" alt="' + bookmarks[i][0] + '" /></a>');
    }
}

window.addEvent('load', function(){
    var ul = $$('.loader');
    if (ul.length) setTimeout(function(){ ul.removeClass('loader'); }, 5000);
});

