///if (navigator.userAgent.indexOf('Firefox') != -1) document.write('<style>body{overflow-y:scroll}</style>');

var LOAD_WITH_AJAX_BUT_NOT_IFRAME = navigator.userAgent.indexOf('MSIE')!=-1;
var ALL_LINKS_IN_SUBCATS = db.lang_index==0;
var SHOW_SUBCATS_POPUP = db.lang_index!=0;
var CHECK_DOUBLE_RATE = true;
var CONFIRM_RATE = false;
var RATING_STARS_DIFFERENT = false;
var PROTECTED_CAT_IDS = [15];
var SEND_STAT_INTERVAL = 60*1000; /* send each minute */
var COLS_IN_ICON_VIEW = 3;
var COLS_IN_CAT_ICON_VIEW = 10;
var COL_MIN_WIDTH = 220;
var COLS_TOTAL_WIDTH = 580;
var DEFAULT_LINKS_ON_PAGE = 50;
var LINK_ALREADY_RATED = 'כבר דירגת את הקישור הזה היום';
var NONE_HERE = 'לא נמצאו קישורים';
var NONE_HERE_BOOKMARKS = 'לא נמצאו קישורים';
var LOADING = 'טוען תמונות';
var ABORT = 'עצור טעינה';
var CONFIRM_DEAD_LINK = 'דווח על קישור לא תקין?';
var LOAD_ABORTED = 'טעינה הופסקה';
var DEAD_LINK_REPORTED = 'תודה';
var LINK_TITLE = 'שם האתר';
var TAG_LIST = 'תגיות';
var TAGS_ADDED = 'הוספו תגיות';
var ADD_TAGS = 'הוסף תגית (הפרד מילים בעזרת פסיקים)';
var NO_DESCRIPTION = 'לצערנו לא קיים תיאור לאתר, תוכל להוסיף תיאור בתיבה למטה. בתודה מראש. מערכת דארווין';
var DESCRIPTION_SENT = 'תיאור האתר נשלח למערכת ויוסף בקרוב. תודה על העזרה. צוות דארווין';
var BOOKMARKS_LINK_DESCRIPTION = 'תיאור';
var ADD_TO_BOOKMARKS = 'הוסף למועדפים';
var LINK_ADDED_TO_BOOKMARKS = 'Link added to bookmarks';
var OK_TO_REMOVE_FROM_BOOKMARKS = 'Remove this site from bookmarks?';
var REMOVE_BOOKMARKS_FOLDER = 'Remove folder';
var REMOVE_BOOKMARKS_FOLDER_MENU = 'מחק';
var OK_TO_REMOVE_FOLDER = 'Are you sure you want to remove this folder and all it\'s contents?';
var EDIT_BOOKMARKS = 'Edit';
var NEW_FOLDER = 'תיקיה חדשה';
var NEW_FOLDER_MENU = 'הוסף';
var NEW_SUBFOLDER = 'תת תיקיה חדשה';
var CHOOSE_FOLDER = 'בחר תיקיה';
var PLEASE_SELECT_LINKS = 'Please, select some links';
var ADD_LINK = 'הוסף קישור';
var ADD_MULTIPLE_LINKS = 'הוסף מס\' קישורים';
var REMOVE_SELECTED_LINKS = 'מחק קישורים מסומנים';
var MOVE_SELECTED_LINKS = 'העתק קישורים מסומנים';
var CHOOSE_NAME = 'בחר שם';
var NEW_SUBFOLDER_TRIGGER = 'תת תיקיה חדשה';
var SEND_LINK_TO_FRIEND = 'שלח לחבר קישורים מסומנים';
var MAP_CATEGORIES = [{cat:234, html:'Movies.html'}, {cat:235, html:'News.html'}, {cat:236, html:'Cameras.html'}, {cat:IMPORT_EXPORT_CAT, html:'ImportExport.html'}];
var IFRAME_WIDTH = 820;
var IFRAME_HEIGHT = Math.floor(screen.height*2/3) || 300;
var LINK_VIEW_HEADER = '<iframe frameborder="0" width="728" height="90" src="Google728x90.html"></iframe>';
var CUT_SELECTED_LINKS = 'Cut selected links';
var OPEN_LINKS_ON_NEW_PAGE = true;
var ADDITIONAL_CATEGORIES = false;
var CUT_LINKS_ENABLED = false;
var MOVE_LINKS_ENABLED = true;
var CHECK = 'סמן';
var OK_TO_MOVE_FROM_BOOKMARKS = 'Move selected bookmarks?';
var NO_OF_SITES_FOUND = 'אתרים %d';
var SITES_SHOWING = 'מציג %d';
var NO_OF_PAGES = 'מס\' עמודות';
var SITES_ON_PAGE = 'אתרים בעמוד';
var AUTOCREATE_FOLDER_NAME = 'קישורים ללא תיקיה';
var AUTOCREATE_FOLDER_DESC = 'קישורים לא שייכים לשום תקיה';
var SORT_BY = 'מיין תוצאות לפי';
var SORT_BY_SMART = 'פופולארי מנמוך לגבוה';
var SORT_BY_SMART_DESC = 'פופולארי מגבוה לנמוך';
var SORT_BY_DATE = 'מאתרים ישנים לחדשים';
var SORT_BY_DATE_DESC = 'מאתרים חדשים לישנים';
var SORT_BY_CLICKS = 'מס הקלקות מנמוך לגבוה';
var SORT_BY_CLICKS_DESC = 'מס הקלקות מגבוה לנמוך';
var SORT_BY_CPD = 'ממוצע הקלקות יומי נמוך';
var SORT_BY_CPD_DESC = 'ממוצע הקלקות יומי גבוה';
var SORT_BY_RATE = 'דירוג גוגל מנמוך לגבוה';
var SORT_BY_RATE_DESC = 'דירוג גוגל מגבוה לנמוך';
var ADD_SITE_TO_DARWIN = 'הוסף אתר';
var SELECT_PAGE = 'עמוד';
var OPEN_IN_NEW_WINDOW = 'פתח בחלון חדש';
var MANAGE_VIEWS = 'לתצוגה מותאמת אישית';
var MANAGE_LINKS = 'Manage links';
var RENAME_FOLDER_MENU = 'ערוך';
var IMPORT_EXPORT_MENU = 'ייבא';
var MAX_PAGES_ON_LINE = 20;
var FILTER_RESULTS_BY = 'צמצם תוצאות לפי';

var new_links_added_to_bookmarks = false;

function go_to_bookmarks()
{   if (!new_links_added_to_bookmarks) select_cat(-4);
    else location.href = paramize('./?cat=-4&time='+new Date().getTime());
}

var selected_cat = -1;
var selected_subcat = -1;
var clicks_locked_on = -1;
var top_subcat = -1;
var nbuttons;
var selected_path = [];
function update_path(cat_id)
{	selected_path = [];
    for (var c=db.get_cat(cat_id, db_cats)||db_cats[0]; c; c=c.parent)
    {   selected_path[selected_path.length] = c;
    }
    if (selected_path.length == 0) return;
    if (selected_path.length==1 && selected_path[0].subcats.length>0)
    {   selected_path = [selected_path[0].subcats[0], selected_path[0]];
    }
    if (selected_path.length==2 && ALL_LINKS_IN_SUBCATS && selected_path[selected_path.length-1].id>=-3 && selected_path[0].subcats.length>0)
    {   selected_path = [selected_path[0].subcats[0], selected_path[0], selected_path[1]];
    }
    top_subcat = selected_path.length<=3 ? selected_path[selected_path.length-1].id : selected_path[2].id;
    selected_cat = selected_path[selected_path.length-1].id;
}
function update_path_html(cat_id)
{   update_path(cat_id);
	var cat_path_html = '<table><tr><td><img alt="דף ראשי" src="img/home.gif" /></td>';
    for (var i=selected_path.length-1, j=0; i>=0; i--, j++)
    {   var item = selected_path[i].name;
        if (j>0 && j<selected_path.length-1) item = '<a id="cat-link-'+selected_path[i].id+'" href="javascript:void(select_cat('+selected_path[i].id+'))">' + item + '</a>';
        cat_path_html += '<td><img src="img/separator_grey_'+ltr+'.gif" alt="<" /></td><td class="'+(selected_path[i].id==top_subcat ? 'cat_name_em' : 'cat_name')+'">'+item+'</td>';
    }
    cat_path_html += '</tr></table>';
    document.getElementById('cat_path').innerHTML = cat_path_html;
}
function select_cat(cat_id)
{   var prev_top_subcat = top_subcat;
    /* if there is no cat_selector then it was possibly hidden to window.store_page_area */
    if (!document.getElementById('cat_selector'))
    {   if (!window.store_page_area) return;
        document.getElementById('page_area').innerHTML = window.store_page_area;
        window.store_page_area = null;
		prev_top_subcat = -1;
    }
    /* update selected_path */
    update_path(cat_id);
    /* highlight category name in top menu */
    for (var i=0; i<db_cats.length; i++)
    {   var icon = document.getElementById('cat_menu_icon_'+db_cats[i].id);
        if (icon) icon.className = db_cats[i].id==selected_cat ? 'selected_cat_menu_icon' : '';
    }
    /* update tools according to the category */
    document.getElementById('tools').innerHTML = selected_cat>=-3 ? get_tools_html_regular() : get_tools_html_bookmarks();
    document.getElementById('tools_middle_panel').className = selected_cat>=-3 ? '' : 'tools';
    /* update category selection menu */
    var html = '';
    var button_to_select = 0;
    nbuttons = 0;
	var top_subcat_obj = db.get_cat(top_subcat, db_cats);
    for (var i=0; i<top_subcat_obj.subcats.length; i++)
    {   var cat = top_subcat_obj.subcats[i];
        if (ALL_LINKS_IN_SUBCATS && selected_cat>=-3 && cat.subcats.length>0)
        {   html += '<div class="subcat_disabled"><b>'+jshtml(split_long_words(fix_chars(cat.name)))+'</b></div>';
        }
        else
        {   var cl = 'subcat';
            if (cat.id == selected_path[0].id)
            {   button_to_select = nbuttons;
                cl = clicks_locked_on==-1 ? 'subcat_selected' : 'subcat_locked';
            }
            html += '<div id="subcat_button_'+nbuttons+'" class="'+cl+'" onmouseover="over_subcat_button('+nbuttons+', '+cat.id+')" onmouseout="out_subcat_button()" onclick="click_subcat_button('+nbuttons+', '+cat.id+')"><b>'+jshtml(split_long_words(fix_chars(cat.name)))+'</b></div>';
            nbuttons++;
        }
        for (var j=0; j<cat.subcats.length; j++)
        {   var cl = 'subsubcat';
            if (cat.subcats[j].id == selected_path[0].id)
            {   button_to_select = nbuttons;
                cl = clicks_locked_on==-1 ? 'subsubcat_selected' : 'subsubcat_locked';
            }
            html += '<div id="subcat_button_'+nbuttons+'" class="'+cl+'" onmouseover="over_subcat_button('+nbuttons+', '+cat.subcats[j].id+')" onmouseout="out_subcat_button()" onclick="click_subcat_button('+nbuttons+', '+cat.subcats[j].id+')">'+jshtml(split_long_words(fix_chars(cat.subcats[j].name)))+'</div>';
            nbuttons++;
        }
    }
	html += '<div id="subcats_popup" style="position:absolute; display:none; z-index:999"></div>';
	if (clicks_locked_on != -1) clicks_locked_on = button_to_select;
    if (top_subcat != prev_top_subcat)
    {   document.getElementById('cat_selector').innerHTML = html;
		selected_subcat = selected_path[0].id;
        update_path_html(selected_path[0].id);
        load_subcat_page(selected_path[0].id);
    }
    else if (selected_subcat != selected_path[0].id)
    {   select_subcat_button(button_to_select, selected_path[0].id);
    }
}
var is_over_subcat_popup = false;
var showing_subcat_popup = -1;
var subcat_timer = null;
function over_subcat_button(nbutton, id)
{   if (id == showing_subcat_popup) return;
    if (subcat_timer) clearTimeout(subcat_timer);
    subcat_timer = setTimeout
    (   function()
        {   if (clicks_locked_on == -1) select_subcat_button(nbutton, id);
			var parent_id = ((db.get_cat(id, db_cats)||{}).parent||{}).id;
			if (parent_id != top_subcat) show_subcat_popup(id);
        },
        333
    );
}
function out_subcat_button()
{   if (subcat_timer) clearTimeout(subcat_timer);
	if (!SHOW_SUBCATS_POPUP)
	{	showing_subcat_popup = -1;
	}
	else
	{	subcat_timer = setTimeout
		(   function()
			{   if (!is_over_subcat_popup && showing_subcat_popup!=-1)
				{   hide_subcat_popup();
					showing_subcat_popup = -1
				}
			}, 250
		);
	}
}
function hide_subcat_popup()
{	if (!SHOW_SUBCATS_POPUP) return;
	document.getElementById('subcats_popup').style.display = 'none';
}
function show_subcat_popup(id)
{	showing_subcat_popup = id;
	if (!SHOW_SUBCATS_POPUP) return;
	var cat = db.get_cat(id, db_cats);
	if (cat.subcats.length == 0)
	{	document.getElementById('subcats_popup').style.display = 'none';
		return;
	}
	var subcats_html = '';
	for (var i=0; i<cat.subcats.length; i++)
	{   subcats_html += '<div class="subcats_popup_item"><a href="javascript:void(hide_subcat_popup(select_cat(clicks_locked_on = '+cat.subcats[i].id+')))">'+cat.subcats[i].name+'</a></div>';
	}
	var obj = document.getElementById('subcats_popup');
	obj.innerHTML = subcats_html;
	obj.style.display = 'block';
	obj.style.left = (window.mouse_left - (ltr=='ltr' ? -10 : obj.offsetWidth)) + 'px';
	obj.style.top = window.mouse_top + 'px';
	obj.onmouseover = function() {if (subcat_timer) clearTimeout(subcat_timer);};
	obj.onmouseout = function() {out_subcat_button();};
}
function click_subcat_button(nbutton, id)
{   if (clicks_locked_on != -1)
    {   with (document.getElementById('subcat_button_'+clicks_locked_on))
        {   className = className.substr(0, 6)!='subsub' ? 'subcat_selected' : 'subsubcat_selected';
        }
    }
    clicks_locked_on = clicks_locked_on!=nbutton ? nbutton : -1;
    if (clicks_locked_on != -1)
    {   with (document.getElementById('subcat_button_'+clicks_locked_on))
        {   className = className.substr(0, 6)!='subsub' ? 'subcat_locked' : 'subsubcat_locked';
        }
    }
    select_subcat_button(nbutton, id);
}
var cache = new Object;
function select_subcat_button(button, cat_id)
{   /* update subcat_name */
    if (cat_id == selected_subcat) return;
    selected_subcat = cat_id;
    /* highlihgt selected subcat */
    for (var i=0; i<nbuttons; i++)
    {   with (document.getElementById('subcat_button_'+i))
        {   if (className=='subcat' || className=='subcat_selected' || className=='subcat_locked')
            {   className = i!=button ? 'subcat' : i!=clicks_locked_on ? 'subcat_selected' : 'subcat_locked';
            }
            else
            {   className = i!=button ? 'subsubcat' : i!=clicks_locked_on ? 'subsubcat_selected' : 'subsubcat_locked';
            }
        }
    }
    /* update path_html */
    update_path_html(cat_id);
    /* load page */
    load_subcat_page(cat_id);
}
function reload()
{   location.href = paramize('./?cat='+selected_subcat+'&time='+new Date().getTime());
}
var busy = false;
var to_load = -1;
function load_subcat_page(cat_id)
{   if (busy)
    {   to_load = cat_id;
        return;
    }
    if (window.db_search_links)
    {   cache[-3] = db_search_links;
    }
    if (cache[cat_id])
    {   if (document.getElementById('cat_view'))
        {   show_links(cache[cat_id], cat_id);
            log_entry(cat_id, 0);
        }
    }
    else
    {   for (var i=0; i<MAP_CATEGORIES.length; i++)
        {   if (cat_id == MAP_CATEGORIES[i].cat) return show_links([], cat_id);
        }
        busy = true;
        var load_links_script = '';
        if (cat_id >= -3)
        {   load_links_script = '/GetLinks.js.aspx?pp=99999&desc=true&cats='+cat_id;
        }
        else
        {   load_links_script = '/GetBookmarkLinks.js.aspx?user='+user_id+'&pp=99999&desc=true&path='+escape2(get_bookmarks_path(db.get_cat(cat_id, db_cats)));
        }
        var loader = LOADING+' <a href="javascript:void(abort_load())">'+ABORT+'</a>';
        if (!LOAD_WITH_AJAX_BUT_NOT_IFRAME) loader +=
            '<iframe id="pages_frame" src="javascript:\'<script src='+
            escape2(location.href.replace(/\/[^\/]+$/, '')+load_links_script)+
            '><'+'/script><script>onload = function() {if ((self.db_links||self.db_bookmark_links) && parent.http_response) '+
            'parent.http_response('+cat_id+', self.db_links||self.db_bookmark_links); }<'+
            '/script>\'" width="0" height="0" frameborder="0"></iframe>';
        document.getElementById('cat_view').innerHTML = loader;
        document.getElementById('cat_view_holder').style.backgroundImage = 'url(img/loading.gif)';
        if (LOAD_WITH_AJAX_BUT_NOT_IFRAME) ajax
        (   location.href.replace(/\/[^\/]+$/, '')+load_links_script, '',
            function(response, error, cat_id)
            {   if (error) alert(error);
                var s = cat_id>=-3 ? 'db_links' : 'db_bookmark_links';
                response = '{'+response+'; self.'+s+'='+s+'}';
                eval(response);
                http_response(cat_id, eval(s));
            },
            cat_id
        );
    }
}
function abort_load()
{   setTimeout
    (   function()
        {   document.getElementById('cat_view').innerHTML = LOAD_ABORTED;
            document.getElementById('cat_view_holder').style.backgroundImage = '';
            busy = false;
        },
        1
    );
}
var FLAH_WIDTH = 375;
var FLAH_HEIGHT = 189;
var FLAH_MARGIN_TOP = 17;
function open_embedded(url)
{   if (!window.store_page_area) window.store_page_area = document.getElementById('page_area').innerHTML;
    document.getElementById('page_area').innerHTML =
        '<div id="iframe_top" style="position:absolute">&nbsp;</div>'+
        '<table><tr>'+
        '   <td align="right">'+
        '       <a href="javascript:{document.getElementById(\'page_area\').innerHTML = window.store_page_area; window.store_page_area = null; void(0)}"><img src="img/close_preview.gif" border="0" onmouseover="show_baloon(\'חזור לקטגוריות\')" onmouseout="hide_baloon()" /></a>'+
        '   </td>'+
        '   </tr><tr>'+
        '   <td>'+
        '       <iframe name="embedded_frame" src="'+url+'" width="'+IFRAME_WIDTH+'" height="'+IFRAME_HEIGHT+'"></iframe>'+
        '   </td>'+
        '</tr></table>';
    setTimeout('window.scrollTo(0, document.getElementById("iframe_top").offsetTop)', 10);
}
function open_link(id, prate, title, desc, tags)
{   if (OPEN_LINKS_ON_NEW_PAGE)
    {   location.href = 'GoFrames.html?link='+id+'&prate='+prate+'&cat='+selected_subcat+'&phrase='+param('phrase');
        return;
    }
    var nodesc =
    (   /*  SendDescription.aspx will be opened in iframe and will generate
            onload=parent.send_description_response(message)
        */
        '<form id="send_desc_form" action="SendDescription.aspx" method="post" target="send_description_frame">'+
        NO_DESCRIPTION+'<br />'+
        '<input type="hidden" name="link" value="'+id+'" />'+
        '<textarea name="desc" cols="40" rows="5"></textarea>'+
        '<div><input type="submit" value="OK" /></div>'+
        '</form><iframe name="send_description_frame" src="about:blank" width="0" height="0" frameborder="0"></iframe>'
    );
    if (!window.store_page_area) window.store_page_area = document.getElementById('page_area').innerHTML;
    document.getElementById('page_area').innerHTML =
    (   '<div id="iframe_top" style="position:absolute">&nbsp;</div>'+
        '<center>'+LINK_VIEW_HEADER+'</center>'+
        '<table width="100%">'+
        '<tr><td>'+
        '   <table width="100%" cellpadding="0" cellspacing="0"><tr>'+
        '   <td align="right">'+
        '       <a target="_blank" href="Go.aspx?link='+id+'"><img alt="Open in new window" src="img/view_outside.gif" border="0" onmouseover="show_baloon(\'פתח בחלון חדש\')" onmouseout="hide_baloon()" /></a> '+
        '       <a href="javascript:{document.getElementById(\'page_area\').innerHTML = window.store_page_area; window.store_page_area = null; void(0)}"><img src="img/close_preview.gif" border="0" onmouseover="show_baloon(\'חזור לקטגוריות\')" onmouseout="hide_baloon()" /></a>'+
        '   </td>'+
        '   <td align="center">'+
                jshtml(title)+
        '   </td>'+
        '   <td align="center">'+
        '       <a href="javascript:{with (document.getElementById(\'line_desc\').style) display = display==\'none\' ? \'block\' : \'none\'; void(0)}">הוסף תיאור לאתר</a>'+
        '   </td>'+
        '   <td align="center">'+
        '       <a href="javascript:{with (document.getElementById(\'line_addtags\').style) display = display==\'none\' ? \'block\' : \'none\'; void(0)}">הוסף תגיות</a>'+
        '   </td>'+
        '   <td align="left">'+
        '       <table><tr><td valign="center">דרג האתר:</td><td>'+stars_html(id, prate, 'rating')+'</td></tr></table>'+
        '   </td>'+
        '   </tr><tr>'+
        '   <td colspan="5" align="center">'+
        '       <div id="line_desc" style="display:none">'+(desc||nodesc)+'</div>'+
        '       <div id="line_addtags" style="display:none"><form onsubmit="db.tag('+id+', this.tags.value, function(err) {alert(err||TAGS_ADDED); this.style.visibility=\'hidden\'}); return false;"><table><tr><td align="center" nowrap>'+ADD_TAGS+':</td></tr><tr><td align="center" nowrap><input type="text" name="tags" /><input type="submit" value="OK" /></td></tr></table></form></div>'+
        '   </td>'+
        '   </tr></table>'+
        '</td></tr><tr><td align="center">'+
        '   <iframe name="embedded_frame" src="Go.aspx?link='+id+'" width="'+IFRAME_WIDTH+'" height="'+IFRAME_HEIGHT+'"></iframe>'+
        '</td></tr><tr><td>'+
        '   <table width="100%"><tr>'+
        '   <td align="right">'+
        '       <a href="javascript:void(confirm(CONFIRM_DEAD_LINK) ? db.dead_link('+id+', dead_link_response, {id:'+id+'}) : null)">דווח על קישור לא תקין</a>'+
        '   </td>'+
        '   <td>'+
                (tags ? TAG_LIST+': '+tags : '')+
        '   </td>'+
        '   </tr></table>'+
        '</td></tr>'+
        '</table>'
    );
    setTimeout('window.scrollTo(0, document.getElementById("iframe_top").offsetTop)', 10);
}
function send_description_response(message)
{   if (message != 'OK') return alert(message);
    document.getElementById('send_desc_form').style.display = 'none';
    alert(DESCRIPTION_SENT);
}
function show_manage_links()
{   var enabled;
    with (document.getElementById('manage_links').style)
    {   enabled = display=='none';
        display = enabled ? 'block' : 'none';
    }
    for (var i=0; i<db_links.length; i++)
    {   var obj = document.getElementById('link_checkbox_panel_'+db_links[i].id);
        if (obj) obj.style.display = enabled ? 'block' : 'none';
        var obj = document.getElementById('link_clicks_'+db_links[i].id);
        if (obj) obj.style.display = enabled ? 'none' : 'block';
    }
}
var db_links = null;
function get_selected_links()
{   var selected = [];
    for (var i=0; db_links && i<db_links.length; i++)
    {   var obj = document.getElementById('link_checkbox_'+db_links[i].id);
        if (obj && obj.checked)
        {   selected[selected.length] = db_links[i].id;
        }
    }
    return selected;
}
function get_cut_links()
{   var cut_links = (';'+document.cookie).match(/;\s*cut_links=([^;]+)/);
    if (cut_links) cut_links=cut_links[1]; else cut_links='';
    var pos = cut_links.indexOf('?');
    if (pos == -1) return {path:'', links:[]};
    var links = cut_links.substring(pos+1).split(',');
    if (links.length==1 && links[0]=='') links = [];
    var path = links.length ? cut_links.substr(0, pos) : '';
    return {path:path, links:links};
}
function get_cut_links_panel_html()
{   var cut_links = get_cut_links();
    return !cut_links.path ? '' : '<font color="red">קישורים נגזרים: '+cut_links.links.length+'</font> <a style="color:blue" href="javascript:void(paste_bookmarks())">[הדבק]</a> <a style="color:blue" href="javascript:{document.cookie=\'cut_links=\'; void(update_cut_links_panel())}">[בטל]</a>';
}
function update_cut_links_panel()
{   var obj = document.getElementById('cut_links_panel');
    if (obj) obj.innerHTML = get_cut_links_panel_html();
}
function paste_bookmarks(path)
{   var cut_links = get_cut_links();
    if (!cut_links.path) return;
    db.move_bookmarks(cut_links.links, cut_links.path, get_bookmarks_path(db.get_cat(selected_subcat, db_cats)), function(error) {if (error) alert(error); else {document.cookie='cut_links='; location.reload(true)}});
}
function show_links(db_links, cat_id, with_priority, order_by, desc, from, limit, n_cols)
{   document.getElementById('cat_view').innerHTML = format_links(db_links, cat_id, with_priority, order_by, desc, from, limit, n_cols);
}
function format_links(db_links_arg, cat_id, with_priority, order_by, desc, from, limit, n_cols)
{   if (!from) from = 0;
    if (!limit) limit = get_settings('limit', DEFAULT_LINKS_ON_PAGE); else set_settings('limit', limit);
    if (!order_by) order_by = get_settings('order_by', 'smart'); else set_settings('order_by', order_by);
    if (desc == null) desc = get_settings('desc', true); else set_settings('desc', desc?1:0);
    if (!n_cols) n_cols = get_settings('n_cols', COLS_IN_ICON_VIEW||3); else set_settings('n_cols', n_cols);
    n_cols = parseInt(n_cols);
    db_links = db_links_arg;
    for (var i=0; i<MAP_CATEGORIES.length; i++)
    {   if (cat_id == MAP_CATEGORIES[i].cat)
        {   ajax(MAP_CATEGORIES[i].html, null, function(r, e) {setTimeout(function() {document.getElementById('cat_view').innerHTML = r||e}, 1);});
            return LOADING;
        }
    }
    /* filter */
    var db_links2 = filter_links(db_links, with_priority, order_by, desc);
    var links_count = db_links2.length;
    /* generate pagination html (pp_selector_html, pagination_html) */
    var pp_selector_html = '';
    var pagination_html = '';
    if (limit)
    {   var encountered = false;
        var options = '';
        for (var i=n_cols; i<=n_cols*100; i+=n_cols)
        {   options += '<option value="'+i+'" '+(i==limit?'selected':'')+'>'+SITES_ON_PAGE+': '+i+'</option>';
            if (i == limit) encountered = true;
        }
        if (!encountered) options = '<option value="'+limit+'" selected>'+SITES_ON_PAGE+': '+limit+'</option>' + options;
        pp_selector_html = '<select onchange="show_links(db_links, '+cat_id+', '+(with_priority?1:0)+', '+jsquote(order_by||'')+', '+(desc?1:0)+', 0, this.value)">'+options+'</select>';
        var db_links3 = [];
        for (var i=from; i<from+limit && i<db_links2.length; i++)
        {   db_links3[db_links3.length] = db_links2[i];
        }
        if (links_count > limit)
        {   var this_page = Math.floor(from/limit);
            var n_pages = Math.ceil(links_count/limit);
            var back = this_page==0 ? '0' : 'show_links(db_links, '+cat_id+', '+(with_priority?1:0)+', '+jsquote(order_by||'')+', '+(desc?1:0)+', '+(this_page*limit-limit)+', '+limit+')';
            var next = this_page==n_pages-1 ? '0' : 'show_links(db_links, '+cat_id+', '+(with_priority?1:0)+', '+jsquote(order_by||'')+', '+(desc?1:0)+', '+(this_page*limit+limit)+', '+limit+')';
            pagination_html += '<table><tr><td>'+SELECT_PAGE+':</td><td><a href="javascript:void('+back+')"><img src="img/pagination_'+left+'.gif" alt="<" border="0" /></a></td><td><table cellpadding="0" cellspacing="0"><tr>';
            for (var p=0; p<n_pages; p++)
            {   var p_from = p*limit;
                if (p>0 && p%MAX_PAGES_ON_LINE==0) pagination_html += '</tr><tr>';
                pagination_html += p_from == from ?
                    '<td class="small_font" style="padding:0px 3px; background-color:orange; color:white">'+(p+1)+'</td>' :
                    '<td class="small_font" style="padding:0px 3px"><a href="javascript:void(show_links(db_links, '+cat_id+', '+(with_priority?1:0)+', '+jsquote(order_by||'')+', '+(desc?1:0)+', '+p_from+', '+limit+'))">'+(p+1)+'</a></td>';
            }
            pagination_html += '</tr></table></td><td><a href="javascript:void('+next+')"><img src="img/pagination_'+right+'.gif" alt="<" border="0" /></a></td></tr></table>';
        }
        db_links2 = db_links3;
    }
    /* generate subcat list html (subcats_html) */
    var subcats_html = '';
    /*var cat = db.get_cat(cat_id, db_cats);
    for (var i=0; i<cat.subcats.length; i++)
    {   subcats_html += '<div><a id="cat-link-'+cat.subcats[i].id+'" href="javascript:void(select_cat('+cat.subcats[i].id+'))">'+cat.subcats[i].name+'</a></div>';
    }*/
    /* generate links html (links_html) */
    var links_html = '';
    for (var i=0; i<n_cols; i++) links_html += '<td width="'+Math.floor(100/n_cols)+'%"><img src="img/reka.gif" width="'+COL_MIN_WIDTH+'" height="1" /></td>';
    for (var i=0; i<db_links2.length; i++)
    {   with (db_links2[i])
        {   if (i%n_cols == 0)
            {   links_html += '</tr><tr>';
            }
            var link_checkbox = '';
            if (cat_id < -3) link_checkbox = '<div id="link_checkbox_panel_'+id+'" style="display:none">'+CHECK+' <input type="checkbox" id="link_checkbox_'+id+'" /></div>';
            links_html += '<td width="'+Math.floor(100/n_cols)+'%" align="center" valign="top" style="direction:ltr">'+
                '<table class="link_cell" cellpadding="0" cellspacing="0"><tr><td align="center"><div id="th_d_'+id+
                '"><table cellpadding="0" cellspacing="0" style="direction:rtl"><tr><td align="right">'+stars_html(id, prate, 'rating_small')+'</td><td align="left" style="font-size:9px"><div id="link_clicks_'+id+'">'+clicks+' <img src="img/people.gif" /></div>'+link_checkbox+'</td></tr><tr><td colspan="2"><a href="javascript:void(open_link('+id+', '+prate+', '+jsquote(split_long_words(fix_chars(tit||url)))+', '+
                jsquote(fix_chars(desc))+', \''+fix_chars(tags)+'\'))"><img src="'+(icon ? 'Upload/'+id+'.'+icon : 'th/'+id+'.jpg')+
                '" onerror="this.src=\'img/nopreview.jpg\'" onmouseover="over_popup_trigger('+id+', true)" onmouseout="over_popup_trigger('+id+
                ', false)" border="0" /></a></td></tr></table></div></td></tr><tr><td align="center"><div id="th_pos_'+id+'" style="width:1px; height:1px; position:absolute"></div>';
            links_html += jshtml(split_long_words(fix_chars(tit||url)))+'</td></tr></table>';
            links_html += '</td>';
        }
    }
    links_html = '<table cellpadding="0" cellspacing="0" width="'+COLS_TOTAL_WIDTH+'" align="center" style="padding-top:4px"><tr>'+links_html+'</tr></table>';
    /* generate number of columns selector (cols_selector_html) */
    var cols_selector_html = '<select onchange="if (this.value != '+n_cols+') {show_links(db_links, '+cat_id+', '+(with_priority?1:0)+', '+jsquote(order_by||'')+', '+(desc?1:0)+', '+from+', '+limit+', this.value);}">';
    for (var i=1; i<=10; i++) cols_selector_html += '<option value="'+i+'" '+(i==n_cols ? 'selected' : '')+'>'+NO_OF_PAGES+': '+i+'</option>';
    cols_selector_html += '</select>';
    /* generate sort form html (sort_form_html) */
    var sort_form_html = '<select onchange="if (this.value) show_links(db_links, '+cat_id+', '+(with_priority?1:0)+', this.value.replace(/_desc$/, \'\'), this.value.match(/_desc$/)?1:0, '+from+', '+limit+')">';
    ///sort_form_html += '<option value="">'+SORT_BY+'</option>';
    var sort_options = ['smart', 'date', 'clicks', 'cpd', 'rate'];
    for (var i=0, j=0; j<sort_options.length; j+=i, i=i?0:1)
    {   sort_form_html += '<option value="'+sort_options[j]+(i?'_desc':'')+'" '+(order_by==sort_options[j] && (i ^ (desc?0:1)) ? 'selected' : '')+'>';
        sort_form_html += eval('SORT_BY_'+sort_options[j].toUpperCase()+(i ? '_DESC' : '')); /* SORT_BY_SMART, SORT_BY_SMART_DESC, SORT_BY_DATE, SORT_BY_DATE_DESC, SORT_BY_CLICKS, SORT_BY_CLICKS_DESC, SORT_BY_CPD, SORT_BY_CPD_DESC, SORT_BY_RATE, SORT_BY_RATE_DESC */
        sort_form_html += '</option>';
    }
    sort_form_html += '</select>';
    /* generate manage views html (manage_views_html_href) */
    var manage_views_html_href = ' href="javascript:{with (document.getElementById(\'sort_and_filter\').style) {display = display==\'none\' ? \'block\' : \'none\'; set_settings(\'sort_and_filter\', display);} void(0)}"';
    var manage_views_html = '<td><a'+manage_views_html_href+'><img src="img/sort_and_filter.gif" alt="" border="0" /></a></td><td><a'+manage_views_html_href+'>'+MANAGE_VIEWS+'</a></td>';
    var manage_views_panel_html = '<div id="sort_and_filter" align="center" style="display:'+get_settings('sort_and_filter', 'none')+'">'+cols_selector_html+pp_selector_html+sort_form_html+'</div>';
    /* generate tools html (tools_html) */
    var tools_html = '';
    if (cat_id >= -3)
    {   tools_html = '<div align="center"><table id="info_and_tools" cellpadding="0" cellspacing="0">'+
            '<tr><td nowrap>';
        tools_html += db_links2.length==0 ? NONE_HERE : NO_OF_SITES_FOUND.replace('%d', '<font color="red">'+links_count+'</font>')+' '+SITES_SHOWING.replace('%d', '<font color="red">'+db_links2.length+'</font>')+'</td><td>'+pagination_html+'</td>'+manage_views_html+'<td><a href="AddSite.aspx"><img style="padding-right:6px" src="img/addsite.gif" border="0" alt="'+ADD_SITE_TO_DARWIN+'" /></a></td><td><a href="AddSite.aspx">'+ADD_SITE_TO_DARWIN+'</a>';
        tools_html += '</td></tr></table></div>'+manage_views_panel_html+'<br /><br />';
    }
    else
    {   var path = get_bookmarks_path(db.get_cat(cat_id, db_cats));
        tools_html = '<div align="center"><table id="info_and_tools" cellpadding="0" cellspacing="0"><tr><td nowrap>'+(db_links2.length==0 ? NONE_HERE_BOOKMARKS : NO_OF_SITES_FOUND.replace('%d', '<font color="red">'+links_count+'</font>')+' '+SITES_SHOWING.replace('%d', '<font color="red">'+db_links2.length+'</font>'))+'</td><td>'+pagination_html+'</td>';
        tools_html += '<td><div id="cut_links_panel">'+get_cut_links_panel_html()+'</div></td>';
        var add_link_panel = '<form onsubmit="db.add_to_bookmarks_direct(this.url.value, '+jsquote(path)+', this.tags.value, this.title.value, this.desc.value, function(error) {if (error) alert(error); else reload();}); return false" style="border:double black; padding:6px; margin:6px"><div>URL: <input type="text" name="url" /></div><div>Title: <input type="text" name="title" /></div><div>Tags: <input type="text" name="tags" /></div><div>Description:</div><div><textarea name="desc" rows="3" style="width:220px"></textarea></div><div><input type="submit" value="OK" /></div></form>';
        var add_multiple_links_panel = '<form onsubmit="db.add_to_bookmarks_multiple(this.urls.value, '+jsquote(path)+', function(error) {if (error) alert(error); else reload();}); return false" style="border:double black; padding:6px; margin:6px"><div>URLs separated by spaces/newlines:</div><div><textarea name="urls" rows="3" style="width:220px; direction:ltr"></textarea></div><div><input type="submit" value="OK" /></div></form>';
        var move_links_panel = '<form onsubmit="get_selected_links().length==0 ? alert(PLEASE_SELECT_LINKS) : confirm(OK_TO_MOVE_FROM_BOOKMARKS) && db.move_bookmarks(get_selected_links(), '+jsquote(path)+', this.path.value, function(error) {if (error) alert(error); else reload();}); return false" style="border:double black; padding:6px; margin:6px"><div><select name="path">'+get_bookmark_folders()+'</select></div><div><input type="submit" value="OK" /></div></form>';
        tools_html += manage_views_html;
        var manage_links = '';
        if (cat_id != ID_NO_FOLDERS)
        {   var new_subfolder_form =
            '<form name="new_subfolder_form" onsubmit="if (this.folder_name.value) db.new_bookmarks_folder('+jsquote(path)+', this.folder_name.value, \'\', function(error) {if (error) alert(error); else reload();}); return false">'+
            '   '+CHOOSE_NAME+'<br />'+
            '   <input type="text" name="folder_name" size="10" />'+
            '   <input type="submit" value="OK" />'+
            '</form>';
            var send_to_friend_form = '';
            manage_links = '<div id="manage_links" align="center" style="display:none">'+
            '<table cellpadding="0" cellspacing="0">'+
            '<tr>'+
            '<td align="center"><a href="javascript:{with (document.getElementById(\'send_to_friend_panel\').style) display = display==\'none\' ? \'block\' : \'none\'; void(0)}">'+SEND_LINK_TO_FRIEND+'</a></td>';
            var colspan = 7;
            if (path.indexOf('/') == -1)
            {   colspan += 2;
                manage_links += '<td>&nbsp;-&nbsp;</td>'+
                '<td align="center"><a href="javascript:{with (document.getElementById(\'new_subfolder_panel\').style) display = display==\'none\' ? \'block\' : \'none\'; void(0)}">'+NEW_SUBFOLDER_TRIGGER+'</a></td>';
            }
            manage_links += '<td>&nbsp;-&nbsp;</td>'+
            '<td align="center"><a href="javascript:{with (document.getElementById(\'add_link_panel\').style) display = display==\'none\' ? \'block\' : \'none\'; void(0)}">'+ADD_LINK+'</a></td>'+
            '<td>&nbsp;-&nbsp;</td>'+
            '<td align="center"><a href="javascript:{with (document.getElementById(\'add_multiple_links_panel\').style) display = display==\'none\' ? \'block\' : \'none\'; void(0)}">'+ADD_MULTIPLE_LINKS+'</a></td>'+
            '<td>&nbsp;-&nbsp;</td>'+
            '<td align="center"><a href="javascript:void(get_selected_links().length==0 ? alert(PLEASE_SELECT_LINKS) : confirm(OK_TO_REMOVE_FROM_BOOKMARKS) && db.remove_from_bookmarks(get_selected_links(), '+jsquote(path)+', function(error) {if (error) alert(error); else reload();}))">'+REMOVE_SELECTED_LINKS+'</a></td>';
            if (MOVE_LINKS_ENABLED)
            {   colspan += 2;
                manage_links += '<td>&nbsp;-&nbsp;</td>'+
                '<td align="center"><a href="javascript:{with (document.getElementById(\'move_links_panel\').style) display = display==\'none\' ? \'block\' : \'none\'; void(0)}">'+MOVE_SELECTED_LINKS+'</a></td>';
            }
            if (CUT_LINKS_ENABLED)
            {   colspan += 2;
                manage_links += '<td>&nbsp;-&nbsp;</td>'+
                '<td align="center"><a href="javascript:{var links=get_selected_links(); document.cookie=\'cut_links='+jsquote(path).substr(1, jsquote(path).length-2)+'?\'+links; if (!links.length) alert(PLEASE_SELECT_LINKS); void(update_cut_links_panel())}">'+CUT_SELECTED_LINKS+'</a></td>';
            }
            manage_links += '</tr>'+
            '<tr><td colspan="'+colspan+'"><div id="send_to_friend_panel" style="display:none">'+send_to_friend_form+'</div></td></tr>';
            if (path.indexOf('/') == -1)
            {   manage_links += '<tr><td colspan="'+colspan+'"><div id="new_subfolder_panel" style="display:none">'+new_subfolder_form+'</div></td></tr>';
            }
            manage_links += '<tr><td colspan="'+colspan+'"><div id="add_link_panel" style="display:none">'+add_link_panel+'</div></td></tr>'+
            '<tr><td colspan="'+colspan+'"><div id="add_multiple_links_panel" style="display:none">'+add_multiple_links_panel+'</div></td></tr>';
            if (MOVE_LINKS_ENABLED)
            {   manage_links += '<tr><td colspan="'+colspan+'"><div id="move_links_panel" style="display:none">'+move_links_panel+'</div></td></tr>';
            }
            manage_links += '</table>'+
            '</div>';
            tools_html += '<td style="padding:0px 6px 0px 6px"><a href="javascript:void(show_manage_links())"><img src="img/manage_links.gif" alt="'+MANAGE_LINKS+'" border="0" /></a></td>';
        }
        tools_html += '</tr></table></div>'+manage_views_panel_html+manage_links+'<br /><br />';
        if (links_html == '') return tools_html;
    }
    /* inject banner */
	if (user_id === null)
    {	tools_html = '<table cellpadding="0" cellspacing="0" align="center"><tr><td>'+tools_html+'</td><td><a href="javascript:void(location.href = paramize(\'SignUp.aspx\'))"><img src="img/baner60.jpg" border="0" /></a></td></tr></table>';
	}
    /* glue final resulting html */
    var html = subcats_html+tools_html+links_html+'<div style="padding-top:12px" align="center">'+pagination_html+'</div>';
    /* forbid if a protected category */
    var protected_cat = false;
    var cat = db.get_cat(cat_id, db_cats);
L:  for (var i=0; i<PROTECTED_CAT_IDS.length; i++)
    {   var parent_cat = cat;
        while (parent_cat)
        {   if (parent_cat.id == PROTECTED_CAT_IDS[i])
            {   protected_cat = true;
                break L;
            }
            parent_cat = parent_cat.parent;
        }
    }
    if (protected_cat && document.cookie.indexOf('porn=yes')==-1)
    {   return '<table align="center"><tr><td align="center"><div style="background-color:#FF3366; color:white; border:outset #FF3366; padding:6px"><b>אזהרה: קטגוריה זו מכילה תכנים מיניים מפורשים</b><br /><br />אינדקס האתרים "דארווין" אסף וריכז מקבץ אתרי סקס למטרת הנאתם של מבוגרים בלבד<br />ואינו נושא באחריות לגבי התכנים המוצגים בהם.<br /><br />בלחיצה על כפתור "כניסה לקטגוריה" אני מצהיר/ה כי אני בן/בת 18 לפחות ונכנסתי לקטגוריה מרצוני החופשי.</div><br /><center><button onclick="document.cookie=\'porn=yes\'; load_subcat_page('+cat_id+')">OK</button></center></td></tr></table>';
    }
    return html;
}
var exchange_src = null;
function stars_html(link_id, prate, source)
{   var path = get_bookmarks_path(db.get_cat(selected_subcat, db_cats));
    var html = '<span id="'+source+'_'+link_id+'">';
    for (var r=1; r<=5; r++)
    {   var star = RATING_STARS_DIFFERENT ? r : 1;
        var src = r <= Math.round(prate) ? source+'/'+star+'.gif' : source+'/gray.gif';
        html += '<img name="'+source+'_'+link_id+'_'+r+'" style="cursor:pointer" onclick="if (CHECK_DOUBLE_RATE && selected_subcat>=-3 && is_link_rated('+link_id+')) alert(LINK_ALREADY_RATED); else if (!CONFIRM_RATE || confirm(CONFIRM_RATE_QEST.replace(\'%d\', '+r+'))) if (selected_subcat >= -3) db.vote('+link_id+', '+r+', vote_response, {id:'+link_id+'}); else db.vote_bookmarks('+jsquote(path)+', '+link_id+', '+r+', vote_response, {id:'+link_id+'})" src="'+src+'" onmouseover="stars_glow_on('+link_id+', '+r+', '+jsquote(source)+')" onmouseout="stars_glow_off('+link_id+', '+r+', '+jsquote(source)+')" />';
    }
    return html + '</span>';
}
function stars_glow_on(link_id, rate, source)
{   exchange_src = [];
    for (var i=1; i<=5; i++)
    {   with (document.images[source+'_'+link_id+'_'+i])
        {   exchange_src[exchange_src.length] = src;
            var star = RATING_STARS_DIFFERENT ? i : 1;
            src = i<=rate ? source+'/'+star+'.gif' : source+'/gray.gif';
        }
    }
}
function stars_glow_off(link_id, rate, source)
{   if (!exchange_src) return;
    for (var i=1; i<=5; i++)
    {   with (document.images[source+'_'+link_id+'_'+i]) src = exchange_src[i-1];
    }
    exchange_src = null;
}
function http_response(cat_id, db_links)
{   /*  http_response is called from inside cat_view.innerHTML;
        if replace cat_view.innerHTML from here without timeout, Firefox shows "loading page..." all the time
    */
    setTimeout
    (   function()
        {   busy = false;
            cache[cat_id] = db_links;
            if (to_load != -1)
            {   load_subcat_page(to_load);
                to_load = -1;
            }
            else
            {   log_entry(cat_id, 0);
                document.getElementById('cat_view_holder').style.backgroundImage = '';
                show_links(db_links, cat_id);
            }
        },
        1
    );
}
function import_bookmarks_response(folders_created, files_created, errors)
{   if (errors) errors = '<pre>The following errors occured during import:\n'+errors+'</pre>';
    document.getElementById('import_links_panel').style.display = 'none';
    var ok_button = '';
    if (folders_created+files_created > 0)
    {   ok_button = '<button onclick="top.location.reload(true)">Continue</button><br />';
    }
    else
    {   ok_button = '<button onclick="setTimeout(function() {document.getElementById(\'import_links_panel\').style.display=\'block\'; document.getElementById(\'import_links_panel_messages\').style.display=\'none\'}, 1)">OK</button><br />';
    }
    with (document.getElementById('import_links_panel_messages'))
    {   style.display = 'block';
        innerHTML = ok_button+files_created+' links imported. '+folders_created+' folders created.'+errors;
    }
}
function is_link_rated(id)
{   var rated = (';'+document.cookie).match(/;\s*rated=([^;]+)/);
    if (rated) rated=rated[1]; else rated='';
    return (rated+'|').indexOf('|'+id+'|') != -1;
}
function vote_response(error, data)
{   if (error) return alert(error);
    var rated = (';'+document.cookie).match(/;\s*rated=([^;]+)/);
    if (rated) rated=rated[1]; else rated='';
    rated = '|'+data.id+rated;
    document.cookie = 'rated='+rated;
    if (CHECK_DOUBLE_RATE)
    {   var rating_obj = document.getElementById('rating_'+data.id);
        var rating_small_obj = document.getElementById('rating_small_'+data.id);
        if (rating_obj) rating_obj.innerHTML = RATE_COUNTED;
        if (rating_small_obj) rating_small_obj.innerHTML = RATE_COUNTED;
    }
    else alert(RATE_COUNTED);
}
function dead_link_response(error, data)
{   if (error) return alert(error);
    alert(DEAD_LINK_REPORTED);
}
/* popup window with brief description ("flah") */
function write_flah()
{   document.write
    (   '<div id="flah" style="position:absolute; display:none; width:'+FLAH_WIDTH+'px;'+
        'height:'+FLAH_HEIGHT+'px; background-image:url(img/flah.gif);'+
        'background-repeat:no-repeat; direction:rtl; text-align:right" '+
        'onmouseover="over_popup(true)" onmouseout="over_popup(false)"></div>'
    );
}
function find_link(link_id)
{   var link = null;
    for (var i=0; i<db_links.length; i++)
    {   if (db_links[i].id == link_id)
        {   link = db_links[i];
            break;
        }
    }
    return link;
}
function show_flah_regular(link_id, cat_id)
{   with (find_link(link_id))
    {   var html = '<table cellpadding="0" cellspacing="0" width="'+FLAH_WIDTH+'" height="'+FLAH_HEIGHT+'">'+
            '<tr><td colspan="3" valign="top" style="padding-top:'+FLAH_MARGIN_TOP+'px"><table width="'+FLAH_WIDTH+'" cellpadding="0" cellspacing="0"><tr><th align="center" width="'+(FLAH_WIDTH-40)+'" style="color:#00335b">'+jshtml(split_long_words(fix_chars(tit||url)))+'</th><td align="right" width="40"><nobr><a href="Go.aspx?link='+id+'" target="_blank"><img src="img/view_inside.gif" border="0" onmouseover="show_baloon('+jsquote(OPEN_IN_NEW_WINDOW)+')" onmouseout="hide_baloon()" /></a>'/*+'<a href="javascript:void(open_link('+id+', '+prate+', '+jsquote(split_long_words(fix_chars(tit||url)))+', '+jsquote(fix_chars(desc))+', \''+fix_chars(tags)+'\'))">preview</a>'*/+'</nobr></td></tr></table></td></tr>'+
            '<tr><td colspan="3" valign="top"><div style="padding:6px; height:95px; overflow-y:auto">';
        if (user_id==-1 && navigator.userAgent.indexOf('MSIE')==-1)
        {   html += '<table align="center" style="direction:ltr">'+
            '<tr><td colspan="3"><div style="width:'+(FLAH_WIDTH*0.75)+'; overflow-x:hidden; text-overflow:ellipsis"><b>url:</b> '+jshtml(url)+'</div></td></tr>'+
            '<tr><td><b>cl:</b> '+clicks+'</td><td><b>cpd:</b> '+cpd+'</td><td><b>dead:</b> '+dead+'</td></tr>'+
            '<tr><td><b>rate:</b> '+rate+'</td><td><b>prate:</b> '+prate+'</td><td><b>votes:</b> '+pvotes+'</td></tr>'+
            '<tr><td><b>pop:</b> '+pop+'</td><td><b>popf:</b> '+popf+'</td><td><b>smart_rate:</b> '+smart+'</td></tr>'+
            '<tr><td colspan="3"><b>date added:</b> '+date.toLocaleString()+'</td></tr>'+
            '</table><b>description:</b> ';
        }
        html += jshtml(fix_chars(desc))+(!tags ? '' : '<br /><b>'+TAG_LIST+': '+fix_chars(tags)+'</b>')+'</div></td></tr>'+
            '<tr><td width="98" height="17">';
        if (!window.db_bookmark_folders)
        {   html += '<table cellpadding="0" cellspacing="0" width="98"><tr><td align="center" style="font-size:9px"><div style="position:relative; top:-5px"><a href="SignUp.aspx" style="color:black; text-decoration:none">שמור<br />במועדפים שלך</a></div></td><td><div style="position:relative; top:-5px"><a href="SignUp.aspx"><img src="img/add_to_bookmarks.gif" border="0" /></a></div></td></tr></table>';
        }
        else if (cat_id >= -3)
        {   html += '<table cellpadding="0" cellspacing="0" width="98"><tr><td align="center" style="font-size:9px"><div style="position:relative; top:-5px"><a href="javascript:void(show_flah_bookmarks('+link_id+', '+cat_id+'))" style="color:black; text-decoration:none">שמור<br />במועדפים שלך</a></div></td><td><div style="position:relative; top:-5px"><a href="javascript:void(show_flah_bookmarks('+link_id+', '+cat_id+'))"><img src="img/add_to_bookmarks.gif" border="0" /></a></div></td></tr></table>';
        }
        else
        {   var path = get_bookmarks_path(db.get_cat(cat_id, db_cats));
            html += '<table cellpadding="0" cellspacing="0" width="98"><tr><td align="center"><a href="javascript:void(confirm(OK_TO_REMOVE_FROM_BOOKMARKS) && db.remove_from_bookmarks(['+id+'], '+jsquote(path)+', function(error) {if (error) alert(error); else reload();}))"><img src="img/remove_from_bookmarks.gif" border="0" /></a> <a href="javascript:void(show_flah_bookmarks('+link_id+', '+cat_id+'))"><img alt="ערוך" src="img/edit_bookmark.gif" border="0" /></a></td></tr></table>';
        }
        html += '</td><td width="112" align="center" valign="bottom" nowrap style="padding-bottom:4px">'+
            stars_html(id, prate, 'rating')+'</td><td valign="bottom" align="left" nowrap style="padding-left:15px; padding-bottom:3px">';
        for (var r=0; r<db_sec_cats.length; r++)
        {   var events = 'onmouseover="show_baloon('+jsquote(db_sec_cats[r].name)+')" onmouseout="hide_baloon()"';
            var add = '<img alt="" src="icons/'+r+'.gif" '+events+' /> ';
            for (var c=0; c<cats.length; c++)
            {   if (db_sec_cats[r].id == cats[c])
                {   add = '<img alt="" src="icons/'+r+'a.gif" '+events+' /> ';
                }
            }
            html += add;
        }
        html += '</td></tr></table>';
        document.getElementById('flah').style.backgroundImage = 'url(img/flah.gif)';
        document.getElementById('flah').innerHTML = html;
    }
}
function show_flah_bookmarks(link_id, cat_id)
{   with (find_link(link_id))
    {   var html = '<table cellpadding="0" cellspacing="0" width="'+FLAH_WIDTH+'" height="'+FLAH_HEIGHT+'">'+
            '<tr><td height="1%" valign="top" style="padding-top:'+FLAH_MARGIN_TOP+'px"><table width="'+FLAH_WIDTH+'" cellpadding="0" cellspacing="0"><tr><th align="center" width="'+(FLAH_WIDTH-40)+'" style="color:#00335b">'+jshtml(split_long_words(fix_chars(tit||url)))+'</th><td align="right" width="40"><nobr><a href="Go.aspx?link='+id+'" target="_blank"><a href="javascript:void(open_link('+id+', '+prate+', '+jsquote(split_long_words(fix_chars(tit||url)))+', '+jsquote(fix_chars(desc))+', \''+fix_chars(tags)+'\'))"><img src="img/view_inside.gif" border="0" onmouseover="show_baloon(\'תצוגה מקדימה\')" onmouseout="hide_baloon()" /></a></nobr></td></tr></table></td></tr>'+
            '<tr><td height="99%" valign="top"><div style="padding:6px; height:135px; overflow-y:auto; font-size:9px">';
        if (window.db_bookmark_folders)
        {   if (cat_id >= -3)
            {   var bm = get_bookmarks_folders_html();
                if (bm)
                {   html += '<div id="th_form_'+id+'"><form style="margin:0px; padding:0px" onsubmit="db.add_to_bookmarks('+id+', this.path.value, this.tags.value, \'\', this.desc.value, function(error) {if (error) alert(error); else {document.getElementById(\'th_form_'+id+'\').innerHTML = \''+LINK_ADDED_TO_BOOKMARKS+'\'; new_links_added_to_bookmarks = true;}}); return false"><table cellpadding="2" cellspacing="0" style="font-size:10px"><tr>'+
                        '<td>'+CHOOSE_FOLDER+'</td><td><select name="path" style="font-size:10px">';
                    html += bm;
                    html += '</select></td></tr><tr><td>'+TAG_LIST+'</td><td><input type="text" name="tags" value="'+jshtml(fix_chars(tags))+'" style="font-size:10px; width:315px" /></td></tr><tr><td valign="top">'+BOOKMARKS_LINK_DESCRIPTION+'</td><td><textarea name="desc" rows="3" style="font-size:9px; width:315px">'+jshtml(fix_chars(desc))+'</textarea></td></tr><tr><td colspan="2" align="center"><input type="image" src="img/add_to_bookmarks_button.gif" value="'+ADD_TO_BOOKMARKS+'" style="font-size:9px" /></td></tr></table></form></div>';
                }
                else
                {   html += '<div id="th_form_'+id+'"><form style="margin:0px; padding:0px" onsubmit="db.new_bookmarks_folder(\'\', AUTOCREATE_FOLDER_NAME, AUTOCREATE_FOLDER_DESC, function(error, pass_data) {if (error) alert(error); else db.add_to_bookmarks('+id+', AUTOCREATE_FOLDER_NAME, pass_data.tags, \'\', pass_data.desc, function(error) {if (error) alert(error); else {document.getElementById(\'th_form_'+id+'\').innerHTML = \''+LINK_ADDED_TO_BOOKMARKS+'\'; new_links_added_to_bookmarks = true;}});}, {tags:this.tags.value, desc:this.desc.value}); return false"><table cellpadding="2" cellspacing="0" style="font-size:10px">'+
                        '<tr><td>'+TAG_LIST+'</td><td><input type="text" name="tags" value="'+jshtml(fix_chars(tags))+'" style="font-size:10px; width:315px" /></td></tr><tr><td valign="top">'+BOOKMARKS_LINK_DESCRIPTION+'</td><td><textarea name="desc" rows="3" style="font-size:9px; width:315px">'+jshtml(fix_chars(desc))+'</textarea></td></tr><tr><td colspan="2" align="center"><input type="image" src="img/add_to_bookmarks_button.gif" value="'+ADD_TO_BOOKMARKS+'" style="font-size:9px" /></td></tr></table></form></div>';
                }
            }
            else
            {   var path = get_bookmarks_path(db.get_cat(cat_id, db_cats));
                html += '<div id="th_form_'+id+'"><form style="margin:0px; padding:0px" onsubmit="db.edit_bookmarks_entry('+id+', '+jsquote(path)+', this.tags.value, this.title.value, this.desc.value, function(error) {if (error) alert(error); else reload();}); return false">';
                html += '<div>'+LINK_TITLE+' <input type="text" name="title" value="'+jshtml(split_long_words(fix_chars(tit||url)))+'" style="font-size:9px; width:220px" /></div><div>'+TAG_LIST+' <input type="text" name="tags" value="'+jshtml(fix_chars(tags))+'" style="font-size:9px; width:220px" /></div><div>'+BOOKMARKS_LINK_DESCRIPTION+' <textarea name="desc" rows="3" style="font-size:9px; width:220px">'+jshtml(fix_chars(desc))+'</textarea> <input type="submit" value="'+EDIT_BOOKMARKS+'" style="font-size:9px" /></div></form></div>';
            }
        }
        html += '</div></td></tr></table>';
        document.getElementById('flah').style.backgroundImage = 'url(img/flah_bookmarks.gif)';
        document.getElementById('flah').innerHTML = html;
    }
}
var is_over_popup = false;
var showing_popup = -1;
var timer = null;
function hide_popup()
{   return setTimeout
    (   function()
        {   if (!is_over_popup && showing_popup!=-1)
            {   try
                {   document.getElementById('flah').style.display = 'none';
                }   catch (e)
                {
                }
                showing_popup = -1
            }
        }, 250
    );
}
function over_popup_trigger(id, state)
{   is_over_popup = state;
    if (!state)
    {   if (showing_popup != -1) hide_popup();
    }
    else
    {   if (timer) clearTimeout(timer);
        /*if (showing_popup!=-1 && document.getElementById('flah'))
        {   document.getElementById('flah').style.display = 'none';
        }*/
        var left, top;
        with (document.getElementById('th_pos_'+id))
        {   left = offsetLeft;
            top = offsetTop;
        }
        if (navigator.userAgent.indexOf('MSIE') == -1)
        {   with (document.getElementById('flah'))
            {   style.display = 'block';
                style.left = left+'px';
                style.top = top+'px';
            }
        }
        else
        {   with(document.getElementById('th_d_'+id))
            {   style.position = 'absolute';
                left = offsetLeft - 80;
                style.position = 'static';
            }
            with (document.getElementById('flah'))
            {   style.display = 'block';
                style.left = left+'px';
                style.top = top+'px';
            }
        }
        if (id != showing_popup)
        {   showing_popup = id;
            show_flah_regular(id, selected_subcat);
        }
    }
}
function over_popup(state)
{   is_over_popup = state;
    if (timer) clearTimeout(timer);
    if (!state && showing_popup!=-1) timer = hide_popup();
}
function get_offset(elem)
{   if (!elem.get_offset_data)
    {   var prev_position = elem.style.position;
        elem.style.position = 'absolute';
        elem.get_offset_data =
        {   left:elem.offsetLeft, top:elem.offsetTop,
            width:elem.offsetWidth, height:elem.offsetHeight
        };
        elem.style.position = prev_position;
    }
    return elem.get_offset_data;
}
/* baloon */
function write_baloon(id)
{   document.write('<div id="'+id+'" style="display:none; position:absolute; z-index:999" onmouseout="window.hide_baloon()"><span id="'+id+'_html">&nbsp;</span></div>');
    var baloon_timer = null;
    var mouse_left=0, mouse_top=0;
    document.onmousemove = function(e)
    {   if (e == null) e = window.event;
        mouse_left = window.mouse_left = document.body.scrollLeft + e.clientX;
        mouse_top = window.mouse_top = document.body.scrollTop + e.clientY;
        if (baloon_timer && navigator.userAgent.indexOf('MSIE')!=-1)
        {   with (document.getElementById(id))
            {   style.left = Math.round(mouse_left - offsetWidth/2 - 8) + 'px';
                style.top = Math.round(mouse_top + offsetHeight/2) + 'px';
            }
        }
    };
    window.show_baloon = function(html)
    {   if (baloon_timer)
        {   clearTimeout(baloon_timer);
            baloon_timer = null;
        }
        with (document.getElementById(id))
        {   style.display = 'block';
            style.left = Math.round(mouse_left - offsetWidth/2 - 8) + 'px';
            style.top = Math.round(mouse_top + offsetHeight/2) + 'px';
        }
        document.getElementById(id+'_html').innerHTML = html;
        baloon_timer = setTimeout('window.hide_baloon()', 6000);
    };
    window.hide_baloon = function()
    {   if (baloon_timer)
        {   clearTimeout(baloon_timer);
            baloon_timer = null;
        }
        document.getElementById(id).style.display = 'none';
    };
}
/* write category select menu */
function write_cats(width, height)
{   var w = (''+width).indexOf('%')==-1 ? Math.floor(width / COLS_IN_CAT_ICON_VIEW) : Math.floor(100 / COLS_IN_CAT_ICON_VIEW)+'%';
    var table = '<table align="center" cellpadding="0" cellspacing="0" style="font-size:10px" '+((''+width).indexOf('%')==-1 ? '' : ' width="100%"')+'>';
    document.write('<table align="center" width="'+width+'" height="'+height+'" cellpadding="0" cellspacing="0" style="font-size:10px" id="all_scrollview"><tr><td valign="top">'+table+'<tr>');
    for (var i=0, j=0; i<db_cats.length; i++)
    {   if (!ADDITIONAL_CATEGORIES && db_cats[i].id < 0) continue;
        if (j>0 && j%COLS_IN_CAT_ICON_VIEW==0) document.write('</tr></table></td></tr><tr><td>'+table+'<tr>');
        j++;
        document.write('<td align="center" width="'+w+'"><a id="cat-link-'+db_cats[i].id+'" href="javascript:void(select_cat('+db_cats[i].id+'))"><img src="cats/'+db_cats[i].id+'.jpg" border="0" /></a><div id="cat_menu_icon_'+db_cats[i].id+'">'+jshtml(db_cats[i].name)+'</div></td>');
    }
    document.write('</tr></table></td></tr></table>');
}
/* extension panels */
function open_extension_panel(n)
{   document.getElementById('extension_panel').style.display = 'none';
    for (var i=1; true; i++)
    {   var obj = document.getElementById('extension_panel_'+i);
        if (!obj) break;
        if (i==n && obj.style.display=='none')
        {   document.getElementById('extension_panel').style.display = 'block';
            obj.style.display = 'block';
        }
        else
        {   obj.style.display = 'none';
        }
    }
}
function close_extension_panel()
{   open_extension_panel(-1);
}
/* logging */
function log_entry(id, action)
{   var log = (';'+document.cookie).match(/;\s*log=([^;]+)/);
    if (log) log=log[1]; else log='';
    log += (log?',':'')+encode_time()+'-'+action+encode_number(id);
    document.cookie = 'log='+log+'; expires='+new Date(2100,0,1).toGMTString()+'; path=/';
}
function encode_time()
{   var since2008 = (new Date().getTime() - new Date(2008, 0, 1).getTime());
    since2008 = Math.floor(since2008 / 1000); /* from miliseconds to seconds */
    return encode_number(since2008);
}
function encode_number(number)
{   var LETTERS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_';
    var code = '';
    number = Math.floor(number);
    if (number < 0)
    {   code = '0';
        number = -number;
    }
    while (number)
    {   var dig = number % LETTERS.length;
        number = Math.floor(number / LETTERS.length);
        code = LETTERS.charAt(dig) + code;
    }
    return code;
}
setInterval
(   function()
    {   var uid = (';'+document.cookie).match(/;\s*uid=([^;]+)/);
        if (uid) uid=uid[1]; else uid='';
        if (!uid)
        {   uid = Math.floor(Math.random()*1000000000)+''+Math.floor(Math.random()*1000000000);
            document.cookie = 'uid='+uid+'; expires='+new Date(2100,0,1).toGMTString()+'; path=/';
        }
        var javaEnabled=2, pixelDepth='';
        try
        {   javaEnabled = navigator.javaEnabled() ? '1' : '0';
            pixelDepth = screen.colorDepth || screen.pixelDepth;
        }   catch (e) {}
        var log = (';'+document.cookie).match(/;\s*log=([^;]+)/);
        if (log) log=log[1]; else log='';
        if (log) ajax
        (   'Stat.aspx', 'uid='+uid+'&log='+log+'&ua='+escape(navigator.userAgent)+
            '&w='+screen.width+'&h='+screen.height+'&ref='+escape(document.referrer)+
            '&java='+javaEnabled+'&color='+pixelDepth,
            function(response, error)
            {   if (response=='OK' && !error)
                {   document.cookie = 'log=; expires='+new Date(2100,0,1).toGMTString()+'; path=/';
                }
            }
        );
    },
    SEND_STAT_INTERVAL
);
/* search form */
function write_search_form()
{   document.write('<form action="'+paramize('./')+'" name="search_form" style="margin:0px"><input type="text" name="phrase" onfocus="search_on_focus()" onblur="search_on_blur()" /> <input type="image" src="img/search_ico.png" /></form>');
    search_on_blur();
}
function search_on_focus()
{   with (document.forms.search_form.phrase)
    {   value = '';
        style.color = 'black';
    }
}
function search_on_blur()
{   with (document.forms.search_form.phrase)
    {   if (param('phrase'))
        {   value = param('phrase');
        }
        else
        {   value = 'חיפוש באתר';
            style.color = 'gray';
        }
    }
}
/* calendar */
function write_calendar()
{   document.write('<span id="calendar"></span>');
    update_calendar();
}
function update_calendar()
{   var d = new Date;
    var wday = ["יום א\'", "יום ב\'", "יום ג\'", "יום ד\'", "יום ה\'", "יום ו\'", "יום שבת"][d.getDay()];
    var month = ['ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'][d.getMonth()];
    var minute = d.getMinutes() < 10 ? '0'+d.getMinutes() : d.getMinutes();
    document.getElementById('calendar').innerHTML = d.getHours()+':'+minute+' '+wday+' '+d.getDate()+' '+month+' '+d.getFullYear();
    setTimeout(update_calendar, (60-d.getSeconds())*1000);
}
/* manipulations with browser settings */
function make_homepage()
{   try
    {   document.body.style.behavior = "url(#default#homepage)";
        document.body.setHomePage(location.href);
    }
    catch (e)
    {   return false;
    }
    return true;
}
function add_to_favorites()
{   var page = location.href.match(/^http:\/\/([^\/]+)/);
    if (page) page = page[1]; else page = location.href;
    try
    {   if (window.sidebar)
        {   window.sidebar.addPanel(page, location.href, '');
        }
        else
        {   window.external.AddFavorite(location.href, page);
        }
    }
    catch (e)
    {   return false;
    }
    return true;
}
/* bookmarks */
function get_tools_html_regular()
{   return ''+
    (   '<table cellpadding="0" cellspacing="0">'+
        '<tr>'+
        '<td style="font-size:10px" align="center">'+FILTER_RESULTS_BY+':</td>'+
        '</tr>'+
        '<tr>'+
        '<td>'+get_icons_html()+'</td>'+
        '</tr>'+
        '</table>'
    );
}
function get_tools_html_bookmarks()
{   return ''+
    (   '<table height="100%" cellpadding="0" cellspacing="0" style="direction:ltr; font-size:9px">'+
        '   <tr>'+
        '       <td align="center" style="padding-right:5px"><a href="javascript:void(select_cat(IMPORT_EXPORT_CAT))"><img src="img/settings.gif" border="0" /></a></td>'+
        '       <td width="1" style="padding-right:5px; border-left:solid silver 1px; font-size:1px">&nbsp;</td>'+
        '       <td align="center" style="padding-right:5px"><a href="javascript:{if (selected_subcat!=IMPORT_EXPORT_CAT) {var name=prompt(\'Rename folder \'+db.get_cat(selected_subcat, db_cats).name+\' to:\\n\', db.get_cat(selected_subcat, db_cats).name); if (name != null) db.rename_bookmarks_folder(get_bookmarks_path(db.get_cat(selected_subcat, db_cats)), get_bookmarks_path(db.get_cat(selected_subcat, db_cats)).replace(/[^\/]+$/, name), db.get_cat(selected_subcat, db_cats).desc, function(error) {if (error) alert(error); else location.reload(true)});} void(0)}"><img alt="[R]" src="img/rename_folder.gif" border="0" /></a></td>'+
        '       <td width="1" style="padding-right:5px; border-left:solid silver 1px">&nbsp;</td>'+
        '       <td align="center" style="padding-right:5px"><a href="javascript:{with (document.forms.new_folder_form.style) {display = display==\'none\' ? \'block\' : \'none\'} void(0)}" title="'+NEW_FOLDER+'"><img alt="+" src="img/plus_folder.gif" border="0" /></a></td>'+
        '       <td width="1" style="padding-right:5px; border-left:solid silver 1px">&nbsp;</td>'+
        '       <td align="center"><a href="javascript:void((selected_subcat==ID_NO_FOLDERS) || (selected_subcat==IMPORT_EXPORT_CAT) || confirm(OK_TO_REMOVE_FOLDER+\'\\n\'+db.get_cat(selected_subcat, db_cats).name) && db.remove_bookmarks_folder(get_bookmarks_path(db.get_cat(selected_subcat, db_cats)), function(error) {if (error) alert(error); else reload();}))" title="'+REMOVE_BOOKMARKS_FOLDER+'"><img alt="-" src="img/minus_folder.gif" border="0" /></a></td>'+
        '   </td></tr>'+
        '       <td align="center" style="padding-right:5px">'+IMPORT_EXPORT_MENU+'</td>'+
        '       <td width="1" style="padding-right:5px; border-left:solid silver 1px; font-size:1px">&nbsp;</td>'+
        '       <td align="center" style="padding-right:5px">'+RENAME_FOLDER_MENU+'</td>'+
        '       <td width="1" style="padding-right:5px; border-left:solid silver 1px">&nbsp;</td>'+
        '       <td align="center" style="padding-right:5px">'+NEW_FOLDER_MENU+'</td>'+
        '       <td width="1" style="padding-right:5px; border-left:solid silver 1px">&nbsp;</td>'+
        '       <td align="center">'+REMOVE_BOOKMARKS_FOLDER_MENU+'</td>'+
       '   </td></tr>'+
        '   <tr><td colspan="7">'+
        '       <form name="new_folder_form" style="display:none" onsubmit="if (this.folder_name.value) db.new_bookmarks_folder(\'\', this.folder_name.value, \'\', function(error) {if (error) alert(error); else reload();}); return false">'+
        '           '+NEW_FOLDER+'<br />'+
        '           <input type="text" name="folder_name" size="10" />'+
        '           <input type="submit" value="OK" />'+
        '       </form>'+
        '   </td></tr>'+
        '</table>'
    );
}
function get_bookmark_folders()
{   if (!window.db_bookmark_folders) return '';
    var html = '';
    for (var f=0; f<db_bookmark_folders.length; f++)
    {   var name = db_bookmark_folders[f].name;
        html += '<option value="'+jshtml(name)+'">'+jshtml(name)+'</option>';
        for (var f2=0; f2<db_bookmark_folders[f].sub.length; f2++)
        {   var name = db_bookmark_folders[f].name + '/' + db_bookmark_folders[f].sub[f2].name;
            html += '<option value="'+jshtml(name)+'">'+jshtml(name)+'</option>';
        }
    }
    return html;
}
/* settings */
function set_settings(key, value)
{   var settings = (';'+document.cookie).match(/;\s*settings=([^;]+)/) || ['', ''];
    settings = settings[1] ? unescape2(settings[1]).split(';') : [];
    var done = false;
    for (var i=0; i<settings.length; i+=2)
    {   if (settings[i] == key)
        {   settings[i+1] = escape2(value);
            done = true;
            break;
        }
    }
    if (!done)
    {   settings[settings.length] = key;
        settings[settings.length] = escape2(value);
    }
    document.cookie = 'settings='+escape2(settings.join(';'))+';path=/;expires='+new Date(2100, 0, 1).toGMTString();
}
function get_settings(key, default_value)
{   var settings = (';'+document.cookie).match(/;\s*settings=([^;]+)/) || ['', ''];
    settings = unescape2(settings[1]).split(';');
    for (var i=0; i<settings.length; i+=2)
    {   if (settings[i] == key) return unescape2(settings[i+1]);
    }
    return default_value;
}
