function tab_focus_editor(editor_id) {
	tinyMCE.execCommand('mceFocus', false, editor_id);		
}

function tab_to_editor(tab_from_id,editor_id) {
	var el = document.getElementById(tab_from_id);
	if (tinyMCE.isMSIE) {
		el.onkeydown = function (e) {
			e = e ? e : window.event;
			if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
				setTimeout("tab_focus_editor('"+editor_id+"')",10);		
			}
			return true;
		}
	} else {
		el.onkeypress = function (e) {
			if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
				setTimeout("tab_focus_editor('"+editor_id+"')",10);		
			}
                        return true;
		}
	}
}

function set_form_tab_order(myformid) {

		var myform = document.getElementById(myformid);
		var traverseElements = myform.elements;		
		var len = traverseElements.length;
		var myelement = null;
		var myname;
		var myvalue;
		var mytype;
		var myid;
		var index_count = 1;
		var previous_element = null;
		var focus_element = null;
		var mynextelement;

		for (z = 0; z < len; z++) {
			mynextelement = traverseElements[z];
			
			if(typeof mynextelement.name == 'undefined' || (mynextelement.name == myform.name || mynextelement.type=='hidden' || mynextelement.name.substring(0,10)=='mce_editor' || mynextelement.name.substring(0,13)=='search_value_')) {
				continue;
			}
			
			if(myelement != null) {
				previous_element = myelement;
			}

			myelement = mynextelement;
			myname  = myelement.name;
	        myvalue = myelement.value;
			mytype = myelement.type;
			myid = myelement.id;

			if(focus_element == null && mytype!='hidden' && myelement.style.display != 'none' && !myelement.disabled) {
				focus_element = myelement;
			}
			if(previous_element) {
			/* if this is a tinymce component, then set the previous tab order to this element */
				if(typeof tinyMCE != "undefined" && tinyMCE.getInstanceById(myid)) {
					tab_to_editor(previous_element.id,myid);
				}				
			}

			myelement.tabIndex = index_count++;	
		}

		if (objExists('ignore_focus_element')) {
			var ignore_focus_element=document.getElementById('ignore_focus_element').value;
		} else {
			var ignore_focus_element='No';
		}

		/* now let's set the focus unless the user specifies to ignore the focus */
		if (focus_element && ignore_focus_element != 'Yes') {
			if(typeof tinyMCE != "undefined" && tinyMCE.getInstanceById(focus_element.id)) {
				EditorTabFrom(document.getElementById('article_summary'));
				setTimeout("tab_focus_editor('"+myid+"')",10);		
			} else {
				focus_element.focus();
			}
		}
		
}
