function tabbar(action,hl) {
document.form.jsaction.value = action;
document.form.newhl.value = hl;
document.form.submit();
}

function formchanged ()
	{
	document.form.form_changed.value = 'yes';
	}


// Set Focus on the first field that contains an error
function errfocus (fieldname)
		{
		document.forms[0].elements[fieldname].focus();
		}

// R�ckfrage (Ja,Nein) ausl�sen, Aktion zwischenspeichern

function ChangedConfirmSubmit(action,message)
	{
	confirmtype = "2";
	if (document.form.form_changed.value == 'yes' && message != '')
		{
		nextaction = action;
		openQuestion("Yes,No,Cancel",message);
		}
	else
		{
		ActionSubmit(action);
		}
	}

function ConfirmSubmit(action,message)
{
  confirmtype = "1";
	if (message != '')
		{
		nextaction = action;
		openQuestion('Yes,No',message);
		}
	else
		{
		ActionSubmit(action);
		}
}

// zeigt ein R�ckfragefenster
//   unter buttons wird eine Liste erwartet, die die Buttons bilden soll
//	 unter msg die Nachricht, die auf dem Fenster gezeigt werden soll */
function openQuestion(buttons,msg)
{
  Fenster = window.open("shared/dsp_confirm.cfm?buttons=" + buttons + "&msg=" + msg,"openQuestion","fullscreen=0,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0");
	Fenster.resizeTo(240,180);
	Fenster.moveTo(screen.width / 2 - 125, screen.height / 2 - 60);
}



// Nimmt die Antwort aus dem R�ckfragefenster entgegen
function getanswer(answer)
{
  switch(confirmtype + "=" + answer)
	{
	  case "1=Yes":
		  ActionSubmit(nextaction);
			break;
		case "1=No":
			break;
		case "2=Yes":
		  ActionSubmit("2" + nextaction);
			break;
		case "2=No":
		  ActionSubmit(nextaction);
		case "2=Cancel":
		break;
	}
}

// Aktion �ber URL-Variable verschicken.
function ActionSubmit(action) {
//	alert('action = '+action);
	document.forms[0].jsaction.value = action;
	//addQueryString(action);
	document.forms[0].submit();
}

function formsubmit(action,message) {
	if (message != '')
		{if (confirm (message) == true)
			{
			document.forms[0].action = document.forms[0].action + "?action=" + action;
			document.forms[0].submit();
			}
		}
	else
		{
		document.forms[0].action = document.forms[0].action + "?action=" + action;
		document.forms[0].submit();
		}
}

<!-- begin to hide script contents from old browsers
function checksearch()
  {
	var searchlen = document.forms[0].searchterm.value;
	if(searchlen == "")
		{
		alert("Please type in keyword(s) to search!");
		}
	else {
			ActionSubmit('act_content_search');
		 }
  }
// end hiding script from old browsers -->



function popitup(destination,win_name,win_dim)
{
		window.open (destination ,win_name,win_dim + ',' + 'resizable=no,scrollbars=no,toolbar=no,Left=250,Top=250,status=no,directories=no,menubar=no,location=tabelle');
	}

function noSpamMailLink(user,domain,tld,param) {
	locationstring = "mailto:" + user + "@" + domain + "." + tld + param;
	window.location = locationstring;
}

function addQueryString(string) {
	if (string != undefined){
		if (document.forms[0].action.indexOf('?') == -1){
			document.forms[0].action = document.forms[0].action + "?x_param=" + string.replace('=','');
		} else {
			document.forms[0].action = document.forms[0].action + "&x_param=" + string.replace('=','');
		}
		if(string.charAt(0) == '2'){
			document.forms[0].action = document.forms[0].action + "&x_param1=" + document.forms[0].primary_action.value;
		}
	}
}

// using this function to load the object externally
// this will make the object active on load
// other wise IE requires user to click on the object to make it active

function CreateControl(DivID,content)
{
  var d = document.getElementById(DivID);
  d.innerHTML = content;
}


function hide(divID) {
	if (document.getElementById(divID).className == 'close')
	{

		document.getElementById(divID).className="open";
	}
	var d = document.getElementById('supportCategories');
	var pos = findPos(d);

	if(document.getElementById('selectionBox').style.visibility== 'visible')
	{
		document.getElementById('selectionBox').style.visibility = 'hidden';
	}
	document.getElementById('qHolder').style.left = pos[0];
	document.getElementById('qHolder').style.top  = pos[1] + 25;
}


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 subQ(ffID,kbID)
{

		if(document.getElementById('question').style.display== 'none')
		{
			document.getElementById('question').style.display = 'block';
		}

	if(document.getElementById('selectionBox').style.visibility == 'hidden')
	{
		document.getElementById('selectionBox').style.visibility = 'visible';
	}
	
		

 document.getElementById('qHolder').className = 'close';
 document.getElementById(ffID).value = kbID;
 document.getElementById('dash').className = 'open';
 var d = document.getElementById('selection');
 var rows = dsQuestions.getData();
 var i;
 for(i=0;i < rows.length;i++)
 {
  	if(rows[i]["kbID"] == kbID)
  	{
  		content = rows[i]["question"];
  	}
 }
 d.innerHTML = content ;
}

function setValue(value)
{

	var rows = dsQuestions.getData();
	var i;
	for (i= 0; i < rows.length; i++)
	{
		if (rows[i]["kbID"] == value)
		 content = rows[i]["question"];
	}
 document.getElementById('dash').className = 'open';
 var d = document.getElementById('selection');
 d.innerHTML = content ;
}

// set a value for the hidden variable so the commentID of the comment being quoted is available in the comment insertion query
function setHiddenFieldVal(hiddenfName,contentID,focusField){
	document.forms[0].elements[hiddenfName].value = contentID;
	quote.style.display = "";
	cancelQuote.style.display = "";
	quote.innerText = "Quoting";
	document.forms[0].elements[focusField].focus();
}	

// reset the hidden commentID variable to indicate no comment quote exists
function canQuote(hiddenfName,focusField){
	document.forms[0].elements[hiddenfName].value = 0;
	quote.innerText = "";
	quote.style.display = "none";
	cancelQuote.style.display = "none";
	document.forms[0].elements[focusField].focus();
}

function showDownload(docType){
	var docType = docType;
	document.forms[0].elements.docType.value = docType;
	document.all.pleasewaitScreen.style.pixelTop = (document.body.scrollTop + 50);
	document.all.pleasewaitScreen.style.visibility="visible";
	if(navigator.appName != "Microsoft Internet Explorer"){
		window.setTimeout('startTimer()',1);
	}
}	

function startTimer(){
// run this only if browser != IE
	lengthy_calculation();
	// timer done, hide the message
	document.all.pleasewaitScreen.style.visibility="hidden";
}

function lengthy_calculation(){
	// this function acts as a timer
	var docType = form.docType.value;
	var x,y
	var maxTime = 0;
	var thisBrowser = form.browser.value;
	var os = form.os.value;
	
	// set timer length based on browser type and download file format
	if (thisBrowser.indexOf("Safari")!= -1){
		switch(docType)
		{
			case "txt":
				if (os.indexOf("Win") != -1){
			  		maxTime = parseInt(100000);
				}else{
					maxTime = parseInt(120000);
				}
				break;
			case "doc":
				if (os.indexOf("Win") != -1){
					maxTime = parseInt(700000);
				}else{
					maxTime = parseInt(850000);
				}
				break;
			case "pdf":
				if (os.indexOf("Win") != -1){
			  		maxTime = parseInt(150000);
				}else{
					maxTime = parseInt(180000);
				}
				break;
		}
	}
	
	if (thisBrowser.indexOf("Firefox")!= -1){
		switch(docType)
		{
			case "txt":
				if (os.indexOf("Win") != -1){
		  			maxTime = parseInt(100000);
				}else{
					maxTime = parseInt(180000);
				}
				break;
			case "doc":
				if (os.indexOf("Win") != -1){
					maxTime = parseInt(450000);
				}else{
					maxTime = parseInt(750000);
				}
				break;
			case "pdf":
				if (os.indexOf("Win") != -1){
			  		maxTime = parseInt(150000);
				}else{
					maxTime = parseInt(200000);
				}
				break;
		}
	}

	for(x=0;x<maxTime;x++){
			y += (x * y) / (y - x);			
	}
}

function showHideMessage(){
	if (explainCode.style.display == "none"){
		explainCode.style.display = "";
		whyImportant.style.display = "none";
		whyImportantHide.style.display = "";		
	}else{
		explainCode.style.display = "none";
		whyImportant.style.display = "";
		whyImportantHide.style.display = "none";		
	}
}

function displayOtherField(triggerField,displayField,displayFieldSpacer){
	var w = document.form[triggerField].selectedIndex;
 	var selected_text = document.form[triggerField].options[w].text;
	var theFieldSpacer = document.getElementById(displayFieldSpacer);
	var theField = document.getElementById(displayField);

	if(selected_text == 'Other'){	
		theFieldSpacer.style.display = "";
		theField.style.display = "";
		document.forms[0].elements[displayField].value = "";
		document.forms[0].elements[displayField].focus();
		}
	else
		{
		theFieldSpacer.style.display = "none";
		theField.style.display = "none";
		document.forms[0].elements[displayField].value = "";		
	}		
}

function displayLinkField(triggerField,displayField,displayFieldSpacer){
	var w = document.form[triggerField].selectedIndex;
 	var selected_text = document.form[triggerField].options[w].text;
	var theFieldSpacer = document.getElementById(displayFieldSpacer);
	var theField = document.getElementById(displayField);

	if(selected_text == 'Link From Another Web Site'){	
		theFieldSpacer.style.display = "";
		theField.style.display = "";
		document.forms[0].elements[displayField].value = "";
		document.forms[0].elements[displayField].focus();
		}
	else
		{
		theFieldSpacer.style.display = "none";
		theField.style.display = "none";
		document.forms[0].elements[displayField].value = "";		
	}		
}

function resetOtherField(triggerField,selectField,otherField,otherFieldSpacer){
	var w = document.form[triggerField].selectedIndex;
 	var trigger_text = document.form[triggerField].options[w].text;
	if(trigger_text == 'Other'){
		document.getElementById(otherFieldSpacer).style.display = "";
		document.getElementById(otherField).style.display = "";
	}
	else
	{
		if(document.form[selectField]){
			document.form[selectField].value = 0;
			document.form[selectField].selectedIndex = 0;
			document.forms[0].elements[otherField].value = "";
			document.getElementById(otherFieldSpacer).style.display = "none";
			document.getElementById(otherField).style.display = "none";	
		}
	}
}

function checkVal(fName,otherSpecVal,hiddenfName,focusField){
	
		var selectedVal = form[fName].value; 
	e=document.getElementById(hiddenfName);

	if(selectedVal.indexOf("Other") != -1){
		// show hidden field and give it focus
		e.style.display = "";
		document.forms[0].elements[focusField].value = "";
		document.forms[0].elements[hiddenfName].focus();
	}else{
		document.forms[0].elements[focusField].value = "";
		e.style.display = "none";
	}
}

function showConfirmDialog(message,keyField1,keyField1_value,keyField2,keyField2_value,action){	
//alert('message = '+message+'\nkeyField1 = '+keyField1+'\nkeyField1_value = '+keyField1_value+'\nkeyField2 = '+keyField2+'\nkeyField2_value = '+keyField2_value+'\naction = '+action);return false;
	document.forms[0].elements.primary_action.value = action;
	if (keyField1_value.length){
		document.forms[0].elements[keyField1].value = keyField1_value;	
	}
	if (keyField2_value.length){
		document.forms[0].elements[keyField2].value = keyField2_value;	
	}
	document.getElementById('confirmDialog').style.visibility="visible";	
	confirmDialogText.innerHTML = message;		
}	

var persisteduls=new Object()
var ddtreemenu=new Object()

ddtreemenu.closefolder="/interface/bullet_arrow_right.gif" //set image path to "closed" folder image
ddtreemenu.openfolder="/interface/bullet_arrow_down.gif" //set image path to "open" folder image

//////////No need to edit beyond here///////////////////////////

ddtreemenu.createTree=function(treeid, enablepersist, persistdays){
var ultags=document.getElementById(treeid).getElementsByTagName("ul")
if (typeof persisteduls[treeid]=="undefined")
persisteduls[treeid]=(enablepersist==true && ddtreemenu.getCookie(treeid)!="")? ddtreemenu.getCookie(treeid).split(",") : ""
for (var i=0; i<ultags.length; i++)
ddtreemenu.buildSubTree(treeid, ultags[i], i)
if (enablepersist==true){ //if enable persist feature
var durationdays=(typeof persistdays=="undefined")? 1 : parseInt(persistdays)
ddtreemenu.dotask(window, function(){ddtreemenu.rememberstate(treeid, durationdays)}, "unload") //save opened UL indexes on body unload
}
}

ddtreemenu.buildSubTree=function(treeid, ulelement, index){
ulelement.parentNode.className="submenu"
if (typeof persisteduls[treeid]=="object"){ //if cookie exists (persisteduls[treeid] is an array versus "" string)
if (ddtreemenu.searcharray(persisteduls[treeid], index)){
ulelement.setAttribute("rel", "open")
ulelement.style.display="block"
ulelement.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"
}
else
ulelement.setAttribute("rel", "closed")
} //end cookie persist code
else if (ulelement.getAttribute("rel")==null || ulelement.getAttribute("rel")==false) //if no cookie and UL has NO rel attribute explicted added by user
ulelement.setAttribute("rel", "closed")
else if (ulelement.getAttribute("rel")=="open") //else if no cookie and this UL has an explicit rel value of "open"
ddtreemenu.expandSubTree(treeid, ulelement) //expand this UL plus all parent ULs (so the most inner UL is revealed!)
ulelement.parentNode.onclick=function(e){
var submenu=this.getElementsByTagName("ul")[0]
if (submenu.getAttribute("rel")=="closed"){
submenu.style.display="block"
submenu.setAttribute("rel", "open")
ulelement.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"
}
else if (submenu.getAttribute("rel")=="open"){
submenu.style.display="none"
submenu.setAttribute("rel", "closed")
ulelement.parentNode.style.backgroundImage="url("+ddtreemenu.closefolder+")"
}
ddtreemenu.preventpropagate(e)
}
ulelement.onclick=function(e){
ddtreemenu.preventpropagate(e)
}
}

ddtreemenu.expandSubTree=function(treeid, ulelement){ //expand a UL element and any of its parent ULs
var rootnode=document.getElementById(treeid)
var currentnode=ulelement
currentnode.style.display="block"
currentnode.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"
while (currentnode!=rootnode){
if (currentnode.tagName=="UL"){ //if parent node is a UL, expand it too
currentnode.style.display="block"
currentnode.setAttribute("rel", "open") //indicate it's open
currentnode.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"
}
currentnode=currentnode.parentNode
}
}

ddtreemenu.flatten=function(treeid, action){ //expand or contract all UL elements
var ultags=document.getElementById(treeid).getElementsByTagName("ul")
for (var i=0; i<ultags.length; i++){
ultags[i].style.display=(action=="expand")? "block" : "none"
var relvalue=(action=="expand")? "open" : "closed"
ultags[i].setAttribute("rel", relvalue)
ultags[i].parentNode.style.backgroundImage=(action=="expand")? "url("+ddtreemenu.openfolder+")" : "url("+ddtreemenu.closefolder+")"
}
}

ddtreemenu.rememberstate=function(treeid, durationdays){ //store index of opened ULs relative to other ULs in Tree into cookie
var ultags=document.getElementById(treeid).getElementsByTagName("ul")
var openuls=new Array()
for (var i=0; i<ultags.length; i++){
if (ultags[i].getAttribute("rel")=="open")
openuls[openuls.length]=i //save the index of the opened UL (relative to the entire list of ULs) as an array element
}
if (openuls.length==0) //if there are no opened ULs to save/persist
openuls[0]="none open" //set array value to string to simply indicate all ULs should persist with state being closed
ddtreemenu.setCookie(treeid, openuls.join(","), durationdays) //populate cookie with value treeid=1,2,3 etc (where 1,2... are the indexes of the opened ULs)
}

////A few utility functions below//////////////////////

ddtreemenu.getCookie=function(Name){ //get cookie value
var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
if (document.cookie.match(re)) //if cookie found
return document.cookie.match(re)[0].split("=")[1] //return its value
return ""
}

ddtreemenu.setCookie=function(name, value, days){ //set cookei value
var expireDate = new Date()
//set "expstring" to either future or past date, to set or delete cookie, respectively
var expstring=expireDate.setDate(expireDate.getDate()+parseInt(days))
document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+"; path=/";
}

ddtreemenu.searcharray=function(thearray, value){ //searches an array for the entered value. If found, delete value from array
var isfound=false
for (var i=0; i<thearray.length; i++){
if (thearray[i]==value){
isfound=true
thearray.shift() //delete this element from array for efficiency sake
break
}
}
return isfound
}

ddtreemenu.preventpropagate=function(e){ //prevent action from bubbling upwards
if (typeof e!="undefined")
e.stopPropagation()
else
event.cancelBubble=true
}

ddtreemenu.dotask=function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)
var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
if (target.addEventListener)
target.addEventListener(tasktype, functionref, false)
else if (target.attachEvent)
target.attachEvent(tasktype, functionref)
}

function showHideStateProvince(triggerField,displayField,resetField){
	var w = document.form[triggerField].selectedIndex;
 	var selected_text = document.form[triggerField].options[w].text;
	var stateList = document.getElementById("stateID");
	var provinceField = "province";
//	var theField = document.getElementById(displayField);
	if(selected_text == 'United States'){
		zipText.innerHTML = "Zip/Postal Code: *";
		document.forms[0].elements[provinceField].value = "";
		provinceRow.style.display = "none";
		stateRow.style.display = "";
//		stateList.selectedIndex = 0;
		document.form[resetField].selectedIndex = 0;
		}
	else
		{
		stateRow.style.display = "none";
//		stateList.selectedIndex = 0;
		document.form[resetField].selectedIndex = 0;	
		zipText.innerHTML = "Zip/Postal Code:";
		provinceRow.style.display = "";
		document.forms[0].elements.province.value = "";		
	}		
}

function showHideDescText(triggerField,displayField){
	var showID = displayField + document.form[triggerField].value;
	var thisList=document.forms[0].lettertypeID;
	
	for(var i = 1; i < thisList.options.length; i++){
		var hideID = displayField + thisList.options[i].value;
		document.getElementById(hideID).style.display = "none";
	}
	if(document.form[triggerField].value != 0){
		document.getElementById(showID).style.display = "";
	}
}

function showHideIcon(triggerField,iconDiv){
	if(document.form[triggerField].value == 0){
		document.getElementById(iconDiv).style.display = "none";
	}else{
		document.getElementById(iconDiv).style.display = "";
	}
}

 //Fancy new google analytics function added 07/10/08 by JMS
function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function getcombo_ga(variations)
{
	if (document.cookie.indexOf("__utmx=") != -1)
	{
		var utmx_cookie_value = readCookie('__utmx');  
		var cookie_data_array = utmx_cookie_value.split(':');	
		var combination_id = cookie_data_array[2];
		if (combination_id){
			var temp = combination_id.split('.');
			var ids = temp[0].split('-');
			var x = ids.length;
			var multiplier = [];
			var factor = 1;
			var sum = 0;
			if (variations != undefined) {
				multiplier = variations.split('-');
			}
	
			for(i=0; i<x; i++){
				sum += ids[i] * factor;
				factor = (multiplier[i] > 0) ? factor * multiplier[i] : Math.pow(x,i+1) ;
			}
			
			var sPath = window.location.pathname;
			//var sPage = sPath.substring(sPath.lastIndexOf('\\') + 1);
			var sPage = sPath.substring(sPath.lastIndexOf('//') + 1) + "?combo=" + sum;
			//insert var gwoTracker = _gat._getTracker("UA-XXXXXX-X"); before the getcombo call;
			gwoTracker._initData();
			gwoTracker._trackPageview(sPage);
		}
	}
}

 
function getcombo_urchin(variations)
{
	if (document.cookie.indexOf("__utmx=") != -1)
	{
		var utmx_cookie_value = readCookie('__utmx');  
		var cookie_data_array = utmx_cookie_value.split(':');	
		var combination_id = cookie_data_array[2];
		if (combination_id){
			var temp = combination_id.split('.');
			var ids = temp[0].split('-');
			var x = ids.length;
			var multiplier = [];
			var factor = 1;
			var sum = 0;
			if (variations != undefined) {
				multiplier = variations.split('-');
			}
	
			for(i=0; i<x; i++){
				sum += ids[i] * factor;
				factor = (multiplier[i] > 0) ? factor * multiplier[i] : Math.pow(x,i+1) ;
			}
			
			var sPath = window.location.pathname;
			//var sPage = sPath.substring(sPath.lastIndexOf('\\') + 1);
			var sPage = sPath.substring(sPath.lastIndexOf('//') + 1) + "?combo=" + sum;
			urchinTracker(sPage);
		}
	}
}

function showIM()	{
	document.getElementById('test').style.visibility="hidden";
	document.getElementById('interviewMastery').style.visibility="visible";
}
function genericShowHide(divID){
	if(document.getElementById(divID).style.display == "none"){
		document.getElementById(divID).style.display="";
	}else{
		document.getElementById(divID).style.display="none";
	}
}