function tog(the_element, immediate) {
    var it = $(the_element);
    if (it.style.display != 'block' && it.style.display != '') {
        new Effect.Appear(it);
    } else {
        if (immediate) {
            it.style.display='none';
        } else {
            new Effect.Fade(it);
        }
    }
}

function getInnerText(which) {
    return (which.innerText || which.textContent);
}

function is_int(input){
    return typeof(input)=='number'&&parseInt(input)==input;
}
  
function toggle_categories() {
    if (cat_dropdown <= '') {
        cat_dropdown = $('category_dropdown');
        navigatio = $('navigation');
    }
    
   if (cat_dropdown.style.display == 'none') {
        new Effect.SlideDown(cat_dropdown);
        $('categories_tab').className = 'selected';
        for (var i in tabs) {
        	if($(tabs[i] + '_tab')) {
                if ($(tabs[i] + '_tab').className == 'selected') {
					selected = tabs[i];
					$(selected + '_tab').className = 'none';
					break;
			    }
            }
        }
    } else {
        new Effect.SlideUp(cat_dropdown); 
        $('categories_tab').className = 'none';
        if($(selected + '_tab')) {
        	$(selected + '_tab').className = 'selected';
        }
    }
    
    return false;
}


function showOnlyExpertResearched() {
    $('regular_related').style.display = 'none';
    new Effect.Appear('expert_related');
    $('show_only_expert_related_link').style.display = 'none';
}

function swapToShow(which) {
    if (which == 'expert') {
        $('show_all_related_link').style.display='block';
        $('expert_related').style.display='block';
        $('regular_related').style.display='none';
        $('show_only_expert_related_link').style.display='none'; 
    } else {
        $('show_all_related_link').style.display='none';
        $('expert_related').style.display='none';
        $('regular_related').style.display='block';
        $('show_only_expert_related_link').style.display='block'; 
    }
}

function switchToPage(page, which) {
    for (var x=1; x<=3; x++) {
        if (x == page) {                        
            new Effect.Appear(which + page);
            $(which + 'l' + x).className="selected";
        } else {
            $(which + x).style.display = 'none';
            $(which + 'l' + x).className = 'none';
        }
    }
}

function load_subcategories(c, w) {
    new Ajax.Updater('subcategory' + w, '/ajax/subcategories.php?c=' + c + '&w=' + w);
}

function showAllItemsOfClass(which) {
    var all = $$(which);
    for (i in all) {
        if (all[i] && all[i] != 'undefined') {
            new Effect.Appear(all[i]);
        }
    }
}

function reportContent(q, id, type) {
    var report_html = '<form class="ReportAbuseDropDown" method="post" action="/report/"><ul><input type="hidden" name="q" value="' + q + '">' + 
                        '<input type="hidden" name="id" value="' + id + '">' + 
                        '<input type="hidden" name="type" value="' + type + '">' +
                        '<li><label><input type="radio" name="reason" value="spam" />Spam</label></li>' +
                        '<li><label><input type="radio" name="reason" value="offensive" />Offensive</label></li>' +
                        '<li><label><input type="radio" name="reason" value="nonsense" />Nonsense</label></li>' +
                        '<li><label><input type="radio" name="reason" value="duplicate" />Duplicate</label></li>';
                        
                        if (type == 'question') {
                            report_html = report_html +  '<li><label><input type="radio" name="reason" value="bad-tags" />Bad tag(s)</label></li>' +
                                         '<li><label><input type="radio" name="reason" value="wrong-cat" />Wrong category</label></li>';
                        }
                        
                       report_html = report_html +  '</ul><a class="close" href="#" onclick="tog(\'report' + id + type + '\'); return false;"><img width="15" height="15" alt="Close the Report Abuse Menu" src="/ui/images/buttons/blue_close.png"/></a>' +
                       '<input type="submit" name="" value="Submit" class="Button1a submit" /></form>';
    it = $('report' + id + type);
    it.innerHTML = report_html;
    new Effect.Appear(it);
}

function togdual(the_element,the_element2, immediate) {
    var it = $(the_element);
    var it2 = $(the_element2);
    if (it.style.display != 'block' && it.style.display != '') {
        new Effect.Appear(it);
        it2.style.display='none';
    } else {
        if (immediate) {
            it2.style.display='';
        } else {
            //new Effect.Fade(it);
            new Effect.Appear(it2);
        }
        it.style.display='none';
    }
}

function toggleCategoriesDropdown() {
    var dropdown = $('categories_dropdown');
    if (dropdown.className == 'menu inactive') {
        dropdown.className = 'menu active';
    } else {
        dropdown.className = 'menu inactive';
    }
}

function updateRemaining() {
    remaining = 140 - q_t.value.length;
    c_r.innerHTML = remaining;
    if (remaining >= 20) {
        c_r.style.color = '#666666';
        c_r.style.fontWeight = 'normal';
    } else if (remaining >= 10) {
        c_r.style.color = 'firebrick';
        c_r.style.fontWeight = 'normal';
    } else {
        c_r.style.color = 'firebrick';
        c_r.style.fontWeight = 'bold';
    }
    
}

function handleAnswerForm() {
    if ($('answer').style.color == 'black') {
        $('answer_form').submit();
    } else {
        new Effect.Appear($('answer_it'));
        $('answer_button').value='Submit answer';
    }
}

function like(content_id, content_type, mkey) {
    if (mkey <= '') {
        mkey = '';
    }
    link = $('like_link_' + content_id + '_' + content_type);
    new_link_html = '<a href="#" onclick="like(' + content_id + ",'" + content_type + "'); return false;\">"; 
    current_text = getInnerText(link).strip();
    if (current_text == 'Like') {
        // Like it
        link.innerHTML = new_link_html + 'Unlike</a>';
        new Ajax.Updater('liked_by_whom_' + content_id + '_' + content_type, '/ajax/like.php?id=' + content_id + '&type=' + content_type + '&which=like&mkey=' + mkey);
    } else {
        // Unlike it 
        link.innerHTML = new_link_html + 'Like</a>';
        new Ajax.Updater('liked_by_whom_' + content_id + '_' + content_type, '/ajax/like.php?id=' + content_id + '&type=' + content_type + '&which=unlike&mkey=' + mkey);
    }
}

var regulars = new Array();
function show_answers(which) {
    regulars = $$('div.regular');
    reg_length = regulars.length;

    if (which == 'all') {
        for(var i=0; i<reg_length; i++) {
            new Effect.Appear(regulars[i]);
        }
        
        showing_status.innerHTML = 'Showing all answers. <a href="#" onclick="show_answers(\'great\'); return false;">Show only great answers.</a>';
    } else if (which == 'great') {
        for(var i=0; i<reg_length; i++) {
            new Effect.Fade(regulars[i]);
        }
        
        showing_status.innerHTML = 'Showing only great answers. <a href="#" onclick="show_answers(\'all\'); return false;">Show all answers.</a>';
    }
}

function loadMoreAnswers(q, s) {
    $('more_answers').innerHTML = "<img src=/images/bar.gif>";
    new Ajax.Updater('more_answers', '/ajax/more_answers.php?q=' + q + '&s=' + s);
    $('show_more_answers').style.display = 'none';
}

function getCookieVal(offset) {
	var endstr = document.cookie.indexOf(";", offset);
	if (endstr == -1) endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie(name) {
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg) return getCookieVal(j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
	}
	return null;
}

function SetCookie(name, value) {
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape(value) + ((expires == null) ? "" : ("; expires=" + expires.toUTCString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");
}

function DeleteCookie(name) {
	var exp = new Date();
	exp.setTime(exp.getTime() - 1);
	// This cookie is history
	var cval = GetCookie(name);
	document.cookie = name + "=" + cval + "; expires=" + exp.toUTCString();

}

function addFilter(which) {
    // Already selected. Disable filter.
    if ($(which).value == 1) {
        $('li_' + which).className = 'none';
        $(which).value = 0;
    } else {
        $('li_' + which).className = 'selected';
        $(which).value = 1;
    }
    
    updateQuestions();
}

function showRecentTopics(which) {
    if (which == 'today') {
        $('recent_topics_today').style.display='block';
        $('recent_topics_week').style.display='none';
        $('recent_topics_month').style.display='none';
        
        $('topics_today_link').className = 'first selected';
        $('topics_week_link').className = 'middle';
        $('topics_month_link').className = 'last';
    } else if (which == 'week') {
        $('recent_topics_week').style.display='block';
        $('recent_topics_today').style.display='none';
        $('recent_topics_month').style.display='none';
        
        $('topics_week_link').className = 'middle selected';
        $('topics_today_link').className = 'first';
        $('topics_month_link').className = 'last';    
    } else if (which == 'month') {
        $('recent_topics_month').style.display='block';
        $('recent_topics_today').style.display='none';
        $('recent_topics_week').style.display='none';
        
        $('topics_month_link').className = 'last selected';
        $('topics_today_link').className = 'first';
        $('topics_week_link').className = 'middle';    
    }
}

var simpleEncoding = 
  'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

function simpleEncode(valueArray,maxValue) {
    var chartData = ['s:'];
      for (var i = 0; i < valueArray.length; i++) {
        var currentValue = valueArray[i];
        if (!isNaN(currentValue) && currentValue >= 0) {
        chartData.push(simpleEncoding.charAt(Math.round((simpleEncoding.length-1) * 
          currentValue / maxValue)));
        }
          else {
          chartData.push('_');
          }
      }
    return chartData.join('');
}

function getTopicImage(elementID,tagName) {
	new Ajax.Request('/ajax/ajax_request?type=topicimage&topic='+tagName+'&rand='+Math.random(), {
		method: 'get',
		onSuccess: function(transport) {
			var info = transport.responseText.evalJSON();
			$(elementID).src = info[tagName][0].url;
		}
	});
}

function add_recipient(id, name) {
    recipients = $('recipients');
    if (recipients.innerHTML > '') {
        recipients.innerHTML = recipients.innerHTML + 
                               ', <a href="/profile/' + id + '">' + name + '</a>' +
                               '<input type="hidden" name="to[]" value="' + id + '" />';
    } else {
        recipients.innerHTML = '<a href="/profile/' + id + '">' + name + '</a>' +
                               '<input type="hidden" name="to[]" value="' + id + '" />';
    }
}

function hide_elements(cssSelect) {
	$$(cssSelect).each(function(name, index) {
	    name.style.display = "none";
	});
}

var addthis_config = {
  data_use_flash: false
}