

function setDelibar() {
    
    var event = YAHOO.util.Event;
    var dom   = YAHOO.util.Dom;
    var tab_div = dom.get('db_tabs');
    var results = dom.get('db_results');
    var inaction    = false;
    var displayed   = false;
    var tabIndex    = 0;
    var isIE = navigator.userAgent.indexOf(' MSIE ') > -1;
    
    var sites = [
                  [{title:"Shiny Frog - Mac OSX Software & Web ...", icon:"images/demo/db_shinyfrog_icon.png", url:"http://www.shinyfrog.net", tags:"cool site cocoa web design iphone mac osx", owner:""}, 
                   {title:"Delicious.com", icon:"images/demo/db_delicious_icon.png", url:"http://delicious.com", tags:"cool site sharing bookmark social network", owner:""}, 
                   {title:"Delibar App", icon:"images/demo/db_delibar_icon2.png", url:"http://www.delibarapp.com", tags:"cool site delicious app application mac osx bookmark", owner:""},
                   {title:"Delibar - i use this on mac osx", icon:"images/demo/db_iusethis_icon.png", url:"http://osx.iusethis.com/app/delibar", tags:"cool site delicious app application mac web", owner:""}
                  ],
                  
                  [{title:"Delibar App", url:"http://www.delibarapp.com", icon:"images/demo/db_delibar_icon2.png", tags:"cool sites sharing bookmark social network", owner:""}, 
                   {title:"Shiny Frog - Mac OSX Software & Web ...", icon:"images/demo/db_shinyfrog_icon.png", url:"http://www.shinyfrog.net", tags:"cool sites cocoa web design iphone mac", owner:""}],                

                  [{title:"Img2icns", url:"http://www.img2icnsapp.com/", icon:"images/demo/db_img2icns_icon.png", tags:"app mac osx ", owner:"shinyFriend"}],

                  [{title:"Cool Sites", icon:"images/demo/db_saved_icon.png", url:"", tags:"", owner:"2", sites:[0,2]},
                   {title:"Last Used",  icon:"images/demo/db_saved_icon.png", url:"", tags:"", owner:"1", sites:[2]}, 
                   {title:"Most Used",  icon:"images/demo/db_saved_icon.png", url:"", tags:"", owner:"1", sites:[2]}]            
                ];

    function isEmpty(msg) {

    	if (msg.length === 0) { return true; }

    	for (var i=0; i < msg.length; i++) {
    		if (msg.substring(i,i+1) != ' ') { return false; }
    	}
    	
    	return true;
    }
    
    function endEffect() { inaction = false; }

    function showHideDelibar() {
        
        if(inaction) { return; }

        inaction = true;

        if (displayed) {
            Effect.Fade('db_delibar', {afterFinish:endEffect, duration:0.3});  
        } else {
            Effect.Appear('db_delibar', {afterFinish:endEffect, duration:0.3});
        }

        displayed = !displayed;
    }

    function changeTab() { _changeTab(this.id); }

    function _changeTab(tab_id) {
        dom.removeClass(tab_div, tab_div.className);
        dom.addClass(tab_div, tab_id);

        if (tab_id=='db_tab_bookmark') {      tabIndex = 0; } 
        else if (tab_id=='db_tab_recent') {   tabIndex = 1; }
        else if (tab_id=='db_tab_network') {  tabIndex = 2; }
        else if (tab_id=='db_tab_saved') {    tabIndex = 3; }

        results.innerHTML = '';
        var allcells = '';

        for (i=0; i<sites[tabIndex].length; i++) {
           var site =  sites[tabIndex][i];
                
               var cell;
                
               if (tabIndex == 2) {
                  cell  ='<div class="db_cell db_cell_nosel" id="db_cell'+i+'"><div class="db_cell_icon db_bookmark_icon"><img src="'+site.icon+'"/></div>';
                  cell +='<p class="db_cell_title_short">'+site.title+'</p><p class="db_cell_friend">'+site.owner+'</p><p class="db_cell_url">'+site.url+'</p></div>';               
               } else if (tabIndex == 3) {
               
                  var icons='';
                  for (z=0; z<site.sites.length; z++) {
                    icons += '<img src="'+ sites[0][site.sites[z]].icon+'"/>';
                  }
                  cell  ='<div class="db_cell db_cell_nosel" id="db_cell'+i+'"><div class="db_cell_icon"><img src="'+site.icon+'"/></div>';                
                  cell += '<p class="db_cell_title">'+site.title+'</p><p class="db_saved_counter"><b>'+site.owner +'</b>'+ icons+'<p></div>';
               } else {
                  cell  ='<div class="db_cell db_cell_nosel" id="db_cell'+i+'"><div class="db_cell_icon db_bookmark_icon"><img src="'+site.icon+'"/></div>';
                  cell +='<p class="db_cell_title">'+site.title+'</p><p class="db_cell_url">'+site.url+'</p></div>';               
               }
           

           allcells += cell;            
        }
        
        results.innerHTML = allcells;

        setCellsListeners();
        
        var sb = dom.get('db_searchbox');
        sb.value = '';
        _setPlaceHolder(sb);
        
    }
    
    function cellClick() {
        var cells = dom.getElementsByClassName('db_cell');
        dom.removeClass(cells, 'db_cell_sel');
        dom.addClass(cells, 'db_cell_nosel');
        dom.addClass(this, 'db_cell_sel');
    }
    
    function cellDoubleClick() {

        var i = parseInt(this.id.substring(7), 10);
        var csite = sites[tabIndex][i];
        
        if (isIE) { clearSelection(); }
        
        if (tabIndex == 3) {
        
            dom.removeClass(tab_div, tab_div.className);
            dom.addClass(tab_div, 'db_tab_bookmark'); 
            tabIndex = 0;
            
            results.innerHTML = '';
            
            var allcells = '';
            
            for (i=0; i<sites[0].length; i++) {
                
               var site =  sites[0][i];
               
               var display = 'none';
               
               for (z=0;z<csite.sites.length;z++) {
                    if (i==csite.sites[z]) {
                        display = 'block';
                        break;   
                    }
               }
               
               var cell  ='<div class="db_cell db_cell_nosel" style="display:'+display+';" id="db_cell'+i+'"><img class="db_cell_icon" src="'+site.icon+'"/>';
                   cell +='<p class="db_cell_title">'+site.title+'</p><p class="db_cell_url">'+site.url+'</p></div>';                   
               allcells += cell;            
            }

            results.innerHTML = allcells;

            setCellsListeners();
            
            return;   
        }
        
        window.open(csite.url, '', 'width=800,height=600,toolbar=yes,location=yes,status=yes,menubar=yes,resizable=yes,scrollbars=yes');
        
        //window.open(csite.url,csite.title,'');
    
    }
     
    function doSearch() {
        
        var query   = dom.get('db_searchbox').value.toLowerCase();
        var queries = query.split(' ');
        
        for (i=0; i<sites[tabIndex].length; i++) {
            
            var site = sites[tabIndex][i];
            var isok = true;
            
            for (j=0; j<queries.length; j++) {
                
                var sq = queries[j];

                if (site.url.toLowerCase().indexOf(sq) == -1 && site.title.toLowerCase().indexOf(sq) == -1 && site.tags.indexOf(sq) == -1) {
                    isok = false;
                    break;
                }
            }

            var cell = dom.get('db_cell'+i);

            if (isok) { dom.setStyle(cell, 'display', 'block'); }
            else {      dom.setStyle(cell, 'display', 'none');  }
  
        }   
    }

    function clearSelection() {
        try { if (document.selection) { document.selection.empty(); }
        } catch(ex) {}
    }

    function setCellsListeners() {
        var cells = dom.getElementsByClassName('db_cell');
        event.addListener(cells, 'click', cellClick);
        event.addListener(cells, 'dblclick', cellDoubleClick);
        event.addListener('db_icon', 'click', showHideDelibar);
    }

    /* place holders */
    
    function hidePlaceHolder() {
        _hidePlaceHolder(this);
    }
    
    function _hidePlaceHolder(element) {        
        if (element.value.toLowerCase() == element.title.toLowerCase()) {
            element.value = '';
            dom.setStyle(element, 'color', '#333');
        }
    }

    function setPlaceHolder() {
        _setPlaceHolder(this);
    }
    
    function _setPlaceHolder(element) {
        if (isEmpty(element.value) || element.value.toLowerCase() == element.title.toLowerCase()) {
            element.value = element.title;
            dom.setStyle(element, 'color', '#ACB9B5');
        } else {
            dom.setStyle(element, 'color', '#333');
        }
    }
    
    event.addListener('db_searchbox', 'focus', hidePlaceHolder);
    event.addListener('db_searchbox', 'blur' , setPlaceHolder);
    event.addListener('db_searchbox', 'keyup', doSearch);
    
    if (isIE) {
       event.addListener('db_results', 'selectionchange', clearSelection);
    }
    
    var tabs = dom.getElementsByClassName('db_tab');
    event.addListener(tabs, 'click', changeTab);
        
    var now = new Date();
    var hour = now.getHours();
    var ampm = 'AM';
    
    if (parseInt(hour, 10) > 12) {
        hour = '' + (parseInt(hour, 10)-12);
        ampm = 'PM';        
    }
    
    var year = now.getYear();
    if (year < 2000) {
        year += 1900;
    } 
    
    setCellsListeners();
    
    dom.get('db_current_date').innerHTML = (now.getMonth()+1)+'/'+now.getDate()+'/'+year+' '+hour+':'+now.getMinutes()+' '+ampm;
    
    dom.get('db_searchbox').value = '';
    _changeTab('db_tab_bookmark');
    _setPlaceHolder(dom.get('db_searchbox'));
}