// jso: 05/10/06 06:59 PM

// Copyright 2005, Training, Research & Engineering Corp.

var CL_POPFOCUS=null;

function qhit(act,d) {
	var hdest = '/4DCGI/'+CL_session_id+'/cl_out.cgi?a=' + act + ((d)?(d-1):'') + '&' + CL_POPFOCUS;
	document.location.href=hdest;
}

function clDocClick(e) {
	var newloc;
	
	if (!document.getElementById) return true;
	if (!e) {
		e = window.event;
		if (!e) return true;
	}
	var bAlt = (e.shiftKey || e.altKey || e.ctrlKey);
	var obj = e.target || e.srcElement;
	if (obj) {
		if (obj.nodeName) {
			while (obj && obj.nodeName && (obj.nodeName != 'A')) obj = obj.parentNode;
		} else {
			while (obj && obj.tagName && (obj.tagName != 'A')) obj = obj.parentNode;
		}
	}
	
	if (obj && obj.href) {
		var hr = obj.href;
		var altStr = '&alt=';
		var altLoc = hr.indexOf(altStr);
		if (altLoc>0) {
			if ((typeof clOpt=='function') && obj.id && (obj.id.substr(0,2) == 'X_') && (clOpt(e,obj,obj.id.substr(2,1000),bAlt))) {
				if (e) e.cancelBubble = true;
				return false;
			} else if (bAlt) {
				newloc = hr.substr(0,altLoc) + altStr + (bAlt?'1':'0') + hr.substr(altLoc+altStr.length+1);
				obj.href = newloc;
			}
		}
		if (clFH) {
			var tret = clFH(e,obj);
			if (tret && newloc) {
				document.location.href = newloc;
				if (e) e.cancelBubble = true;
				return false;
			}
		}
	}
	return true;
}

function clChange(te) {
	if (clFC) clFC(te);
}
function clSave(fe) {
	if (fe && fe.form) fe.form.submit();
}
function clA(destURL) {
	if (!clFR || !clFR(destURL)) document.location.href=destURL;
}

function dokey(e,safeText) {
	var f;
	if (e && document.getElementById && (f=document.getElementById('fEDIT')) ) {
		var kTarg = null, bAlt = false, kCode = e.keyCode, bAlt = false;
		if (e && e.shiftKey || e.altKey || e.ctrlKey || e.metaKey
				|| (e.modifiers & (Event.ALT_MASK | Event.SHIFT_MASK | Event.CONTROL_MASK | Event.META_MASK))
		) bAlt = true;
		
		if (bAlt) {
			if ( (kCode == 9) && (!safeText) ) {	// Tab
				kTarg = 'hb_l';
			} else if (kCode == 37) {	// Left
				kTarg = 'hb_l';
			} else if (kCode == 39) {	// Right
				kTarg = 'hb_r';
			} else if (kCode == 38) {	// Up
				kTarg = 'hb_u';
			} else if (kCode == 40) {	// Down
				kTarg = 'hb_d';
			} else if (kCode == 27) {	// Escape
				kTarg = 'hb_c';
			} else if (kCode == 8) {	// Backspace
				kTarg = 'hb_m';
			} else if (kCode == 13) {	// Return / Enter
				kTarg = 'hb_q';
			};
		} else if (!safeText) {
			if (kCode == 9) {	// Tab
				kTarg = 'hb_r';
			} else if (kCode == 13) {	// Return / Enter
				kTarg = 'hb_p';
			} else if (kCode == 38) {	// Up
				if (f.elements['a']) {
					f.elements['a'].value = '-';
					kTarg = 'hb_o';
				};
			} else if (kCode == 40) {	// Down
				if (f.elements['a']) {
					f.elements['a'].value = '+';
					kTarg = 'hb_o';
				};
			};
		};
		
		if (kTarg) {
			var kE = document.getElementById(kTarg);
			if (kE) {
				if (typeof(e.stopPropagation)=='function') e.stopPropagation();
				if (typeof(e.preventDefault)=='function') e.preventDefault();
				if (kE.style) kE.style.background='#60E060 url("/i/o/pulse.gif") repeat';
				if (typeof(kE.click)=='function') kE.click();
			}
		};
	};
}

function dokeytext(e) {
	var bAlt = false;
	if (e) {
		if (window.Event) {
			bAlt = (e.modifiers & (Event.ALT_MASK | Event.SHIFT_MASK | Event.CONTROL_MASK));
		} else {
			bAlt = (e.shiftKey || e.altKey || e.ctrlKey);
		};
	};
	if (bAlt) {
		var kCode = e.keyCode;
		if (kCode == 13) {
			if (document.forms['fDETAIL']) {
				window.event.returnValue = true;
				window.event.cancelBubble = true;
				if (document.forms['fDETAIL'].hb_SaveClose) document.forms['fDETAIL'].hb_SaveClose.click();
				else document.forms['fDETAIL'].submit();
				return false;
			}
		}
	}
}

function dozoom(fieldName,rSmall,rBig) {
	f = document.forms['fDETAIL'];
	if (!f) f = document.forms['fEDIT'];
	if (f) {
		e = f.elements[fieldName];
		z = document.images['z'+fieldName];
		if (e && z) {
			if (e.rows) {
				if (e.rows == rBig) {
					e.rows = rSmall;
					if (z.src) z.src = '/i/o/zoomin.gif';
				} else {
					e.rows = rBig;
					if (z.src) z.src = '/i/o/zoomout.gif';
				}
			}
		}
	}
	return true;
}

function popNav(url,name,extra) {
	var parm = 'height=80,width=500,resizable=yes,scrollbars=yes,innerHeight=80';
	if (extra != '') parm = parm + ',' + extra;
	var tWin = window.open(url,name,parm);
}


var clFlagForm = null;

function clF() {
   if (clFlagForm) clFlagForm = null;
}
function clFC(fe) {
   if (fe && fe.form) clFlagForm = fe.form;
}

function clFR(ru) {
   if (clFlagForm) {
      var f = clFlagForm;
      if (f.clredir) {
         f.clredir.value = ru;
         f.submit();
      } else {
         alert('Warning: Please save or cancel your changes before navigating away.');
      }
      return true;
   } else return false;
}

function clFH(e,obj){
   var bCancel = false;
   var hr = obj.href;
   
   if (clFlagForm) {
      if (hr.indexOf('javascript:') != 1) {
         if ( (hr.indexOf('cl_out.cgi')>0) || (obj.target && (obj.target=='CL_WORK')) ) {
            bCancel = clFR(hr);
         } else if (obj.target && (obj.target=='_top')) {
            alert('Warning: Please save or cancel your changes before navigating away!');
            bCancel = true;
         }
      }
   }

   if (bCancel) {
      if (e.srcElement) { // IE style
         e.returnValue = true;
         e.cancelBubble = true;
      } else if (document.getElementById && !document.all) {  // NS6 (DOM)
         e.preventDefault();
         e.stopPropagation();
      } else if (window.Event) {  // NS4
      }
      return false;
   } else return true;
}
