
/* Give cursor onload to the search input */

function loadCursor() {
    var go_text = ebi('go_text');
    if (go_text) go_text.focus();
}

/* Show/Hide Options */

function showOptions() {
	ebi('showmenu').style.display = "none";
	ebi('hidemenu').style.display = "block";
}

function hideOptions() {
	ebi('hidemenu').style.display = "none";
	ebi('showmenu').style.display = "block";
}


/* Character Palette */

function openPalette() {
	var trigger = ebi('open_palette');
	var palette = ebi('charPalette_wrapper');
	var palettetwo = ebi('charPalette');
	var inputW = ebi('go_text').offsetWidth;
	var inputH = ebi('go_text').offsetHeight;
	var coors = findPos(trigger);
	var fieldone = ebi('_f:text');
	var fieldtwo = ebi('ps');
	var fieldthree = ebi('lev');
	var fieldfour = ebi('reg');
	trigger.style.display = "none";
	palettetwo.style.width = ( inputW - 10 ) + "px";
	palette.style.display = "block";
	if (fieldone) {fieldone.style.visibility = "hidden";}
	if (fieldtwo) {fieldtwo.style.visibility = "hidden";}
	if (fieldthree) {fieldthree.style.visibility = "hidden";}
	if (fieldfour) {fieldfour.style.visibility = "hidden";}
}

function closePalette() {
	var trigger = ebi('open_palette');
	var palette = ebi('charPalette_wrapper');
	var fieldone = ebi('_f:text');
	var fieldtwo = ebi('ps');
	var fieldthree = ebi('lev');
	var fieldfour = ebi('reg');
	palette.style.display = "none";
	trigger.style.display = "block";
	if (fieldone) fieldone.style.visibility = "visible";
	if (fieldtwo) fieldtwo.style.visibility = "visible";
	if (fieldthree) fieldthree.style.visibility = "visible";
	if (fieldfour) fieldfour.style.visibility = "visible";
}


/* Character Index */

function openIndex() {
	var trigger = ebi('open_index');
	var palette = ebi('charIndex_wrapper');
	var fieldone = ebi('_f:text');
	var fieldtwo = ebi('ps');
	var fieldthree = ebi('lev');
	var fieldfour = ebi('reg');
	var inputW = ebi('go_text').offsetWidth;
	var inputH = ebi('go_text').offsetHeight;
	var coors = findPos(trigger);
	if (trigger) {trigger.style.display = "none";}
	if (palette) {palette.style.display = "block";}
	if (fieldone) {fieldone.style.visibility = "hidden";}
	if (fieldtwo) {fieldtwo.style.visibility = "hidden";}
	if (fieldthree) {fieldthree.style.visibility = "hidden";}
	if (fieldfour) {fieldfour.style.visibility = "hidden";}
	hide_flash_objects();
	index_step('radical',1,'');
}

function closeIndex() {
	var trigger = ebi('open_index');
	var palette = ebi('charIndex_wrapper');
	var fieldone = ebi('_f:text');
	var fieldtwo = ebi('ps');
	var fieldthree = ebi('lev');
	var fieldfour = ebi('reg');
	if (palette) palette.style.display = "none";
	if (trigger) trigger.style.display = "block";
	if (fieldone) fieldone.style.visibility = "visible";
	if (fieldtwo) fieldtwo.style.visibility = "visible";
	if (fieldthree) fieldthree.style.visibility = "visible";
	if (fieldfour) fieldfour.style.visibility = "visible";
	show_flash_objects();
}

function switchtoPinyin() {
	var radical = ebi('charIndex_radical');
	var pinyin = ebi('charIndex_pinyin');
	radical.style.display = "none";
	pinyin.style.display = "block";
	index_step('pinyin',1,'');
}

function switchtoRadical() {
	var radical = ebi('charIndex_radical');
	var pinyin = ebi('charIndex_pinyin');
	radical.style.display = "block";
	pinyin.style.display = "none";
	index_step('radical',1,'',null);
}

function index_step(type, step, input, obj){
	var page;
	if (type=='radical'){
		page="RadicalIndexSubPage.html";
	} else {
		page="PinyinIndexSubPage.html";
	}
	var url = "/charIndex/"+page + "?step="+step + "&input="+input;
	var func = function(req) {
		replace_element(type + step,req);
		indexHover();	
	};
	add_class_remove_from_siblings(obj,'on')
	get_request(url, func);
}

indexHover = function() {
	var charIndex = ebi("charIndex");
	if (charIndex){
		var hoveritems = charIndex.getElementsByTagName("LI");
		for (var i=0; i<hoveritems.length; i++) {
			hoveritems[i].onmouseover=function() {
				this.className+=" onIE";
			}
			hoveritems[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" ?onIE\\b"), "");
			}
		}
	}
}


/* Direct Look Up */

var IE = document.all?true:false
if (!IE) document.captureEvents(Event.MOUSEMOVE)
var tempX = 0
var tempY = 0
var loc = true;
var lookItUpText = '';

function lookUpOff() {
	var lookItUp = ebi('lookItUp');
	if (lookItUp) {
		lookItUp.style.visibility = "hidden";
	}
}

function locOff() {
	loc = false;
}

function findSelect(e) {
	if (loc) {
		var txt = '';
		var foundIn = '';
		var floater = ebi('lookItUp');
		if (IE) { // grab the x-y pos.s if browser is IE
		    tempX = event.clientX + ebi('container').scrollLeft
		    tempY = event.clientY + ebi('container').scrollTop
		} else {  // grab the x-y pos.s if browser is NS
		    tempX = e.pageX + ebi('container').scrollLeft
		    tempY = e.pageY + ebi('container').scrollTop
		}  
		  // catch possible negative values in NS4
		if (tempX < 0){tempX = 0}
		if (tempY < 0){tempY = 0}  
		if (window.getSelection)
		{
			txt = window.getSelection();
			foundIn = 'window.getSelection()';
		}
		else if (document.getSelection)
		{
			txt = document.getSelection();
			foundIn = 'document.getSelection()';
		}
		else if (document.selection)
		{
			txt = document.selection.createRange().text;
			foundIn = 'document.selection.createRange()';
		}
		if (txt == '') {
			floater.style.visibility = "hidden";
			return;
		}
		txt = ('' + txt).replace('#','');
		lookItUpText = txt;
		floater.style.left = ( tempX - (floater.offsetWidth) ) + "px";
		floater.style.top = ( tempY - floater.offsetHeight - 15 ) + "px";
		floater.style.visibility = "visible";
	 } else {
		loc = true;
	}
}

/* Phonemes */

var whichPhoneme;

function phonemeOn(box,flag) {
	var flag = findPos(flag.parentNode);
	var box = ebi(box);
	box.style.left = ( flag[0] - 5 ) + "px";
	box.style.top = ( flag[1] - 65 ) + "px";
	box.style.display = "block";
	whichPhoneme = box;
}

function phonemeOff(box) {
	var box = whichPhoneme;
	box.style.display = "none";
}

/* Parts Of Speech */

var whichPOS;

function posOn(box,flag) {
	var thisEl = $(flag);
	if(thisEl.find(".largehover").length && !thisEl.hasClass("doNotCopylargehover")) {
		thisEl.addClass("doNotCopylargehover");
		$("#"+box).prepend(thisEl.find(".largehover"));
	}
	var flag = findPos(flag.parentNode);
	var box = ebi(box);
	box.style.left = ( flag[0] + 15 ) + "px";
	box.style.top = ( flag[1] - 40 ) + "px";
	box.style.display = "block";
	whichPOS = box;
}

function posOff(box) {
	var box = whichPOS;
	box.style.display = "none";
}

/* Cultural Notes */

function findCNs() {
	var CNs = myGetElementsByClass('cn',null,'div');
	for (i = 0; i < CNs.length; i++) {
		if (CNs[i].className.indexOf('selected') < 0){
			CNs[i].className = "cn" + " " + "closed";
		}
		CNs[i].getElementsByTagName('a')[0].onclick = function() {
			if ( this.parentNode.className.indexOf("cn" + " " + "open" ) >= 0) {
				this.parentNode.className = "cn" + " " + "closed";
			} else {
				this.parentNode.className = "cn" + " " + "open";
			}
			return false;
		}
	}
}

/* Tools */

function myGetElementsByClass(searchClass,node,tag) {
  var classElements = new Array();
  if (node == null)
    node = document;
  if (tag == null)
    tag = '*';
  var els = node.getElementsByTagName(tag);
  var elsLen = els.length;
  var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
  for (i = 0, j = 0; i < elsLen; i++) {
    if (pattern.test(els[i].className) ) {
      classElements[j] = els[i];
      j++;
    }
  }
  return classElements;
}

function findPos(obj)
{
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}


function toggle_class(id, clazz){

  var element = ebi(id);
  if (element){
	if (element.className.indexOf(clazz) >= 0){
		element.className = element.className.replace(clazz, '');
	} else {
	  if (element.className){
	  	element.className += ' ' + clazz;
	  } else {
		element.className= clazz;
	  }
	}
  }
}

function add_class_remove_from_siblings(obj, clazz){
	if (obj){
		var tagName = obj.tagName;
		var objParent = obj.parentNode;
		var nodes = objParent.getElementsByTagName(tagName);
		for (var i = 0; i<nodes.length; i++){
			nodes[i].className = nodes[i].className.replace(new RegExp(" ?" + clazz + "\\b"), "");
		}
		obj.className += " " + clazz;
	}
}

function toggle_hidden_class(id){
  toggle_class(id, 'hidden')
}


function hide_flash_objects(){
	var fcinputs = document.getElementsByName('flashcontent');
	if (fcinputs != null){
		for (var i = 0; i < document.getElementsByName('flashcontent').length; i++){
			var fv = document.getElementsByName('flashcontent')[i].value;
			var fvparts = fv.split(';');
			if (ebi(fvparts[0])){		
				ebi(fvparts[0]).style.visibility="hidden";
			}
		}
	}
}

function show_flash_objects(){
	var fcinputs = document.getElementsByName('flashcontent');
	if (fcinputs != null){
		for (var i = 0; i < document.getElementsByName('flashcontent').length; i++){
			var fv = document.getElementsByName('flashcontent')[i].value;
			var fvparts = fv.split(';');
			if (ebi(fvparts[0])){		
				ebi(fvparts[0]).style.visibility="visible";
			}
		}
	}
}

function create_flash_objects(){
//	alert('preGEBN');
	var fcinputs = document.getElementsByName('flashcontent');
	//alert('postGEBN');
	if (fcinputs != null){
		//alert('preloop');
		for (var i = 0; i < document.getElementsByName('flashcontent').length; i++){
			//alert('inloop1');
			var fv = document.getElementsByName('flashcontent')[i].value;
			//alert('inloop2');
			var fvparts = fv.split(';');
			//alert('preebi');
			if (ebi(fvparts[0])){		
				//alert('prefo');
			    flash_object(fvparts[0], fvparts[1]);
			    //alert('postfo');
			}
			//alert('endloop');
		}
	}
	//alert('endcfo');
}

function flash_object(id, src){
	var fo = new SWFObject("/images/audio_player.swf", id + "_object", "13", "19", "6", "#FFFFFF");//"moviename", "id", "width", "height", "version", "bkgrnd color";
    fo.addVariable("mySound", src);
    fo.write(id);
    // alert ("flash_object " + id + "=" + fo.getSWFHTML());
}

$(document).ready(function() {

	$("#wordbankControl").click(function() {
		var toggler = $(this).children("#toggleWordbank");
		var cssString = toggler.css("background-image");
		if(cssString.indexOf("closed.gif") > -1) {
			toggler.css("background-image","url('../images/open.gif')");
			$("table#wordbank").css("display","block");
			document.cookie = "languagewebbox=open; path=/;"
		}
		else {
			toggler.css("background-image","url('../images/closed.gif')");
			$("table#wordbank").css("display","none");
			document.cookie = "languagewebbox=closed; path=/;"
		}
		return false;
	});

	if (document.cookie.indexOf("languagewebbox=closed") > -1){
		$("#toggleWordbank").css("background-image","url('../images/closed.gif')");
		$("table#wordbank").css("display","none");
	}
	$("table#wordbank").parent("#entry_content").css("border-bottom","0");

	//initialize wordwheel element events on first load
    applyWWHoverEvents();
    
    $(".largehoverwrap").mouseover(function(){
    	$(this).find(".largehover").show();
    });
    $(".largehoverwrap").mouseout(function(){
    	$(this).find(".largehover").hide();
    });
    
    $("#mainSearchLinks li:first").css("background-image", "none");

});

function applyWWHoverEvents() {
	$("#wordWheelContent .wordbankrow h2.language-name a").click(function() { return false; })
	$("#wordWheelContent .wordbankrow .wordbank-item").hover(function() {
		if(!$(this).parent("#lang_en").length) {
			$(this).parent(".wordbankrow").addClass("wwhover");
		}
	},
	function() {
		$(this).parent(".wordbankrow").removeClass("wwhover");
	});
}



function hide_nonjs(){
	add_class('content','hide_nonjs');
}

function show_jsonly(){
	remove_class('content','hide_jsonly');
}

function show (id, show_style) {
  var e = ebi (id);
  //alert ("show " + id);
  if (e)
  	e.style.display = show_style;
}

function hide_nonjs_show_jsonly(){
	show ('view_selector', 'block');
	if (navigator.userAgent.indexOf("MSIE 6") < 0) 
		show ('hidemenu', 'block');
	show ('dir_switch', 'inline');
	show ('palette_link', 'block');
	show ('ch_index_link', 'block');
	show ('search_go_nonjs', 'none');
	show ('search_buttons_nonjs', 'none');
	show ('search_buttons_js', 'block');
}

function open_sub_window(wname, url) {

	var screenW = 640;
	var screenH = 480;
	var leftPosition = 0 // (screen.width) ? (screen.width - w)/2 : 0;
	var topPosition = 0 //(screen.height) ? (screen.height - h)/2 : 0;
	
	if (parseInt(navigator.appVersion)>3) {
		screenW = screen.width;
		screenH = screen.height;
	}
	else if ( navigator.appName == "Netscape" && parseInt(navigator.appVersion)==3 && navigator.javaEnabled() ) {
		var jToolkit = java.awt.Toolkit.getDefaultToolkit();
		var jScreenSize = jToolkit.getScreenSize();
		screenW = jScreenSize.width;
		screenH = jScreenSize.height;
	}
	
	screenW = screenW * 0.75;
	screenH = screenH * 0.75;
	
	var w = window.open(url, wname, 'location,menubar,scrollbars,toolbar,resizable,status,width='+screenW+',height='+screenH+',top='+topPosition+',left='+leftPosition);
	
	w.focus();
}

function open_small_sub_window(wname, url) {

	var screenW = 500;
	var screenH = 240;
	var leftPosition = 0 // (screen.width) ? (screen.width - w)/2 : 0;
	var topPosition = 0 //(screen.height) ? (screen.height - h)/2 : 0;
	
	if (parseInt(navigator.appVersion)>3) {
		screenW = screen.width;
		screenH = screen.height;
	}
	else if ( navigator.appName == "Netscape" && parseInt(navigator.appVersion)==3 && navigator.javaEnabled() ) {
		var jToolkit = java.awt.Toolkit.getDefaultToolkit();
		var jScreenSize = jToolkit.getScreenSize();
		screenW = jScreenSize.width;
		screenH = jScreenSize.height;
	}
	
	screenW = 500;
	screenH = 240;
	
	var w = window.open(url, wname, 'location,menubar,scrollbars,toolbar,resizable,status,width='+screenW+',height='+screenH+',top='+topPosition+',left='+leftPosition);
	
	w.focus();
}



/* jQuery 1.2.3 Functions */
function setUpFlashSoundHover(){
	$('.flashSound').hover(
		function(){
		 $(this).children('span').show();
		},
		function(){
		 $(this).children('span').hide();
		}
	);
}
$(document).ready(function(){
	setUpFlashSoundHover();
});

