function outline_view_click(){
  toggle_hidden_class('outline_view');
  toggle_hidden_class('full_view');
  outline_view();
}

function full_view_click(){
  toggle_hidden_class('outline_view');
  toggle_hidden_class('full_view');
  full_view();
}

//set all long blocks to hidden and short to ''
function outline_view(){
  var lis = document.getElementsByTagName('li');
  var i;
  for (i = 0; i < lis.length; i++){
  	var li = lis[i];
    if (li.id){
  	  var match = li.id.match(/(.*)_semb/);
      if (match && match[0]){
        set_block_closed(match[1]);
      }
    }
  }
}
//set all short blocks to hidden and long to ''
function full_view(){
  var lis = document.getElementsByTagName('li');
  var i;
  for (i = 0; i < lis.length; i++){
  	var li = lis[i];
    if (li.id){
  	  var match = li.id.match(/(.*)_semb/);
      if (match && match[0]){
        set_block_open(match[1]);
      }
    }
  }
}
 


function is_block_closed(id){
  return (ebi(id + '_long').className == 'hidden');
}

function switch_block_visibility(id){
  if (is_block_closed(id)){
    set_block_open(id);
  } else {
    set_block_closed(id);
  }
}
 
function set_block_open(id){
  var img = ebi(id + '_img');
  var longb = ebi(id + '_long');
  var shortb = ebi(id + '_short');
  if (img){
    img.src='/images/open.gif';
    img.alt='Open';
    longb.className = '';
    shortb.className = 'hidden';
  }
}

function set_block_closed(id){
  var img = ebi(id + '_img');
  var longb = ebi(id + '_long');
  var shortb = ebi(id + '_short');
  if (img){
    img.src='/images/closed.gif';
    img.alt='Closed';
    longb.className = 'hidden';
    shortb.className = '';
  }
}

function get_look_it_up_text(){
	var lit_text = lookItUpText.toString();
	var splitup = lit_text.replace(/[\s\*\?]+/, ' ');
	/* FIXME - is there a better regex for all combining diacritics?
	   this only covers combining acute; \u301 */
	var stripped = splitup.replace(/[\u0301\|]+/, '');
	return encodeURI(stripped);
}

function look_it_up(){
	url = look_it_up_url(get_look_it_up_text(), get_direction());
	window.location = url;
}

function look_it_up_other(){
	url = look_it_up_url(get_look_it_up_text(), get_other_direction());
	window.location = url;
}

function look_it_up_url(text, direction){
	return '/search/SearchResultsPage.html?direction=' + direction 
		+ '&_f:direction=opp:direction&_op:direction=exact' 
		+ '&text=' + text 
		+ '&_f:text=fullSearch&_op:text=field';
}

function split_words(){
	url = '/search/SplitWordsPage.html?text=' + get_look_it_up_text()
		+ '&direction=' + get_direction();
	//alert(url);
	window.location = url;
}

function handle_entry_search(uri, start, search){
	url = '/view/EntrySearchSubPage.html?sp=S' + uri + '&_start=' + start + '&entrySearchHistoryIndex=' + search;
	get_request(url, handle_side_switch);	
}

// Function to introduce tabs on entry pages
// Tabs dynamically separate a translated word group from a compound group 
$(document).ready(function() {
	create_compound_tabs();
});

function create_compound_tabs() {

	//Only do this operation once per load...
	if($("#entryGroupTabs").length < 1) {
		if($("#entry_content .headword_group").length) {
			if($("#entry_content .headword_group").attr("lang") === "zh") {
		
				var mainLi = $("<li/>").addClass("main").attr("rel","grammatical_group").append($("<a/>").text("Main Translation"));
				var compoundsLi = $("<li/>").addClass("compounds").attr("rel","cb").append($("<a/>").text("Compounds"));
				var tabs = $("<ul/>").attr("id","entryGroupTabs").append(mainLi).append(compoundsLi);
				$("#entry_content .headword_group").next("ul").attr("id", "entryGroupPanels");
				$("#entry_content .headword_group").after(tabs);
	
				var hasWordBlocks = false, hasCompounds = false;
				if($("#entryGroupPanels .grammatical_group").length) hasWordBlocks = true;   
				if($("#entryGroupPanels .xrg").length) hasWordBlocks = true;   
				if($("#entryGroupPanels .cb").length) hasCompounds = true;
				if(hasWordBlocks && !getParameterByName("showCt")) {
					$("#entryGroupTabs .main").addClass("current");
					$("#entryGroupPanels > .cb").hide();
				}
				if(!hasWordBlocks && hasCompounds || getParameterByName("showCt")) {
					$("#entryGroupTabs .compounds").addClass("current");
					$("#entryGroupPanels > .grammatical_group").hide();
				}
				if(!hasCompounds) { $("#entryGroupTabs .compounds").addClass("inactive"); }
				if(!hasWordBlocks) { $("#entryGroupTabs .main").addClass("inactive"); }
	
				// Entry tabs functionality
				$("#entryGroupTabs a").click(function() {
					var li = $(this).parent("li");
					if(!li.hasClass("current") && !li.hasClass("inactive")) {
						$("#entryGroupTabs .current").removeClass("current");
						li.addClass("current");
						$("#entryGroupPanels > li").hide();
						$("#entryGroupPanels > ." + li.attr("rel")).show();
					}
					$(this).blur();
					return false;
				});

			}
		}
	}	

}

function getParameterByName(name) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec(window.location.href);
	if(results == null)
		return "";
	else
		return decodeURIComponent(results[1].replace(/\+/g, " "));
}
