// PROPRIETARY - (c) 2009 by James J. Domino - Juniper Labs LLC - 310-439-1185 - Copying without written permission is strictly prohibited.
var mnuActive = null;
var eleActive = null;
var error_count = 0;
var is_changed = false;
var is_dlg_active = false;
var in_mouse_capture = false;
var ifrmDlg = null;
var lastDlgResult;
var eleDlgFocus;
var dlgReturnFunct;
var have_tedit = false;
var True = true;
var False = false;
var eleMouseCapture = null;
var lProgressBlocks = 0;
var dragDropGroupCount = 0;
var jlEvtCount = 1;
var page_url = '';
var page_is_read_only = false;
var page_help_code = null;
var page_allow_autosize = true;
var page_allow_x_autosize = true;
var page_allow_y_autosize = true;
var page_preferred_height = 800;
var page_preferred_width = 600;
var page_has_errors = false;
var page_errors = '';
var page_error_focus = null;
var simple_type_text = 1;
var simple_type_date = 2;
var simple_type_int = 3;
var simple_type_float = 4;
var simple_type_bit = 5;
var eventLevelMsg = 1;
var eventLevelWarn = 2;
var eventLevelError = 3;
var eventLevelAudit = 4;
var regDigit = /^\d{1}/;
var dblclick_support = true;
var jlShortcut_count = 0;
var jlShortcuts = [];
var divJlShortcutList = null;
var IE = (navigator.appName=="Microsoft Internet Explorer" ? true: false);
var IE6 = ('ActiveXObject' in window && !('XMLHttpRequest' in window));
if ( window.document.addEventListener ) {
window.document.addEventListener('keydown', jlShortcut_OnKeyDown, false);
window.document.addEventListener('mousedown', doc_OnMouseDown, false);
window.document.addEventListener('mousemove', doc_OnMouseMove, false);
window.document.addEventListener('mouseup', doc_OnMouseUp, false);
window.document.addEventListener('selectstart', doc_OnSelectStart, false);
window.document.addEventListener('contextmenu', doc_OnContextMenu, false);
} else {
window.document.onkeydown = jlShortcut_OnKeyDown;
window.document.onmousedown = doc_OnMouseDown;
window.document.onmousemove = doc_OnMouseMove;
window.document.onmouseup = doc_OnMouseUp;
window.document.onselectstart = doc_OnSelectStart;
window.document.oncontextmenu = doc_OnContextMenu;
}
function errorHandler(error_message, error_url, error_line_number) {
error_count += 1;
if ( error_count < 3 ) {
winCreate('error_client_set.asp?error_message=' + escape(error_message) + '&error_url=' + escape(error_url) + '&error_line_number=' + escape(error_line_number) + '&url=' + escape(parent.location), 400, 300);
return true;
} else {
return false;
}
}
function g( ele_id ) {
var ele = window.document.getElementById( ele_id );
if ( ele ) {
return ele;
} else {
ele = window.document.getElementsByName( ele_id );
if ( ele ) {
return ele[0];
}
}
return null;
}
function getAttr( ele, attr_name ) {
var aa;
try {
if ( ele && ele.attributes ) {
aa = ele.attributes[attr_name];
}
} catch (e) {
return null;
}
if ( aa ) {
return aa.value;
} else {
return null;
}
}
function setAttr( ele, attr_name, new_value ) {
ele.setAttribute(attr_name, new_value);
}
function simple_type_formatExcel( value, simple_type_id ) {
switch ( simple_type_id ) {
case simple_type_text:
return xlsstr( value );
case simple_type_date:
return value;
case simple_type_int:
return value;
case simple_type_float:
return value;
case simple_type_bit:
return value;
default:
return xlsstr( value );
}
}
function winCreate(URL, width, height) {
winarg = "toolbar=no,scrollbars=yes,status=no,resizable=yes,location=no,directories=no,status=no,menubar=no,copyhistory=no,width="+width+",height="+height;
return window.open(URL, "", winarg);
}
function pageFocusSet( ctl_id ) {
var ctl_focus = g(ctl_id);
if ( ctl_focus ) {
try {
ctl_focus.focus();
} catch (e) {
}
}
}
function querystringGetParameter(strIn, parameter_name) {
var aNameValues = strIn.split('&');
var r = '';
var pp = 0;
for (var i = 0; i < aNameValues.length; i++) {
if ( aNameValues[i] != null && aNameValues[i] != '' ) {
pp = aNameValues[i].indexOf('=');
if ( pp >= 0 ) {
if (aNameValues[i].slice(0, pp) == parameter_name) {
r = aNameValues[i].slice(pp+1);
break;
}
}
}
}
return (r.length > 0 ? unescape(r).split(',') : '');
}
function rptMacro( sIn, sValueUsingPipes, prefix, del ) {
if ( del == null ) {
del = '|';
}
var aValues = sValueUsingPipes.split(del);
var sOut = sIn;
for (var i = 0; i < aValues.length; i++) {
var vv = new RegExp('%' + prefix + (i+1) + '%', "g");
sOut = sOut.replace(vv, aValues[i]);
}
return sOut;
}
function urlGo( URL, check_if_ok_to_exit, evt ) {
if ( check_if_ok_to_exit == true ) {
if ( parent.isOkToExit() != true ) {
return;
}
}
evt = evt || window.event;
if ( evt ) {
if ( evt.shiftKey == true ) {
window.open(URL, "", "");
return;
}
}
if ( URL.indexOf('page_after') < 0 ) {
if ( page_url != null && page_url != '' ) {
if ( URL.indexOf('?') < 0 ) {
URL += '?';
} else {
URL += '&';
}
URL += 'page_after=' + escape(page_url);
}
}
parent.location = URL;
}
function getParent(el, tag_name) {
if (el === null)
return null;
else if (el.nodeType == 1 && el.tagName == tag_name)
return el;
else
return getParent(el.parentNode, tag_name);
}
function getParentByClass( el, className) {
if (el === null)
return null;
else if (el.nodeType == 1 && el.className == className)
return el;
else
return getParentByClass(el.parentNode, className);
}
function getParentWithAttr( el, attr_name) {
if ( el === null )
return null;
else if ( attr_name in el ) {
return el;
} else {
return getParentWithAttr( el.parentNode, attr_name);
}
}
function getChildByTagName( el, tagName ) {
var node = el.firstChild;
while ( node ) {
if ( node.nodeType != 3 && node.tagName == tagName ) {
return node;
} else {
node = node.nextSibling;
}
}
return null;
}
function getChild( ele, node_count ) {
var node = null;
if ( ele ) {
if ( IE ) {
return ele.childNodes[node_count];
}
node = ele.firstChild;
while ( node && node.nodeType == 3 ) {
node = node.nextSibling;
}
for ( tt = 0; tt < node_count; tt++ ) {
node = node.nextSibling;
while ( node && node.nodeType == 3 ) {
node = node.nextSibling;
}
}
}
return node;
}
function getFirstChild( ele ) {
var node = null;
if ( ele ) {
node = ele.firstChild;
while ( node && node.nodeType == 3 ) {
node = node.nextSibling;
}
}
return node;
}
function getLastChild( ele ) {
var node = null;
if ( ele ) {
node = ele.lastChild;
while ( node && node.nodeType == 3 ) {
node = node.previousSibling;
}
}
return node;
}
function getNextSibling( ele ) {
var node = null;
if ( ele ) {
node = ele.nextSibling;
while ( node && node.nodeType == 3 ) {
node = node.nextSibling;
}
}
return node;
}
function getPreviousSibling( ele ) {
var node = null;
if ( ele ) {
node = ele.previousSibling;
while ( node && node.nodeType == 3 ) {
node = node.previousSibling;
}
}
return node;
}
function getChildIndex( ele ) {
var ord = -1;
var el = ele;
while ( el ) {
el = el.previousSibling;
ord++;
}
return ord;
}
function scrollbarWidth() {
var w = document.body.offsetWidth - (2*document.body.clientLeft) - document.body.clientWidth;
if ( w <= 0 ) {
w = 16;
}
return w;
}
function scrollbarHeight() {
var h = document.body.offsetHeight - (2*document.body.clientTop) - document.body.clientHeight;
if ( h <= 0 ) {
h = 16;
}
return h;
}
function mnuShow( mnuToShow, evt ) {
evt = evt || window.event;
if ( mnuActive != null ) {
return;
}
mnuActive = mnuToShow;
mnuToShow.style.position = 'absolute';
var ll = evtMouseX( evt ) + 4;
var tt = evtMouseY( evt ) + 4;
if ( ll + mnuToShow.offsetWidth > windowWidth() ) {
ll = document.body.clientWidth - mnuToShow.clientWidth - 3;
}
if ( ll < 0 ) {
ll = 0;
}
if ( tt + mnuToShow.offsetHeight > windowHeight() ) {
tt = document.body.clientHeight - mnuToShow.clientHeight - 3;
}
if ( tt < 0 ) {
tt = 0;
}
mnuToShow.style.zIndex = 1000;
mnuToShow.style.left = ll + 'px';
mnuToShow.style.top = tt + 'px';
mnuToShow.style.visibility = 'visible';
if (document.all && window.print) {
if ( evt.type == 'click' ) {
evtKill( evt );
}
document.body.onclick = mnuHide;
document.body.oncontextmenu = mnuHide;
}
evtKill( evt );
return false;
}
function mnuHide() {
if ( mnuActive == null )
return;
mnuActive.style.visibility = "hidden";
var cc = mnuActive.current_submenu;
while ( cc != null ) {
cc.style.visibility = "hidden";
cc = cc.current_submenu;
}
if ( document.body.onclick == mnuHide ) {
document.body.onclick = "";
}
if ( document.body.oncontextmenu == mnuHide ) {
document.body.oncontextmenu = "";
}
mnuActive = null;
}
function intMin( intAA, intBB ) {
if ( intAA < intBB ) {
return intAA;
} else {
return intBB;
}
}
function intMax( intAA, intBB ) {
if ( intAA > intBB ) {
return intAA;
} else {
return intBB;
}
}
function totalOffsetTop( ele ) {
var e = ele;
var out = 0;
if ( IE6 ) {
while ( e.tagName != 'BODY' ) {
if ( e.style.position == 'absolute' ) {
try {
if ( e.style.top == null || e.style.top == '' ) {
return out + e.offsetTop;
} else {
return out + parseInt(e.style.top);
}
} catch (e) {
}
} else {
out += e.offsetTop;
}
e = e.offsetParent;
}
} else {
while ( e.tagName != 'BODY' ) {
out += e.offsetTop;
e = e.offsetParent;
}
}
return out;
}
function totalOffsetTopFromParent( ele, parent ) {
var e = ele;
var out = 0;
while ( e.tagName != 'BODY' && e !== parent ) {
if ( e.style.position == 'absolute' ) {
try {
if ( e.style.top == null || e.style.top == '' ) {
return out + e.offsetTop;
} else {
return out + parseInt(e.style.top);
}
} catch (e) {
}
} else {
out += e.offsetTop;
}
e = e.offsetParent;
}
return out;
}
function totalOffsetLeft( ele ) {
var e = ele;
var out = 0;
if ( IE6 ) {
while ( e.tagName != 'BODY' ) {
if ( e.style.position == 'absolute' ) {
try {
if ( e.style.left == null || e.style.left == '' ) {
return out + e.offsetLeft;
} else {
return out + parseInt(e.style.left);
}
} catch (e) {
}
} else {
out += e.offsetLeft;
}
e = e.offsetParent;
}
} else {
while ( e.tagName != 'BODY' ) {
out += e.offsetLeft;
e = e.offsetParent;
}
}
return out;
}
function totalOffsetLeftFromParent( ele, parent ) {
var e = ele;
var out = 0;
while ( e.tagName != 'BODY' && e !== parent ) {
if ( e.style.position == 'absolute' ) {
try {
if ( e.style.left == null || e.style.left == '' ) {
return out + e.offsetLeft;
} else {
return out + parseInt(e.style.left);
}
} catch (e) {
}
} else {
out += e.offsetLeft;
}
e = e.offsetParent;
}
return out;
}
function totalScrollTop( ele ) {
var e = ele;
var out = 0;
while ( e.tagName != 'BODY' ) {
if ( e.style.position == 'absolute' ) {
try {
return out + e.scrollTop;
} catch (e) {
}
} else {
out += e.scrollTop;
}
e = e.offsetParent;
}
return out;
}
function totalScrollLeft( ele ) {
var e = ele;
var out = 0;
while ( e.tagName != 'BODY' ) {
if ( e.style.position == 'absolute' ) {
return out + e.scrollLeft;
} else {
out += e.scrollLeft;
}
e = e.offsetParent;
}
return out;
}
function doc_OnMouseDown( evt ) {
evt = evt || window.event;
if ( is_dlg_active == true ) {
dlgHide( false );
return false;
} else if ( mnuActive ) {
var src = evtSrc( evt );
var parent = getParentByClass(src, 'mnu');
if ( parent == null ) {
mnuHide();
return evtKill( evt );
}
} else if ( dragDropGroupCount > 0 ) {
return jlDragDrop_OnMouseDown( evt );
} else {
return true;
}
}
function doc_OnMouseMove( evt ) {
evt = evt || window.event;
if ( in_mouse_capture ) {
if ( eleMouseCapture ) {
var newevt = document.createEvent("MouseEvents");
newevt.initMouseEvent( evt.type, false, true, document.defaultView, evt.detail, evt.screenX, evt.screenY, evt.clientX, evt.clientY, evt.ctrlKey, evt.altKey, evt.shiftKey, evt.metaKey, evt.button, evt.relatedTarget )
eleMouseCapture.dispatchEvent(newevt);
return false;
}
} else if ( dragDropGroupCount > 0 ) {
return jlDragDrop_OnMouseMove( evt );
} else {
return true;
}
}
function doc_OnMouseUp( evt ) {
evt = evt || window.event;
if ( in_mouse_capture ) {
doc_OnMouseMove( evt );
} else if ( dragDropGroupCount > 0 ) {
return jlDragDrop_OnMouseUp( evt );
} else {
return true;
}
}
function doc_OnSelectStart( evt ) {
evt = evt || window.event;
if ( dragDropGroupCount > 0 ) {
return jlDragDrop_OnSelectStart( evt );
} else {
return true;
}
}
function doc_OnContextMenu( evt ) {
if ( dragDropGroupCount < 1 ) {
return true;
}
evt = evt || window.event;
if ( dragDropGroupCount > 0 ) {
return jlDragDrop_OnContextMenu( evt );
} else {
return true;
}
}
function setMouseCapture( ele ) {
if ( ele.setCapture ) {
ele.setCapture();
} else {
in_mouse_capture = true;
eleMouseCapture = ele;
}
}
function releaseMouseCapture( ele ) {
if ( ele.releaseCapture ) {
ele.releaseCapture();
} else {
in_mouse_capture = false;
eleMouseCapture = null;
}
}
function dlgShow( ele, newctl, dlgWidthApprox, dlgHeightApprox, url, functReturn ) {
dlgHide( false );
if ( ifrmDlg === null ) {
ifrmDlg = document.createElement('IFRAME');
ifrmDlg.id = 'iframeDlg';
ifrmDlg.style.display == 'none';
ifrmDlg.style.position = 'absolute';
ifrmDlg.className = 'dlg';
ifrmDlg.src = "javascript:'';";
document.body.appendChild( ifrmDlg );
}
if ( newctl ) {
if ( newctl.disabled == true ) {
alert('Sorry...  This field is currently disabled and you can\'t change the value.');
return false;
}
}
eleDlgFocus = newctl;
dlgReturnFunct = functReturn;
ifrmDlg.src = url;
ifrmDlg.style.left = intMax(totalOffsetLeft(ele) + ele.offsetWidth - dlgWidthApprox - totalScrollLeft(ele), 0) + 'px';
ifrmDlg.style.top = intMin(intMax(totalOffsetTop(ele) + ele.offsetHeight - totalScrollTop(ele), 0), windowHeight() - dlgHeightApprox - 5) + 'px';
ifrmDlg.style.height = dlgHeightApprox + 'px';
ifrmDlg.style.width = dlgWidthApprox + 'px';
ifrmDlg.style.display = "block";
ifrmDlg.style.zIndex = 1000;
ifrmDlg.style.visibility = 'visible';
is_dlg_active = true;
return false;
}
function dlgHide( set_focus ) {
if ( is_dlg_active == true ) {
if ( ifrmDlg ) {
ifrmDlg.style.display = "none";
ifrmDlg.src = "javascript:'';";
}
is_dlg_active = false;
if ( set_focus == true ) {
if ( eleDlgFocus ) {
try {
eleDlgFocus.focus();
} catch(e) {
}
}
}
}
}
function dlgCalendarShow( ele, newctl ) {
var calDate = dateClean( newctl.value );
if ( !calDate ) {
calDate = dateClean( new Date() );
}
return dlgShow(ele, newctl, 150, 180, 'dlgCalendar.asp?as_of_date=' + dateFormat( calDate ) );
}
function dlgColorShow( ele, newctl ) {
return dlgShow(ele, newctl, 160, 150, 'dlgColor.asp?color=' + newctl.value);
}
function dlgReturn( new_value ) {
lastDlgResult = new_value;
if ( dlgReturnFunct ) {
dlgReturnFunct( new_value );
} else if ( eleDlgFocus ) {
if ( new_value != null && new_value != '' ) {
eleDlgFocus.value = new_value;
}
}
dlgHide( true );
frmChangedSet( true );
}
function strTrim( strIn ) {
if ( strIn != null ) {
return strIn.replace(/^\s+|\s+$/g, '');
} else {
return "";
}
}
function statusUpdate( eventLevel, msgRaw ) {
var fra = g("fraResult");
var msg = unescape(msgRaw);
if ( fra != null ) {
var msgHTML;
if ( eventLevel == eventLevelError ) {
msgHTML = '<FONT color=#ff0000>' + msg + '</font>';
} else if ( eventLevel == eventLevelWarn ) {
msgHTML = '<FONT color=#7F7F00>' + msg + '</font>';
} else {
msgHTML = msg;
}
fra.innerHTML = fra.innerHTML + msgHTML + '<BR>';
try {
fra.scrollTop = fra.scrollHeight;
} catch (e) {
}
} else {
status = msg;
}
if ( eventLevel == eventLevelError ) {
alert( msg );
}
}
function percentUpdate( valueRaw ) {
var lNewBlocks = 0;
var value;
try {
value = Math.round(parseInt(valueRaw));
} catch (e) {
value = 0;
}
var fra = g("fraPercent");
if ( fra != null ) {
fra.innerHTML = value + "% complete.";
} else {
status = value + '% complete...';
}
var divProgress = g("progMain");
if ( divProgress ) {
try {
lNewBlocks = Math.round(value/10 - .5);
} catch (e) {
lNewBlocks = 0;
}
if ( lNewBlocks > 10 ) {
lNewBlocks = 10;
} else if ( lNewBlocks < 0 ) {
lNewBlocks = 0;
}
if ( lNewBlocks != lProgressBlocks ) {
lProgressBlocks = lNewBlocks;
for (var i = 0; i < lProgressBlocks; i++) {
g('progMain_seg'+i).style.backgroundColor = 'blue';
}
for (var i = lProgressBlocks + 1; i < 10; i++) {
g('progMain_seg'+i).style.backgroundColor = 'transparent';
}
}
}
}
function getGotoURL() {
var gou = g('goto_old_url');
var url = '';
if ( page_url == null || page_url == '' ) {
url = document.URL;
} else {
url = page_url;
}
if ( url ) {
gou.value = url;
}
}
function sendThisPageCreate() {
var url;
var url_name;
if ( page_url == null || page_url == '' ) {
url = escape(document.URL);
} else {
url = escape(page_url);
}
url_name = escape(window.document.title);
winCreate('page_send_admin.asp?url=' + url + '&url_name=' + url_name, 700, 400);
}
function popupContentShow( content_code ) {
winCreate('popup_content_show.asp?code=' + content_code, 400, 500);
}
function frmChangedSet( new_value ) {
var newDocTitle = window.document.title;
if ( is_changed != new_value ) {
is_changed = new_value;
if ( is_changed == true ) {
if ( newDocTitle.length > 0 ) {
if ( newDocTitle.charAt( newDocTitle.length-1 ) != '*' ) {
window.document.title = newDocTitle + ' *';
}
}
} else {
if ( newDocTitle.length > 0 ) {
if ( newDocTitle.charAt( newDocTitle.length-1 ) == '*' ) {
window.document.title = newDocTitle.substr(0, newDocTitle.length-1 );
}
}
}
}
}
function isOkToExit( frm ) {
if ( is_changed == true && page_is_read_only == false ) {
if ( frm == null ) {
frm = g('frmMain');
}
if ( frm != null ) {
var result = areYouSureSaveChanges();
if ( result == 'yes' ) {
if ( doSave( frm ) == false ) {
return false;
}
} else if ( result == 'no' ) {
return true;
}
return false;
}
}
return true;
}
function areYouSure( message ) {
var now = new Date();
is_dlg_active = true;
window.showModalDialog("_are_you_sure.asp?message=" + message + "&now=" + now.toUTCString(), window,"dialogHeight: 170px; dialogWidth: 350px; edge: Raised; center: Yes; help: No; resizable: No; status: No;");
is_dlg_active = false;
return lastDlgResult;
}
function frmReadOnlySet( frmToCheck ) {
if ( frmToCheck != null ) {
for (var tt=0; tt < frmToCheck.elements.length; tt++) {
var frmctl = frmToCheck.elements[tt];
if ( frmctl.tagName != "BUTTON" ) {
frmctl.disabled = true;
}
}
}
}
function spanChildrenVisibleSet( spanMain, status ) {
if ( spanMain ) {
for ( var cc = 0; cc < spanMain.childNodes.length; cc++ ) {
spanMain.childNodes[cc].style.display = status;
}
}
}
function strHTMLTEXTAREA( strIn ) {
var strOut = strIn;
if ( strOut ) {
strOut = strOut.replace(/&/g, "&amp;");
strOut = strOut.replace(/</g, "&lt;");
strOut = strOut.replace(/>/g, "&gt;");
}
return strOut;
}
function pageOnLoadFinalInit() {
var x;
var y;
var is_dialog = false;
if ( page_allow_autosize == true ) {
if ( isWindowMaximized() ) {
} else {
if ( window.dialogHeight != null ) {
is_dialog = true;
}
if ( page_allow_x_autosize == true ) {
x = page_width + 25;
} else if ( is_dialog == true ) {
x = window.dialogWidth;
} else {
x = page_preferred_width;
}
if ( page_allow_y_autosize == true ) {
y = document.body.scrollHeight;
} else if ( is_dialog == true ) {
y = window.dialogHeight;
} else {
y = page_preferred_height;
}
try {
if ( is_dialog ) {
window.dialogHeight = y + 'px';
} else {
window.resizeTo(x, y);
}
} catch ( e ) {
}
x += ( x - windowWidth() );
y += ( y - windowHeight() );
x = intMin( x, screen.availWidth );
y = intMin( y, screen.availHeight );
try {
if ( is_dialog ) {
window.dialogHeight = y + 'px';
} else {
window.resizeTo(x, y);
}
} catch ( e ) {
}
}
}
}
function isWindowMaximized() {
if ( document.body.clientWidth + scrollbarWidth() + 5 >= screen.availWidth ) {
return true;
} else {
return false;
}
}
function chkSet( id, new_value ) {
var chk = g(id);
if ( chk != null ) {
chk.checked = new_value;
}
}
function radioFocusSet( radio_name, value ) {
var radio = document.getElementsByName(radio_name);
if ( radio ) {
var le = radio.length;
if ( le == undefined ) {
try {
radio.focus();
} catch (e) {
}
} else {
for (var tt= 0; tt < le; tt++) {
if ( radio[tt].value == value ) {
try {
radio[tt].focus();
} catch (e) {
}
}
}
}
}
}
function radioValueGet( radio_name ) {
var radio = document.getElementsByName(radio_name);
if ( radio ) {
var le = radio.length;
if ( le == undefined ) {
if ( radio.checked ) {
return radio.value;
}
} else {
for (var tt= 0; tt < le; tt++) {
if ( radio[tt].checked ) {
return radio[tt].value;
}
}
}
}
return null;
}
function windowClose() {
var ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
if (ie7) {
window.open('','_parent','');
window.close();
} else {
this.focus();
self.opener = this;
self.close();
}
return false;
}
function evtKill( evt ) {
evtStopBubbling( evt );
evtStopDefault( evt );
try { evt.keyCode = -8; } catch (e) {}
return false;
}
function evtStopDefault( evt ) {
if (evt.preventDefault) {
evt.preventDefault();
} else {
evt.returnValue = false;
}
}
function evtStopBubbling( evt ) {
if (evt.stopPropagation) {
evt.stopPropagation();
} else {
evt.cancelBubble = true;
}
}
function evtMousePos(evt) {
if ( evt.pageX ) {
return {
x:evt.pageX,
y:evt.pageY
};
} else {
return {
x:evt.clientX + document.body.scrollLeft - document.body.clientLeft,
y:evt.clientY + document.body.scrollTop  - document.body.clientTop
};
}
}
function evtMouseX( evt ) {
if ( evt.pageX ) {
return evt.pageX;
} else {
return evt.clientX + document.body.scrollLeft;
}
}
function evtMouseY( evt ) {
if ( evt.pageY ) {
return evt.pageY;
} else {
return evt.clientY + document.body.scrollTop;
}
}
function evtFromElement( evt ) {
return evt.relatedTarget || evt.fromElement;
}
function evtToElement( evt ) {
return evt.relatedTarget || evt.toElement;
}
function evtSrc( evt ) {
return evt.srcElement ? evt.srcElement : evt.target;
}
function evtMouseButton( evt ) {
if ( evt.which ) {
return (evt.which < 2) ? 1 : ((evt.which == 2) ? 4 : 2);
} else {
return evt.button;
}
}
function evtOffsetX( evt ) {
if ( evt.offsetX == undefined ) {
return evt.clientX - totalOffsetLeft( evt.target );
} else {
return evt.offsetX;
}
}
function addEvt( ele, evt_type, callback ) {
if ( ele.addEventListener ) {
ele.addEventListener( evt_type, callback, false );
} else if ( ele.attachEvent ) {
jlEvtCount++;
var cnt = jlEvtCount;
ele['jlEvt' + cnt] = callback;
ele['evt' + cnt] = function() { ele['jlEvt' + cnt]( window.event ); };
ele.attachEvent( 'on' + evt_type, ele['evt' + cnt] );
} else if ( typeof( ele['on' + evt_type] ) != 'function' ) {
ele['on' + evt_type] = callback;
}
}
function getClass( ele ) {
return ele.className;
}
function setClass( ele, newClassName ) {
ele.className = newClassName;
}
function removeAllChildNodes( node ) {
if ( node ) {
while ( node.hasChildNodes() ) {
node.removeChild(node.firstChild);
}
}
}
function strLPad( value, padding) {
var out = "000000000000000" + value;
return out.substr(out.length-padding);
}
function strXOR( strIn, value ) {
var out = "";
for (var tt=0; tt < strIn.length; tt++) {
out = out + String.fromCharCode(strIn.charCodeAt(tt) ^ value);
}
return out;
}
function jlShortcut_OnKeyDown( evt ) {
var ss;
var do_search = false;
evt = evt || window.event;
if ( mnuActive ) {
return mnuActive.handleKeyDown( evt );
}
if ( eleActive ) {
return eleActive.handleKeyDown( evt );
}
var keyCode = evt.keyCode;
if ( jlShortcut_count < 1 ) {
if ( parent ) {
if ( parent != self ) {
try {
return parent.jlShortcut_OnKeyDown( evt );
} catch (e) {
return true;
}
}
}
return true;
}
switch (keyCode) {
case 38:
case 40:
case 37:
case 39:
case 17:
case 18:
case 16:
case 36:
case 35:
case 45:
case 46:
return true;
}
if ( keyCode >= 112 && keyCode <= 123 ) {
ss = 'f' + (keyCode - 111);
do_search = true;
} else if ( keyCode == 186 ) {
ss = ';';
do_search = true;
} else if ( keyCode == 187 ) {
ss = '=';
do_search = true;
} else if ( keyCode == 188 ) {
ss = ',';
do_search = true;
} else if ( keyCode == 189 ) {
ss = '-';
do_search = true;
} else if ( keyCode == 190 ) {
ss = '.';
do_search = true;
} else if ( keyCode == 191 ) {
ss = '/';
do_search = true;
} else if ( keyCode == 192 ) {
ss = '`';
do_search = true;
} else if ( keyCode == 219 ) {
ss = '[';
do_search = true;
} else if ( keyCode == 220 ) {
ss = '\\';
do_search = true;
} else if ( keyCode == 221 ) {
ss = ']';
do_search = true;
} else if ( keyCode == 222 ) {
ss = '\'';
do_search = true;
} else if ( keyCode == 27 ) {
ss = 'esc';
do_search = true;
} else {
ss = String.fromCharCode( keyCode ).toLowerCase();
}
if ( evt.ctrlKey == true ) {
ss = 'ctl+' + ss;
do_search = true;
}
if ( evt.altKey == true ) {
ss = 'alt+' + ss;
do_search = true;
}
if ( evt.shiftKey == true ) {
ss = 'shift+' + ss;
}
var ord = -1;
if ( do_search == true ) {
for ( tt=1; tt <= jlShortcut_count; tt++ ) {
if ( jlShortcuts[tt].key == ss ) {
ord = tt;
}
}
if ( ord != -1 ) {
jlShortcutGo( ord, evt );
return evtKill( evt );
}
if ( parent ) {
if ( parent != self ) {
try {
return parent.jlShortcut_OnKeyDown( evt );
} catch (e) {
return true;
}
}
}
}
return true;
}
function StringBuffer() {
this.buffer = [];
}
StringBuffer.prototype.append = function append( str ) {
this.buffer[this.buffer.length] = str;
};
StringBuffer.prototype.clear = function clear() {
this.buffer = [];
};
StringBuffer.prototype.toString = function toString() {
return this.buffer.join( '' );
};
StringBuffer.prototype.toStringWithDel = function ( del ) {
return this.buffer.join( del );
};
StringBuffer.prototype.length = function () {
return this.buffer.join( '' ).length;
}
function windowHeight() {
var hh;
if ( typeof( window.innerHeight ) == 'number') {
hh = window.innerHeight;
} else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
hh = document.documentElement.clientHeight;
} else {
hh = document.body.offsetHeight;
}
if ( IE6 ) {
hh += -5;
}
return hh;
}
function windowWidth() {
var ww;
if ( typeof( window.innerWidth ) == 'number') {
ww = window.innerWidth;
} else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientWidth ) ) {
ww = document.documentElement.clientWidth;
} else {
ww = document.body.offsetWidth;
}
if ( IE6 ) {
ww += -scrollbarWidth() - 5;
}
return ww;
}
function contentHeight() {
return document.body.offsetHeight - 5;
}
function contentWidth() {
return document.body.offsetWidth - 5;
}
function getInnerText( ele ) {
return (ele.textContent) ? ele.textContent : ele.innerText;
}
function setInnerText( ele, new_text ) {
if ( typeof( ele.textContent ) != 'undefined' ) {
ele.textContent = new_text;
} else {
ele.innerText = new_text;
}
}
function dateClean( dateInRaw ) {
if ( dateInRaw ) {
if ( dateInRaw instanceof Date ) {
return new Date( dateInRaw.getFullYear(), dateInRaw.getMonth(), dateInRaw.getDate() );
} else {
try {
var dateIn = new Date( dateInRaw );
if ( isNaN( dateIn ) ) {
return null;
} else {
return new Date( dateIn.getFullYear(), dateIn.getMonth(), dateIn.getDate() );
}
} catch (e) {
return null;
}
}
} else {
return null;
}
}
function dateFormat( dateIn ) {
var dd = dateIn.getDate();
var mm = dateIn.getMonth()+1;
var yyyy = dateIn.getFullYear();
return dateFormatMDY(mm, dd, yyyy);
}
function dateFormatMDY( mm , dd, yyyy ) {
return ('0' + mm).slice(-2) + '/' + ('0' + dd).slice(-2) + '/' + yyyy;
}
function timeFormatHMAM( hh, mm, ampm ) {
return ('0' + hh).slice(-2) + ':' + ('0' + mm).slice(-2) + ' ' + ampm;
}
function boolClean( value ) {
switch ( typeof value ) {
case 'boolean':
return value;
case 'string':
var v = value.toLowerCase();
switch ( v ) {
case 't':
case '1':
case 'on':
case 'true':
case 'y':
case 'yes':
case 'checked':
case '-1':
return true;
default:
return false;
}
case 'number':
if ( value != 0 ) {
return true;
} else {
return false;
}
default:
if ( value === null ) {
return false;
}
}
return false;
}
function intClean( value ) {
if ( value !== null ) {
var valueOut = null;
switch ( typeof value ) {
case 'boolean':
if ( value ) {
return 1;
} else {
return 0;
}
case 'number':
return Math.round(value);
default:
try {
valueOut = parseInt( value );
} catch (e) {
valueOut = null;
}
if ( isNaN( valueOut ) ) {
return null;
} else {
return valueOut;
}
}
}
return null;
}
function xlsstr( value ) {
if ( value ) {
if ( value.charAt( '"' ) == -1 ) {
if ( value.charAt( '\t' ) == -1 && value.charAt( '\r' ) == -1 && value.charAt( '\n' ) == -1 ) {
return value;
} else {
return '"' + value + '"';
}
} else {
return '"' + value.replace(/"/g, '""') + '"'
}
} else {
return '';
}
}
function getOuterHTML( ele ) {
if ( ele.outerHTML ) {
return ele.outerHTML;
} else {
return ele.parentNode.innerHTML;
}
}
function ew( aa, dd, tt, nn ) {
document.write("<a href=\"ma" + "il" + "to");
document.write(":" + aa + "@");
document.write(dd + "." + tt + "\">");
if ( nn != null ) {
document.write(nn + "</a>");
} else {
document.write(aa + "@" + dd + "." + tt + "</a>");
}
}
function jlCalInit( ele_id, dateInRaw ) {
var ele = g( ele_id );
if ( ele != null ) {
var dateIn = dateClean( dateInRaw );
if ( !dateIn ) {
dateIn = dateClean( new Date() );
}
ele.dateSelected = dateIn;
ele.dateCurrentMonth = dateClean( dateIn );
ele.dateCurrentMonth.setDate(1);
ele.selDayElement = null;
ele.isKeyboardDisabled = boolClean(getAttr(ele, 'd'));
ele.refresh = jlCal_refresh;
var frm = g( ele.id + 'frm');
if ( frm ) {
ele.has_navigation = true;
this.dropMonth = g(ele.id + 'dropMonth');
this.txtYear = g(ele.id + 'txtYear');
} else {
ele.has_navigation = false;
this.dropMonth = null;
this.txtYear = null;
}
if ( this.txtYear ) {
this.txtYear.value = dateIn.getFullYear();
}
if ( ele.addEventListener ) {
ele.addEventListener('click', jlCal_OnClick, false);
ele.addEventListener('dblclick', jlCal_OnDblClick, false);
ele.addEventListener('contextmenu', jlCal_OnContextMenu, false);
ele.addEventListener('keydown', jlCal_OnKeyDown, false);
ele.addEventListener('mouseover', jlCal_OnMouseOver, false);
ele.addEventListener('mouseout', jlCal_OnMouseOut, false);
ele.addEventListener('mouseup', jlCal_OnMouseUp, false);
ele.addEventListener('mousedown', jlCal_OnMouseDown, false);
ele.addEventListener('selectstart', jlCal_OnSelectStart, false);
if ( frm ) {
frm.addEventListener('submit', jlCal_frm_OnSubmit, false);
}
if ( this.dropMonth ) {
this.dropMonth.addEventListener('change', jlCal_dropMonth_OnChange, false);
}
if ( this.txtYear ) {
this.txtYear.addEventListener('change', jlCal_txtYear_OnChange, false);
}
} else {
ele.onclick = jlCal_OnClick;
ele.ondblclick = jlCal_OnDblClick;
ele.oncontextmenu = jlCal_OnContextMenu;
ele.onkeydown = jlCal_OnKeyDown;
ele.onmouseover = jlCal_OnMouseOver;
ele.onmouseout = jlCal_OnMouseOut;
ele.onmouseup = jlCal_OnMouseUp;
ele.onmousedown = jlCal_OnMouseDown;
ele.onselectstart = jlCal_OnSelectStart;
if ( frm ) {
ele.onsubmit = jlCal_frm_OnSubmit;
}
if ( this.dropMonth ) {
this.dropMonth.onchange = jlCal_dropMonth_OnChange;
}
if ( this.txtYear ) {
this.txtYear.onchange = jlCal_txtYear_OnChange;
}
}
ele.handleKeyDown = jlCal_OnKeyDown;
ele.disableKeyboard = jlCal_disableKeyboard;
ele.setDateSelected = jlCal_setDateSelected;
ele.setCurrentMonth = jlCal_setCurrentMonth;
ele.getDateFromElement = jlCal_getDateFromElement;
ele.setDateSelectedByElement = jlCal_setDateSelectedByElement;
ele.getItemFromElement = jlCal_getItemFromElement;
ele.raiseEventMonthChangeRequest = jlCal_raiseEventMonthChangeRequest;
ele.raiseOnDblClick = jlCal_OnDblClick;
ele.getElementByDate = jlCal_getElementByDate;
ele.doMonthChange = jlCal_doMonthChange;
if ( dateIn != null ) {
ele.refresh();
ele.selDayElement = ele.getElementByDate( dateIn );
}
}
}
function jlCal_OnMouseOver( evt ) {
evt = evt || window.event;
var src = evtSrc( evt );
var el = this.getDateFromElement( src );
if ( el ) {
if ( getClass(el).charAt(0) != 'h' ) {
setClass(el, 'h' + getClass(el));
}
} else if ( src.tagName == 'IMG' ) {
var id = getAttr( src, 'i' );
if ( id ) {
src.style.border = "1px solid black";
src.style.borderTop = "1px solid white";
src.style.borderLeft = "1px solid white";
}
}
return true;
}
function jlCal_OnMouseOut( evt ) {
evt = evt || window.event;
var src = evtSrc( evt );
var el = this.getDateFromElement( src );
if ( el ) {
if ( getClass(el).charAt(0) == 'h' ) {
setClass(el, getClass(el).substr(1));
}
} else if ( src.tagName == 'IMG' ) {
var id = getAttr( src, 'i' );
if ( id ) {
src.style.border = "1px solid transparent";
if ( IE6 ) {
src.style.borderColor = "pink";
src.style.filter = "chroma(color=pink);";
}
}
}
return true;
}
function jlCal_OnMouseUp( evt ) {
evt = evt || window.event;
var src = evtSrc( evt );
if ( src.tagName == 'IMG' ) {
var id = getAttr( src, 'i' );
if ( id ) {
src.style.border = "1px solid black";
src.style.borderTop = "1px solid white";
src.style.borderLeft = "1px solid white";
}
}
return true;
}
function jlCal_OnMouseDown( evt ) {
evt = evt || window.event;
var src = evtSrc( evt );
if ( src.tagName == 'IMG' ) {
var id = getAttr( src, 'i' );
if ( id ) {
src.style.border="";
src.style.borderTop="2px solid black";
src.style.borderLeft="2px solid black";
}
}
return true;
}
function jlCal_OnContextMenu( evt ) {
evt = evt || window.event;
evtKill( evt );
return false;
}
function jlCal_OnClick( evt ) {
evt = evt || window.event;
if ( dblclick_support == false ) {
return this.raiseOnDblClick( evt );
} else {
var src = evtSrc( evt );
if ( src ) {
if ( src.tagName == 'A' ) {
return true;
} else if ( src.parentNode ) {
if ( src.parentNode.tagName == 'A' ) {
return true;
}
}
}
var el = this.getDateFromElement( src );
if ( el != null ) {
this.setDateSelectedByElement( el, true );
evtKill( evt );
return false;
} else if ( src.tagName == 'IMG' ) {
var id = getAttr( src, 'i' );
if ( id == 'delta' ) {
this.raiseEventMonthChangeRequest( intClean( getAttr( src, 'v') ) );
return false;
} else if ( id == 'today' ) {
var newDate = dateClean( new Date() );
this.setDateSelected( newDate, true );
newDate = dateFormat( newDate );
try {
if ( dblclick_support == false ) {
eval( this.id + "_DayDblClicked('" + newDate + "');" );
} else {
eval( this.id + "_DayClicked('" + newDate + "');" );
}
} catch (e) {
}
}
}
}
return true;
}
function jlCal_OnDblClick( evt ) {
evt = evt || window.event;
var src = evtSrc( evt );
var el = this.getItemFromElement( src );
if ( el != null ) {
try {
var id = getAttr(el, 'i');
var result = eval( this.id + "_ItemDblClicked('" + id.replace(/'/g, '\\\'') + "');" );
if ( result == true ) {
evtKill( evt );
return true;
}
} catch (e) {
}
} else if ( src.tagName == 'IMG' ) {
var id = getAttr( src, 'i' );
if ( id == 'delta' ) {
this.doMonthChange( getAttr( src, 'v') );
return false;
} else if ( id == 'today' ) {
alert('here!');
}
}
var el = this.getDateFromElement( evtSrc( evt ) );
if ( el != null ) {
try {
eval( this.id + "_DayDblClicked('" + getAttr(el, 'd') + "');" );
} catch (e) {
}
evtKill( evt );
return false;
}
return true;
}
function jlCal_OnSelectStart( evt ) {
evt = evt || window.event;
evtKill( evt );
return false;
}
function jlCal_OnKeyDown( evt ) {
evt = evt || window.event;
if ( this.isKeyboardDisabled == true ) {
return true;
} else if ( evt.keyCode == 27 && mnuActive != null ) {
mnuHide();
return false;
}
var kill = false;
var el = this.selDayElement;
if ( el != null ) {
var rr = getParent(el, 'TR');
var tbl = getParent(rr, 'TABLE');
row_ord = rr.rowIndex;
col_ord = el.cellIndex;
if ( row_ord != -1 ) {
switch (evt.keyCode) {
case 27:
this.setDateSelectedByElement( null, false );
kill = true;
break;
case 13:
try {
var date_id = dateFormat( this.dateSelect );
if ( dblclick_support == false ) {
eval( this.id + "_DayDblClicked('" + date_id + "');" );
} else {
eval( this.id + "_DayClicked('" + date_id + "');" );
}
} catch (e) {
}
kill = true;
break;
case 33:
if ( evt.shiftKey == true ) {
this.raiseEventMonthChangeRequest(-12);
} else {
this.raiseEventMonthChangeRequest(-1);
}
kill = true;
break;
case 34:
if ( evt.shiftKey == true ) {
this.raiseEventMonthChangeRequest(12);
} else {
this.raiseEventMonthChangeRequest(1);
}
kill = true;
break;
case 37:
if ( col_ord == 0 && row_ord > 2 ) {
this.setDateSelectedByElement( tbl.rows[row_ord-1].cells[6], false );
} else if ( col_ord > 0 ) {
this.setDateSelectedByElement( tbl.rows[row_ord].cells[col_ord-1], false );
}
kill = true;
break;
case 38:
if ( row_ord > 2 ) {
this.setDateSelectedByElement( tbl.rows[row_ord-1].cells[col_ord], false );
}
kill = true;
break;
case 39:
if ( col_ord == 6 && row_ord < tbl.rows.length-1 ) {
this.setDateSelectedByElement( tbl.rows[row_ord+1].cells[0], false );
} else if ( col_ord < 6 ) {
this.setDateSelectedByElement( tbl.rows[row_ord].cells[col_ord+1], false );
}
kill = true;
break;
case 40:
if ( row_ord < tbl.rows.length-1 ) {
this.setDateSelectedByElement( tbl.rows[row_ord+1].cells[col_ord], false );
}
kill = true;
break;
default:
window.status = 'you hit ' + evt.keyCode;
kill = false;
break;
}
}
if ( kill == true ) {
evtKill( evt );
return false;
}
}
return true;
}
function jlCal_raiseEventMonthChangeRequest( delta ) {
var selDayOut = dateClean( this.dateSelected );
var result = true;
if ( selDayOut != null ) {
selDayOut = "'" + dateFormat(selDayOut) + "'";
}
try {
result = eval( this.id + "_MonthChangeRequest(" + delta + ", " + selDayOut + ");" );
} catch (e) {
}
if ( result == undefined || result === null || result == true ) {
this.doMonthChange( delta );
}
}
function jlCal_getItemFromElement( el ) {
while ( el != null ) {
if ( el.tagName == 'TR' && getAttr(el, 'i') != null ) {
return el;
} else {
el = getParent(el.parentNode, "TR");
}
}
return null;
}
function jlCal_getDateFromElement( el ) {
while ( el != null ) {
if ( getAttr(el, 'd') != null ) {
return el;
} else {
el = getParent(el.parentNode, "TD");
}
}
return null;
}
function jlCal_setDateSelectedByElement( el, raise_click ) {
if ( el != this.selDayElement ) {
if ( this.selDayElement != null ) {
if ( getClass(this.selDayElement).charAt(0) == 'h' ) {
setClass(this.selDayElement, getClass(this.selDayElement).substr(1));
}
if ( getClass(this.selDayElement).charAt(0) == 's' ) {
setClass(this.selDayElement, getClass(this.selDayElement).substr(1));
}
this.selDayElement = null;
this.dateSelected = null;
}
if ( el != null ) {
if ( getClass(el).charAt(0) == 'h' ) {
setClass(el, 'hs' + getClass(el).substr(1));
} else {
setClass(el, 's' + getClass(el));
}
this.selDayElement = el;
this.dateSelected = dateClean( getAttr(el, 'd') );
this.selDayElement.focus();
if ( raise_click == true ) {
try {
eval( this.id + "_DayClicked('" + getAttr(el, 'd') + "');" );
} catch (e) {
}
} else {
try {
eval( this.id + "_DaySelected('" + getAttr(el, 'd') + "');" );
} catch (e) {
}
}
}
}
}
function jlCal_disableKeyboard( disable ) {
this.isKeyboardDisabled = disable;
}
function jlCal_setCurrentMonth( dateInRaw ) {
var dateIn = dateClean( dateInRaw );
if ( !dateIn ) {
return true;
}
var dateMonth = new Date( dateIn.getFullYear(), dateIn.getMonth(), 1 );
if ( dateMonth.getTime() != this.dateCurrentMonth.getTime() ) {
this.dateCurrentMonth = dateMonth;
this.refresh();
return false;
} else {
return true;
}
}
function jlCal_setDateSelected( dateInRaw, raiseEvent ) {
var dateIn = dateClean( dateInRaw );
if ( !dateIn ) {
return true;
}
var dateMonth = new Date( dateIn.getFullYear(), dateIn.getMonth(), 1 );
if ( dateMonth.getTime() != this.dateCurrentMonth.getTime() ) {
this.dateCurrentMonth = dateMonth;
this.dateSelected = dateIn;
this.refresh();
if ( raiseEvent == true ) {
try {
eval( this.id + "_DayClicked('" + getAttr(el, 'd') + "');" );
} catch (e) {
}
}
return false;
} else {
var el = this.getElementByDate( dateIn );
if ( el ) {
this.setDateSelectedByElement( el, false );
if ( raiseEvent == true ) {
try {
eval( this.id + "_DayClicked('" + getAttr(el, 'd') + "');" );
} catch (e) {
}
}
return false;
}
}
return true;
}
function jlCal_getElementByDate( dateIn ) {
var tbl = g(this.id + 'tbl');
var dateToFind = dateFormat( dateIn );
if ( tbl != null ) {
for ( var rr = 2; rr < tbl.rows.length; rr++ ) {
var row = tbl.rows[rr];
for ( var cc = 0; cc < 7; cc++ ) {
if ( getAttr(row.cells[cc], 'd') == dateToFind ) {
return tbl.rows[rr].cells[cc];
}
}
}
}
return null;
}
function jlCal_frm_OnSubmit( evt ) {
evt = evt || window.event;
var txtYear = this.txtYear.blur();
evtKill( evt );
return false;
}
function jlCal_dropMonth_OnChange( evt ) {
evt = evt || window.event;
var par = getParent(this, "DIV");
var month = this.selectedIndex;
par.dateCurrentMonth.setMonth(month);
par.refresh();
}
function jlCal_refresh() {
if ( this.has_navigation ) {
var tbody = g(this.id + 'tbody');
var dd = new Date( this.dateCurrentMonth );
var ss = this.dateSelected;
var today = new Date();
today = new Date( today.getFullYear(), today.getMonth(), today.getDate());
var month = dd.getMonth();
dd.setDate( dd.getDate() - dd.getDay() );
var dayOfMonth = dd.getDate();
for ( rr = 0; rr < 6; rr++ ) {
var row = tbody.rows[rr];
for ( cc=0; cc < 7; cc++ ) {
var cell = row.cells[cc];
var sClassName = 'oday';
if ( dd.getTime() == today.getTime() ) {
if ( dd.getTime() == ss.getTime() ) {
sClassName = 'stoday';
} else {
sClassName = 'today';
}
} else if ( dd.getTime() == ss.getTime() ) {
sClassName = 'sday';
this.selDayElement = cell;
} else if ( dd.getMonth() == month ) {
sClassName = 'day';
}
cell.className = sClassName;
setAttr( cell, 'd', dateFormat( dd ) );
cell.innerText = dayOfMonth;
dd.setDate( dayOfMonth + 1 );
dayOfMonth = dd.getDate();
}
}
g(this.id + 'dropMonth').selectedIndex = this.dateCurrentMonth.getMonth();
g(this.id + 'txtYear').value = this.dateCurrentMonth.getFullYear();
}
}
function jlCal_txtYear_OnChange ( evt ) {
evt = evt || window.event;
var par = getParent(this, "DIV");
var year = intClean( this.value );
if ( year === null || year < 1000 ) {
validationError( this, "Year", "Please enter a valid year.");
this.select();
this.focus();
return false;
} else {
validationClear( this );
par.dateCurrentMonth.setFullYear(year);
par.refresh();
}
evtKill( evt );
return false;
}
function jlCal_doMonthChange( parameterRaw ) {
var parameter = intClean( parameterRaw );
if ( parameter && parameter != 0 ) {
var newMonth = dateClean( this.dateCurrentMonth );
var month = newMonth.getMonth();
month += parameter;
newMonth.setMonth( month );
this.setCurrentMonth( newMonth );
}
}
var page_entity_code = '';
var page_entity_id = '';
var page_entity_instance_id = '';
var page_tab_querystring = '';
var page_as_of_date = null;
var page_save_preferred_tab = true;
var page_last_preferred_tab = '';
function sqlstr( str_in ) {
if ( str_in == null || str_in == '' ) {
return 'null';
} else {
return '\'' + str_in.replace(/'/g, '\'\'') + '\'';
}
}
function problemCreate() {
var url;
if ( page_url == null || page_url == '' ) {
url = escape(document.URL);
} else {
url = escape(page_url);
}
winCreate('issue_new_step_01_entry.asp?entity_id_1=' + page_entity_id + '&entity_instance_id_1=' + page_entity_instance_id + '&url=' + url, 640, 480);
}
function toolbar_ClickedDefault( toolbar_id, btn_id, parent_entity_id, parent_entity_instance_id, page_options ) {
if ( btn_id == 'search' ) {
if ( isOkToExit() == true ) {
parent.location = 'entity_search.asp?entity_id=' + parent_entity_id;
}
} else if ( btn_id == 'refresh' ) {
if ( isOkToExit() == true ) {
if ( page_url == null || page_url == '' ) {
parent.location = 'entity_show.asp?entity_id=' + parent_entity_id + '&entity_instance_id=' + parent_entity_instance_id + page_options;
} else {
parent.location = page_url;
}
}
} else if ( btn_id == 'new' ) {
if ( isOkToExit() == true ) {
parent.location = 'entity_show.asp?entity_id=' + parent_entity_id;
}
} else if ( btn_id == 'delete' ) {
if ( parent_entity_instance_id == '' ) {
if ( window.confirm("Are you sure you want to discard your work?") == true ) {
var sURL = querystringGetParameter( page_options, 'page_cancel' );
if ( sURL == null || sURL == '' ) {
sURL = querystringGetParameter( page_options, 'page_after' );
}
if ( sURL == null || sURL == '' ) {
sURL = 'entity_search.asp?entity_id=' + parent_entity_id;
}
parent.location = sURL;
}
} else {
if ( window.confirm("Are you sure you want to delete this entity?") == true ) {
var delete_options = page_options;
if ( delete_options.indexOf('page_after') < 0 ) {
delete_options += '&page_after=entity_search.asp%3Fentity_id=' + parent_entity_id;
}
if ( delete_options.indexOf('page_cancel') < 0 ) {
if ( page_url == null || page_url == '' ) {
delete_options += '&page_cancel=' + escape(window.document.URLUnencoded);
} else {
delete_options += '&page_cancel=' + escape(page_url);
}
}
parent.location = 'entity_action_run.asp?entity_action_code=delete&entity_id=' + parent_entity_id + '&entity_instance_id=' + parent_entity_instance_id + '&is_confirmed=1' + delete_options;
}
}
} else if ( btn_id == 'save' ) {
doSave();
} else if ( btn_id == 'copy' ) {
if ( isOkToExit() == true ) {
if ( window.confirm("Are you sure you want to copy this item?") == true ) {
var copy_options = '';
copy_options += '&page_after=entity_show.asp%3Fentity_id=' + parent_entity_id + '%26entity_instance_id=%25_1%25';
copy_options += '&page_cancel=entity_show.asp%3Fentity_id=' + parent_entity_id + '%26entity_instance_id=' + parent_entity_instance_id;
parent.location = 'entity_action_run.asp?entity_action_code=copy&entity_action_name=Copy&entity_id=' + parent_entity_id + '&entity_instance_id=' + parent_entity_instance_id + '&is_confirmed=1' + copy_options;
}
}
} else if ( btn_id == 'help' ) {
if ( page_help_code == null ) {
if ( parent_entity_id == 0 ) {
alert('Sorry...  No help information is available for this page.');
} else {
winCreate('entity_help.asp?entity_id=' + parent_entity_id, 750, 300);
}
} else {
popupContentShow( page_help_code );
}
} else if ( btn_id == 'print' ) {
window.document.body.focus();
window.print();
} else if ( btn_id == 'globalclipset' ) {
sqlRun('global_clipboard_add.asp?entity_id=' + parent_entity_id + '&entity_instance_id=' + parent_entity_instance_id + '&is_set=1');
} else if ( btn_id == 'globalclipadd' ) {
sqlRun('global_clipboard_add.asp?entity_id=' + parent_entity_id + '&entity_instance_id=' + parent_entity_instance_id + '&is_set=0');
} else if ( btn_id == 'globalclipdel' ) {
sqlRun('global_clipboard_delete.asp?entity_id=' + parent_entity_id + '&entity_instance_id=' + parent_entity_instance_id);
} else if ( btn_id == 'StapleUploadFile' ) {
if ( isOkToExit() == true ) {
winCreate('file_upload_and_staple.asp?entity_id=' + parent_entity_id + '&entity_instance_id=' + parent_entity_instance_id, 640, 400);
}
} else if ( btn_id == 'StapleGlobal' ) {
if ( isOkToExit() == true ) {
winCreate('global_clipboard_staple.asp?entity_id=' + parent_entity_id + '&entity_instance_id=' + parent_entity_instance_id, 640, 400);
}
} else if ( btn_id == 'frmedit' ) {
winCreate('entity_set.asp?entity_id=' + parent_entity_id, 750, 300);
} else if ( btn_id == 'taskcreate' ) {
entityActionRun( 'Items', 'task_create', 'Create a Daily Task/Reminder', false, 'entity_action_run.asp', true );
} else {
alert('You pressed ' + btn_id);
}
}
function toolbar_ClickedTableDefault( table_id, btn_id, parent_entity_code, parent_entity_id, parent_entity_instance_id, child_entity_id, sibling_entity_id, sibling_jump_ord, evt ) {
var tbl = g(table_id);
evt = evt || window.event;
if ( btn_id == 'refresh' ) {
if ( page_url == null || page_url == '' ) {
window.document.location = window.document.URLUnencoded;
} else {
window.document.location = page_url;
}
} else if ( btn_id == 'open' ) {
var tbl = g( table_id );
var count = 0;
var have_multiple_selects = false;
var have_shift_key_down = false;
if ( evt ) {
if ( evt.shiftKey == true ) {
have_shift_key_down = true;
}
}
if ( tbl ) {
count = tbl.getSelectedRowCount();
var row_count = tbl.getRowCount();
for (tt=0; tt < row_count; tt++ ) {
if ( tbl.rowIsSelected( tt ) ) {
var rr = tbl.getRow( tt );
var new_page_after = '';
if ( parent_entity_id != null && parent_entity_id != '') {
new_page_after = '&page_after=entity_show.asp%3Fentity_id=' + parent_entity_id + '%26entity_instance_id=' + parent_entity_instance_id;
}
var URL;
if ( sibling_entity_id != null ) {
try {
if ( sibling_jump_ord == null ) {
sibling_jump_ord = 1;
}
var sei_id = rr.attributes['i'].value.split('|')[sibling_jump_ord];
URL = 'entity_show.asp?entity_id=' + sibling_entity_id + '&entity_instance_id=' + sei_id + new_page_after;
} catch (e) {
}
} else {
URL = 'entity_show.asp?entity_id=' + child_entity_id + '&entity_instance_id=' + rr.attributes['i'].value + new_page_after;
}
count--;
if ( count == 0 && !have_shift_key_down ) {
parent.location = URL;
break;
} else {
window.open(URL, "", "");
}
}
}
}
} else if ( btn_id == 'staple' ) {
if ( tbl.getSelectedRowCount() > 0 ) {
entityActionRun( 'Items', 'staple_add', 'Create a staple and link all of the selected items to it.', false, 'entity_action_run.asp', false );
} else {
alert('Please select at least one row!');
}
} else if ( btn_id == 'issue_add' ) {
if ( tbl.getSelectedRowCount() > 0 ) {
entityActionRun( 'Items', 'issue_add', 'Add an issue and staple the selected items to it.', false, 'entity_action_run.asp', false );
} else {
alert('Please select at least one row!');
}
} else if ( btn_id == 'print' ) {
if ( tbl ) {
try {
tbl.print( !have_shift_key_down );
} catch (e) {
tbl.focus();
window.print();
}
}
} else if ( btn_id == 'new' ) {
var new_page_after = '';
if ( parent_entity_id != null && parent_entity_id != '') {
new_page_after = 'entity_show.asp%3Fentity_id=' + parent_entity_id + '%26entity_instance_id=' + parent_entity_instance_id;
}
parent.location = 'entity_show.asp?entity_id=' + child_entity_id + '&def_' + parent_entity_code + '_id=' + parent_entity_instance_id + '&page_after=' + new_page_after;
} else if ( btn_id == 'delete' ) {
var frm = g('frmMain');
if ( frm != null ) {
if ( window.confirm("Are you sure you want to delete these " + g('page_entity_name_plural').value + "?") == true ) {
var url_after = '';
if ( page_url == null || page_url == '' ) {
url_after = window.document.URLUnencoded;
} else {
url_after = page_url;
}
g('page_after').value = url_after;
g('page_cancel').value = url_after;
frm.attributes['action'].value = 'entity_action_run.asp';
g('entity_action_code').value = 'delete';
g('entity_action_name').value = 'Delete';
g('action').value = 'ok';
frm.submit();
}
}
} else if ( btn_id == 'clipcopy' ) {
var out = tbl.toString();
window.clipboardData.setData("Text", out);
alert('Table copied to your clipboard.  You can paste it into any application now.');
} else if ( btn_id == 'globalclipset' ) {
if ( tbl.getSelectedRowCount() > 0 ) {
entityActionRun( 'Items', 'global_clipboard_set', 'Clear your global clipboard and add the selected items.', false, 'entity_action_run.asp', false );
} else {
alert('Please select at least one row!');
}
} else if ( btn_id == 'globalclipadd' ) {
if ( tbl.getSelectedRowCount() > 0 ) {
entityActionRun( 'Items', 'global_clipboard_add', 'Add the selected items to your global clipboard.', false, 'entity_action_run.asp', false );
} else {
alert('Please select at least one row!');
}
} else if ( btn_id == 'globalclipdel' ) {
if ( tbl.getSelectedRowCount() > 0 ) {
entityActionRun( 'Items', 'global_clipboard_delete', 'Remove the selected items to your global clipboard.', false, 'entity_action_run.asp', false );
} else {
alert('Please select at least one row!');
}
} else {
alert('You pressed ' + btn_id);
}
}
function table_RowDblClickedDefault( row_id, row_ord, parent_entity_id, parent_entity_instance_id, child_entity_id, sibling_entity_id, sibling_jump_ord, evt ) {
var URL;
evt = evt || window.event;
if ( sibling_entity_id != null ) {
try {
if ( sibling_jump_ord == null ) {
sibling_jump_ord = 1;
}
var sei_id = row_id.split('|')[sibling_jump_ord];
URL = 'entity_show.asp?entity_id=' + sibling_entity_id + '&entity_instance_id=' + sei_id;
} catch (e) {
}
} else {
URL = 'entity_show.asp?entity_id=' + child_entity_id + '&entity_instance_id=' + row_id;
}
if ( evt ) {
if ( evt.shiftKey == true ) {
if ( parent.isOkToExit() == true ) {
window.open(URL, "", "");
}
evtKill( evt );
return;
}
}
if ( parent_entity_id != null && parent_entity_id != '' && parent_entity_id != '0' ) {
var pa = g('page_after');
if ( pa != null && pa.value != null && pa.value != '' ) {
URL += '&page_after=' + escape(pa.value);
} else {
URL += '&page_after=entity_show.asp%3Fentity_id=' + parent_entity_id + '%26entity_instance_id=' + parent_entity_instance_id;
}
}
urlGo( URL, true );
}
function personPreferenceValueSet( person_preference_code, value, value_name ) {
value += '';
value_name += '';
sqlRun('sql_run.asp?entity_id=38&sql=exec+person_preference_value_set+@person_preference_code=' + sqlstr(person_preference_code) + ',+@value=' + escape(sqlstr(value)) + ',+@value_name=' + escape(sqlstr(value_name)) + '&task_name=Change+your+personal+preference&refresh_person_session=1');
}
function personPreferenceValueMnuBooleanSet( mnu_id ) {
var mnuOption = g(mnu_id);
var imgMnu = g('imgmnu' + mnu_id);
var value = 'True';
var value_name = 'True';
if ( mnuOption != null ) {
if ( mnuOption.is_on == true || mnuOption.is_on == 'True' || mnuOption.is_on == 'true' ) {
mnuOption.is_on = false;
value = 'False';
value_name = 'False';
if ( imgMnu != null ) {
imgMnu.src = 'fx/mnuChecked0.gif';
}
} else {
mnuOption.is_on = true;
value = 'True';
value_name = 'True';
if ( imgMnu != null ) {
imgMnu.src = 'fx/mnuChecked1.gif';
}
}
sqlRun('sql_run.asp?entity_id=38&sql=exec+person_preference_value_set+@person_preference_code=' + sqlstr(mnu_id) + ',+@value=' + value + ',+@value_name=' + sqlstr(value_name) + '&task_name=Change+your+personal+preference&refresh_person_session=1');
}
}
function bigdropOpen( entity_id, field_id, was_text_field ) {
var keyCodeToSend = '';
if ( was_text_field ) {
var evt = evt || window.event;
if ( evt != null ) {
evtKill( evt );
keyCodeToSend = evt.keyCode;
}
}
dlgHide( false );
eleDlgFocus = g(field_id);
var now = new Date();
iframeDlgActive = g('iframeDlg');
iframeDlgActive.src = 'dlgEntitySearch.asp?entity_id=' + entity_id
+ '&field_id=' + escape(field_id)
+ '&keycode=' + escape(keyCodeToSend)
+ "&now=" + now.toUTCString();
iframeDlgActive.style.width = 550;
iframeDlgActive.style.height = 350;
iframeDlgActive.style.left=( (document.body.scrollWidth-550)/2 ) + 'px';
iframeDlgActive.style.top=( (document.body.scrollHeight-300)/2 ) + 'px';
iframeDlgActive.style.borderWidth = 0;
iframeDlgActive.style.display = "block";
is_dlg_active = true;
return false;
}
function dlgEntitySearchReturn( is_cancel, entity_instance_id, entity_instance_temp_name ) {
var ctl = eleDlgFocus;
var field_id = ctl.name;
dlgHide( false );
if ( is_cancel == true ) {
return false;
}
if ( ctl ) {
ctl.value = entity_instance_id;
var ctlText = g('text_' + field_id);
if ( ctlText ) {
ctlText.value = entity_instance_temp_name;
try {
ctlText.focus();
} catch (e) {
}
}
frmChangedSet( true );
}
return false;
}
function doSave( frm ) {
if ( frm == null ) {
frm = g('frmMain');
}
if ( have_tedit == true ) {
jlTeditTransfer();
}
if ( frmIsValid(frm) ) {
frm.submit();
return false;
} else {
return true;
}
}
function areYouSureSaveChanges() {
var now = new Date();
is_dlg_active = true;
window.showModalDialog("_are_you_sure.asp?entity_name=" + page_entity_name + "&now=" + now.toUTCString(), window,"dialogHeight: 143px; dialogWidth: 350px; edge: Raised; center: Yes; help: No; resizable: No; status: No;");
is_dlg_active = false;
return lastDlgResult;
}
function tabPreferredSave( tab_id ) {
if ( page_save_preferred_tab == true ) {
if ( page_last_preferred_tab != tab_id ) {
page_last_preferred_tab = tab_id
try {
sqlRun('entity_preferred_tab.asp?entity_code=' + page_entity_code + '&tab_id=' + tab_id, true);
} catch (e) {
}
}
}
}
function entityActionRun( entity_name_plural, entity_action_code, entity_action_name, confirm_on_front_end, page_to_execute, check_if_ok_to_exit ) {
var now = new Date();
if ( check_if_ok_to_exit == true ) {
if ( isOkToExit() == false ) {
return false;
}
}
if ( g('in_row_mode') != null ) {
var frm = g('frmMain');
if ( frm != null ) {
if ( confirm_on_front_end == true ) {
if ( window.confirm('Are you sure you want to ' + entity_action_name + ' these ' + entity_name_plural + '?') != true ) {
return false;
}
}
var url_after = '';
if ( page_url == null || page_url == '' ) {
url_after = document.URLUnencoded;
} else {
url_after = page_url;
}
g('page_after').value = url_after;
g('page_cancel').value = url_after;
if ( page_to_execute != null ) {
frm.attributes['action'].value = page_to_execute;
} else {
frm.attributes['action'].value = 'entity_action_run.asp';
}
g('entity_action_code').value = entity_action_code;
g('entity_action_name').value = entity_action_name;
if ( confirm_on_front_end == false ) {
g('action').value = 'need_ok';
} else {
g('action').value = 'ok';
}
frm.submit();
}
} else {
if ( confirm_on_front_end == true ) {
if ( window.confirm('Are you sure you want to ' + entity_action_name + ' these ' + entity_name_plural + '?') != true ) {
return false;
}
}
var url = '';
if ( page_to_execute != null ) {
url = page_to_execute;
} else {
url = 'entity_action_run.asp';
}
url += '?entity_id=' + page_entity_id;
if ( typeof(page_entity_instance_id) != 'undefined' ) {
url += '&entity_instance_id=' + page_entity_instance_id;
}
if ( typeof(page_entity_instance_ts) != 'undefined' ) {
url += '&entity_instance_ts=' + page_entity_instance_ts;
}
url += '&entity_action_code=' + escape(entity_action_code);
url += '&entity_action_name=' + escape(entity_action_name);
url += '&page_after=' + escape(page_url);
url += '&page_cancel=' + escape(page_url);
if ( confirm_on_front_end == true ) {
url += '&action=ok';
} else {
url += '&action=need_ok';
}
parent.location = url;
}
}
function copyIdToClipboard() {
try {
var out = page_entity_instance_id;
window.clipboardData.setData("Text", out);
window.status = 'This ' + page_entity_name + '\'s id (' + out + ') has been copied to the clipboard.';
} catch (e) {
window.status = 'Having problems copying the id.';
}
}
function sqlRun( url, hide_busy ) {
var ifrm = g('iframeQuery');
var now = new Date();
if ( ifrm ) {
ifrm.src = "javascript:'';";
if ( hide_busy != true ) { ifrm.style.left=( (document.body.scrollWidth-busy_dialog_width)/2 ) + 'px'; ifrm.style.top=( (document.body.scrollHeight-busy_dialog_height)/2 ) + 'px'; ifrm.style.display='block'; }
ifrm.src = url + "&now=" + now.toUTCString();
} else {
}
}
function tabOnResize() {
var right = contentWidth();
var hdrMain = g('hdrMain');
var tblMain = g('tblMain');
var toolbarMain = g('toolbarMain');
var divContent = g('divContent')
if ( hdrMain ) {
var top = totalOffsetTop(hdrMain) + hdrMain.clientHeight;
} else if ( toolbarMain ) {
var top = totalOffsetTop(toolbarMain) + toolbarMain.clientHeight;
}
var bottom = windowHeight();
if ( tblMain ) {
tblMain.move(0, top, right, bottom);
} else if ( divContent ) {
divContent.style.position = 'absolute';
divContent.style.left = '0px';
divContent.style.top = top + 'px';
divContent.style.width = right + 'px';
try {
divContent.style.height = (bottom - top) + 'px';
} catch (e) {
}
}
if ( toolbarMain ) {
try {
toolbarMain.style.width = contentWidth() + 'px';
} catch (e) {
}
}
}
function jlDbtnInit( btn_id ) {
var ele = g( btn_id );
if ( ele != null ) {
ele.go = jlDbtn_Go;
if ( ele.addEventListener ) {
ele.addEventListener('click', jlDbtn_OnClick, false);
ele.addEventListener('dblclick', jlDbtn_OnClick, false);
ele.addEventListener('mouseover', jlDbtn_OnMouseOver, false);
ele.addEventListener('mouseout', jlDbtn_OnMouseOut, false);
ele.addEventListener('mouseup', jlDbtn_OnMouseUp, false);
ele.addEventListener('mousedown', jlDbtn_OnMouseDown, false);
ele.addEventListener('contextmenu', jlDbtn_OnContextMenu, false);
} else {
ele.onclick = jlDbtn_OnClick;
ele.ondblclick = jlDbtn_OnClick;
ele.onmouseover = jlDbtn_OnMouseOver;
ele.onmouseout = jlDbtn_OnMouseOut;
ele.onmouseup = jlDbtn_OnMouseUp;
ele.onmousedown = jlDbtn_OnMouseDown;
ele.oncontextmenu = jlDbtn_OnContextMenu;
}
}
}
function jlDbtn_OnClick( evt ) {
evt = evt || window.event;
this.go( evt );
}
function jlDbtn_OnMouseOver( evt ) {
evt = evt || window.event;
this.style.border = "1px solid black";
this.style.borderTop = "1px solid white";
this.style.borderLeft = "1px solid white";
}
function jlDbtn_OnMouseOut( evt ) {
evt = evt || window.event;
this.style.border = "1px solid transparent";
if ( IE6 ) {
this.style.borderColor = "pink";
this.style.filter = "chroma(color=pink);";
}
}
function jlDbtn_OnMouseUp( evt ) {
evt = evt || window.event;
this.style.border = "1px solid black";
this.style.borderTop = "1px solid white";
this.style.borderLeft = "1px solid white";
}
function jlDbtn_OnMouseDown( evt ) {
evt = evt || window.event;
this.style.border="";
this.style.borderTop="2px solid black";
this.style.borderLeft="2px solid black";
}
function jlDbtn_OnContextMenu( evt ) {
evt = evt || window.event;
evtKill( evt );
}
function jlDbtn_Go( evt ) {
var type = getAttr( this, 't');
var url = null;
var fldName = getAttr( this, 'fc');
var ctl = this;
var value = null;
var ww = 200;
var hh = 200;
if ( fldName ) {
ctl = g(fldName);
if ( ctl ) {
value = ctl.value;
}
}
switch ( type ) {
case 'date':
ww = 180;
hh = 190;
url = 'dlgCalendar.asp?as_of_date=' + value;
break;
case 'time':
ww = 150;
hh = 180;
url = 'dlgTime.asp?as_of_time=' + value;
break;
case 'color':
ww = 160;
hh = 150;
url = 'dlgColor.asp?color=' + value;
break;
}
if ( url ) {
dlgShow( this, ctl, ww, hh, url, null );
}
}
function jlDiffInit( diff_id, skip_resize ) {
var ele = g( diff_id );
if ( ele != null ) {
ele.inScroll = false;
ele.move = jlDiff_move;
ele.resize = jlDiff_resize;
ele.toString = jlDiff_toString;
ele.print = jlDiff_print;
ele.btnClicked = jlDiff_btnClicked;
ele.scrollSync = jlDiff_scrollSync;
ele.scrollTopGet = jlDiff_scrollTopGet;
ele.scrollTopSet = jlDiff_scrollTopSet;
ele.scrollLeftGet = jlDiff_scrollLeftGet;
ele.scrollLeftSet = jlDiff_scrollLeftSet;
ele.toStringL = jlDiff_toStringL;
ele.toStringR = jlDiff_toStringR;
ele.tblMain = getFirstChild( ele );
ele.trTitle = ele.tblMain.rows[0];
ele.tdTitleL = ele.trTitle.cells[0];
ele.tdSep = ele.trTitle.cells[1];
ele.tdTitleR = ele.trTitle.cells[2];
ele.trContent = ele.tblMain.rows[1];
ele.tdL = ele.trContent.cells[0];
ele.tdR = ele.trContent.cells[2];
ele.divL = getFirstChild( ele.tdL );
ele.divR = getFirstChild( ele.tdR );
if ( ele.addEventListener ) {
ele.addEventListener('click', jlDiff_OnClick, false);
ele.addEventListener('mouseover', jlDiff_OnMouseOver, false);
ele.addEventListener('mouseout', jlDiff_OnMouseOut, false);
ele.addEventListener('mouseup', jlDiff_OnMouseUp, false);
ele.addEventListener('mousedown', jlDiff_OnMouseDown, false);
ele.divL.addEventListener("scroll", jlDiff_OnScrollL, false);
ele.divR.addEventListener("scroll", jlDiff_OnScrollR, false);
} else {
ele.onclick = jlDiff_OnClick;
ele.onmouseover = jlDiff_OnMouseOver;
ele.onmouseout = jlDiff_OnMouseOut;
ele.onmouseup = jlDiff_OnMouseUp;
ele.onmousedown = jlDiff_OnMouseDown;
ele.divL.onscroll = jlDiff_OnScrollL;
ele.divR.onscroll = jlDiff_OnScrollR;
}
if ( skip_resize == null || skip_resize == false ) {
ele.resize();
}
}
}
function jlDiff_OnScrollL( evt ) {
var par = getParentByClass( this, 'diff');
par.scrollSync(par.divR, par.divL);
}
function jlDiff_OnScrollR( evt ) {
var par = getParentByClass( this, 'diff');
par.scrollSync(par.divL, par.divR);
}
function jlDiff_scrollSync( divA, divB ) {
if ( this.inScroll == true ) {
return 0;
}
this.inScroll = true;
divA.scrollLeft = divB.scrollLeft;
divA.scrollTop = divB.scrollTop;
this.inScroll = false;
}
function jlDiff_btnClicked( side, id ) {
var tblDataL = this.divL.childNodes[0];
var tblDataR = this.divR.childNodes[0];
if ( side == 'diff_r' ) {
var data = getInnerText( tblDataR.rows[id].cells[2] );
if ( tblDataL.rows[id].className == 'd' ) {
setInnerText( tblDataL.rows[id].cells[1], '');
} else if ( tblDataR.rows[id].className == 'a' ) {
setInnerText( tblDataL.rows[id].cells[1], '+');
}
} else if ( side == 'diff_l' ) {
var cellA = tblDataL.rows[id].cells[2];
var data = getInnerText( tblDataL.rows[id].cells[2] );
if ( tblDataL.rows[id].className == 'd' ) {
setInnerText( tblDataR.rows[id].cells[1], '+');
} else if ( tblDataR.rows[id].className == 'a' ) {
setInnerText( tblDataR.rows[id].cells[1], '');
}
}
setInnerText( tblDataR.rows[id].cells[2], data);
setInnerText( tblDataL.rows[id].cells[2], data);
tblDataR.rows[id].className='';
tblDataR.rows[id].cells[0].innerHTML = '';
tblDataL.rows[id].className='';
tblDataL.rows[id].cells[0].innerHTML = '';
}
function jlDiff_resize() {
var ww;
var hh;
var imgww = 21;
var brdWidth = this.tblMain.border;
var sepWidth = this.tdSep.offsetWidth;
if ( this.style.width ) {
ww = parseInt(this.style.width);
} else {
ww = this.offsetWidth;
}
ww = ww - 2 * brdWidth;
if ( this.style.height ) {
hh = parseInt(this.style.height);
} else {
hh = this.offsetHeight;
}
hh = hh - this.trTitle.offsetHeight;
try {
this.tblMain.style.width = ww + 'px';
this.tblMain.style.height = hh + 'px';
} catch (e) {
}
ww = ww - 4 * brdWidth;
ww = ww - sepWidth;
ww = ww / 2;
try {
this.tdTitleL.style.width = ww + 'px';
this.tdTitleR.style.width = ww + 'px';
this.divL.style.width = ww + 'px';
this.divR.style.width = ww + 'px';
this.tdL.style.width = ww + 'px';
this.tdR.style.width = ww + 'px';
this.trContent.height = hh + 'px';
this.tdL.style.height = hh + 'px';
this.tdR.style.height = hh + 'px';
this.divL.style.height = (hh - 2*brdWidth) + 'px';
this.divR.style.height = (hh - 2*brdWidth) + 'px';
var txtL = g('file_name_from');
var txtR = g('file_name_to');
if ( txtL ) {
txtL.style.width = (ww - sepWidth - 2*brdWidth - imgww) + 'px';
}
if ( txtR ) {
txtR.style.width = (ww - sepWidth - 2*brdWidth - imgww) + 'px';
}
} catch (e) {
}
}
function jlDiff_move( left, top, right, bottom ) {
this.style.position = "absolute";
try {
this.style.top = top + 'px';
this.style.left = left + 'px';
this.style.width = (right-left) + 'px';
if ( bottom - top > 0 ) {
this.style.height = (bottom - top) + 'px';
} else {
this.style.height = '0px';
}
} catch (e) {
}
this.resize();
}
function jlDiff_toString() {
var out = "";
var regexpNBSP = /&nbsp;/;
var simple_types = new Array;
alert('???TODO:');
return out;
}
function jlDiff_print( show_preview, width, height ) {
alert('???TODO:');
}
function jlDiff_scrollTopGet() {
return this.divL.scrollTop;
}
function jlDiff_scrollTopSet( new_value ) {
this.divL.scrollTop = new_value;
}
function jlDiff_scrollLeftGet() {
return this.divL.scrollLeft;
}
function jlDiff_scrollLeftSet( new_value ) {
this.divL.scrollLeft = new_value;
}
function jlDiff_OnClick( evt ) {
evt = evt || window.event;
var el = evtSrc( evt );
if ( el.tagName == 'IMG' ) {
var tr = getParent(el, "TR");
var row_ord = tr.rowIndex;
var divSide = getParent(tr, "DIV");
var side = divSide.id;
this.btnClicked(side, row_ord);
}
}
function jlDiff_OnMouseOver( evt ) {
evt = evt || window.event;
var el = evtSrc( evt );
if ( el.tagName == 'IMG' ) {
el.style.border = "1px solid black";
el.style.borderTop = "1px solid white";
el.style.borderLeft = "1px solid white";
}
}
function jlDiff_OnMouseOut( evt ) {
evt = evt || window.event;
var el = evtSrc( evt );
if ( el.tagName == 'IMG' ) {
el.style.border = "1px solid threedface";
el.style.backgroundColor = "threedface";
}
}
function jlDiff_OnMouseUp( evt ) {
evt = evt || window.event;
var el = evtSrc( evt );
if ( el.tagName == 'IMG' ) {
el.style.border = "1px solid black";
el.style.borderTop = "1px solid white";
el.style.borderLeft = "1px solid white";
}
}
function jlDiff_OnMouseDown( evt ) {
evt = evt || window.event;
var el = evtSrc( evt );
if ( el.tagName == 'IMG' ) {
el.style.border = "0px";
el.style.borderTop="2px solid black";
el.style.borderLeft="2px solid black";
el.style.backgroundColor="#e1e1e1";
}
}
function jlDiff_toStringL() {
var tblData = this.divL.childNodes[0];
return jlDiff_sideToString( tblData );
}
function jlDiff_toStringR() {
var tblData = this.divR.childNodes[0];
return jlDiff_sideToString( tblData );
}
function jlDiff_sideToString( tblData ) {
var out = '';
var row_count = tblData.rows.length;
if ( row_count >= 0 ) {
var tr = tblData.rows[0];
for (var rr=0; rr < row_count; rr++) {
if ( tr.cells[1].innerHTML != '' ) {
var cell = tr.cells[2];
out += (cell.textContent) ? cell.textContent : cell.innerText;
out += '\r\n';
}
tr = tr.nextSibling;
}
out = out.substr(0, out.length-2);
}
out = out.replace(/………›/g, '\t');
return out;
}
var mouseOffsetDrag = null;
var is_mouse_down  = false;
var was_mouse_down = false;
var divDragGroups = [];
var divCurrentDraggable = null;
var divLastDraggable = null;
var divDragHelper = null;
var divOrigContainer = null;
var divOrigNextChild = null;
var in_xy_mode = false;
var in_resize = false;
var was_in_resize = false;
var resizePos;
var resizeOrigSize;
var divCanvas;
function dragdropInit( in_xy_mode_new, divCanvasNew ) {
if ( in_xy_mode_new == true ) {
in_xy_mode = true;
divCanvas = divCanvasNew;
} else {
in_xy_mode = false;
divCanvas = null;
divDragHelper = document.createElement('DIV');
divDragHelper.style.position = 'absolute';
divDragHelper.style.display = 'none';
document.body.appendChild(divDragHelper);
}
}
function getElementPos(element) {
var left = totalOffsetLeft( element );
var top = totalOffsetTop( element );
return {x:left, y:top};
}
function getMouseOffset(target, evt) {
evt = evt || window.event;
var docPos    = getElementPos(target);
var mousePos  = evtMousePos(evt);
if ( divCanvas ) {
var canvasPos = getElementPos(divCanvas);
return {x:mousePos.x - docPos.x + canvasPos.x, y:mousePos.y - docPos.y + canvasPos.y};
} else {
return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}
}
function dragdropGroupAdd() {
var DragGroupId = divDragGroups.length;
divDragGroups[DragGroupId] = [];
dragDropGroupCount = divDragGroups.length;
for(var aa=0; aa<arguments.length; aa++) {
var cObj = arguments[aa];
divDragGroups[DragGroupId].push(cObj);
cObj.ContainerDragGroupId = DragGroupId;
cObj.allowResizeX = boolClean( getAttr(cObj, 'allowResizeX') );
cObj.allowResizeY = boolClean( getAttr(cObj, 'allowResizeY') );
for(var cc=0; cc < cObj.childNodes.length; cc++) {
var cN = cObj.childNodes[cc];
if ( cN.nodeType == 3 ) {
} else if ( cN.no_drag == 1 ) {
} else {
cN.DragGroupId = DragGroupId;
}
}
}
}
function jlDragDrop_OnMouseMove( evt ) {
evt = evt || window.event;
if ( dragDropGroupCount < 1 ) {
return true;
}
var eleSrc = evtSrc( evt );
var ele;
var mousePos = evtMousePos( evt );
if ( in_xy_mode == true ) {
if ( eleSrc.tagName != 'DIV' ) {
ele = getParent(eleSrc, 'DIV');
} else {
ele = eleSrc;
}
} else {
ele = eleSrc;
}
if ( ele == null ) {
was_mouse_down = is_mouse_down;
return true;
}
if ( in_resize == true ) {
var ww = resizeOrigSize + (evt.clientX - resizePos);
if ( ww < 0 ) {
ww = 0
}
resizeElement.style.width = ww + 'px';
return evtKill( evt );
}
if ( divLastDraggable != null && divCurrentDraggable == null ) {
if ( ele != divLastDraggable ) {
var origClass = divLastDraggable.origClass;
if ( origClass ) {
divLastDraggable.className = origClass;
}
}
}
var DragGroupId = ele.DragGroupId;
if( DragGroupId != null) {
if ( ele != divLastDraggable && divCurrentDraggable == null ) {
var origClass = ele.origClass;
if ( origClass == null ) {
origClass = ele.className;
ele.origClass = origClass;
}
ele.className = origClass + 'Hover';
}
if ( !in_resize && divCurrentDraggable === null) {
if ( ele.parentNode.allowResizeX == true ) {
if ( Math.abs( ele.offsetWidth - evtOffsetX( evt ) ) < 5 ) {
ele.style.cursor = "e-resize";
} else if ( ele.style.cursor == 'e-resize' ) {
ele.style.cursor = "pointer";
}
}
}
if (is_mouse_down && !was_mouse_down) {
divCurrentDraggable = ele;
divOrigContainer = divCurrentDraggable.parentNode;
divOrigNextChild = divCurrentDraggable.nextSibling;
mouseOffsetDrag   = getMouseOffset(ele, evt);
if ( in_xy_mode == false ) {
divDragHelper.appendChild(divCurrentDraggable.cloneNode(true));
divDragHelper.style.display = 'block';
}
var origClass = divCurrentDraggable.origClass;
if ( origClass ) {
if ( in_xy_mode == false ) {
divDragHelper.firstChild.className = origClass + 'Drag';
} else {
divCurrentDraggable.className = origClass + 'Drag';
}
} else if ( in_xy_mode == true ) {
var origClass = divCurrentDraggable.className;
if ( origClass ) {
divCurrentDraggable.origClass = origClass;
divCurrentDraggable.className = origClass + 'Drag';
}
}
if ( in_xy_mode == false ) {
divDragHelper.firstChild.removeAttribute('DragGroupId');
divDragHelper.firstChild.id = '';
var divContainers = divDragGroups[DragGroupId];
divCurrentDraggable.startWidth = parseInt(divCurrentDraggable.offsetWidth);
divCurrentDraggable.startHeight = parseInt(divCurrentDraggable.offsetHeight);
divCurrentDraggable.style.display  = 'none';
for ( var i=0; i<divContainers.length; i++ ) {
var divC = divContainers[i];
if ( divC.nodeType != 3 ) {
var pos = getElementPos(divC);
divC.startWidth = parseInt(divC.offsetWidth);
divC.startHeight = parseInt(divC.offsetHeight);
divC.startLeft = pos.x;
divC.startTop = pos.y;
for ( var j=0; j < divC.childNodes.length; j++ ) {
var cN = divC.childNodes[j];
if ( cN.nodeType != 3 ) {
if ( cN == divCurrentDraggable ) continue;
var pos = getElementPos(cN);
cN.startWidth = parseInt(cN.offsetWidth);
cN.startHeight = parseInt(cN.offsetHeight);
cN.startLeft = pos.x;
cN.startTop = pos.y;
}
}
}
}
}
}
divLastDraggable  = ele;
} else {
divLastDraggable = null;
}
if ( divCurrentDraggable ) {
if ( in_xy_mode == true ) {
divCurrentDraggable.style.top = (mousePos.y - mouseOffsetDrag.y) + 'px';
divCurrentDraggable.style.left = (mousePos.x - mouseOffsetDrag.x) + 'px';
} else {
divDragHelper.style.top  = (mousePos.y - mouseOffsetDrag.y) + 'px';
divDragHelper.style.left = (mousePos.x - mouseOffsetDrag.x) + 'px';
var divContainers  = divDragGroups[divCurrentDraggable.DragGroupId];
var divActiveContainer = null;
var xPos = mousePos.x - mouseOffsetDrag.x + (parseInt(divCurrentDraggable.startWidth) /2);
var yPos = mousePos.y - mouseOffsetDrag.y + (parseInt(divCurrentDraggable.startHeight)/2);
for ( var i=0; i<divContainers.length; i++ ) {
var divC = divContainers[i];
if ( divC.nodeType != 3 ) {
if( (divC.startLeft < xPos) && (divC.startTop < yPos) && ( (divC.startLeft + divC.startWidth) > xPos) && ( (divC.startTop + divC.startHeight) > yPos)) {
divActiveContainer = divC;
break;
}
}
}
if ( divActiveContainer ) {
var eleBefore = null;
for ( var i=divActiveContainer.childNodes.length-1; i>=0; i-- ) {
var cN = divActiveContainer.childNodes[i];
if ( cN.nodeType != 3 ) {
if ( divCurrentDraggable != cN && (( cN.startLeft + cN.startWidth)  > xPos) && ((cN.startTop  + cN.startHeight) > yPos)) {
eleBefore = cN;
}
}
}
if ( eleBefore ) {
if (eleBefore!=divCurrentDraggable.nextSibling) {
divActiveContainer.insertBefore(divCurrentDraggable, eleBefore);
}
} else {
if((divCurrentDraggable.nextSibling) || (divCurrentDraggable.parentNode!=divActiveContainer)) {
divActiveContainer.appendChild(divCurrentDraggable);
}
}
if ( divCurrentDraggable.style.display != '' ) {
if ( getAttr(divCurrentDraggable.parentNode, 'blockmode') != null ) {
divCurrentDraggable.style.display = getAttr( divCurrentDraggable.parentNode, 'blockmode');
} else {
divCurrentDraggable.style.display = '';
}
}
} else {
if( divCurrentDraggable.style.display != 'none') {
divCurrentDraggable.style.display = 'none';
}
}
}
}
was_mouse_down = is_mouse_down;
if ( DragGroupId != null || divCurrentDraggable ) {
return false;
} else {
return true;
}
}
function jlDragDrop_OnMouseUp( evt ) {
evt = evt || window.event;
var ele = evtSrc( evt );
if ( in_resize ) {
in_resize = false;
was_in_resize = true;
is_mouse_down = false;
was_mouse_down = false;
try {
var tbl = getParentWithAttr(ele, 'ContainerDragGroupId');
eval( tbl.id + "_ItemResized(" + getChildIndex( ele ) + ");");
} catch (e) {
}
return evtKill( evt );
}
if ( divCurrentDraggable ) {
if ( in_xy_mode == false ) {
divDragHelper.style.display = 'none';
for ( var i=0; i<divDragHelper.childNodes.length; i++) {
divDragHelper.removeChild( divDragHelper.childNodes[i] );
}
} else {
var origClass = divCurrentDraggable.origClass;
if ( origClass ) {
divCurrentDraggable.className = origClass + 'Hover';
}
}
if (divCurrentDraggable.style.display == 'none') {
if ( in_xy_mode == true ) {
} else {
if ( divOrigNextChild ) {
divOrigContainer.insertBefore(divCurrentDraggable, divOrigNextChild);
} else {
divOrigContainer.appendChild(divCurrentDraggable);
}
}
} else {
try {
eval( divOrigContainer.id + "_DragDropItemRemoved('" + divCurrentDraggable.id.replace(/'/g, '\\\'') + "');" );
} catch (e) {
}
var par = divCurrentDraggable.parentNode;
if ( par != null ) {
try {
eval( par.id + "_DragDropItemAdded('" + divCurrentDraggable.id.replace(/'/g, '\\\'') + "');" );
} catch (e) {
}
}
}
if ( getAttr(divCurrentDraggable.parentNode, 'blockmode') != null ) {
divCurrentDraggable.style.display = getAttr(divCurrentDraggable.parentNode, 'blockmode');
} else {
divCurrentDraggable.style.display = '';
}
}
divCurrentDraggable  = null;
is_mouse_down = false;
was_mouse_down = false;
}
function jlDragDrop_OnMouseDown( evt ) {
evt = evt || window.event;
if ( evtMouseButton( evt ) & 1 == 1 ) {
is_mouse_down = true;
}
if ( divLastDraggable !== null ) {
if ( divLastDraggable.parentNode.allowResizeX == true ) {
if ( Math.abs( divLastDraggable.offsetWidth - evtOffsetX( evt ) ) < 5 ) {
in_resize = true;
resizePos = evt.clientX;
resizeOrigSize = divLastDraggable.offsetWidth;
resizeElement = divLastDraggable;
evtKill( evt );
return false;
}
}
}
if ( divLastDraggable != null && is_mouse_down ) {
return evtKill( evt );
}
return true;
}
function jlDragDrop_OnSelectStart( evt ) {
if ( dragDropGroupCount < 1 ) {
return true;
}
evt = evt || window.event;
return evtKill( evt );
}
function jlDragDrop_OnContextMenu( evt ) {
if ( dragDropGroupCount < 1 ) {
return true;
}
evt = evt || window.event;
if ( divLastDraggable != null ) {
var par = divLastDraggable.parentNode;
if ( par != null ) {
if ( divLastDraggable.id != null && divLastDraggable.id != '' ) {
try {
eval( par.id + "_ContextMenuOpen('" + divLastDraggable.id.replace(/'/g, '\\\'') + "');" );
} catch (e) {
}
} else {
return true;
}
} else {
return true;
}
return evtKill( evt );
}
return true;
}
var divEvent = null;
var divEventLog = null;
var divEvent_in_drag_mode = false;
var divEvent_deltaX = 0;
var divEvent_deltaY = 0;
function evtClear() {
if ( divEventLog ) {
divEventLog.innerHTML = '';
}
}
function evtClose() {
if ( divEventLog ) {
divEvent.removeChild( divEventLog );
divEventLog = null;
}
if ( divEvent ) {
document.body.removeChild( divEvent );
divEvent = null;
}
}
function evtSpaceWrite() {
evtWriteRaw( '<hr>' );
}
function evtWriteHTML( strOut ) {
if ( strOut ) {
strOut = strOut.replace(/&/, '&amp;').replace(/\x3c/g, '&lt;').replace(/\x3e/g, '&gt;');
}
evtWrite( strOut );
}
function evtWriteEvent( evt ) {
var out = ''
var src = evtSrc( evt );
out += 'evt.type=' + evt.type;
out += '; evt.altKey=' + evt.altKey;
out += '; evt.ctrlKey=' + evt.ctrlKey;
out += '; evt.shiftKey=' + evt.shiftKey;
out += '; evt.offsetX=' + evt.offsetX;
out += '; evt.offsetY=' + evt.offsetY;
out += '; evt.keyCode=' + evt.keyCode;
out += '; evt.pageX=' + evt.pageX;
out += '; evt.pageY=' + evt.pageY;
out += '; evt.screenX=' + evt.screenX;
out += '; evt.screenY=' + evt.screenY;
if ( src ) {
out += '; evtSrc( evt ).tagName=' + src.tagName;
} else {
out += '; evtSrc( evt ) = null';
}
evtWrite( out );
}
function evtWrite( strOut ) {
evtWriteRaw( strOut + '<br>' );
}
function evtWriteRaw( strOut ) {
var now = new Date();
if ( divEvent == null ) {
divEvent = document.createElement('DIV');
divEvent.className = 'evt';
divEvent.innerHTML = '<table cellspacing="0" cellpadding="0" border="0"><tr><td><b>Events:</b><td align="right"><img src="fx/btnClear1.gif" onclick="evtClear();">&nbsp;<img src="fx/btnClose1.gif" onclick="evtClose();"></td></tr></table><DIV id=divEventLog class=evtlog></div><input type="text" onkeypress="return divEventConsole_onkeypress(this, event);">';
divEvent.onmousedown = divEvent_onmousedown;
divEvent.onmousemove = divEvent_onmousemove;
divEvent.onmouseup = divEvent_onmouseup;
document.body.appendChild( divEvent );
divEventLog = g('divEventLog');
}
var strToPrint = now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds() + ':' + now.getMilliseconds() + ': ' + strOut;
divEventLog.innerHTML += strToPrint;
divEventLog.scrollTop = divEventLog.scrollHeight;
}
function divEventConsole_onkeypress( ele, evt ) {
evt = evt || window.event;
if ( evt.keyCode == 13 ) {
var out;
switch ( ele.value ) {
case 'cls':
case 'clear':
case 'evtClear':
case 'evtClear()':
case 'evtClear();':
evtClear();
break;
case 'exit':
case 'close':
case 'evtClose':
case 'evtClose()':
case 'evtClose();':
evtClose();
break;
default:
try {
out = eval( ele.value );
} catch (e) {
out = e.description;
}
evtWrite( ele.value + '=' + out);
}
ele.value = "";
}
}
function divEvent_onmousedown( evt ) {
evt = evt || window.event;
var src = evtSrc( evt );
if ( src != divEventLog && src.tagName != 'INPUT' ) {
divEvent_deltaX = totalOffsetLeft( divEvent ) - evt.clientX;
divEvent_deltaY = totalOffsetTop( divEvent ) - evt.clientY;
divEvent_in_drag_mode = true;
evtKill( evt );
return false;
} else {
return true;
}
}
function divEvent_onmousemove( evt ) {
evt = evt || window.event;
if ( divEvent_in_drag_mode == true ) {
var button = (evt.which? evt.which: evt.button);
if ( button == 0 ) {
divEvent_onmouseup( evt );
} else {
divEvent.style.left = (evt.clientX + divEvent_deltaX) + 'px';
divEvent.style.top = (evt.clientY + divEvent_deltaY) + 'px';
evtKill( evt );
return false;
}
}
}
function divEvent_onmouseup( evt ) {
evt = evt || window.event;
divEvent_in_drag_mode = false;
}
function jlFileViewInit( ele_id ) {
var ele = g( ele_id );
if ( ele !== null ) {
ele.tblMain = null;
ele.tdRuler = null;
ele.divRuler = null;
ele.divRowNum = null;
ele.divContents = null;
ele.divRulerReference = null;
ele.move = jlFileView_move;
ele.resize = jlFileView_resize;
ele.toString = jlFileView_toString;
ele.print = jlFileView_print;
ele.tblMain = getChildByTagName(ele, 'TABLE');
ele.tdRuler = ele.tblMain.rows[0].cells[1];
ele.divRuler = getChildByTagName(ele.tdRuler, 'DIV');
ele.divRowNum = getChildByTagName(ele.tblMain.rows[1].cells[0], 'DIV');
ele.divContents = getChildByTagName(ele.tblMain.rows[1].cells[1], 'DIV');
preContents = getChildByTagName(ele.divContents, 'PRE');
ele.divRulerReference = getChild(ele, 1);
if ( preContents.tagName != 'PRE' ) {
preContents = null;
}
if ( ele.divContents.addEventListener ) {
ele.divContents.addEventListener('scroll', jlFileView_divContents_OnScroll, false);
} else {
ele.divContents.onscroll = jlFileView_divContents_OnScroll;
}
if ( preContents != null ) {
if ( preContents.addEventListener ) {
preContents.addEventListener("mouseover", jlFileView_preContents_OnMouseOver, false);
preContents.addEventListener("mousemove", jlFileView_preContents_OnMouseMove, false);
preContents.addEventListener("mouseout", jlFileView_preContents_OnMouseOut, false);
} else {
preContents.onmouseover = jlFileView_preContents_OnMouseOver;
preContents.onmousemove = jlFileView_preContents_OnMouseMove;
preContents.onmouseout = jlFileView_preContents_OnMouseOut;
}
}
}
}
function jlFileView_divContents_OnScroll( evt ) {
evt = evt || window.event;
var par = getParentByClass(this, 'fileView');
if ( par.divRuler ) {
par.divRuler.scrollLeft = par.divContents.scrollLeft;
}
if ( par.divRowNum ) {
par.divRowNum.scrollTop = par.divContents.scrollTop;
}
}
function jlFileView_preContents_OnMouseOver( evt ) {
evt = evt || window.event;
var par = getParentByClass(this, 'fileView');
if ( par.divRulerReference.style.display != "block" ) {
par.divRulerReference.style.display = "block";
par.divRulerReference.style.zIndex = 1000;
}
}
function jlFileView_preContents_OnMouseMove( evt ) {
evt = evt || window.event;
var par = getParentByClass(this, 'fileView');
var ww = par.divRulerReference.clientWidth;
if ( ww == 0 ) {
return false;
}
var col = 0;
col = Math.round((evt.clientX - totalOffsetLeft(par.divContents) + 1 + par.divContents.scrollLeft) / ww);
window.status = 'Column ' + col;
par.divRulerReference.style.left = (((col-1) * ww) + par.tdRuler.offsetLeft - par.divContents.scrollLeft) + 'px';
par.divRulerReference.style.top = totalOffsetTop(par.divRuler) + 'px';
par.divRulerReference.style.height = (par.divContents.clientHeight + par.divRuler.clientHeight) + 'px';
}
function jlFileView_preContents_OnMouseOut( evt ) {
evt = evt || window.event;
var par = getParentByClass(this, 'fileView');
try {
if ( getAttr(evtToElement(evt), 'ignore') == 1 ) {
} else {
par.divRulerReference.style.display = "none";
}
} catch (e) {
}
return true;
}
function jlFileView_resize() {
var ww;
var hh;
var brdWidth = this.tblMain.border;
var sepWidth = tdSep.offsetWidth;
if ( this.style.width ) {
ww = parseInt(this.style.width);
} else {
ww = this.offsetWidth;
}
ww = ww - 2 * brdWidth;
if ( this.style.height ) {
hh = parseInt(this.style.height);
} else {
hh = this.offsetHeight;
}
hh = hh - trTitle.offsetHeight;
try {
this.tblMain.style.width = ww;
this.tblMain.style.height = hh;
} catch (e) {
}
ww = ww - 4 * brdWidth;
ww = ww - sepWidth;
ww = ww / 2;
try {
} catch (e) {
}
}
function jlFileView_move( left, top, right, bottom ) {
this.style.position="absolute";
try {
this.style.top = top;
this.style.left = left;
this.style.width = right-left;
if ( bottom - top > 0 ) {
this.style.height = bottom - top;
} else {
this.style.height = 0;
}
} catch (e) {
}
this.resize();
}
function jlFileView_toString() {
var out = "";
var regexpNBSP = /&nbsp;/;
alert('???TODO:');
return out;
}
function jlFileView_print( show_preview, width, height ) {
alert('???TODO:');
}
function jlInputInit() {
eles = document.body.getElementsByTagName('INPUT');
for (tt=0; tt < eles.length; tt++ ) {
var ele = eles[tt];
ele.isValid = jlInput_isValid;
if ( ele.addEventListener ) {
ele.addEventListener( 'focus', jlInput_OnFocus, false);
ele.addEventListener( 'blur', jlInput_OnBlur, false);
ele.addEventListener( 'keypress', jlInput_OnKeyPress, false);
ele.addEventListener( 'paste', jlInput_OnPaste, false);
ele.addEventListener( 'change', jlInput_OnChange, false);
if ( ele.type == 'checkbox' ) {
ele.addEventListener( 'click', jlInput_chk_OnClick, false);
}
} else {
ele.onfocus = jlInput_OnFocus;
ele.onblur = jlInput_OnBlur;
ele.onkeypress = jlInput_OnKeyPress;
ele.onpaste = jlInput_OnPaste;
ele.onchange = jlInput_OnChange;
if ( ele.type == 'checkbox' ) {
addEvt( ele, 'click', jlInput_chk_OnClick );
}
}
}
}
function jlInput_chk_OnClick( evt ) {
evt = evt || window.event;
frmChangedSet( true );
return true;
}
function jlInput_OnKeyPress( evt ) {
evt = evt || window.event;
if ( evt ) {
if ( evt.keyCode == 13 ) {
return;
}
}
frmChangedSet( true );
return true;
}
function jlInput_OnPaste( evt ) {
evt = evt || window.event;
frmChangedSet( true );
return true;
}
function jlInput_OnChange( evt ) {
evt = evt || window.event;
frmChangedSet( true );
return true;
}
function jlInput_OnFocus( evt ) {
evt = evt || window.event;
window.status = this.title;
return true;
}
function jlInput_OnBlur( evt ) {
evt = evt || window.event;
return this.isValid();
}
function jlInput_isValid() {
var scriptValid = getAttr(this, 'onIsValid');
var result = false;
if ( scriptValid != null && scriptValid != '' ) {
result = !eval(scriptValid);
}
return result;
}
var jlJump_elements = [];
var jlJump_count = 0;
var divJumpList = null;
function jlJumpInit( jump_id ) {
var ele = g( jump_id );
if ( ele != null ) {
if ( ele.addEventListener ) {
ele.addEventListener('click', jlJump_OnClick, false);
ele.addEventListener('dblclick', jlJump_OnClick, false);
ele.addEventListener('mouseover', jlJump_OnMouseOver, false);
ele.addEventListener('mouseout', jlJump_OnMouseOut, false);
ele.addEventListener('mouseup', jlJump_OnMouseUp, false);
ele.addEventListener('mousedown', jlJump_OnMouseDown, false);
ele.addEventListener('contextmenu', jlJump_OnContextMenu, false);
} else {
ele.onclick = jlJump_OnClick;
ele.ondblclick = jlJump_OnClick;
ele.onmouseover = jlJump_OnMouseOver;
ele.onmouseout = jlJump_OnMouseOut;
ele.onmouseup = jlJump_OnMouseUp;
ele.onmousedown = jlJump_OnMouseDown;
ele.oncontextmenu = jlJump_OnContextMenu;
}
}
jlJump_count++;
jlJump_elements[jlJump_count] = jump_id;
}
function jlJump_OnClick( evt ) {
evt = evt || window.event;
jlJumpGo( this );
}
function jlJump_OnMouseOver( evt ) {
evt = evt || window.event;
this.style.border = "1px solid black";
this.style.borderTop = "1px solid white";
this.style.borderLeft = "1px solid white";
}
function jlJump_OnMouseOut( evt ) {
evt = evt || window.event;
this.style.border = "1px solid transparent";
if ( IE6 ) {
this.style.borderColor = "pink";
this.style.filter = "chroma(color=pink);";
}
}
function jlJump_OnMouseUp( evt ) {
evt = evt || window.event;
this.style.border = "1px solid black";
this.style.borderTop = "1px solid white";
this.style.borderLeft = "1px solid white";
}
function jlJump_OnMouseDown( evt ) {
evt = evt || window.event;
this.style.border="";
this.style.borderTop="2px solid black";
this.style.borderLeft="2px solid black";
}
function jlJump_OnContextMenu( evt ) {
evt = evt || window.event;
return evtKill( evt );
}
function jumpMnuShow( evt ) {
if ( divJumpList == null ) {
divJumpList = document.createElement('DIV');
divJumpList.id = 'jlJumpMnu';
divJumpList.className = 'mnu';
divJumpList.style.position = 'absolute';
divJumpList.style.visibility = 'hidden';
document.body.appendChild(divJumpList);
var ll = '';
for ( tt=1; tt <= jlJump_count; tt++ ) {
var name = getAttr( g( jlJump_elements[tt] ), 'title');
ll += '<tr class="mnuRow" i=' + tt + '><td><img src=fx/p.gif width=16 height=16></td><td>' + name + '</td></tr>';
}
divJumpList.innerHTML = '<table COLS=2 border=0 cellpadding=0 cellspacing=0 valign=top>' + ll + '</table>';
jlMnuInit( 'jlJumpMnu' );
}
mnuShow( divJumpList, evt );
}
function jlJumpMnu_Clicked( mnu_id ) {
var ele = g( jlJump_elements[mnu_id] );
jlJumpGo( ele );
}
function jlJumpGo( ele ) {
var url = getAttr( ele, 'url');
if ( url != null ) {
urlGo(url, true);
} else {
fld_code = getAttr(ele, 'fc');
if ( fld_code != null ) {
var fld = g( fld_code );
var eiid = '';
if ( fld ) {
eiid = fld.value;
var url = 'entity_show.asp?entity_id=' + ele.eid + '&entity_instance_id=' + eiid;
urlGo(url, true);
}
}
}
}
function jlMnuInit( mnu_id ) {
var ele = g( mnu_id );
if ( ele != null ) {
ele.current_submenu = null;
ele.handleKeyDown = jlMnu_handleKeyDown;
ele.setCheckbox = jlMnu_setCheckbox;
ele.getCheckbox = jlMnu_getCheckbox;
ele.lastItemOrd = -1;
var rows = ele.childNodes[0].rows;
for ( rr=0; rr < rows.length; rr++ ) {
var item = rows[rr];
if ( item.className == 'mnuSep' ) {
if ( item.addEventListener ) {
item.addEventListener('click', jlMnuSep_killEvent, false);
item.addEventListener('contextmenu', jlMnuSep_killEvent, false);
item.addEventListener('mouseover', jlMnuSep_killEvent, false);
item.addEventListener('mouseout', jlMnuSep_killEvent, false);
item.addEventListener('mouseup', jlMnuSep_killEvent, false);
item.addEventListener('mousedown', jlMnuSep_killEvent, false);
item.addEventListener('selectstart', jlMnuSep_killEvent, false);
} else {
item.onclick = jlMnuSep_killEvent;
item.oncontextmenu = jlMnuSep_killEvent;
item.onmouseover = jlMnuSep_killEvent;
item.onmouseout = jlMnuSep_killEvent;
item.onmouseup = jlMnuSep_killEvent;
item.onmousedown = jlMnuSep_killEvent;
item.onselectstart = jlMnuSep_killEvent;
}
} else {
if ( item.addEventListener ) {
item.addEventListener('click', jlMnuItem_mouseOnClick, false);
item.addEventListener('contextmenu', jlMnuItem_mouseOnContextMenu, false);
item.addEventListener('mouseover', jlMnuItem_mouseOnMouseOver, false);
item.addEventListener('mouseout', jlMnuItem_mouseOnMouseOut, false);
item.addEventListener('mouseup', jlMnuItem_mouseOnMouseUp, false);
item.addEventListener('mousedown', jlMnuItem_mouseOnMouseDown, false);
item.addEventListener('selectstart', jlMnuItem_mouseOnSelectStart, false);
} else {
item.onclick = jlMnuItem_mouseOnClick;
item.oncontextmenu = jlMnuItem_mouseOnContextMenu;
item.onmouseover = jlMnuItem_mouseOnMouseOver;
item.onmouseout = jlMnuItem_mouseOnMouseOut;
item.onmouseup = jlMnuItem_mouseOnMouseUp;
item.onmousedown = jlMnuItem_mouseOnMouseDown;
item.onselectstart = jlMnuItem_mouseOnSelectStart;
}
item.submenu = null;
var sm_id = getAttr(item, 'sm');
if ( sm_id != null && sm_id != '' ) {
var sm = g( sm_id );
item.submenu = sm;
sm.parentmenu = item;
}
item.style.margin = '2px';
}
}
}
}
function jlMnu_handleKeyDown( evt ) {
evt = evt || window.event;
if ( this.current_submenu != null ) {
return this.current_submenu.handleKeyDown( evt );
}
var rows = this.childNodes[0].rows;
var keyCode = evt.keyCode;
if ( keyCode == 27 ) {
mnuHide();
return evtKill( evt );
}
switch (keyCode) {
case 13:
if ( this.lastItemOrd != -1 ) {
mnuHide();
try {
eval( this.id + "_Clicked('" + getAttr(rows[this.lastItemOrd], 'i') + "');");
} catch (e) {
}
}
break;
case 38:
case 40:
var nextItemOrd = jlMnuItemNext( rows, this.lastItemOrd, keyCode == 38 ? -1 : 1 );
if ( nextItemOrd != -1 && nextItemOrd != this.lastItemOrd ) {
if ( this.lastItemOrd != -1 ) {
jlMnuSelSet( rows[ this.lastItemOrd ], false);
}
this.lastItemOrd = nextItemOrd;
jlMnuSelSet( rows[ this.lastItemOrd ], true);
}
break;
case 36:
if ( this.lastItemOrd >= 0 ) {
jlMnuSelSet( rows[ this.lastItemOrd ], false);
}
this.lastItemOrd = 0;
jlMnuSelSet( rows[ this.lastItemOrd ], true);
break;
case 35:
if ( this.lastItemOrd >= 0 ) {
jlMnuSelSet( rows[ this.lastItemOrd ], false);
}
this.lastItemOrd = rows.length-1;
jlMnuSelSet( rows[ this.lastItemOrd ], true);
break;
case 37:
if ( this.parentmenu != null ) {
}
break;
case 39:
if ( this.lastItemOrd >= 0 ) {
if ( rows[this.lastItemOrd].submenu != null ) {
}
}
break;
}
return false;
}
function jlMnu_setCheckbox( mnu_id, is_checked ) {
var rows = this.childNodes[0].rows;
var ll = rows.length;
for ( tt = 0; tt < ll; tt++ ) {
if ( getAttr(rows[tt], 'i') == mnu_id ) {
rows[tt].childNodes[0].childNodes[0].src = 'fx/mnuChecked' + ( is_checked ? '1' : '0' ) + '.gif';
setAttr(rows[tt], 'is_on', ( is_checked ? 1 : 0) );
return true;
}
}
return false;
}
function jlMnu_getCheckbox( mnu_id ) {
var rows = this.childNodes[0].rows;
var ll = rows.length;
for ( tt = 0; tt < ll; tt++ ) {
if ( getAttr(rows[tt], 'i') == mnu_id ) {
var vv = getAttr(rows[tt], 'is_on');
if ( vv == 1 || vv == '1' || vv == 'true' || vv == true ) {
return true;
} else {
return false;
}
}
}
}
function jlMnuItemNext( rows, current_ord, delta ) {
var ord = current_ord;
if ( delta > 0 ) {
for ( ii = current_ord + delta; ii < rows.length; ii += delta ) {
if ( rows[ii].className != 'mnuSep' ) {
return ii;
}
}
return -1;
} else {
for ( ii = current_ord + delta; ii >= 0; ii += delta ) {
if ( rows[ii].className != 'mnuSep' ) {
return ii;
}
}
return -1;
}
}
function jlMnuSelSet( row_ele, is_selected ) {
var newClassName = "";
if ( is_selected ) {
newClassName = "s";
newClassName = "s";
}
row_ele.childNodes[0].className = newClassName;
row_ele.childNodes[1].className = newClassName;
}
function jlMnuItem_mouseOnMouseOver( evt ) {
evt = evt || window.event;
var divMain = getParent(this, 'DIV');
divMain.lastItemOrd = this.rowIndex;
this.childNodes[0].className = "s";
this.childNodes[1].className = "s";
if ( divMain.current_submenu != null ) {
if ( divMain.current_submenu != this.submenu ) {
divMain.current_submenu.style.visibility = 'hidden';
divMain.current_submenu = null;
} else {
return false;
}
}
if ( this.submenu != null ) {
if ( this.submenu.style.visibility != 'visible' ) {
this.submenu.style.position = 'absolute';
var ll = totalOffsetLeft(this) + this.scrollWidth - 5;
var tt = totalOffsetTop(this);
if ( ( ll + this.submenu.offsetWidth ) > windowWidth() ) {
ll = window.document.body.clientWidth - this.submenu.clientWidth - 3;
}
if ( (tt + this.submenu.offsetHeight) > windowHeight() ) {
tt = window.document.body.clientHeight - this.submenu.clientHeight - 3;
} else if ( tt < 0 ) {
tt = 0;
}
this.submenu.style.zIndex = 1001;
this.submenu.style.left = ll + 'px';
this.submenu.style.top = tt + 'px';
this.submenu.style.visibility = 'visible';
divMain.current_submenu = this.submenu;
}
}
window.status = this.title;
}
function jlMnuItem_mouseOnMouseOut( evt ) {
evt = evt || window.event;
this.childNodes[0].className = "";
this.childNodes[1].className = "";
if ( this.submenu != null ) {
if ( this.submenu.style.visibility == 'visible' ) {
var elTo = evtToElement(evt);
if ( elTo.tagName != 'TR' ) {
var tdNew = getParent(elTo, "TR");
}
if ( tdNew == this ) {
return false;
}
var divTo = elTo;
if ( divTo.tagName != 'DIV' ) {
divTo = getParent(divTo, 'DIV');
}
if ( divTo == this.submenu ) {
} else {
this.submenu.style.visibility = 'hidden';
}
}
}
window.status = "";
}
function jlMnuItem_mouseOnMouseUp( evt ) {
evt = evt || window.event;
if ( this.submenu == null ) {
this.childNodes[0].style.border = "1px solid transparent";
this.childNodes[1].style.border = "1px solid transparent";
}
}
function jlMnuItem_mouseOnMouseDown( evt ) {
evt = evt || window.event;
if ( this.submenu == null ) {
this.childNodes[0].style.borderTop="2px solid black";
this.childNodes[0].style.borderLeft="2px solid black";
this.childNodes[0].style.borderRight="0px";
this.childNodes[0].style.borderBottom="0px";
this.childNodes[1].style.borderTop="2px solid black";
this.childNodes[1].style.borderLeft="2px solid Highlight";
this.childNodes[1].style.borderRight="0px";
this.childNodes[1].style.borderBottom="0px";
}
}
function jlMnuItem_mouseOnContextMenu( evt ) {
evt = evt || window.event;
if ( this.submenu == null ) {
mnuHide();
var divMain = getParent(this, 'DIV');
try {
eval( divMain.id + "_Clicked('" + getAttr(this, 'i') + "');");
} catch (e) {
}
return evtKill( evt );
} else {
return evtKill( evt );
}
}
function jlMnuItem_mouseOnClick( evt ) {
evt = evt || window.event;
if ( this.submenu == null ) {
if ( this.className != 'mnuSep' ) {
mnuHide();
var divMain = getParent(this, 'DIV');
try {
eval( divMain.id + "_Clicked('" + getAttr(this, 'i') + "');");
} catch (e) {
}
} else {
return evtKill( evt );
}
} else {
return evtKill( evt );
}
}
function jlMnuItem_mouseOnSelectStart( evt ) {
evt = evt || window.event;
return evtKill( evt );
}
function jlMnuSep_killEvent( evt ) {
evt = evt || window.event;
return evtKill( evt );
}
function jlOtlInit( otl_id ) {
var ele = g( otl_id );
if ( ele != null ) {
ele.lastItem = null;
ele.itemShow = jlOtl_itemShow;
ele.itemToggle = jlOtl_itemToggle;
ele.imgFromItem = jlOtl_imgFromItem;
ele.firstItem = jlOtl_firstItem;
ele.lastVisibleItem = jlOtl_lastVisibleItem;
ele.itemHasChildren = jlOtl_itemHasChildren;
ele.childFromItem = jlOtl_childFromItem;
ele.firstChildFromItem = jlOtl_firstChildFromItem;
ele.lastChildFromItem = jlOtl_lastChildFromItem;
ele.tdFromItem = jlOtl_tdFromItem;
ele.parentFromItem = jlOtl_parentFromItem;
ele.handleOnClick = jlOtl_OnClick;
if ( ele.addEventListener ) {
ele.addEventListener('click', jlOtl_OnClick, false);
ele.addEventListener('dblclick', jlOtl_OnDblClick, false);
ele.addEventListener('selectstart', jlOtl_OnSelectStart, false);
ele.addEventListener('keydown', jlOtl_OnKeyDown, false);
ele.addEventListener('focus', jlOtl_OnFocus, false);
ele.addEventListener('blur', jlOtl_OnBlur, false);
} else {
ele.onclick = jlOtl_OnClick;
ele.ondblclick = jlOtl_OnDblClick;
ele.onselectstart = jlOtl_OnSelectStart;
ele.onkeydown = jlOtl_OnKeyDown;
ele.onfocus = jlOtl_OnFocus;
ele.onblur = jlOtl_OnBlur;
}
}
}
function jlOtl_OnFocus( evt ) {
evt = evt || window.event;
}
function jlOtl_OnBlur( evt ) {
evt = evt || window.event;
}
function jlOtl_OnClick( evt ) {
evt = evt || window.event;
var el = evtSrc( evt );
var divItem;
switch ( el.tagName ) {
case 'IMG':
divItem = getParent( el, 'DIV' );
if ( divItem == null ) {
return false;
} else if ( divItem.className != 'otlItem' ) {
return false;
}
if ( this.itemHasChildren( divItem ) ) {
this.itemToggle( getAttr(divItem, 'rid') );
}
break;
case 'TD':
case 'TR':
divItem = getParent( el, 'DIV' );
if ( divItem == null ) {
return false;
} else if ( divItem.className != 'otlItem' ) {
return false;
}
this.itemShow( getAttr(divItem, 'rid') );
break;
}
return false;
}
function jlOtl_OnDblClick( evt ) {
evt = evt || window.event;
var el = evtSrc( evt );
var divItem;
this.handleOnClick( evt );
divItem = getParent( el, 'DIV' );
if ( divItem == null ) {
return false;
} else if ( divItem.className != 'otlItem' ) {
return false;
}
if ( this.itemHasChildren( divItem ) ) {
this.itemToggle( getAttr(divItem, 'rid') );
}
return false;
}
function jlOtl_OnKeyDown( evt ) {
evt = evt || window.event;
var divItem = this.lastItem;
var keyCode = evt.keyCode;
switch ( keyCode ) {
case 32:
this.itemToggle( getAttr(divItem, 'rid') );
kill_event = true;
break;
case 13:
this.itemToggle( getAttr(divItem, 'rid') );
kill_event = true;
break;
case 37:
if ( this.itemHasChildren( divItem ) ) {
if ( this.childFromItem( divItem ).style.display != "none" ) {
this.itemToggle( getAttr(divItem, 'rid') );
}
}
kill_event = true;
break;
case 39:
if ( this.itemHasChildren( divItem ) ) {
if ( this.childFromItem( divItem ).style.display == "none" ) {
this.itemToggle( getAttr(divItem, 'rid') );
}
}
kill_event = true;
break;
case 36:
if ( this.firstItem() == divItem ) {
} else if ( this.firstItem() != null ) {
this.itemShow( getAttr( this.firstItem(), 'rid') );
}
kill_event = true;
break;
case 35:
if ( this.lastVisibleItem() == divItem ) {
} else if ( this.lastVisibleItem() != null ) {
this.itemShow( getAttr( this.lastVisibleItem(), 'rid') );
}
kill_event = true;
break;
case 38:
var found = false;
var divPrev = getPreviousSibling( divItem );
if ( divPrev != null ) {
if ( this.itemHasChildren( divPrev ) ) {
if ( this.childFromItem( divPrev ).style.display != "none" ) {
var par = this.lastChildFromItem( divPrev );
while (par) {
if ( this.itemHasChildren( par ) ) {
if ( this.childFromItem( par ).style.display != "none" ) {
par = this.lastChildFromItem( par );
} else {
this.itemShow( getAttr(par, 'rid') );
par = null;
}
} else {
this.itemShow( getAttr(par, 'rid') );
par = null;
}
}
} else {
this.itemShow( getAttr( divPrev, 'rid') );
}
} else {
this.itemShow( getAttr( divPrev, 'rid') );
}
} else if ( this.parentFromItem( divItem ) != null ) {
this.itemShow( getAttr( this.parentFromItem( divItem ), 'rid') );
}
kill_event = true;
break;
case 40:
var found = false;
if ( this.itemHasChildren( divItem ) ) {
if ( this.childFromItem( divItem ).style.display != "none" ) {
this.itemShow( getAttr( this.firstChildFromItem( divItem ), 'rid') );
found = true;
}
}
if ( !found ) {
var divNext = getNextSibling( divItem );
if ( divNext != null ) {
this.itemShow( getAttr( divNext, 'rid') );
} else {
var par = this.parentFromItem( divItem );
while ( par ) {
if ( getNextSibling( par ) != null ) {
this.itemShow( getAttr( getNextSibling( par ), 'rid') );
par = null;
} else {
par = this.parentFromItem( par );
}
}
}
}
kill_event = true;
break;
default:
kill_event = false;
break;
}
if ( kill_event == true ) {
return evtKill( evt );
}
}
function jlOtl_itemToggle( report_folder_id ) {
var divItem = g( this.id + '_' + report_folder_id );
if ( divItem ) {
if ( this.itemHasChildren( divItem ) ) {
var divChild = this.childFromItem( divItem );
var img = this.imgFromItem( divItem );
if ( divChild ) {
if ( divChild.style.display == "none" ) {
divChild.style.display = "block";
img.src = "fx/icoMinus.gif";
} else {
divChild.style.display = "none";
img.src = "fx/icoPlus.gif";
}
}
}
}
}
function jlOtl_imgFromItem( divItem ) {
return divItem.childNodes[0].rows[0].cells[0].childNodes[1];
}
function jlOtl_firstItem() {
return getChild(this, 0);
}
function jlOtl_lastVisibleItem() {
var divItem = getLastChild( this );
if ( divItem == null) {
return null;
} else if ( divItem.tagName != 'DIV' ) {
return null;
}
while ( divItem ) {
if ( this.itemHasChildren( divItem ) ) {
if ( this.childFromItem( divItem ).style.display != "none" ) {
divItem = this.lastChildFromItem( divItem );
} else {
return divItem;
}
} else {
return divItem;
}
}
return null;
}
function jlOtl_itemHasChildren( divItem ) {
if ( divItem ) {
if ( getAttr(divItem, 'has_children') == true || getAttr(divItem, 'has_children') == 'True' ) {
return true;
} else {
return false;
}
} else {
return false;
}
}
function jlOtl_childFromItem( divItem ) {
return getChild( divItem, 1);
}
function jlOtl_firstChildFromItem( divItem ) {
return getChild(getChild(divItem, 1), 0);
}
function jlOtl_lastChildFromItem( divItem ) {
return getLastChild( getChild( divItem, 1) );
}
function jlOtl_tdFromItem( divItem ) {
return divItem.childNodes[0].rows[0].cells[1];
}
function jlOtl_parentFromItem( divItem ) {
var par = divItem.parentNode;
while ( par ) {
if ( par == this ) {
return null;
}
if ( par.tagName == 'DIV' ) {
if ( par.id.substring(0, this.id.length+1) == this.id + '_' ) {
return par;
}
}
par = par.parentNode;
}
return null;
}
function jlOtl_itemShow( report_folder_id ) {
var divItem = g(this.id + '_' + report_folder_id);
if ( divItem == null ) {
return false;
}
if ( this.lastItem ) {
this.tdFromItem(this.lastItem).style.background = "";
this.tdFromItem(this.lastItem).style.color = "";
}
this.tdFromItem(divItem).style.background = "Highlight";
this.tdFromItem(divItem).style.color = "HighlightText";
window.status = divItem.title;
this.lastItem = divItem;
var par;
par = divItem.parentNode;
while ( par ) {
if ( par == this ) {
break;
}
if ( par.tagName == 'DIV' ) {
if ( par.id.substring(0, this.id.length+1) == this.id + '_' ) {
if ( this.childFromItem( par ).style.display != "block" ) {
this.itemToggle( par.id.substr(this.id.length+1) );
}
}
}
par = par.parentNode;
}
try {
eval( this.id + "_ItemClicked(" + getAttr(divItem, 'rid') + ");");
} catch (e) {
}
try {
this.tdFromItem(divItem).focus();
} catch (e) {
}
}
function jlOtl_OnSelectStart( evt ) {
evt = evt || window.event;
var tmp = evtSrc( evt );
if ( tmp != null ) {
if ( tmp.tagName == "INPUT" ) {
return true;
}
}
return evtKill( evt );
}
function jlPanelInit( new_div_id, panel_selector_element_prefix, new_panel_info, unselected_panel_selector_element_class, selected_panel_selector_element_class, do_transitions, new_transition_time ) {
var ele = g( new_div_id );
if ( ele != null ) {
var img = ele.childNodes[0];
if ( img.tagName != 'IMG' ) {
}
ele.panel_selector_element_prefix = panel_selector_element_prefix;
ele.unselected_panel_selector_element_class = unselected_panel_selector_element_class;
ele.selected_panel_selector_element_class = selected_panel_selector_element_class;
ele.transition_time = new_transition_time;
ele.panel_info = new_panel_info;
ele.panel_count = new_panel_info.length;
ele.current_panel_id = 1;
ele.do_auto_panel_transitions = do_transitions;
ele.auto_transition_time = 5000;
ele.doAutoTransition = jlPanel_doAutoTransition;
ele.panelTransition = jlPanel_Transition;
ele.setPanel = jlPanel_setPanel;
ele.imgOpacitySet = jlPanel_imgOpacitySet;
ele.goCurrent = jlPanel_goCurrent;
ele.go = jlPanel_go;
if ( ele.do_auto_panel_transitions ) {
setTimeout(' try { ' + new_div_id + '.doAutoTransition() } catch (e) {}', ele.auto_transition_time);
}
}
}
function jlPanel_doAutoTransition() {
if ( this.do_auto_panel_transitions == true ) {
var new_panel_id = this.current_panel_id + 1;
if ( new_panel_id > this.panel_count ) {
new_panel_id = 1;
}
this.setPanel( new_panel_id, this.do_auto_panel_transitions);
setTimeout(' try { ' + this.id + '.doAutoTransition() } catch (e) {}', this.auto_transition_time);
}
}
function jlPanel_Transition(image_file_name, transition_time_in_ms) {
var img = this.childNodes[0];
var step_time_in_ms = Math.round(transition_time_in_ms / 100);
this.style.backgroundImage = 'url(' + img.src + ')';
setOpacity(img, 0);
img.src = image_file_name;
for ( tt = 1; tt <= 100; tt++) {
setTimeout('try { ' + this.id + '.imgOpacitySet(' + tt + ') } catch (e) {}', tt * step_time_in_ms );
}
}
function jlPanel_setPanel( new_panel_id, do_auto_trans ) {
this.do_auto_panel_transitions = do_auto_trans;
if ( this.current_panel_id != new_panel_id ) {
var pi = this.panel_info[ new_panel_id-1 ];
this.panelTransition(pi.file_name, this.transition_time);
g( this.panel_selector_element_prefix + this.current_panel_id).className = this.unselected_panel_selector_element_class;
g( this.panel_selector_element_prefix + new_panel_id).className = this.selected_panel_selector_element_class;
this.current_panel_id = new_panel_id;
}
}
function jlPanel_goCurrent() {
this.go( this.current_panel_id );
}
function jlPanel_go( panel_id ) {
this.do_auto_panel_transitions = false;
var pi = this.panel_info[ panel_id-1 ];
if ( pi != null && pi.url != '' ) {
document.location = pi.url;
}
}
function jlPanel_imgOpacitySet( opacity ) {
var img = this.childNodes[0];
setOpacity( img, opacity );
}
function setOpacity( ele, opacity) {
var styleImg = ele.style;
styleImg.opacity = (opacity / 100);
styleImg.MozOpacity = (opacity / 100);
styleImg.KhtmlOpacity = (opacity / 100);
styleImg.filter = 'alpha(opacity=' + opacity + ')';
}
function jlSelectInit() {
eles = document.body.getElementsByTagName('SELECT');
for (tt=0; tt < eles.length; tt++ ) {
var ele = eles[tt];
if ( getAttr(ele, 'r') == '1' ) {
continue;
}
ele.in_search_mode = false;
ele.search_buffer = "";
ele.firstIndex = null;
ele.lastIndex = null;
var ss = getAttr(ele, 'showStatus');
if ( ss != null ) {
setAttr( ele, 'showStatus', eval(ss.value) );
} else {
ele.showStatus = true;
}
ele.find = jlSelect_find;
ele.CurIndexSet = jlSelect_CurIndexSet;
if ( ele.addEventListener ) {
ele.addEventListener('keypress', jlSelect_OnKeyPress, false);
ele.addEventListener('keydown', jlSelect_OnKeyDown, false);
ele.addEventListener('focus', jlSelect_OnFocus, false);
ele.addEventListener('change', jlSelect_OnChange, false);
ele.addEventListener('click', jlSelect_OnClick, false);
ele.addEventListener('blur', jlSelect_OnBlur, false);
} else {
ele.onkeypress = jlSelect_OnKeyPress;
ele.onkeydown = jlSelect_OnKeyDown;
ele.onfocus = jlSelect_OnFocus;
ele.onchange = jlSelect_OnChange;
ele.onclick = jlSelect_OnClick;
ele.onblur = jlSelect_OnBlur;
}
ele.firstIndex = ele.selectedIndex;
ele.lastIndex = ele.firstIndex;
}
}
function jlSelect_OnChange( evt ) {
evt = evt || window.event;
frmChangedSet( true );
return true;
}
function jlSelect_OnClick( evt ) {
evt = evt || window.event;
this.in_search_mode = false;
try {
if ( !IE6 ) {
this.focus();
}
} catch (e) {
}
return true;
}
function jlSelect_OnFocus( evt ) {
evt = evt || window.event;
this.firstIndex = this.selectedIndex;
this.lastIndex = this.selectedIndex;
this.search_buffer = "";
this.in_search_mode = false;
return true;
}
function jlSelect_OnKeyDown( evt ) {
evt = evt || window.event;
if ( evt.ctrlKey == true || evt.altKey == true ) {
return true;
}
switch ( evt.keyCode ) {
case 8:
if ( this.search_buffer.length > 0 ) {
this.search_buffer = this.search_buffer.substring(0, this.search_buffer.length - 1);
this.find( this.search_buffer, true);
}
return evtKill( evt );
case 13:
try { evt.keyCode = 9; } catch (e) {}
break;
case 27:
this.search_buffer = "";
this.find( this.search_buffer, true);
return evtKill( evt );
case 38:
case 40:
case 37:
case 39:
case 35:
case 36:
case 33:
case 34:
this.search_buffer = "";
this.in_search_mode = false;
return true;
}
return true;
}
function jlSelect_OnKeyPress( evt ) {
evt = evt || window.event;
if ( evt.ctrlKey == true || evt.altKey == true ) {
return true;
}
var keyCode = (evt.keyCode)? evt.keyCode: ((evt.charCode)? evt.charCode: evt.which);
switch ( keyCode ) {
case 9:
case 16:
case 17:
case 13:
case 27:
case 38:
case 40:
case 37:
case 39:
case 35:
case 36:
case 33:
case 34:
return true;
case 8:
return evtKill( evt );
}
this.in_search_mode = true;
this.search_buffer = this.search_buffer + String.fromCharCode( keyCode );
if ( this.search_buffer.length == 1) {
this.find( this.search_buffer, true);
} else {
this.find( this.search_buffer, false);
}
evtStopDefault( evt );
evtStopDefault( evt );
return false;
}
function jlSelect_OnBlur( evt ) {
evt = evt || window.event;
if (this.in_search_mode && this.lastIndex != this.selectedIndex) {
this.selectedIndex = this.lastIndex;
this.options[this.lastIndex].selected = true;
}
if ( this.firstIndex != this.selectedIndex ) {
frmChangedSet( true );
var obc = getAttr(this, 'OnBlurChanged');
if ( obc != null && obc != '' ) {
eval(obc);
}
}
return true;
}
function jlSelect_find( strToFind, start_at_beginning ) {
var le = strToFind.length;
var sPos;
if ( start_at_beginning == true ) {
sPos = 0;
} else {
sPos = this.lastIndex;
}
if ( this.showStatus == true )
window.status = "Search: " + strToFind;
if ( strToFind.length == 0 ) {
return this.CurIndexSet(0);
} else {
strToFind = strToFind.toLowerCase();
var option_count = this.options.length;
if ( option_count >= 0 ) {
for (var i=sPos; i < option_count; i++) {
var option_to_check = this.options[i];
var sOption = (option_to_check.textContent) ? option_to_check.textContent : option_to_check.innerText;
if ( sOption.length >= le ) {
if (strToFind == sOption.substr(0, le).toLowerCase()) {
return this.CurIndexSet(i);
}
}
}
}
return this.CurIndexSet(0);
}
}
function jlSelect_CurIndexSet(index)
{
if (index >= 0 && index < this.options.length) {
this.lastIndex = index;
this.selectedIndex = index;
this.lastIndex = index
this.options[index].selected = true;
}
return true;
}
function jlShortcutAdd( key, ele_id, title ) {
jlShortcut_count++;
jlShortcuts[ jlShortcut_count ] = {
key: key,
ele_id: ele_id,
title: title,
funct: null,
eval_funct: null
};
}
function jlShortcutJavascriptAdd( key, funct, title ) {
jlShortcut_count++;
jlShortcuts[ jlShortcut_count ] = {
key: key,
ele_id: null,
title: title,
funct: funct,
eval_funct: null
};
}
function jlShortcutEvalAdd( key, eval_funct, title ) {
jlShortcut_count++;
jlShortcuts[ jlShortcut_count ] = {
key: key,
ele_id: null,
title: title,
funct: null,
eval_funct: eval_funct
};
}
function jlShortcutMnuShow( evt ) {
if ( divJlShortcutList === null ) {
divJlShortcutList = document.createElement('DIV');
divJlShortcutList.id = 'jlMnuShortcut';
divJlShortcutList.className = 'mnu';
divJlShortcutList.style.position = 'absolute';
divJlShortcutList.style.visibility = 'hidden';
document.body.appendChild(divJlShortcutList);
var ll = '';
for ( tt=1; tt <= jlShortcut_count; tt++ ) {
var name = jlShortcuts[tt].title;
if ( name.indexOf(jlShortcuts[tt].key) == -1 ) {
name += ' (' + jlShortcuts[tt].key + ')';
}
ll += '<tr class="mnuRow" i=' + tt + '><td><img src=fx/p.gif width=16 height=16></td><td>' + name + '</td></tr>';
}
divJlShortcutList.innerHTML = '<table COLS=2 border=0 cellpadding=0 cellspacing=0 valign=top>' + ll + '</table>';
jlMnuInit( 'jlMnuShortcut' );
}
mnuShow( divJlShortcutList, evt );
}
function jlMnuShortcut_Clicked( mnu_id, evt ) {
jlShortcutGo( mnu_id, evt );
}
function jlShortcutGo( shortcut_ord, evt ) {
var sc = jlShortcuts[ shortcut_ord ];
if ( sc.funct !== null ) {
sc.funct( evt );
} else if ( sc.eval_funct !== null ) {
eval( 'try { ' + sc.eval_funct + ' } catch (e) {}' );
} else {
var docItem = g(sc.ele_id);
if ( docItem.onclick ) {
return docItem.onclick();
} else if ( docItem.tagName == 'IMG' ) {
var par = getParent( docItem, "TABLE");
if ( par === null ) {
docItem.focus();
return true;
}
return eval( par.id + "_Clicked('" + docItem.id + "', evt);");
} else if ( docItem.href ) {
if ( docItem.target ) {
window.open(docItem.href, "", "");
} else {
parent.location = docItem.href;
}
} else if ( docItem.tagName == 'INPUT' ) {
if ( docItem.type == 'submit' ) {
var par = getParent( docItem, "FORM");
if ( par === null ) {
docItem.focus();
} else {
doSave( par );
}
} else {
docItem.focus();
}
} else {
docItem.focus();
}
}
}
function jlTabsInit( tabs_id, skip_resize ) {
var ele = g( tabs_id );
if ( ele != null ) {
ele.calcMetrics = jlTabs_calcMetrics;
ele.IdtoOrd = jlTabs_IdtoOrd;
ele.Item = jlTabs_Item;
ele.ItemById = jlTabs_ItemById;
ele.Count = jlTabs_Count;
ele.CurTab = jlTabs_CurTab;
ele.CurTabSet = jlTabs_CurTabSet;
ele.CurTabSetById = jlTabs_CurTabSetById;
ele.Shortcutted = jlTabs_Shortcutted;
ele.resize = jlTabs_resize;
ele.move = jlTabs_move;
ele.getBtnById = jlTabs_getBtnById;
ele.getFrameById = jlTabs_getFrameById;
ele.FrameRefreshById = jlTabs_FrameRefreshById;
ele.getBtns = jlTabs_getBtns;
ele.getFrames = jlTabs_getFrames;
ele.wwFrameDIV = 400;
ele.wwFrameIFRAME = 398;
ele.hhFrame = 350;
ele.calcMetrics();
var btns = ele.getBtns();
var ww = 0;
for (var tt = 0; tt < btns.length; tt++) {
var btn = btns[tt];
if ( btn ) {
var id = getAttr(btn, 'i');
if ( id == 'tabEnd' ) {
try {
btn.style.width = (this.offsetWidth - ww) + 'px';
} catch (e) {
}
} else if ( btn.tagNAME = 'TD' ) {
if ( btn.addEventListener ) {
btn.addEventListener('mouseover', jlTabBtn_OnMouseOver, false);
btn.addEventListener('mouseout', jlTabBtn_OnMouseOut, false);
btn.addEventListener('click', jlTabBtn_OnClick, false);
btn.addEventListener('selectstart', jlTabBtn_OnSelectStart, false);
} else {
btn.onmouseover = jlTabBtn_OnMouseOver;
btn.onmouseout = jlTabBtn_OnMouseOut;
btn.onclick = jlTabBtn_OnClick;
btn.onselectstart = jlTabBtn_OnSelectStart;
}
btn.setIsEnabled = jlTabBtn_setIsEnabled;
var sc = getAttr( btn, 'shortcut' );
if ( sc != null ) {
jlShortcutEvalAdd( sc, "g('" + ele.id + "').Shortcutted('" + id + "');", btn.title );
}
}
ww = ww + btn.offsetWidth;
}
}
var dt = getAttr(ele, 'default_tab_id');
if ( dt != null ) {
ele.CurTabSetById( dt );
}
if ( skip_resize == null || skip_resize == false ) {
ele.resize();
}
}
}
function jlTabs_calcMetrics() {
this.wwFrameDIV = this.offsetWidth;
this.wwFrameIFRAME = this.wwFrameDIV - 2;
this.hhFrame = this.offsetHeight - this.childNodes[0].clientHeight;
}
function jlTabs_CurTabSetById( tab_id ) {
var ord = this.IdtoOrd( tab_id );
if ( ord < 0 ) {
ord = 0;
}
this.CurTabSet( ord );
}
function jlTabs_getBtns() {
return this.childNodes[0].rows[0].cells;
}
function jlTabs_getFrames() {
return this.childNodes[1];
}
function jlTabs_CurTabSet( tab_ord ) {
var btns = this.getBtns();
var frames = this.getFrames();
var btn = btns[tab_ord];
if ( btn != null ) {
var tab_id = getAttr(btn, 'i');
if ( this.CurTabId != tab_id ) {
var ctlTabId = g('tab_id');
if ( ctlTabId != null ) {
ctlTabId.value = tab_id
}
this.CurTabId = tab_id;
}
}
for (var tt = 0; tt < btns.length; tt++) {
var btn = btns[tt];
var frame = this.getFrameById( getAttr(btn, 'i'));
if ( tt == tab_ord ) {
btn.style.backgroundColor = "ButtonFace";
btn.style.borderBottom = "1px solid ButtonFace";
if ( frame != null ) {
if ( frame.tagName == 'IFRAME' ) {
var _src = getAttr(frame, 'futuresrc');
if ( _src != "" ) {
frame.src = _src;
setAttr(frame, 'futuresrc', "");
}
try {
frame.style.width = this.wwFrameIFRAME + 'px';
frame.style.height = this.hhFrame + 'px';
} catch (e) {
}
} else {
try {
frame.style.width = this.wwFrameDIV + 'px';
frame.style.height = this.hhFrame + 'px';
} catch (e) {
}
}
frame.style.zIndex = 1000;
frame.style.visibility = "visible";
}
try {
eval( this.id + "_CurTabSet('" + getAttr(btn, 'i') + "');" );
} catch (e) {
}
} else if ( getClass(btn) == 'tabbtn' ) {
btn.style.backgroundColor = "#F0F0F0";
btn.style.borderBottom = "1px solid ButtonShadow";
if ( frame != null ) {
if ( frame.style.visibility != "hidden" ) {
frame.style.visibility = "hidden";
frame.style.zIndex = -1;
}
}
}
}
}
function jlTabs_ItemById( tab_id ) {
return this.Item( this.IdtoOrd( tab_id ) );
}
function jlTabs_IdtoOrd( tab_id ) {
var btns = this.getBtns();
for (var tt=0; tt < btns.length; tt++ ) {
if ( getAttr(btns[tt], 'i') == tab_id ) {
return tt;
break;
}
}
return -1;
}
function jlTabs_Item( tab_ord ) {
var btns = this.getBtns();
return btns[tab_ord];
}
function jlTabs_Count() {
return this.getBtns().length;
}
function jlTabs_getFrameById( tab_id ) {
var frames = this.getFrames();
for (var tt=0; tt < frames.childNodes.length; tt++) {
if ( getAttr(frames.childNodes[tt], 'i') == tab_id ) {
return frames.childNodes[tt];
break;
}
}
}
function jlTabs_getBtnById( tab_id ) {
var btns = this.getBtns();
for (var tt=0; tt < btns.length; tt++) {
if ( getAttr(btns[tt], 'i') == tab_id ) {
return btns[tt];
break;
}
}
}
function jlTabs_resize() {
var btns = this.getBtns();
var frames = this.getFrames();
var ww = 0;
var count = 0;
for (var tt = 0; tt < btns.length; tt++) {
var btn = btns[tt];
if ( getAttr(btn, 'i') == 'tabEnd' ) {
btn.style.width = '0px';
}
}
this.calcMetrics();
frames.style.width = this.wwFrameDIV + 'px';
if ( this.hhFrame > 0 ) {
frames.style.height = this.hhFrame + 'px';
}
count = frames.childNodes.length;
if ( count < btns.length ) {
count = btns.length;
}
for (var tt = 0; tt < count; tt++) {
var btn = btns[tt];
var frame = frames.childNodes[tt];
if ( frame ) {
if ( frame.tagName == 'IFRAME' ) {
frame.style.width = this.wwFrameIFRAME + 'px';
frame.style.height = this.hhFrame + 'px';
} else if ( frame.tagName == 'DIV' ) {
frame.style.width = this.wwFrameDIV + 'px';
frame.style.height = this.hhFrame + 'px';
}
}
if ( btn ) {
if ( getAttr(btn, 'i') == 'tabEnd' ) {
try {
btn.style.width = (this.offsetWidth - ww) + 'px';
} catch (e) {
}
}
ww = ww + btn.offsetWidth;
}
}
}
function jlTabs_move( left, top, right, bottom, position_method ) {
var btns = this.getBtns();
for (var tt = 0; tt < btns.length; tt++) {
var btn = btns[tt];
if ( getAttr(btn, 'i') == 'tabEnd' ) {
btn.style.width = '0px';
}
}
if ( position_method ) {
this.style.position = position_method;
}
this.style.left = left + 'px';
this.style.top = top + 'px';
this.style.width = (right - left) + 'px';
this.style.height = (bottom - top) + 'px';
this.resize();
}
function jlTabs_CurTab() {
return this.CurTabId;
}
function jlTabs_FrameRefreshById( frame_id ) {
var iframe = this.getFrameById( frame_id );
if ( iframe ) {
if ( iframe.tagName == 'IFRAME' ) {
if ( getAttr(iframe, 'futuresrc') == null || getAttr(iframe, 'futuresrc') == '' ) {
setAttr(iframe, 'futuresrc', iframe.src);
iframe.src = "javascript:'';";
}
}
}
}
function jlTabs_Shortcutted( btn_id ) {
var btn = this.getBtnById( btn_id );
if ( btn != null ) {
if ( getAttr(btn, 'is_disabled') != "1" ) {
var ok_to_set = true;
try {
ok_to_set = eval( this.id + "_TabOkToSet('" + btn_id + "');");
} catch (e) {
ok_to_set = true;
}
if ( ok_to_set == null || ok_to_set == true ) {
try {
this.CurTabSetById( btn_id );
} catch (e) {
}
tabPreferredSave( btn_id );
try {
eval( this.id + "_TabShortcutted('" + btn_id + "');");
} catch (e) {
}
}
}
}
}
function jlTabBtn_OnMouseOver() {
window.status = this.title;
}
function jlTabBtn_OnMouseOut() {
window.status = "";
}
function jlTabBtn_setIsEnabled( is_enabled ) {
if ( is_enabled ) {
this.is_disabled = "0";
} else {
this.is_disabled = "1";
}
}
function jlTabBtn_OnClick() {
if ( getAttr(this, 'is_disabled') != "1" ) {
var id = getAttr( this, 'i');
var parent = getParent( this, "DIV");
var ok_to_set = true;
if ( parent == null ) {
return;
}
try {
ok_to_set = eval( parent.id + "_TabOkToSet('" + id + "');");
} catch (e) {
ok_to_set = true;
}
if ( ok_to_set == null || ok_to_set == true ) {
try {
parent.CurTabSetById(id);
} catch (e) {
}
tabPreferredSave( id );
try {
eval( parent.id + "_TabClicked('" + id + "');");
} catch (e) {
}
}
}
}
function jlTabBtn_OnSelectStart( evt ) {
evt = evt || window.event;
return evtKill( evt );
}
function tabAutoFocus() {
if ( !page_stop_autofocus ) {
var tbl = g('tblMain');
if ( tbl ) {
try {
tbl.setFocus();
} catch (e) {
}
}
}
}
function tabOnPageFocus() {
var tbl = g('tblMain');
if ( tbl ) {
try {
tbl.setFocus();
} catch (e) {
}
}
}
function jlTblInit( tbl_id ) {
var ele = g(tbl_id);
var id = ele.id;
ele.max_cols_to_sort = 3;
ele.had_first_resize = false;
ele.default_is_desc = 1;
ele.autoSize = getAttr(ele, 'autoSize');
ele.inSearchMode = false;
ele.searchBuffer = "";
ele.showStatus = true;
ele.isKeyboardDisabled = getAttr(ele, 'isKeyboardDisabled');
ele.lastRowOrd = -1;
ele.firstDataRow = 0;
ele.getCell = jlTbl_getCell;
ele.getColCode = jlTbl_getColCode;
ele.getColCount = jlTbl_getColCount;
ele.setKeyboardDisable = jlTbl_setKeyboardDisable;
ele.setFocus = jlTbl_setFocus;
ele.getWidthWanted = jlTbl_getWidthWanted;
ele.getColHeaders = jlTbl_getColHeaders;
ele.find = jlTbl_find;
ele.move = jlTbl_move;
ele.print = jlTbl_print;
ele.resize = jlTbl_resize;
ele.getRow = jlTbl_getRow;
ele.getRowId = jlTbl_getRowId;
ele.getRows = jlTbl_getRows;
ele.setFocusRow = jlTbl_setFocusRow;
ele.clearRowsSelected = jlTbl_clearRowsSelected;
ele.getRowCount = jlTbl_getRowCount;
ele.getFocusRowOrd = jlTbl_getFocusRowOrd;
ele.rowIsSelected = jlTbl_rowIsSelected;
ele.getSelectedRowCount = jlTbl_getSelectedRowCount;
ele.getFirstSelectedRowOrd = jlTbl_getFirstSelectedRowOrd;
ele.sortTable = jlTbl_sortTable;
ele.sortdata = jlTbl_sortdata;
ele.setRowWidthByScale = jlTbl_setRowWidthByScale;
ele.addSortColumn = jlTbl_addSortColumn;
ele.filterByColumn = jlTbl_filterByColumn;
ele.Sort = jlTbl_Sort;
ele.toString = jlTbl_toString;
ele.loadSortColumns = jlTbl_loadSortColumns;
ele.saveSortColumns = jlTbl_saveSortColumns;
ele.clearSearchBuffer = jlTbl_clearSearchBuffer;
ele.showSearchBuffer = jlTbl_showSearchBuffer;
ele.autoSize = getAttr(ele, 'autoSize');
ele.variable_row = boolClean( getAttr(ele, 'variable_row') );
ele.extra_row_margin = intClean( getAttr(ele, 'extra_row_margin') );
ele.max_row_height = intClean( getAttr(ele, 'max_row_height') );
colgroup = jlTbl_getColHeaderCOLGROUP( ele );
for (var i=0; i < colgroup.childNodes.length; i++){
var col = colgroup.childNodes[i];
var ww = col.width;
col.widthWanted = intClean(ww);
}
var cells = jlTbl_getColHeaderRowCells( ele );
for (var i=0; i < cells.length; i++){
var th = cells[i];
th.in_resize = false;
th.was_in_resize = false;
th.pos = null;
th.size = null;
th.st = getAttr(th, 'st');
th.fn = getAttr(th, 'fn');
if ( th.addEventListener ) {
th.addEventListener('click', jlTblTH_OnClick, false);
th.addEventListener('dblclick', jlTblTH_OnClick, false);
th.addEventListener('mousedown', jlTblTH_OnMouseDown, false);
th.addEventListener('mouseup', jlTblTH_OnMouseUp, false);
th.addEventListener('mousemove', jlTblTH_OnMouseMove, false);
th.addEventListener('contextmenu', jlTblTH_OnContextMenu, false);
} else {
th.onclick = jlTblTH_OnClick;
th.ondblclick = jlTblTH_OnClick;
th.onmousedown = jlTblTH_OnMouseDown;
th.onmouseup = jlTblTH_OnMouseUp;
th.onmousemove = jlTblTH_OnMouseMove;
th.oncontextmenu = jlTblTH_OnContextMenu;
}
}
if ( ele.width ) {
ele.style.width = ele.width + 'px';
}
if ( ele.height ) {
ele.style.height = ele.height + 'px';
}
var divData = jlTbl_getDIVData( ele );
if ( divData.addEventListener ) {
divData.addEventListener('scroll', jlTbldivData_OnScroll, false);
} else {
divData.onscroll = jlTbldivData_OnScroll;
}
var tBody = jlTbl_getDataTBODY( ele );
if ( tBody.addEventListener ) {
tBody.addEventListener('click', jlTBODY_OnClick, false);
tBody.addEventListener('dblclick', jlTBODY_OnDblClick, false);
tBody.addEventListener('contextmenu', jlTBODY_OnContextMenu, false);
tBody.addEventListener('keydown', jlTBODY_OnKeyDown, false);
tBody.addEventListener('keypress', jlTBODY_OnKeyPress, false);
tBody.addEventListener('focus', jlTBODY_OnFocus, false);
tBody.addEventListener('blur', jlTBODY_OnBlur, false);
tBody.addEventListener('selectstart', jlTBODY_OnSelectStart, false);
} else {
tBody.onclick = jlTBODY_OnClick;
tBody.ondblclick = jlTBODY_OnDblClick;
tBody.oncontextmenu = jlTBODY_OnContextMenu;
tBody.onkeydown = jlTBODY_OnKeyDown;
tBody.onkeypress = jlTBODY_OnKeyPress;
tBody.onfocus = jlTBODY_OnFocus;
tBody.onblur = jlTBODY_OnBlur;
tBody.onselectstart = jlTBODY_OnSelectStart;
}
tBody.rowIsSelectedSet = jlTBODY_rowIsSelectedSet;
tBody.rowIsSelectedRaw = jlTBODY_rowIsSelectedRaw;
tBody.rowIsOdd = jlTBODY_rowIsOdd;
tBody.rowRangeSelect = jlTBODY_rowRangeSelect;
tBody.rowRangeSelectClear = jlTBODY_rowRangeSelectClear;
}
function jlTbl_Sort( ColsToSort, bDoSort ) {
alert('???TODO: write this function!');
}
function jlTbl_compare(n1, n2) {
value1 = n1.sd;
value2 = n2.sd;
if ( value1 > value2 ) {
return +1;
} else if ( value1 < value2 ) {
return -1;
} else {
return 0;
}
}
function jlTbl_loadSortColumns() {
var tHeadParent;
var ColsToSort = new Object;
tHeadParent = jlTbl_getTHEAD( this );
if (tHeadParent == null)
return;
ColsToSort.ord = new Array(this.max_cols_to_sort);
ColsToSort.IsDesc = new Array(this.max_cols_to_sort);
ColsToSort.DataType = new Array(this.max_cols_to_sort);
ColsToSort.field_name = new Array(this.max_cols_to_sort);
for (var tt=0; tt < this.max_cols_to_sort; tt++) {
ColsToSort.ord[tt] = -1;
ColsToSort.IsDesc[tt] = this.default_is_desc;
ColsToSort.DataType[tt] = 4;
ColsToSort.field_name[tt] = "";
}
for (var tt=0; tt < tHeadParent.rows[0].cells.length; tt++) {
var i = tHeadParent.rows[0].cells[tt].sort_order;
if ( i != null ) {
if ( i > -1 && i < this.max_cols_to_sort ) {
ColsToSort.ord[i] = tt;
ColsToSort.IsDesc[i] = parseInt(tHeadParent.rows[0].cells[tt].is_desc);
ColsToSort.DataType[i] = parseInt(tHeadParent.rows[0].cells[tt].st);
ColsToSort.field_name[i] = tHeadParent.rows[0].cells[tt].fn;
}
}
}
return ColsToSort;
}
function jlTbl_saveSortColumns( ColsToSort ) {
var tHeadParent;
var thItem;
var so;
var arrow;
tHeadParent = jlTbl_getTHEAD( this );
if (tHeadParent == null)
return;
if (tHeadParent.arrow == null) {
tHeadParent.arrow = new Array(this.max_cols_to_sort);
}
for (var so=0; so < this.max_cols_to_sort; so++ ) {
var ord = ColsToSort.ord[so];
if ( ord > -1 ) {
thItem = tHeadParent.rows[0].cells[ord];
if (thItem != null) {
if (tHeadParent.arrow[so] != null) {
tHeadParent.arrow[so].parentNode.removeChild(tHeadParent.arrow[so]);
}
arrow = document.createElement("IMG");
setClass(arrow, "arrow");
arrow.style.display = 'inline';
if (ColsToSort.IsDesc[so] == 0) {
arrow.src = "fx/icoSort" + (so+1) + "a.gif"
} else {
arrow.src = "fx/icoSort" + (so+1) + "d.gif"
}
tHeadParent.arrow[so] = arrow;
thItem.appendChild(arrow);
}
}
}
for (var tt=0; tt < tHeadParent.rows[0].cells.length; tt++) {
tHeadParent.rows[0].cells[tt].sort_order = -1;
tHeadParent.rows[0].cells[tt].is_desc = this.default_is_desc;
}
for (var tt=this.max_cols_to_sort-1; tt >= 0 ; tt--) {
if ( ColsToSort.ord[tt] > -1 ) {
tHeadParent.rows[0].cells[ColsToSort.ord[tt]].sort_order = tt;
tHeadParent.rows[0].cells[ColsToSort.ord[tt]].is_desc = ColsToSort.IsDesc[tt];
}
}
}
function jlTbl_filterByColumn( nCol ) {
var first_row_selected = this.getFirstSelectedRowOrd();
var imgFilter;
if ( first_row_selected >= 0 ) {
var rr = this.getRow(first_row_selected);
var cell = rr.cells[nCol];
var filter_value = (cell.textContent) ? cell.textContent : cell.innerText;
var tHeadParent = jlTbl_getTHEAD( this );
var tblData = jlTbl_getDataTBODY( this );
var thItem = tHeadParent.rows[0].cells[nCol];
imgFilter = document.createElement("IMG");
imgFilter.style.display = 'inline';
setClass(imgFilter, "filter");
imgFilter.src = "fx/icoFilter1.gif"
thItem.appendChild(imgFilter);
var rows = tblData.rows;
var count = 0;
if ( rows.length > 0 ) {
for ( var tt = rows.length-1; tt >= 0 ; tt-- ) {
var cell = rows[tt].cells[nCol];
var value = (cell.textContent) ? cell.textContent : cell.innerText;
if ( value != filter_value ) {
tblData.deleteRow(tt);
}
}
if ( rows.length > 0 ) {
rows[0].cells[0].innerHTML = rows[0].cells[0].innerHTML;
}
}
}
}
function jlTbl_addSortColumn(nCol) {
var tHeadParent;
var thItem;
var newSortFieldList;
tHeadParent = jlTbl_getTHEAD( this );
if (tHeadParent == null)
return;
thItem = tHeadParent.rows[0].cells[nCol];
if (thItem == null)
return;
this.first_sort_column_ord = nCol;
var ColsToSort = this.loadSortColumns();
if ( ColsToSort.ord[0] == -1 ) {
ColsToSort.ord[0] = nCol;
ColsToSort.IsDesc[0] = this.default_is_desc;
ColsToSort.DataType[0] = thItem.st;
ColsToSort.field_name[0] = thItem.fn;
} else if ( ColsToSort.ord[0] == nCol ) {
if ( ColsToSort.IsDesc[0] != 0) {
ColsToSort.IsDesc[0] = 0;
} else {
ColsToSort.IsDesc[0] = 1;
}
} else {
for (var tt=0; tt < this.max_cols_to_sort; tt++) {
if ( ColsToSort.ord[tt] == nCol ) {
for ( var xx = tt; xx < this.max_cols_to_sort-1; xx++) {
ColsToSort.ord[xx] = ColsToSort.ord[xx+1];
ColsToSort.IsDesc[xx] = ColsToSort.IsDesc[xx+1];
ColsToSort.DataType[xx] = ColsToSort.DataType[xx+1];
ColsToSort.field_name[xx] = ColsToSort.field_name[xx+1];
}
ColsToSort.ord[this.max_cols_to_sort-1] = -1;
}
}
for (var tt=this.max_cols_to_sort-1; tt > 0; tt--) {
ColsToSort.ord[tt] = ColsToSort.ord[tt-1];
ColsToSort.IsDesc[tt] = ColsToSort.IsDesc[tt-1];
ColsToSort.DataType[tt] = ColsToSort.DataType[tt-1];
ColsToSort.field_name[tt] = ColsToSort.field_name[tt-1];
}
ColsToSort.ord[0] = nCol;
ColsToSort.IsDesc[0] = this.default_is_desc;
ColsToSort.DataType[0] = thItem.st;
ColsToSort.field_name[0] = thItem.fn;
}
this.saveSortColumns(ColsToSort);
ColsToSort = this.loadSortColumns();
newSortFieldList = "";
for (var tt=0; tt < this.max_cols_to_sort; tt++) {
if ( ColsToSort.field_name[tt].length != 0 ) {
if ( newSortFieldList.length != 0 ) {
newSortFieldList += ', ';
}
newSortFieldList += ColsToSort.field_name[tt];
if ( ColsToSort.IsDesc[tt] != 0 ) {
newSortFieldList += ' DESC'
}
}
}
try {
eval( this.id + "_ColumnSortChanged('" + newSortFieldList + "');" );
} catch (errorObject) {
}
this.sortTable(ColsToSort);
}
function jlTbl_sortTable(ColsToSort, compareFunction) {
var row_total_footer;
var tBody = jlTbl_getDataTBODY( this )
var tblData = jlTbl_getDataTABLE( this );
var tblRows = tblData.rows;
var divData = jlTbl_getDIVData( this );
var oldScrollLeft = divData.scrollLeft;
var num_rows = tblRows.length;
if ( num_rows == 0 )
return;
var rows = new Array();
var lastRowOrd = this.lastRowOrd;
var last_row = num_rows-1;
var row_to_copy = tblRows[0];
for (var i = 0; i < num_rows; i++) {
if ( i == last_row && row_to_copy.is_total_footer == 1 ) {
row_total_footer = row_to_copy.cloneNode(true);
} else {
rows[i] = row_to_copy.cloneNode(true);
if ( i == lastRowOrd ) {
rows[i].hasFocus = true;
}
if ( ColsToSort ) {
rows[i].sd = this.sortdata( ColsToSort, row_to_copy.cells );
}
}
row_to_copy = row_to_copy.nextSibling;
while ( row_to_copy && row_to_copy.nodeType == 3 ) {
row_to_copy = row_to_copy.nextSibling;
}
}
removeAllChildNodes( tBody );
tBody = jlTbl_getDataTBODY( this );
if ( compareFunction == null ) {
rows.sort(jlTbl_compare);
} else {
rows.sort(compareFunction);
}
var is_odd = true;
var clsName = '';
lastRowOrd = -1;
for (var i=0; i < rows.length; i++) {
var rowToAdd = rows[i];
if ( rowToAdd.sd ) {
try {
delete rowToAdd.sd;
} catch (e) {
rowToAdd.sd = null;
}
}
if ( rowToAdd.hasFocus ) {
lastRowOrd = i;
try {
delete rowToAdd.hasFocus;
} catch (e) {
rowToAdd.hasFocus = null;
}
}
var is_selected = (getClass(rowToAdd).charAt(1) == 's');
if ( is_odd ) {
clsName = 'o';
is_odd = false;
} else {
clsName = 'e';
is_odd = true;
}
setClass(rowToAdd, clsName + ( is_selected ? 's' : '' ));
tBody.appendChild(rowToAdd);
}
if ( row_total_footer != null ) {
tBody.appendChild(row_total_footer);
}
var divHeader = jlTbl_getDIVHeader( this );
var divHeaderSlave = jlTbl_getDIVHeaderSlave( this );
divData.scrollLeft = oldScrollLeft;
divHeaderSlave.style.left = (-oldScrollLeft) + 'px';
this.clearSearchBuffer();
this.resize();
if ( lastRowOrd >= 0 ) {
this.setFocusRow( lastRowOrd );
}
}
function jlTbl_getRowCount() {
var tblData = jlTbl_getDataTABLE( this );
var rows = tblData.rows;
return rows.length;
}
function jlTbl_getColCount() {
var cells = jlTbl_getColHeaderRowCells( this );
return cells.length;
}
function jlTbl_sortdata( ColsToSort, cells ) {
var out = "";
var is_negative = false;
var regexpHTML = /<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/;
var regexpNumber = /,|$/g
for (var tt=0; tt < this.max_cols_to_sort; tt++ ) {
if ( ColsToSort.ord[tt] != -1 ) {
var cell = cells[ColsToSort.ord[tt]];
var value1 = (cell.textContent) ? cell.textContent : cell.innerText;
if ( value1 != undefined ) {
value1 = value1.replace(regexpHTML, "");
}
switch ( Number(ColsToSort.DataType[tt]) ) {
case simple_type_int:
case simple_type_float:
value1 = value1.replace(regexpNumber, "");
value1 = Number(value1);
if ( value1 < 0 ) {
is_negative = true;
} else {
is_negative = false;
}
value1 = Math.round(10000 * value1);
value1 = strLPad(Math.abs(value1), 15)
break;
case simple_type_date:
var dd = new Date(value1);
value1 = strLPad(dd.getFullYear(), 4) + strLPad( dd.getMonth(), 2) + strLPad( dd.getDate(), 2) + strLPad( dd.getHours(), 2) + strLPad( dd.getMinutes(), 2) + strLPad( dd.getSeconds(), 2) + strLPad( dd.getMilliseconds(), 3);
break;
default:
break;
}
if ( ColsToSort.IsDesc[tt] != 0 ) {
if (value1 == null || value1 == "" ) {
value1 = strXOR(" ", 127);
} else {
value1 = strXOR(value1, 127);
}
}
out = out + value1 + ' ';
}
}
return out;
}
function jlTbldivData_OnScroll() {
var divMain = this.parentNode;
var divHeaderSlave = jlTbl_getDIVHeaderSlave( divMain );
divHeaderSlave.style.left = (-this.scrollLeft) + 'px';
}
function jlTbl_setRowWidthByScale( yScale ) {
var cgHead = jlTbl_getColHeaderCOLGROUP( this );
var cgBody = jlTbl_getDataCOLGROUP( this );
for (var i=0; i < cgHead.childNodes.length; i++) {
var cH = cgHead.childNodes[i];
var cB = cgBody.childNodes[i];
var newWidth = intMax(1, yScale * cH.widthWanted);
cH.style.width = newWidth + 'px';
cB.style.width = newWidth + 'px';
}
}
function jlTbl_resize() {
var divHeader = jlTbl_getDIVHeader( this );
var divHeaderSlave = jlTbl_getDIVHeaderSlave( this );
var tblHeader = jlTbl_getColHeaderTABLE( this );
var divData = jlTbl_getDIVData( this );
var tblBody = jlTbl_getDataTBODY( this );
var tblData = jlTbl_getDataTABLE( this );
var wanted = 0;
var ww;
var ww2;
var hh;
var rowOne;
if ( this.style.width ) {
ww = parseInt(this.style.width);
} else if ( this.width ) {
ww = parseInt(this.width);
} else {
ww = this.offsetWidth;
}
if ( this.style.height ) {
hh = parseInt(this.style.height);
} else if ( this.height ) {
hh = parseInt(this.height);
} else {
hh = this.offsetHeight;
}
if ( hh == 0 ) {
hh = 350;
this.style.height = hh + 'px';
}
if ( tblBody.rows.length > 0 ) {
rowOne = tblBody.rows[0];
}
if ( this.autoSize == "true" || ( this.had_first_resize == false && this.autoSize == "autoonce") ) {
wanted = this.getWidthWanted();
divData.style.width = ww + 'px';
ww2 = ww - scrollbarWidth();
var yScale = (ww2 / wanted);
this.setRowWidthByScale(yScale);
this.had_first_resize = true;
} else {
wanted = this.getWidthWanted() + scrollbarWidth();
if ( wanted > ww ) {
divData.style.width = ww + 'px';
} else {
ww = tblHeader.rows[0].clientWidth + scrollbarWidth();
divData.style.width = ww + 'px';
}
ww2 = ww;
}
divHeader.style.left = '0px';
divHeader.style.width = ww + 'px';
divHeader.style.top = '0px';
divHeader.style.height = tblHeader.clientHeight + 'px';
divHeaderSlave.style.left = '0px';
divHeaderSlave.style.right = ww;
divHeaderSlave.style.top = '0px';
divHeaderSlave.style.bottom = tblHeader.clientHeight;
divData.style.left = '0px';
divData.style.width = ww + 'px';
if ( this.variable_row == true ) {
var extraMargin = this.extra_row_margin;
var maxHeight = this.max_row_height;
if ( maxHeight == 0 ) {
maxHeight = 1000;
}
var row_count = tblData.rows.length;
var hhRow = 16;
if ( row_count >= 0 ) {
for (var rr=0; rr < row_count; rr++) {
var row_to_copy = tblData.rows[rr];
hhRow = 0;
for (var cc=0; cc < row_to_copy.cells.length; cc++) {
var td = row_to_copy.cells[cc];
td.style.whiteSpace = 'normal';
if ( td.scrollHeight > hhRow ) {
hhRow = td.scrollHeight;
}
}
if ( hhRow != 0 ) {
if ( hhRow > maxHeight ) {
hhRow = maxHeight;
}
row_to_copy.style.height = (hhRow + extraMargin) + 'px';
}
}
}
} else {
var row_to_copy = tblData.rows[0];
if ( row_to_copy != null ) {
row_to_copy.style.height = '16px';
}
}
if ( (tblData.clientHeight + scrollbarWidth() ) > hh ) {
if ( hh - tblHeader.clientHeight > 0 ) {
divData.style.height = (hh - tblHeader.clientHeight) + 'px';
} else {
divData.style.height = '0px';
}
} else {
divData.style.height = (tblData.clientHeight + scrollbarWidth()) + 'px';
}
divHeader.style.clip="rect( 0px " + ww2 + "px auto 0px)";
divHeaderSlave.style.left = (-divData.scrollLeft) + 'px';
}
function jlTbl_move( left, top, right, bottom ) {
this.style.position = "absolute";
this.style.top = top + 'px';
this.style.left = left + 'px';
this.style.width = intMax(1, right - left) + 'px';
this.style.height = intMax(1, bottom - top) + 'px';
this.had_first_resize = false;
this.resize();
}
function jlTbl_getCell( xx, yy ) {
var row = this.getRow( yy );
if ( row ) {
return row.cells[xx];
}
}
function jlTbl_clearRowsSelected() {
var tbody = jlTbl_getDataTBODY( this );
tbody.rowRangeSelectClear( this.firstDataRow, tbody.rows.length-1 );
}
function jlTbl_setFocusRow( row_ord ) {
var tBody = jlTbl_getDataTBODY( this );
var rows = tBody.rows;
if ( row_ord >= 0 && row_ord < rows.length ) {
tBody.rowIsSelectedSet( rows[row_ord], true);
var tblData = jlTbl_getDataTABLE( this );
var row = tblData.rows[row_ord];
var divData = jlTbl_getDIVData( this );
var oldScrollLeft = divData.scrollLeft;
if ( row.offsetTop < divData.scrollTop ) {
row.scrollIntoView(true);
} else if ( (row.offsetTop + row.clientHeight) > divData.scrollTop + divData.clientHeight ) {
row.scrollIntoView(false);
}
row.cells[0].focus();
this.lastRowOrd = row_ord;
if ( divData.scrollLeft != oldScrollLeft ) {
divData.scrollLeft = oldScrollLeft;
}
}
}
function jlTbl_setFocus() {
try {
var tbody = jlTbl_getDataTBODY( this );
var lastRowOrd = this.lastRowOrd;
if ( lastRowOrd == null || lastRowOrd < 0 ) {
lastRowOrd = 0;
}
this.setFocusRow( lastRowOrd );
} catch (e) {
}
}
function jlTbl_toString() {
var now = new Date();
var out = [];
var regexpNBSP = /&nbsp;/;
var regexpCRLF = /\r\n/;
var simple_types = new Array;
var headerCells = jlTbl_getColHeaderRow(this).cells;
var tblData = jlTbl_getDataTABLE( this );
out[out.length] = "\"Table Title:\"\t" + xlsstr( getAttr(this, 'table_title') );
out[out.length] = "\r\n";
out[out.length] = "\"Options:\"\t" + xlsstr( getAttr(this, 'table_options') );
out[out.length] = "\r\n";
out[out.length] = "\"Time:\"\t" + xlsstr( dateFormat( now ) + ' ' + now.toLocaleTimeString() );
out[out.length] = "\r\n";
for (var cc=0; cc < headerCells.length; cc++) {
simple_types[cc] = parseInt( headerCells[cc].st );
var cell = headerCells[cc];
var value = (cell.textContent) ? cell.textContent : cell.innerText;
out[out.length] = simple_type_formatExcel(value, simple_type_text) + "\t";
}
out[out.length] = "\r\n";
var row_count = tblData.rows.length;
if ( row_count >= 0 ) {
for (var rr=0; rr < row_count; rr++) {
var row_to_copy = tblData.rows[rr];
for (var cc=0; cc < row_to_copy.cells.length; cc++) {
var cell = row_to_copy.cells[cc];
var value = (cell.textContent) ? cell.textContent : cell.innerText;
if ( value != undefined ) {
value = value.replace(regexpNBSP, "");
}
out[out.length] = simple_type_formatExcel(value, simple_types[cc]) + "\t";
}
out[out.length] = "\r\n";
}
}
return out.join('');
}
function jlTbl_print( show_preview, width, height ) {
var now = new Date();
if ( width == null ) {
width = 700;
}
if ( height == null ) {
height = 300;
}
var winPrint = winCreate('', width, height);
winPrint.document.write('<HTML>\r\n');
winPrint.document.write('<head>\r\n');
winPrint.document.write('	<link rel="stylesheet" type="text/css" href="c/_style.css">\r\n');
winPrint.document.write('	<' + 'script type="text/javascript" src="c/_jlCore.js"><' + '/script>\r\n');
winPrint.document.write('</head>\r\n');
winPrint.document.write('<BODY>\r\n');
winPrint.document.write('<DIV class="hideforprint">\r\n');
winPrint.document.write('<button onClick="window.print();">Print</button>\r\n');
winPrint.document.write('<button onClick="windowClose();">Close</button><br>\r\n');
winPrint.document.write('</DIV>\r\n');
var tblHeader = jlTbl_getColHeaderTABLE( this );
var tblData = jlTbl_getDataTABLE( this );
winPrint.document.write('<TABLE width=100%>');
winPrint.document.write('<THEAD style="display: table-header-group">');
winPrint.document.write('<TR><td colspan=' + this.getColCount() + '>\r\n');
winPrint.document.write('<table width="100%" border=0>\r\n');
winPrint.document.write('<tr>\r\n');
winPrint.document.write('<td width=34 rowspan=3><img width=' + site_report_logo_width + ' height=' + site_report_logo_height + ' alt="" src="' + site_report_logo_file_name + '" border=0></td>\r\n');
winPrint.document.write('<td align=left><h1>' + getAttr(this, 'table_title') + '</h1></td>\r\n');
winPrint.document.write('<td align=right><i>' + (now.getMonth()+1) + '/' + now.getDate() + '/' + now.getFullYear() + ' ' + now.toLocaleTimeString() + '</i></td>\r\n');
winPrint.document.write('</tr>');
winPrint.document.write('<tr><td colspan=2 style="border-top: 1px solid black;"><img src="fx/p.gif" width=1 height=1></td></tr>');
winPrint.document.write('<tr><td colspan=2>jdhere' + unescape(getAttr(this, 'table_options')) + '</td></tr>');
winPrint.document.write('</table></td></tr>');
winPrint.document.write( getOuterHTML( tblHeader ));
winPrint.document.write('</THEAD>');
winPrint.document.write( getOuterHTML( tblData ));
winPrint.document.write('</TABLE>');
winPrint.document.write('</BODY>\r\n</html>\r\n');
if ( show_preview == false ) {
winPrint.document.write('<' + 'SCRIPT> window.print(); <' + '/SCRIPT>');
}
winPrint.document.close();
}
function jlTbl_getColCode( col_id ) {
var tblHeader = jlTbl_getColHeaderRow( this );
return tblHeader.cells[col_id].fn;
}
function jlTbl_setKeyboardDisable( disable ) {
this.isKeyboardDisabled = boolClean( disable );
}
function jlTbl_getFocusRowOrd() {
return this.lastRowOrd;
}
function jlTbl_getColHeaders() {
return jlTbl_getColHeaderRow( this );
}
function jlTbl_getRows() {
return jlTbl_getDataTABLERows( this );
}
function jlTbl_getRow( rowIndexBase0 ) {
var rows = jlTbl_getDataTABLERows( this );
if ( rows ) {
try {
return rows[rowIndexBase0];
} catch (e) {
return null;
}
}
}
function jlTbl_getRowId( rowIndexBase0 ) {
var rows = jlTbl_getDataTABLERows( this );
if ( rows ) {
try {
return getAttr(rows[rowIndexBase0], 'i');
} catch (e) {
return null;
}
}
}
function jlTbl_rowIsSelected( row_ord ) {
var tbody = jlTbl_getDataTBODY( this );
var rows = tbody.rows;
if ( rows.length > 0 ) {
if ( row_ord < rows.length ) {
return tbody.rowIsSelectedRaw( rows[row_ord] );
}
}
return false;
}
function jlTbl_getSelectedRowCount() {
var tbody = jlTbl_getDataTBODY( this );
var rows = tbody.rows;
var count = 0;
if ( rows.length > 0 ) {
for ( var tt = 0; tt < rows.length; tt++ ) {
if ( tbody.rowIsSelectedRaw( rows[tt] ) == true ) {
count++;
}
}
}
return count;
}
function jlTbl_getFirstSelectedRowOrd() {
var tBody = jlTbl_getDataTBODY( this );
var rows = tBody.rows;
if ( rows.length > 0 ) {
for ( var tt = 0; tt < rows.length; tt++ ) {
if ( tBody.rowIsSelectedRaw( rows[tt] ) == true ) {
return tt;
}
}
}
return -1;
}
function jlTbl_getWidthWanted() {
var out = 0;
var cgHead = jlTbl_getColHeaderCOLGROUP( this );
for (var i=0; i < cgHead.childNodes.length; i++){
var cH = cgHead.childNodes[i];
out = out + cH.widthWanted;
}
return out;
}
function jlTblTH_OnMouseUp( evt ) {
evt = evt || window.event;
if ( this.in_resize == true ) {
releaseMouseCapture( this );
this.in_resize = false;
this.was_in_resize = true;
el = null;
var divMain = getParentByClass( this, "tbl");
if ( divMain == null ) {
return;
}
var ccHead = jlTbl_getColHeaderCOLGROUP( divMain ).childNodes[ this.cellIndex ];
var ccBody = jlTbl_getDataCOLGROUP( divMain ).childNodes[ this.cellIndex ];
ccBody.width = ccHead.width;
var tblHead = getParent(this, 'TABLE');
var tblBody = getParent(ccBody, 'TABLE');
tblBody.style.width = tblHead.style.width;
var newWidth = parseInt(this.style.width);
var oldTotalWidth = divMain.getWidthWanted();
var widthCurrent = getParent(this, 'DIV').offsetWidth;
var newWidthWanted = Math.round(oldTotalWidth * (newWidth / widthCurrent));
this.widthWanted = newWidthWanted;
divMain.resize();
return evtKill( evt );
} else {
this.style.borderTop="1px solid white";
this.style.borderLeft="1px solid white";
this.style.borderRight="1px solid black";
this.style.borderBottom="1px solid black";
this.style.backgroundColor="threedface";
}
}
function jlTblTH_OnMouseDown( evt ) {
evt = evt || window.event;
var tbl = getParent( this, 'TABLE');
var offsetX = evtOffsetX( evt );
if ( evtSrc(evt).tagName == 'INPUT' ) {
return false;
} else if ( Math.abs( this.offsetWidth - offsetX ) < 15 ) {
this.in_resize = true;
this.pos = evt.clientX;
this.size = this.offsetWidth;
tbl.size = tbl.offsetWidth;
evtKill( evt );
setMouseCapture( this );
} else {
this.style.borderTop="2px solid black";
this.style.borderLeft="2px solid black";
this.style.borderRight="0px";
this.style.borderBottom="0px";
this.style.backgroundColor="#e1e1e1";
}
}
function jlTblTH_OnMouseMove( evt ) {
evt = evt || window.event;
var tbl = getParent(this, 'TABLE');
var divMain = getParentByClass(tbl, 'tbl');
if ( this.in_resize == true ) {
var delta = 0;
delta = (evt.clientX - this.pos);
var ww = intMax(this.size + delta, 0);
var cc = jlTbl_getColHeaderCOLGROUP( divMain ).childNodes[ this.cellIndex ];
cc.width = ww;
var ww = intMax(tbl.size + delta, 0);
tbl.style.width = ww + 'px';
return evtKill( evt );
} else {
var offsetX = evtOffsetX( evt );
if ( Math.abs( this.offsetWidth - offsetX ) < 15 ) {
this.style.cursor = "e-resize";
} else if ( this.style.cursor != "pointer" ) {
this.style.cursor = "pointer";
}
}
}
function jlTblTH_OnClick( evt ) {
evt = evt || window.event;
var divMain;
var hdr;
var nCol;
if ( this.was_in_resize ) {
evtKill( evt );
this.was_in_resize = false;
return false;
}
divMain = getParentByClass( this, "tbl")
if ( divMain == null ) {
return;
}
if ( evtSrc(evt).tagName == 'INPUT' ) {
nCol = this.cellIndex;
try {
return eval( divMain.id + "_THInputClicked(" + nCol + ");");
} catch (e) {
}
return false;
}
nCol = -1;
nCol = this.cellIndex;
if ( nCol == -1 ) {
return;
}
var result = true;
try {
result = eval( divMain.id + "_THClick(" + nCol + ");");
} catch (e) {
}
try {
if ( result == true ) {
divMain.addSortColumn(nCol);
}
} catch(e) {
}
}
function jlTblTH_OnContextMenu( evt ) {
evt = evt || window.event;
var divMain;
var hdr;
var nCol;
nCol = -1;
nCol = this.cellIndex;
if ( nCol == -1 ) {
return evtKill( evt );
}
divMain = getParentByClass( this, "tbl")
if ( divMain == null ) {
return;
}
try {
divMain.filterByColumn(nCol);
} catch(e) {
}
return evtKill( evt );
}
function jlTBODY_OnSelectStart( evt ) {
evt = evt || window.event;
var el = evtSrc( evt );
if ( el != null ) {
if ( el.tagName == "INPUT" || el.tagName == "TEXTAREA" ) {
return true;
}
}
return evtKill( evt );
}
function jlTBODY_OnFocus( evt ) {
evt = evt || window.event;
}
function jlTBODY_OnBlur( evt ) {
evt = evt || window.event;
}
function jlTBODY_OnKeyDown( evt ) {
evt = evt || window.event;
var tblData = getParent( this, "TABLE");
var divMain = getParentByClass( tblData, "tbl")
if ( divMain.isKeyboardDisabled == true ) {
return;
} else if ( evt.keyCode == 27 && mnuActive != null ) {
mnuHide();
return;
}
var tmp = evtSrc( evt );
var row_ord = -1;
var kill_event = false;
row_ord = divMain.lastRowOrd;
if ( row_ord != -1 ) {
var el = tblData.rows[row_ord];
switch (evt.keyCode) {
case 8:
if ( divMain.searchBuffer.length > 0 ) {
divMain.searchBuffer = divMain.searchBuffer.substring(0, divMain.searchBuffer.length - 1);
divMain.find( divMain.searchBuffer, true);
}
kill_event = true;
break;
case 27:
divMain.clearSearchBuffer();
this.rowIsSelectedSet( tblData.rows[row_ord], false);
this.rowIsSelectedSet( tblData.rows[divMain.firstDataRow], true);
divMain.setFocusRow( divMain.firstDataRow );
kill_event = true;
break;
case 13:
try {
eval( divMain.id + "_RowDblClicked('" + getAttr(el, 'i').replace(/'/g, '\\\'') + "', " + row_ord + ");" );
} catch (e) {
}
kill_event = true;
break;
case 36:
if ( evt.shiftKey == true ) {
if ( divMain.lastRowOrd != -1 ) {
this.rowRangeSelect( divMain.firstDataRow, row_ord);
}
} else {
this.rowRangeSelectClear( divMain.firstDataRow, tblData.rows.length-1 );
this.rowIsSelectedSet( tblData.rows[divMain.firstDataRow], true);
}
divMain.setFocusRow( divMain.firstDataRow );
kill_event = true;
divMain.clearSearchBuffer();
divMain.inSearchMode = false;
break;
case 35:
if ( evt.shiftKey == true ) {
if ( divMain.lastRowOrd != -1 ) {
this.rowRangeSelect(row_ord, tblData.rows.length-1);
}
} else {
this.rowRangeSelectClear( divMain.firstDataRow, tblData.rows.length-1 );
this.rowIsSelectedSet( tblData.rows[tblData.rows.length-1], true);
}
divMain.setFocusRow( tblData.rows.length-1 );
kill_event = true;
divMain.clearSearchBuffer();
divMain.inSearchMode = false;
break;
case 38:
if ( row_ord > 0 ) {
if ( evt.shiftKey == false ) {
this.rowRangeSelectClear( divMain.firstDataRow, tblData.rows.length-1 );
}
this.rowIsSelectedSet( tblData.rows[row_ord-1], true);
divMain.setFocusRow( row_ord-1 );
}
kill_event = true;
divMain.clearSearchBuffer();
divMain.inSearchMode = false;
break;
case 40:
if ( row_ord < tblData.rows.length-1 ) {
if ( evt.shiftKey == false ) {
this.rowRangeSelectClear( divMain.firstDataRow, tblData.rows.length-1 );
}
this.rowIsSelectedSet( tblData.rows[row_ord+1], true);
divMain.setFocusRow( row_ord+1 );
}
kill_event = true;
divMain.clearSearchBuffer();
divMain.inSearchMode = false;
break;
default:
kill_event = false;
break;
}
}
if ( kill_event == true ) {
return evtKill( evt );
}
}
function jlTBODY_OnKeyPress( evt ) {
evt = evt || window.event;
var divMain = getParentByClass( this, "tbl");
var keyCode = (evt.keyCode)? evt.keyCode: ((evt.charCode)? evt.charCode: evt.which);
if ( divMain.isKeyboardDisabled == true ) {
return;
}
switch ( keyCode ) {
case 9:
case 16:
case 17:
case 13:
case 27:
case 38:
case 40:
case 37:
case 39:
case 35:
case 36:
case 33:
case 34:
return true;
case 8:
return evtKill( evt );
}
divMain.inSearchMode = true;
divMain.searchBuffer = divMain.searchBuffer + String.fromCharCode( keyCode );
if ( divMain.searchBuffer.length == 1) {
divMain.find( divMain.searchBuffer, true);
} else {
divMain.find( divMain.searchBuffer, false);
}
return evtKill( evt );
}
function jlTBODY_OnContextMenu( evt ) {
evt = evt || window.event;
var tmp = evtSrc(evt);
if ( tmp.tagName == "INPUT" || tmp.tagName == "TEXTAREA" ) {
return true;
}
var tblData = getParent( this, "TABLE");
var divMain = getParentByClass( this, "tbl")
el = getParent(tmp, "TR");
if ( el != null ) {
if ( el.is_total_footer != 1 && el.is_total_header != 1 ) {
if ( !this.rowIsSelectedRaw( el ) ) {
this.rowRangeSelectClear( divMain.firstDataRow, tblData.rows.length);
this.rowIsSelectedSet( el, true);
}
divMain.setFocusRow( el.rowIndex );
}
try {
eval( divMain.id + "_ContextMenuOpen('" + getAttr(el, 'i').replace(/'/g, '\\\'') + "', " + el.rowIndex + ");" );
} catch (e) {
}
}
return evtKill( evt );
}
function jlTBODY_OnDblClick( evt ) {
evt = evt || window.event;
var tmp = evtSrc( evt );
var tblData = getParent( this, "TABLE");
var divMain = getParentByClass( this, "tbl");
el = getParent(tmp, "TR");
if ( el != null ) {
try {
eval( divMain.id + "_RowDblClicked('" + getAttr(el, 'i').replace(/'/g, '\\\'') + "', " + el.rowIndex + ");" );
} catch (e) {
}
return evtKill( evt );
}
return evtKill( evt );
}
function jlTBODY_OnClick( evt ) {
evt = evt || window.event;
var ev = evt;
var el;
var tHeadParent;
var tmp = evtSrc( ev );
var tblData = getParent( this, "TABLE");
var divMain = getParentByClass( tblData, "tbl")
var last;
var current;
var tt;
if ( tmp.tagName == 'TBODY' ) {
return false;
}
el = getParent(tmp, "TR");
if ( el != null ) {
if ( dblclick_support == false ) {
eval( divMain.id + "_RowDblClicked('" + getAttr(el, 'i').replace(/'/g, '\\\'') + "', " + el.rowIndex + ");" );
return evtKill( evt );
} else {
var isTotal = 0;
if ( getAttr(el, 'is_total_footer') != null ) {
isTotal = getAttr(el, 'is_total_footer');
} else if ( getAttr(el, 'is_total_header') != null ) {
isTotal = getAttr(el, 'is_total_header');
}
if ( isTotal != 1 ) {
if ( ev.shiftKey == true ) {
if ( divMain.lastRowOrd != -1 ) {
this.rowRangeSelect(divMain.lastRowOrd, el.rowIndex);
}
} else if ( ev.ctrlKey == false ) {
this.rowRangeSelectClear( divMain.firstDataRow, tblData.rows.length);
this.rowIsSelectedSet( el, true);
} else {
this.rowIsSelectedSet(el, !this.rowIsSelectedRaw( el ));
}
divMain.setFocusRow( el.rowIndex );
}
}
}
if ( tmp.tagName == 'INPUT' ) {
return true;
}
return false;
}
function jlTBODY_rowRangeSelectClear( rowIndexA, rowIndexB ) {
var tblData = getParent( this, "TABLE");
var divMain = getParentByClass( tblData, "tbl");
var row_count = tblData.rows.length;
if ( row_count >= 0 ) {
var row_to_check = tblData.rows[divMain.firstDataRow];
for (var tt = divMain.firstDataRow; tt < row_count; tt++ ) {
if ( this.rowIsSelectedRaw( row_to_check ) == true ) {
this.rowIsSelectedSet( row_to_check, false);
}
row_to_check = row_to_check.nextSibling;
while ( row_to_check && row_to_check.nodeType == 3 ) {
row_to_check = row_to_check.nextSibling;
}
}
}
}
function jlTBODY_rowRangeSelect( rowIndexA, rowIndexB ) {
var tblData = getParent( this, "TABLE");
if ( rowIndexA <= rowIndexB ) {
var row = tblData.rows[rowIndexA];
for (var tt=rowIndexA; tt <= rowIndexB; tt++ ) {
this.rowIsSelectedSet( row, true);
row = row.nextSibling;
while ( row && row.nodeType == 3 ) {
row = row.nextSibling;
}
}
} else {
var row = tblData.rows[rowIndexB];
for (var tt=rowIndexB; tt <= rowIndexA; tt++ ) {
this.rowIsSelectedSet( row, true);
row = row.nextSibling;
while ( row && row.nodeType == 3 ) {
row = row.nextSibling;
}
}
}
}
function jlTBODY_rowIsOdd( el ) {
if ( getClass(el).charAt(0) == 'o')
return true;
else
return false;
}
function jlTBODY_rowIsSelectedRaw( el ) {
if ( getClass(el).charAt(1) == 's') {
return true;
} else {
return false;
}
}
function jlTBODY_rowIsSelectedSet( el, is_selected ) {
var className;
if ( this.rowIsOdd( el ) ) {
className = "o";
} else {
className = "e";
}
if ( is_selected ) {
className = className + 's';
}
if ( getClass(el) != className ) {
setClass(el, className);
}
if ( is_selected == true ) {
var do_add = true;
for (var tt=0; tt < el.cells[0].childNodes.length; tt++) {
if ( el.cells[0].childNodes[tt].nodeName == "INPUT" || el.cells[0].childNodes[tt].nodeName == "TEXTAREA" ) {
el.cells[0].childNodes[tt].value = "1";
do_add = false
break;
}
}
if ( do_add == true ) {
var selected = document.createElement("INPUT");
selected.type = "hidden";
selected.value = 1;
selected.name = "row_" + getAttr(el, 'i');
if ( getAttr(el, 'ts') ) {
selected.name += "-" + getAttr(el, 'ts');
}
el.cells[0].appendChild(selected);
}
} else {
for (var tt=0; tt < el.cells[0].childNodes.length; tt++) {
if ( el.cells[0].childNodes[tt].nodeName == "INPUT" || el.cells[0].childNodes[tt].nodeName == "TEXTAREA" ) {
el.cells[0].childNodes[tt].parentNode.removeChild(el.cells[0].childNodes[tt]);
break;
}
}
}
}
function jlTbl_find( sToFind, start_at_beginning ) {
var l = sToFind.length;
var sPos;
var tblData = jlTbl_getDataTABLE( this, "TABLE");
var tbody = jlTbl_getDataTBODY( this );
var row_ord = this.lastRowOrd;
var first_sort_column_ord = this.first_sort_column_ord;
if ( first_sort_column_ord == null ) {
first_sort_column_ord = 0;
}
if ( start_at_beginning == true || this.lastRowOrd == -1 ) {
sPos = this.firstDataRow;
} else {
sPos = this.lastRowOrd;
}
this.showSearchBuffer(sToFind);
if ( sToFind.length == 0 ) {
if ( row_ord != -1 ) {
tbody.rowIsSelectedSet( tblData.rows[row_ord], false);
}
tbody.rowIsSelectedSet( tblData.rows[this.firstDataRow], true);
this.setFocusRow( this.firstDataRow );
return -1;
} else {
sToFind = sToFind.toLowerCase();
var row_count = tblData.rows.length;
if ( row_count >= 0 ) {
var row_to_check = tblData.rows[sPos];
for (var i=sPos; i < row_count; i++) {
var cell = row_to_check.cells[first_sort_column_ord];
var sOption = (cell.textContent) ? cell.textContent : cell.innerText;
if ( sOption.length >= l ) {
if (sToFind == sOption.substr(0,l).toLowerCase()) {
if ( row_ord != -1 ) {
tbody.rowIsSelectedSet( tblData.rows[row_ord], false);
}
tbody.rowIsSelectedSet( row_to_check, true);
this.setFocusRow( row_to_check.rowIndex );
return row_to_check.rowIndex;
}
}
row_to_check = row_to_check.nextSibling;
while ( row_to_check && row_to_check.nodeType == 3 ) {
row_to_check = row_to_check.nextSibling;
}
}
}
if ( row_ord != -1 ) {
tbody.rowIsSelectedSet( tblData.rows[row_ord], false);
}
tbody.rowIsSelectedSet( tblData.rows[this.firstDataRow], true);
this.setFocusRow(this.firstDataRow);
return -1;
}
}
function jlTbl_clearSearchBuffer() {
if ( this.showStatus == true ) {
if ( window.status == "Search: " + this.searchBuffer ) {
window.status = "";
}
}
this.searchBuffer = "";
}
function jlTbl_showSearchBuffer( sToFind ) {
if ( this.showStatus == true ) {
window.status = "Search: " + sToFind;
}
}
function jlTbl_getDataTBODY( divMain ) {
return getChild( getChild( getChild(divMain, 1), 0), 1);
}
function jlTbl_getColHeaderTABLE( divMain ) {
return getChild( getChild( getChild(divMain, 0), 0), 0);
}
function jlTbl_getColHeaderRow( divMain ) {
return getChild( getChild( getChild(divMain, 0), 0), 0).rows[0];
}
function jlTbl_getColHeaderRowCells( divMain ) {
return jlTbl_getColHeaderRow( divMain ).cells;
}
function jlTbl_getTHEAD( divMain ) {
return getChild( getChild( getChild(divMain, 0), 0), 0).tHead;
}
function jlTbl_getColHeaderCOLGROUP( divMain ) {
return getChild( getChild( getChild( getChild( divMain, 0), 0), 0), 0);
}
function jlTbl_getDIVData( divMain ) {
return getChild( divMain, 1);
}
function jlTbl_getDataTABLE( divMain ) {
return getChild( getChild(divMain, 1), 0);
}
function jlTbl_getDataCOLGROUP( divMain ) {
return getChild( getChild( getChild( divMain, 1), 0), 0);
}
function jlTbl_getDataTABLERows( divMain ) {
return jlTbl_getDataTABLE( divMain ).rows;
}
function jlTbl_getDIVHeader( divMain ) {
return getChild(divMain, 0);
}
function jlTbl_getDIVHeaderSlave( divMain ) {
return getChild( getChild( divMain, 0), 0);
}
var rng = null;
var sel = null;
function jlTeditInit( ele_id ) {
var ele = g(ele_id);
if ( ele != null ) {
var elepar = ele.parentNode;
if ( elepar.tagName == 'TD' ) {
elepar = getParent(elepar, 'TABLE').parentNode;
}
var vv = ele.value;
if ( vv != null ) {
if ( vv.indexOf('<' + '!--no--' + '>') != -1 ) {
return;
}
}
if ( vv != null ) {
vv = vv.replace(/&lt;/g, '<');
vv = vv.replace(/&gt;/g, '>');
vv = vv.replace(/&amp;/g, '&');
}
have_tedit = true;
ele.tabIndex = -1;
var divEdit = document.createElement('DIV');
divEdit.id = 'div' + ele_id;
divEdit.ta_id = ele_id;
divEdit.className = 'tedit';
divEdit.style.position = 'absolute';
divEdit.style.left = (totalOffsetLeftFromParent(ele, elepar) - 1) + 'px';
divEdit.style.top = totalOffsetTopFromParent(ele, elepar) + 'px';
divEdit.style.width = ele.offsetWidth;
divEdit.style.height = ele.offsetHeight;
divEdit.style.zIndex = (ele.style.zIndex?ele.style.zIndex:0);
elepar.appendChild( divEdit );
divEdit.dlgResult = jlTedit_dlgResult;
divEdit.doToolbarRefresh = jlTedit_doToolbarRefresh;
var divToolbar = document.createElement('DIV');
divToolbar.id = 'toolbar' + ele_id;
divToolbar.className = 'toolbar';
divToolbar.style.left = '0px';
divToolbar.style.top = '0px';
divToolbar.style.width = ele.offsetWidth + 'px';
divToolbar.lastInTD = false;
var sToolbar = '<table width="100%" cellspacing="0" cellpadding="0"><tr><td>'
sToolbar += tbtnCreate('html', 'HTML', 'HTML Mode', '', false, 'Turn on HTML mode.');
sToolbar += tbtnSpaceCreate();
sToolbar += tbtnCreate('Undo', 'Undo', 'Undo', '', false, 'Allows you to undo your last action.');
sToolbar += tbtnSpaceCreate();
sToolbar += tbtnCreate('Bold', 'Bold', 'Bold', '', false, 'Make the text bold.');
sToolbar += tbtnCreate('Italic', 'Italic', 'Italics', '', false, 'Make the text italics.');
sToolbar += tbtnCreate('Underline', 'Underline', 'Underline', '', false, 'Make the text underlined.');
sToolbar += tbtnSpaceCreate();
sToolbar += tbtnCreate('JustifyLeft', 'JustLeft', 'Left Justify', '', false, 'Make the text left justified.  All text will be aligned on the left and the right side will be "jagged".');
sToolbar += tbtnCreate('JustifyCenter', 'Center', 'Center', '', false, 'Make the text centered.');
sToolbar += tbtnCreate('JustifyRight', 'JustRight', 'Right Justify', '', false, 'Make the text right justified.  All text will be aligned on the right and the left side will be "jagged".');
sToolbar += tbtnCreate('JustifyFull', 'Just', 'Justify', '', false, 'Make the text align on both the left and right sides--like a Newspaper column.');
sToolbar += tbtnSpaceCreate();
sToolbar += tbtnCreate('InsertOrderedList', 'Numbered', 'Numbered', '', false, 'Makes the selected text a numbered list.');
sToolbar += tbtnCreate('InsertUnorderedList', 'Bullet', 'Bullet', '', false, 'Makes the selected text a bulletted (unnumbered) list.');
sToolbar += tbtnSpaceCreate();
sToolbar += tbtnCreate('Outdent', 'Outdent', 'Outdent', '', false, 'Decreases the amount of indenting for the selected text.');
sToolbar += tbtnCreate('Indent', 'Indent', 'Indent', '', false, 'Indents the selected text.');
sToolbar += tbtnSpaceCreate();
sToolbar += tbtnCreate('ForeColor', 'ForeColor', 'Foreground Color', '', false, 'Allows you to set the color of the text.');
sToolbar += tbtnCreate('BackColor', 'BackColor', 'Background Color', '', false, 'Allows you to set the color of the background.');
sToolbar += tbtnSpaceCreate();
sToolbar += tbtnCreate('linkAdd', 'LinkAdd', 'Link', '', false, 'Allows adding a link to the selected text.');
sToolbar += tbtnCreate('imageAdd', 'ImageAdd', 'Add Image', '', false, 'Allows adding an image to the text.');
sToolbar += tbtnSpaceCreate();
sToolbar += tbtnCreate('tableAdd', 'TableAdd', 'table', '', false, 'Allows adding a table to the text.');
sToolbar += tbtnSpaceCreate();
sToolbar += tbtnCreate('tableRowDelete', 'tableRowDelete', 'Delete Table Row', '', true, 'Deletes a row of a table.');
sToolbar += tbtnCreate('tableRowInsertBefore', 'tableRowInsertBefore', 'Insert Table Row Before Current Row', '', true, 'Inserts a row before the current row.');
sToolbar += tbtnCreate('tableRowInsertAfter', 'tableRowInsertAfter', 'Insert table row after current row', '', true, 'Inserts a row after the current row.');
sToolbar += tbtnSpaceCreate();
sToolbar += tbtnCreate('tableColumnDelete', 'tableColumnDelete', 'Delete Table Column', '', true, 'Deletes a column of a table.');
sToolbar += tbtnCreate('tableColumnInsertBefore', 'tableColumnInsertBefore', 'Insert Table Column Before Current Column', '', true, 'Inserts a new column before the current column.');
sToolbar += tbtnCreate('tableColumnInsertAfter', 'tableColumnInsertAfter', 'Insert table column after current column', '', true, 'Inserts a new column after the current column.');
sToolbar += tbtnSpaceCreate();
sToolbar += tbtnCreate('clean', 'htmlclean', 'Clean the HTML of bad stuff pasted from other applications.', '', false, 'Cleans the HTML of bad or useless tags and attributes.');
sToolbar += '</td></tr><tr><td>';
sToolbar += styleCreate( divEdit.id );
sToolbar += '&nbsp;&nbsp;';
sToolbar += fontCreate( divEdit.id );
sToolbar += fontsizeCreate( divEdit.id );
sToolbar += '&nbsp;&nbsp;';
sToolbar += '</td></tr></table>';
divToolbar.innerHTML = sToolbar;
divEdit.appendChild( divToolbar );
jlToolbarInit( 'toolbar' + ele_id );
divToolbar.Clicked = tedittoolbar_Clicked;
var iframeEdit = document.createElement('IFRAME');
iframeEdit.id = 'iframe' + ele_id;
iframeEdit.style.width = ele.offsetWidth + 'px';
iframeEdit.style.height = (ele.offsetHeight - divToolbar.offsetHeight) + 'px';
iframeEdit.style.overflow = 'auto';
divEdit.appendChild( iframeEdit );
var cw = iframeEdit.contentWindow;
var d = cw.document;
d.open();
var sHTML = '';
sHTML += '<html><head><link rel="stylesheet" type="text/css" href="/c/_style.css"><script> function ew() {}; </script></head><body>';
sHTML += vv;
sHTML += '</body></html>'
d.write(sHTML);
d.close();
try{ d.designMode="on"; } catch(e){ cw.designMode="on"; }
d.havePasteEventInit = false;
if ( d.addEventListener ) {
d.addEventListener( 'keypress', jlTedit_iframe_OnKeyPress, false);
d.addEventListener( 'keydown', jlTedit_iframe_OnKeyDown, false);
d.addEventListener( 'keyup', jlTedit_iframe_OnKeyUp, false);
d.addEventListener( 'click', jlTedit_iframe_OnClick, false);
d.addEventListener( 'dblclick', jlTedit_iframe_OnDblClick, false);
d.addEventListener( 'mouseup', jlTedit_iframe_OnMouseUp, false);
iframeEdit.addEventListener( 'focus', jlTedit_iframe_OnFocus, false);
iframeEdit.addEventListener( 'blur', jlTedit_iframe_OnBlur, false);
} else {
d.onkeypress = jlTedit_iframe_OnKeyPress;
d.onkeydown = jlTedit_iframe_OnKeyDown;
d.onkeyup = jlTedit_iframe_OnKeyUp;
d.onclick = jlTedit_iframe_OnClick;
d.ondblclick = jlTedit_iframe_OnDblClick;
d.onmouseup = jlTedit_iframe_OnMouseUp;
iframeEdit.onfocus = jlTedit_iframe_OnFocus;
iframeEdit.onblur = jlTedit_iframe_OnBlur;
}
}
}
function jlTeditTransfer() {
eles = document.body.getElementsByTagName('TEXTAREA');
for (tt=0; tt < eles.length; tt++ ) {
var ele = eles[tt];
if ( ele.className == 'tedit' ) {
var id = ele.id || ele.name;
var ifrm = g('iframe' + id);
if ( ifrm ) {
var body = ifrm.contentWindow.document.body;
if ( body.inHTMLMode != true ) {
var vv = body.innerHTML;
if ( ele.value != vv ) {
ele.value = vv;
frmChangedSet( true );
}
}
}
}
}
}
function tbtnCreate( btn_id, icon_name, name, shortcut, is_disabled, title ) {
var cn = 'btn';
var attr = '';
if ( is_disabled ) {
cn = 'dbtn';
attr = ' d=1';
}
return '<img i="' + btn_id + '" src="fx/tbtn' + icon_name + '1.gif" alt="' + name + '" UNSELECTABLE=on class=' + cn + attr + ' title="' + title + '">'
}
function tbtnSpaceCreate() {
return '<img class=sep src="fx/tbtnSpace.gif" alt="">';
}
function styleCreate( ele_id ) {
var sOut = '';
sOut += '<select tabIndex=-1 id="' + ele_id + 'dropStyle" r=1 onchange="jlTedit_drop_OnChange( this, \'FormatBlock\' );">';
sOut += '<option value="">Style</option>';
sOut += '<option value="<p>">Paragraph</option>';
sOut += '<option value="<h1>">Heading 1</option>';
sOut += '<option value="<h2>">Heading 2</option>';
sOut += '<option value="<h3>">Heading 3</option>';
sOut += '<option value="<h4>">Heading 4</option>';
sOut += '<option value="<h5>">Heading 5</option>';
sOut += '<option value="<pre>">Program Code/Fixed</option>';
sOut += '</select>';
return sOut;
}
function fontCreate( ele_id ) {
var sOut = '';
sOut += '<select tabIndex=-1 id="' + ele_id + 'dropFont" r=1 onchange="jlTedit_drop_OnChange( this, \'FontName\' );">';
sOut += '<option value="">Font</option>';
sOut += '<option value="Arial, Arial, Helvetica, sans-serif">Arial</option>';
sOut += '<option value="Arial Black, Arial Black, Gadget, sans-serif">Arial Black</option>';
sOut += '<option value="Comic Sans MS, Comic Sans MS, cursive">Comic Sans</option>';
sOut += '<option value="Courier New, Courier New, Courier, monospace">Courier New</option>';
sOut += '<option value="Georgia, Georgia, serif">Georgia</option>';
sOut += '<option value="Impact, Impact, Charcoal, sans-serif">Impact</option>';
sOut += '<option value="Lucida Console, Monaco, monospace">Lucida Console</option>';
sOut += '<option value="Lucida Sans Unicode, Lucida Grande, sans-serif">Lucida Sans Unicode</option>';
sOut += '<option value="Palatino Linotype, Book Antiqua, Palatino, serif">Palatino</option>';
sOut += '<option value="Tahoma, Geneva, sans-serif">Tahoma</option>';
sOut += '<option value="Times New Roman, Times, serif">Times New Roman</option>';
sOut += '<option value="Trebuchet MS, Helvetica, sans-serif">Trebuchet</option>';
sOut += '<option value="Verdana, Verdana, Geneva, sans-serif">Verdana</option>';
sOut += '</select>';
return sOut;
}
function fontsizeCreate( ele_id ) {
var sOut = '';
sOut += '<select tabIndex=-1 id="' + ele_id + 'dropFontSize" r=1 onchange="jlTedit_drop_OnChange( this, \'FontSize\' );">';
sOut += '<option value="">Size</option>';
sOut += '<option value="1">1</option>';
sOut += '<option value="2">2</option>';
sOut += '<option value="3">3</option>';
sOut += '<option value="4">4</option>';
sOut += '<option value="5">5</option>';
sOut += '<option value="6">6</option>';
sOut += '<option value="7">7</option>';
sOut += '</select>';
return sOut;
}
function borderCreate( ele_id ) {
var sOut = '';
sOut += 'Border: <select tabIndex=-1 id="' + ele_id + 'dropBorder" r=1>';
sOut += '</select>';
return sOut
}
function tblCreate( column_count, row_count ) {
var qq = [];
qq[qq.length] = '<table border="1"><tbody>';
for (yy=0; yy < row_count; yy++) {
qq[qq.length] = '<tr>';
for (xx=0; xx < column_count; xx++) {
qq[qq.length] = '<td>&nbsp;</td>';
}
qq[qq.length] = '</tr>';
}
qq[qq.length] = '</tbody></table>';
return qq.join('');
}
function imgCreate( url, alt, width, height, lock_aspect_ratio ) {
var sOut = '<img src="' + url + '" alt="' + alt + '"';
if ( width != null && width != '' ) {
sOut += ' width="' + width + '"';
}
if ( height != null && height != '' ) {
sOut += ' height="' + height + '"';
}
if ( lock_aspect_ratio == true ) {
sOut += ' lar=true';
}
sOut += '>';
return sOut
}
function tedittoolbar_Clicked( btn_id ) {
var divParent = getParentByClass(this, 'tedit');
var btn = this.getBtnById( btn_id );
var iframeEdit = divParent.childNodes[1];
var cw = iframeEdit.contentWindow;
var d = cw.document;
var do_dlg = false;
var url = null;
var ww = 0;
var hh = 0;
if (window.getSelection) {
sel = cw.getSelection();
} else {
sel = d.selection;
rng = sel.createRange();
}
switch ( btn_id ) {
case 'ForeColor':
do_dlg = true;
url = 'dlgColor.asp';
ww = 160;
hh = 150;
divParent.lastDlgCommand = btn_id;
break;
case 'BackColor':
do_dlg = true;
url = 'dlgColor.asp';
ww = 160;
hh = 150;
divParent.lastDlgCommand = btn_id;
break;
case 'tableAdd':
do_dlg = true;
url = 'dlgTableCreate.asp';
ww = 160;
hh = 200;
divParent.lastDlgCommand = btn_id;
break;
case 'tableProperties':
do_dlg = true;
url = 'dlgTableProperties.asp';
ww = 300;
hh = 200;
divParent.lastDlgCommand = btn_id;
break;
case 'imageAdd':
do_dlg = true;
url = 'dlgImageExternal.asp';
ww = 550;
hh = 450;
divParent.lastDlgCommand = btn_id;
break;
case 'tableColumnDelete':
case 'tableColumnInsertBefore':
case 'tableColumnInsertAfter':
case 'tableRowDelete':
case 'tableRowInsertBefore':
case 'tableRowInsertAfter':
var cell = null;
if ( sel.anchorNode ) {
cell = getParent(sel.anchorNode, "TD");
} else if ( rng.parentElement ) {
cell = getParent(rng.parentElement(), "TD");
} else if ( rng.item ) {
cell = getParent(rng.item(0), "TD");
}
if ( cell == null ) {
alert('sorry...  Please put the caret in a single cell of the table.');
} else {
doTableAction( cell, btn_id );
}
return false;
break;
case 'linkAdd':
do_dlg = true;
url = 'dlgLink.asp';
ww = 550;
hh = 100;
divParent.lastDlgCommand = btn_id;
break;
case 'clean':
teditClean( d.body );
return false;
case 'html':
var ta = g(divParent.ta_id);
if ( d.body.inHTMLMode == true ) {
var txt = ta.value;
d.body.innerHTML = txt;
iframeEdit.style.display = 'block';
d.body.inHTMLMode = false;
} else {
var txt = d.body.innerHTML;
var toolbar = g('toolbar' + divParent.ta_id);
ta.value = txt;
ta.style.position = 'absolute';
ta.style.top = (toolbar.offsetHeight + 2) + 'px';
ta.style.left = iframeEdit.style.left;
ta.style.width = iframeEdit.style.width;
ta.style.height = iframeEdit.style.height;
iframeEdit.style.display = 'none';
d.body.inHTMLMode = true;
try { ta.focus(); } catch(e) {};
}
return false;
}
if ( do_dlg == true ) {
dlgShow( btn, btn, ww, hh, url, divParent.dlgResult );
return false;
}
if (!document.all) d.execCommand('useCSS',false, true);
d.execCommand(btn_id, false, '');
cw.focus();
}
function teditClean( body ) {
var txt = body.innerHTML;
if ( txt != null ) {
txt = txt.replace(/[’‘]/g, "'");
txt = txt.replace(/[”“]/g, '"');
txt = txt.replace(/…/g, '...');
txt = txt.replace(/–/g, '-');
txt = txt.replace(/½/g, '1/2');
txt = txt.replace(/¼/g, '1/4');
txt = txt.replace(/¾/g, '3/4');
txt = txt.replace(/<\/?(\?xml|xml|[ovwxp]:|meta|st\d:)[^>]*>/gi, "");
txt = txt.replace(/<font[^>]*><\/font[^>]*>/gi, "");
txt = txt.replace(/<font[^>]*>&nbsp;<\/font[^>]*>/gi, "&nbsp;");
body.innerHTML = txt;
eleClean( body );
}
}
function eleClean( ele ) {
var ll = ele.childNodes.length;
for ( var tt = 0; tt < ele.childNodes.length; tt++ ) {
if ( ele.childNodes.nodeType != 3 ) {
eleClean( ele.childNodes[tt] );
}
}
if ( ele.attributes != null ) {
for ( var tt=ele.attributes.length-1; tt >= 0; tt-- ) {
attr = ele.attributes[tt];
if ( attr.name.substring(0, 3) == 'Mso' ) {
ele.removeAttribute(tt);
} else if ( attr.name.substring(0, 5) == 'Apple' ) {
ele.removeAttribute(tt);
} else if ( attr.name == 'style' ) {
if ( attr.value != null ) {
var ss = attr.value.split(';');
for ( var qq = 0; qq < ss.length; qq++ ) {
if ( strTrim(ss[qq]).substring(0,4) == 'mso-' ) {
ss[qq] = null;
}
}
var out = ss.join(';');
if ( out == null || out.length == 0 ) {
ele.removeAttribute(attr.name);
} else if ( attr.value != out ) {
attr.value = out;
}
}
} else if ( attr.name == 'class' ) {
if ( attr.value != null ) {
if ( attr.value.substring(0,3) == 'Mso' ) {
ele.removeAttribute(attr.name);
}
}
}
}
}
}
function doTableAction( cell, action_id ) {
var cellIndex = cell.cellIndex;
var tr = getParent(cell, "TR");
var rowIndex = tr.rowIndex;
var tbl = getParent(tr, "TABLE");
switch ( action_id ) {
case 'tableColumnDelete':
if ( tr.cells.length == 1 ) {
tbl.parentNode.removeChild( tbl );
} else {
for ( tt = 0; tt < tbl.rows.length; tt++ ) {
tbl.rows[tt].deleteCell( cellIndex );
}
}
break;
case 'tableRowDelete':
if ( tbl.rows.length == 1 ) {
tbl.parentNode.removeChild( tbl );
} else {
tbl.deleteRow( rowIndex );
}
break;
case 'tableColumnInsertAfter':
cellIndex++;
case 'tableColumnInsertBefore':
for ( tt = 0; tt < tbl.rows.length; tt++ ) {
var newTD = tbl.rows[tt].insertCell( cellIndex );
newTD.innerHTML = "&nbsp;";
}
break;
case 'tableRowInsertAfter':
rowIndex++;
case 'tableRowInsertBefore':
var le = tr.cells.length;
var newTR = tbl.insertRow( rowIndex );
for (tt=0; tt < le; tt++) {
var newTD = newTR.insertCell( tt );
newTD.innerHTML = "&nbsp;";
}
break;
}
return false;
}
function jlTedit_drop_OnChange( dropElement, command_name ) {
var divParent = getParentByClass(dropElement, 'tedit');
var iframeEdit = divParent.childNodes[1];
var cw = iframeEdit.contentWindow;
var d = cw.document;
if ( dropElement.value != null && dropElement.value != '' ) {
if (!document.all) d.execCommand('useCSS', false, true);
d.execCommand(command_name, false, dropElement.value);
}
dropElement.value = '';
cw.focus();
}
function jlTedit_dlgResult( new_value ) {
var divParent = getParentByClass(eleDlgFocus, 'tedit');
var iframeEdit = divParent.childNodes[1];
var cw = iframeEdit.contentWindow;
var d = cw.document;
if (rng) {
rng.select();
}
if (!document.all) d.execCommand('useCSS', false, true);
switch ( divParent.lastDlgCommand ) {
case 'tableAdd':
if ( new_value != null ) {
var sHTML = tblCreate( new_value.x, new_value.y);
try {
d.execCommand("inserthtml", false, sHTML);
} catch (e) {
if (document.selection) {
rng.pasteHTML( sHTML + rng.htmlText);
}
}
}
break;
case 'imageEdit':
if ( new_value != null ) {
if ( divParent.lastElement != null ) {
var el = divParent.lastElement;
el.src = new_value.url;
el.alt = new_value.alt;
el.width = new_value.width;
el.height = new_value.height;
}
}
break;
case 'imageAdd':
if ( new_value != null ) {
var sHTML = imgCreate( new_value.url, new_value.alt, new_value.width, new_value.height, new_value.lock_aspect_ratio );
try {
d.execCommand("inserthtml", false, sHTML);
} catch (e) {
if (document.selection) {
rng.pasteHTML( sHTML + rng.htmlText);
}
}
}
break;
case 'linkEdit':
if ( new_value != null ) {
if ( divParent.lastElement != null ) {
var el = divParent.lastElement;
el.href = new_value.url;
if ( new_value.new_window ) {
el.target = "_blank";
} else {
try { el.removeAttribute('target'); } catch (e) {}
}
}
}
break;
case 'linkAdd':
if ( new_value != null ) {
var sHTML = '<A HREF="' + new_value.url + '"';
if ( new_value.new_window ) {
sHTML += ' target="_blank"';
}
sHTML += '>';
try {
if ( sel.type && sel.type != "Text" ) {
sel="";
}
d.execCommand("inserthtml", false, sHTML + sel);
} catch (e) {
if (document.selection) {
rng.pasteHTML( sHTML + rng.htmlText);
}
}
}
break;
default:
d.execCommand(divParent.lastDlgCommand, false, new_value);
}
cw.focus();
divParent.doToolbarRefresh( null );
}
function jlTedit_iframe_OnKeyPress( evt ) {
return true;
}
function jlTedit_iframe_OnKeyDown( evt ) {
var pw = (this.defaultView? this.defaultView: this.parentWindow);
evt = evt || pw.event;
return jlShortcut_OnKeyDown( evt );
}
function jlTedit_iframe_OnKeyUp( evt ) {
var pw = (this.defaultView? this.defaultView: this.parentWindow);
var iframeEdit = pw.frameElement;
var divParent = getParentByClass( iframeEdit, 'tedit');
evt = evt || pw.event;
divParent.doToolbarRefresh( evt );
return true;
}
function jlTedit_iframe_OnClick( evt ) {
var pw = (this.defaultView? this.defaultView: this.parentWindow);
var iframeEdit = pw.frameElement;
var divParent = getParentByClass( iframeEdit, 'tedit');
evt = evt || pw.event;
if ( is_dlg_active == true ) {
dlgHide( false );
return false;
}
}
function jlTedit_doToolbarRefresh( evt ) {
var iframeEdit = this.childNodes[1];
var divToolbar = this.childNodes[0];
var cw = iframeEdit.contentWindow;
var d = cw.document;
if (window.getSelection) {
sel = cw.getSelection();
} else {
sel = d.selection;
rng = sel.createRange();
}
var el;
if ( sel.anchorNode ) {
el = sel.anchorNode;
} else if ( rng.parentElement ) {
el = rng.parentElement();
} else if ( rng.item ) {
el = rng.item(0);
}
var cell = getParent( el, "TD" );
var inTD = false;
if ( cell ) {
inTD = true;
}
if ( divToolbar.lastInTD != inTD ) {
divToolbar.setBtnIsDisabled( 'tableColumnDelete', !inTD );
divToolbar.setBtnIsDisabled( 'tableColumnInsertBefore', !inTD );
divToolbar.setBtnIsDisabled( 'tableColumnInsertAfter', !inTD );
divToolbar.setBtnIsDisabled( 'tableRowDelete', !inTD );
divToolbar.setBtnIsDisabled( 'tableRowInsertBefore', !inTD );
divToolbar.setBtnIsDisabled( 'tableRowInsertAfter', !inTD );
divToolbar.lastInTD = inTD;
}
}
function jlTedit_iframe_OnDblClick( evt ) {
var pw = (this.defaultView? this.defaultView: this.parentWindow);
var iframeEdit = pw.frameElement;
var divParent = getParentByClass( iframeEdit, 'tedit');
var divToolbar = divParent.childNodes[0];
evt = evt || pw.event;
var el = evtSrc( evt );
if ( el.tagName == 'IMG' ) {
url = 'dlgImageExternal.asp?url=' + el.src + '&alt=' + el.alt + '&width=' + el.width + '&height=' + el.height;
divParent.lastDlgCommand = 'imageEdit';
divParent.lastElement = el;
dlgShow( divToolbar, divToolbar, 550, 450, url, divParent.dlgResult );
return false;
} else if ( el.tagName == 'A' ) {
url = 'dlgLink.asp?url=' + el.href + '&target=' + el.target;
divParent.lastDlgCommand = 'linkEdit';
divParent.lastElement = el;
dlgShow( divToolbar, divToolbar, 550, 100, url, divParent.dlgResult );
return false;
} else if ( el.tagName == 'TABLE' ) {
}
}
function jlTedit_iframe_OnMouseUp( evt ) {
var pw = (this.defaultView? this.defaultView: this.parentWindow);
var iframeEdit = pw.frameElement;
var divParent = getParentByClass( iframeEdit, 'tedit');
evt = evt || pw.event;
divParent.doToolbarRefresh( evt );
}
function jlTedit_iframe_OnFocus( evt ) {
var d = this.contentWindow.document;
if ( d.havePasteEventInit == false ) {
d.havePasteEventInit = true;
var bb = d.body;
bb.onPasteSet = true;
bb.iframe_id = this.id
if ( bb.addEventListener ) {
bb.addEventListener( 'paste', jlTedit_body_OnPaste, false);
} else {
bb.onpaste = jlTedit_body_OnPaste;
}
}
return true;
}
function jlTedit_iframe_OnBlur( evt ) {
var ele_id = this.id.substr(6);
var ta = g(ele_id);
var vv = this.contentWindow.document.body.innerHTML;
if ( ta.value != vv ) {
ta.value = vv;
frmChangedSet( true );
}
return true;
}
function jlTedit_body_OnPaste( evt ) {
var body = this;
setTimeout("teditClean( g('" + body.iframe_id + "').contentWindow.document.body );", 10);
return true;
}
function jlTextareaInit() {
eles = document.body.getElementsByTagName('TEXTAREA');
for (tt=0; tt < eles.length; tt++ ) {
var ele = eles[tt];
ele.isValid = jlTextarea_isValid;
ele.allow_tab = boolClean( getAttr(ele, 'allow_tab') );
if ( ele.className == 'tedit' ) {
var vv = ele.value;
if ( vv != null ) {
if ( vv.indexOf('&lt;' + '!--no--' + '&gt;') == -1 ) {
continue;
}
}
}
if ( ele.addEventListener ) {
ele.addEventListener( 'focus', jlTextarea_OnFocus, false);
ele.addEventListener( 'blur', jlTextarea_OnBlur, false);
ele.addEventListener( 'keypress', jlTextarea_OnKeyPress, false);
ele.addEventListener( 'keydown', jlTextarea_OnKeyDown, false);
ele.addEventListener( 'paste', jlTextarea_OnPaste, false);
ele.addEventListener( 'change', jlTextarea_OnChange, false);
} else {
ele.onfocus = jlTextarea_OnFocus;
ele.onblur = jlTextarea_OnBlur;
ele.onkeypress = jlTextarea_OnKeyPress;
ele.onkeydown = jlTextarea_OnKeyDown;
ele.onpaste = jlTextarea_OnPaste;
ele.onchange = jlTextarea_OnChange;
}
}
}
function jlTextarea_OnKeyPress( evt ) {
evt = evt || window.event;
if ( evt ) {
if ( evt.keyCode == 13 ) {
return;
}
}
frmChangedSet( true );
}
function jlTextarea_OnKeyDown( evt ) {
evt = evt || window.event;
if ( this.allow_tab == true ) {
if ( evt.keyCode == 9 ) {
if ( evt.shiftKey ) {
this.selection = window.document.selection.createRange();
setTimeout("textareaHandleTab('" + this.name + "', true);", 0);
} else {
this.selection = window.document.selection.createRange();
setTimeout("textareaHandleTab('" + this.name + "', false);", 0);
}
return evtKill( evt );
}
}
}
function jlTextarea_OnPaste( evt ) {
evt = evt || window.event;
frmChangedSet( true );
}
function jlTextarea_OnChange( evt ) {
evt = evt || window.event;
frmChangedSet( true );
}
function jlTextarea_OnFocus( evt ) {
evt = evt || window.event;
window.status = this.title;
}
function jlTextarea_OnBlur( evt ) {
evt = evt || window.event;
return this.isValid();
}
function jlTextarea_isValid() {
var scriptValid = getAttr(this, 'onIsValid');
var result = false;
if ( scriptValid != null && scriptValid != '' ) {
result = !eval(scriptValid);
}
return result;
}
function textareaHandleTab(id, has_shift_pressed) {
var sel;
if ( has_shift_pressed == false ) {
if ( document.all[id].selection.text.length != 0 ) {
sel = document.all[id].selection.text;
sel = String.fromCharCode(9) + sel;
for ( var x = 0; x < sel.length; x++ ) {
if (( sel.charCodeAt(x) == 10 ) && ( sel.charCodeAt(x-1)==13 ) ) {
sel = sel.substring(0, x+1) + String.fromCharCode(9) + sel.substring(x+1, sel.length)
}
}
if ( IE6 || window.opera ) {
document.all[id].selection.text = sel;
} else {
document.all[id].selection.text = sel + String.fromCharCode(13) + String.fromCharCode(10);
}
} else {
document.all[id].selection.text = String.fromCharCode(9);
}
} else {
if ( document.all[id].selection.text.length != 0 ) {
sel = document.all[id].selection.text;
if ( sel.charCodeAt(0) == 9 ) {
sel = sel.substring(1, sel.length);
}
for ( var x=0; x < sel.length; x++) {
if ( (sel.charCodeAt(x) == 9) && (sel.charCodeAt(x-1)==10) && (sel.charCodeAt(x-2)==13) ) {
sel = sel.substring(0, x) + sel.substring(x+1, sel.length);
}
}
if ( IE6 || window.opera ) {
document.all[id].selection.text = sel;
} else {
document.all[id].selection.text = sel + String.fromCharCode(13) + String.fromCharCode(10);
}
} else {
}
}
document.all[id].focus();
}
function jlToolbarInit( toolbar_id ) {
var ele = g( toolbar_id );
if ( ele != null ) {
ele.getBtnIsDisabled = jlToolbar_getBtnIsDisabled;
ele.setBtnIsDisabled = jlToolbar_setBtnIsDisabled;
ele.getBtnById = jlToolbar_getBtnById;
ele.Shortcutted = jlToolbar_Shortcutted;
var tbarRow = ele.childNodes[0].rows[0];
for ( jj=0; jj < tbarRow.cells.length; jj++ ) {
var td = tbarRow.cells[jj];
for ( ii=0; ii < td.childNodes.length; ii++ ) {
var btn = td.childNodes[ii];
if ( btn.tagName == 'IMG' && getAttr( btn, 'i') != null ) {
if ( btn.addEventListener ) {
btn.addEventListener('mouseover', jlToolbarBtn_OnMouseOver, false);
btn.addEventListener('mouseout', jlToolbarBtn_OnMouseOut, false);
btn.addEventListener('mouseup', jlToolbarBtn_OnMouseUp, false);
btn.addEventListener('mousedown', jlToolbarBtn_OnMouseDown, false);
btn.addEventListener('click', jlToolbarBtn_OnClick, false);
} else {
btn.onmouseover = jlToolbarBtn_OnMouseOver;
btn.onmouseout = jlToolbarBtn_OnMouseOut;
btn.onmouseup = jlToolbarBtn_OnMouseUp;
btn.onmousedown = jlToolbarBtn_OnMouseDown;
btn.onclick = jlToolbarBtn_OnClick;
}
var sc = getAttr( btn, 'shortcut' );
if ( sc != null ) {
jlShortcutEvalAdd( sc, "g('" + ele.id + "').Shortcutted('" + getAttr( btn, 'i') + "');", btn.title );
}
}
}
}
}
}
function jlToolbar_getBtnIsDisabled( btn_id ) {
var btn = this.getBtnById( btn_id );
if ( btn ) {
if ( getAttr(btn, 'd') != '1' ) {
return false;
} else {
return true;
}
}
}
function jlToolbar_setBtnIsDisabled( btn_id, is_disabled ) {
var btn = this.getBtnById( btn_id );
if ( btn ) {
if ( is_disabled == true ) {
setAttr( btn, 'd', '1');
var cn = btn.className;
if ( cn == null ) {
cn = 'dbtn';
} else if ( cn.charAt(0) != 'd' ) {
cn = 'd' + cn;
}
btn.className = cn;
} else {
setAttr( btn, 'd', '0');
var cn = btn.className;
if ( cn == null ) {
cn = 'btn';
} else if ( cn.charAt(0) == 'd' ) {
cn = cn.substr(1);
}
btn.className = cn;
}
}
}
function jlToolbar_getBtnById( btn_id ) {
var tbarRow = this.childNodes[0].rows[0];
for ( jj=0; jj < tbarRow.cells.length; jj++ ) {
var td = tbarRow.cells[jj];
for ( ii=0; ii < td.childNodes.length; ii++ ) {
var tbtn = td.childNodes[ii];
if ( tbtn.tagName == 'IMG' && getAttr( tbtn, 'i') == btn_id ) {
return tbtn;
}
}
}
return null;
}
function jlToolbar_Shortcutted( btn_id ) {
var btn = this.getBtnById( btn_id );
if ( getAttr(btn, 'd') != '1' ) {
if ( this.Clicked ) {
this.Clicked( getAttr(btn, 'i') );
} else {
eval( this.id + "_Clicked('" + getAttr(btn, 'i') + "');");
}
} else {
alert("Sorry...  This toolbar button is disabled!");
}
}
function jlToolbarBtn_OnMouseOver() {
if ( getAttr(this, 'd') != '1' ) {
this.style.border = "1px solid black";
this.style.borderTop = "1px solid white";
this.style.borderLeft = "1px solid white";
}
window.status = this.title;
}
function jlToolbarBtn_OnMouseOut() {
this.style.border = "1px solid threedface";
this.style.backgroundColor = "threedface";
window.status = "";
}
function jlToolbarBtn_OnMouseUp() {
if ( getAttr(this, 'd') != '1' ) {
this.style.border = "1px solid black";
this.style.borderTop = "1px solid white";
this.style.borderLeft = "1px solid white";
}
}
function jlToolbarBtn_OnMouseDown() {
if ( getAttr(this, 'd') != '1' ) {
this.style.border="0px";
this.style.borderTop="2px solid black";
this.style.borderLeft="2px solid black";
this.style.backgroundColor="#e1e1e1";
}
}
function jlToolbarBtn_OnClick() {
if ( getAttr(this, 'd') != '1' ) {
var parent = getParent( this, "DIV" );
if ( parent == null )
return;
if ( parent.Clicked ) {
parent.Clicked( getAttr(this, 'i') );
} else {
eval( parent.id + "_Clicked('" + getAttr(this, 'i') + "');");
}
}
}
function valErr( ctl, attr_name, error_message ) {
if ( getClass(ctl) != "validation_error" ) {
setClass(ctl, "validation_error");
ctl.old_title = ctl.title;
ctl.title = error_message + " (" + ctl.old_title + ")";
} else {
ctl.title = error_message + " (" + ctl.old_title + ")";
}
status = attr_name + ": " + error_message;
if ( page_errors != '' ) {
page_errors += '\r\n';
}
page_errors += attr_name + ' - ' + error_message;
if ( page_error_focus == null ) {
page_error_focus = ctl;
}
page_has_errors = true;
}
function valClr( ctl ) {
if ( getClass(ctl) == "validation_error" ) {
setClass(ctl, "editable");
ctl.title = ctl.old_title;
}
status = "";
}
function frmIsValid( frmToCheck ) {
var has_error = false;
page_has_errors = false;
page_errors = '';
page_error_focus = null;
for (var tt=0; tt < frmToCheck.elements.length; tt++) {
var scriptValid = getAttr(frmToCheck.elements[tt], 'onIsValid');
if ( scriptValid != null && scriptValid != '' && scriptValid != undefined ) {
if ( frmToCheck.elements[tt].disabled == true ) {
valClr( frmToCheck.elements[tt] );
} else {
scriptValid = scriptValid.replace(/this,/g, 'frmToCheck.elements[' + tt + '], ');
try {
has_error = eval(scriptValid);
} catch (e) {
valErr( frmToCheck.elements[tt], frmToCheck.elements[tt].name, "Validation function failed!" );
has_error = true;
}
}
}
}
var scriptValid = getAttr(frmToCheck, 'onIsValid');
if ( scriptValid != null && scriptValid != '' && scriptValid != undefined ) {
scriptValid = scriptValid.replace(/this,/g, 'frmToCheck, ');
try {
has_error = eval(scriptValid);
} catch (e) {
has_error = true;
}
}
if ( page_has_errors ) {
alert('This page has one or more fields with validation errors:\r\n\r\n' + page_errors + '\r\n\r\nPlease correct them and try again.  For more information click the Help toolbar button.');
}
if ( page_error_focus != null ) {
try {
page_error_focus.focus();
} catch (e) {
}
}
return !page_has_errors;
}
function tinyintCheck( attr_name, ctl, is_nullable ) {
var str = ctl.value;
var re;
var vv;
if ( str.length == 0 ) {
if ( is_nullable == false ) {
valErr(ctl, attr_name, "Please enter a value for this field.");
return true;
}
valClr( ctl );
return false;
}
re = /^\d+$/;
str = str.toString();
if (!str.match(re)) {
valErr( ctl, attr_name, "This is not a correct number.");
return true;
}
if ( str.length > 3 ) {
valErr(ctl, attr_name, "The value that you have entered is too long.  (Is " + str.length + " and needs to be 3 or less.)");
return true;
}
vv = parseInt( str );
if ( vv > 255 ) {
valErr(ctl, attr_name, 'This value is too large.  You can only enter a number from 0 to 255.');
return true;
} else if ( vv < 0 ) {
valErr(ctl, attr_name, 'This value is too small.  You can only enter a number from 0 to 255.');
return true;
}
valClr( ctl );
return false;
}
function smallintCheck( attr_name, ctl, is_nullable, allow_negative ) {
var str = ctl.value;
var re;
var vv;
if ( str.length == 0 ) {
if ( is_nullable == false ) {
valErr(ctl, attr_name, "Please enter a value for this field.");
return true;
}
valClr( ctl );
return false;
}
if ( allow_negative == true ) {
re = /^[-]?\d+$/;
} else {
re = /^\d+$/;
}
str = str.toString();
str = str.replace(/,/g, "");
if (!str.match(re)) {
valErr( ctl, attr_name, "This is not a correct number.");
return true;
}
vv = parseInt( str );
if ( vv < 0 ) {
if ( allow_negative == false ) {
valErr(ctl, attr_name, 'This value can not be negative.');
return true;
} else if ( vv < -32768 ) {
valErr(ctl, attr_name, 'This value is too small.  You can only enter a number from 0 to 255.');
return true;
}
} else if ( vv > 32767 ) {
valErr(ctl, attr_name, 'This value is too large.  You can only enter a number from -32,768 to 32,767.');
return true;
}
valClr( ctl );
return false;
}
function intCheck( attr_name, ctl, is_nullable, allow_negative ) {
var str = ctl.value;
var re;
var vv;
if ( str.length == 0 ) {
if ( is_nullable == false ) {
valErr(ctl, attr_name, "Please enter a value for this field.");
return true;
}
valClr( ctl );
return false;
}
if ( allow_negative == true ) {
re = /^[-]?\d*$/;
} else {
re = /^\d*$/;
}
str = str.toString();
str = str.replace(/,/g, "");
if (!str.match(re)) {
valErr( ctl, attr_name, "This is not a correct number.");
return true;
}
vv = parseInt( str );
if ( vv > 2147483647 ) {
valErr(ctl, attr_name, 'This value is too large.  You can only enter a number from -32,768 to 32,767.');
return true;
} else if ( vv < -2147483648 ) {
valErr(ctl, attr_name, 'This value is too small.  You can only enter a number from 0 to 255.');
return true;
}
valClr( ctl );
return false;
}
function bigintCheck( attr_name, ctl, is_nullable, allow_negative ) {
var str = ctl.value;
var re;
var vv;
if ( str.length == 0 ) {
if ( is_nullable == false ) {
valErr(ctl, attr_name, "Please enter a value for this field.");
return true;
}
valClr( ctl );
return false;
}
if ( allow_negative == true ) {
re = /^[-]?\d*$/;
} else {
re = /^\d*$/;
}
str = str.toString();
str = str.replace(/,/g, "");
if (!str.match(re)) {
valErr( ctl, attr_name, "This is not a correct number.");
return true;
}
vv = parseInt( str );
if ( vv > 9223372036854775807.0 ) {
valErr(ctl, attr_name, 'This value is too large.');
return true;
} else if ( vv < -9223372036854775808.0 ) {
valErr(ctl, attr_name, 'This value is too small.');
return true;
}
valClr( ctl );
return false;
}
function realCheck( attr_name, ctl, is_nullable, allow_negative ) {
var str = ctl.value;
var re;
var vv;
if ( str.length == 0 ) {
if ( is_nullable == false ) {
valErr(ctl, attr_name, "Please enter a value for this field.");
return true;
}
valClr( ctl );
return false;
}
re = /^[-]?\d*\.?\d*$/;
str = str.toString();
str = str.replace(/,/g, "");
str = str.replace(/[$]/g, "");
if (!str.match(re)) {
valErr( ctl, attr_name, "This is not a correct number.");
return true;
}
vv = parseFloat( str );
if ( vv < 0 ) {
if ( allow_negative == false ) {
valErr(ctl, attr_name, 'This value must be a positive number.');
return true;
} else if ( vv < -3.40E+38 ) {
valErr(ctl, attr_name, 'This value is too small.  You can only enter a number from 0 to 255.');
return true;
}
} else if ( vv > 3.40E+38 ) {
valErr(ctl, attr_name, 'This value is too large.  You can only enter a number from -32,768 to 32,767.');
return true;
}
valClr( ctl );
return false;
}
function floatCheck( attr_name, ctl, is_nullable, allow_negative ) {
var str = ctl.value;
var re;
var vv;
if ( str.length == 0 ) {
if ( is_nullable == false ) {
valErr(ctl, attr_name, "Please enter a value for this field.");
return true;
}
valClr( ctl );
return false;
}
re = /^[-]?\d*\.?\d*$/;
str = str.toString().replace(/,/,'');
str = str.replace(/,/g, "");
str = str.replace(/[$]/g, "");
if (!str.match(re)) {
valErr( ctl, attr_name, "This is not a correct number.");
return true;
}
vv = parseFloat( str );
if ( isNaN(vv) ) {
valErr(ctl, attr_name, 'This value must be a number.');
return true;
} else if ( vv < 0 ) {
if ( allow_negative == false ) {
valErr(ctl, attr_name, 'This value must be a positive number.');
return true;
} else if ( vv < -1.79E+308 ) {
valErr(ctl, attr_name, 'This value is too small.  You can only enter a number from 0 to 255.');
return true;
}
} else if ( vv > 1.79E+308 ) {
valErr(ctl, attr_name, 'This value is too large.  You can only enter a number from -32,768 to 32,767.');
return true;
}
valClr( ctl );
return false;
}
function timeCheck( attr_name, ctl, is_nullable ) {
var hh, mm, ampm;
var value = strTrim(ctl.value);
var reTime1 = /\b\d{1,2}[:]\d{2}[ ][ap]\b/;
var reTime1m = /\b\d{1,2}[:]\d{2}[ ][ap][m]\b/;
var reTime2 = /\b\d{1,2}[:]\d{2}[ap]\b/;
var reTime2m = /\b\d{1,2}[:]\d{2}[ap][m]\b/;
var reTime3 = /\b\d{1,2}[ap]\b/;
var reTime3m = /\b\d{1,2}[ap][m]\b/;
var reTime4 = /\b\d{1,2}[ ][ap]\b/;
var reTime4m = /\b\d{1,2}[ ][ap][m]\b/;
if ( value.length == 0 ) {
if ( is_nullable == false ) {
valErr(ctl, attr_name, "Please enter a value for this field.");
return true;
}
valClr( ctl );
return false;
}
value = value.toLowerCase();
if ( !reTime1.test(value) && !reTime1m.test(value) && !reTime2.test(value) && !reTime2m.test(value) && !reTime3.test(value) && !reTime3m.test(value) && !reTime4.test(value) && !reTime4m.test(value) ) {
valErr(ctl, attr_name, "Incorrect time format.  Please enter the time using the format \"h:mm a\" or \"h:mm p\".)");
return true;
} else {
var delim1 = value.indexOf(':');
var delim2 = value.indexOf(' ');
var ampmPosition = delim2 + 1;
if ( delim2 == -1 ) {
delim2 = value.indexOf('a');
if ( delim2 == -1 ) {
delim2 = value.indexOf('p');
}
ampmPosition = delim2;
}
if ( delim1 == -1 ) {
delim1 = delim2;
}
hh = parseInt(value.substring(0, delim1), 10);
if ( delim1 != delim2 ) {
mm = parseInt(value.substring(delim1+1, delim2), 10);
} else {
mm = 0;
}
ampm = value.substr(ampmPosition, 1);
if ( hh < 1 || hh > 12 ) {
valErr(ctl, attr_name, "Please check the hours value. (1 to 12)");
return true;
} else if ( mm < 0 || mm > 59 ) {
valErr(ctl, attr_name, "Please check the minutes value. (0 to 59)");
return true;
} else if ( ampm == 'a' ) {
ampm = 'am';
} else if ( ampm == 'p' ) {
ampm = 'pm';
} else {
valErr(ctl, attr_name, "Please check the am/pm value. (am or pm)");
return true;
}
value = timeFormatHMAM(hh, mm, ampm);
}
ctl.value = value;
valClr( ctl );
return false;
}
function strCheck( attr_name, ctl, max_length, is_nullable ) {
if ( ctl.value.length == 0 ) {
if ( is_nullable == false ) {
valErr(ctl, attr_name, "Please enter a value for this field.");
return true;
}
valClr( ctl );
return false;
}
if ( ctl.value.length > max_length ) {
valErr(ctl, attr_name, "The value that you have entered is too long.  (Is " + ctl.value.length + " and needs to be " + max_length + " or less.)");
return true;
}
valClr( ctl );
return false;
}
function fileCheck( attr_name, ctl, is_nullable ) {
var sFileName = '';
var vv = ctl.value;
if ( vv != null ) {
sFileName = vv.toString();
}
if ( sFileName.length == 0 ) {
if ( is_nullable == false ) {
valErr(ctl, attr_name, "Please enter a value for this field.");
return true;
}
valClr( ctl );
return false;
}
valClr( ctl );
return false;
}
function emailCheck( attr_name, ctl, max_length, is_nullable ) {
if ( strCheck( attr_name, ctl, max_length, is_nullable ) ) {
return true;
}
var str = ctl.value;
var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
if (!str.match(re)) {
valErr( ctl, attr_name, "Please check your email address.  It should be in name@domain.com format.");
return true;
}
valClr( ctl );
return false;
}
function colorCheck( attr_name, ctl, is_nullable ) {
if ( strCheck( attr_name, ctl, 7, is_nullable ) ) {
return true;
}
var str = ctl.value;
if ( str.length != 0 ) {
var re = /^#[0-9a-fA-F]{6}$/;
if (!str.match(re)) {
valErr( ctl, attr_name, "Please check your color value.  It should be in the form of the symbol pound (#) followed by 6 hexidecimal digits.");
return true;
}
}
valClr( ctl );
return false;
}
function creditcardCheck( attr_name, ctl, max_length, is_nullable ) {
var str = ctl.value;
var re = /^\d*$/;
str = str.replace(/[ ]/g, '');
str = str.replace(/[-]/g, '');
if ( str != ctl.value ) {
ctl.value = str;
}
if ( str.length == 0 ) {
if ( is_nullable == false ) {
valErr(ctl, attr_name, "Please enter a credit card number.");
return true;
}
valClr( ctl );
return false;
}
if ( str.length > max_length ) {
valErr(ctl, attr_name, "This credit card number is too long.  (Is " + str.length + " and needs to be " + max_length + " or less.");
return true;
}
str = str.toString();
if (!str.match(re)) {
valErr( ctl, attr_name, "This is not a correct credit card number.");
return true;
}
valClr( ctl );
return false;
}
function smalldateCheck( attr_name, ctl, is_nullable ) {
var mm, dd, yyyy;
var value = ctl.value;
var reLong = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{4}\b/;
var reShort = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{2}\b/;
var reRelative = /[+-]\d+/;
if ( ctl.value.length == 0 ) {
if ( is_nullable == false ) {
valErr(ctl, attr_name, "Please enter a date for this field.");
return true;
}
valClr( ctl );
return false;
}
if ( ctl.value.length > 10 ) {
valErr(ctl, attr_name, "The value that you have entered is too long.  (Is " + ctl.value.length + " and needs to be 10 or less.)");
return true;
}
var valid = (reLong.test(value)) || (reShort.test(value));
if ( reRelative.test(value) ) {
var today = new Date();
today.setDate( today.getDate() + ( (value.substring(0, 1) == '-') ? -1 : 1 ) * parseInt( value.substring(1), 10 ) );
mm = today.getMonth()+1;
dd = today.getDate();
yyyy = today.getFullYear();
if ( yyyy < 1900 || yyyy >= 2079 ) {
valErr(ctl, attr_name, "The year is out of range.  (Must be in the range of 1900 to 2078.)");
return true;
} else {
ctl.value = dateFormatMDY(mm, dd, yyyy);
valClr( ctl );
}
} else if (valid) {
var delimChar = (value.indexOf("/") != -1) ? "/" : "-";
var delim1 = value.indexOf(delimChar);
var delim2 = value.lastIndexOf(delimChar);
mm = parseInt(value.substring(0, delim1), 10);
dd = parseInt(value.substring(delim1+1, delim2), 10);
yyyy = parseInt(value.substring(delim2+1), 10);
if (yyyy < 100) {
var today = new Date();
var currCent = parseInt(today.getFullYear() / 100) * 100;
var threshold = (today.getFullYear() + 15) - currCent;
if (yyyy > threshold) {
yyyy += currCent - 100;
} else {
yyyy += currCent;
}
}
if ( yyyy < 1900 || yyyy >= 2079 ) {
valErr(ctl, attr_name, "The year is out of range.  (Must be in the range of 1900 to 2078.)");
return true;
}
var testDate = new Date(yyyy, mm-1, dd);
if (testDate.getDate() == dd) {
if (testDate.getMonth() + 1 == mm) {
if (testDate.getFullYear() == yyyy) {
ctl.value = dateFormatMDY(mm, dd, yyyy);
valClr( ctl );
return false;
} else {
valErr(ctl, attr_name, "Please check the year value.");
return true;
}
} else {
valErr(ctl, attr_name, "Please check the month value.");
return true;
}
} else {
valErr(ctl, attr_name, "Please check the day value.");
return true;
}
} else {
valErr(ctl, attr_name, "Incorrect date format.  Please enter the date using mm/dd/yyyy format.");
return true;
}
valClr( ctl );
return false;
}
function dateCheck( attr_name, ctl, is_nullable ) {
var mm, dd, yyyy;
var value = ctl.value;
var reLong = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{4}\b/;
var reShort = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{2}\b/;
var reRelative = /[+-]\d+/;
if ( ctl.value.length == 0 ) {
if ( is_nullable == false ) {
valErr(ctl, attr_name, "Please enter a date for this field.");
return true;
}
valClr( ctl );
return false;
}
if ( ctl.value.length > 10 ) {
valErr(ctl, attr_name, "The value that you have entered is too long.  (Is " + ctl.value.length + " and needs to be 10 or less.)");
return true;
}
var valid = (reLong.test(value)) || (reShort.test(value));
if ( reRelative.test(value) ) {
var today = new Date();
today.setDate( today.getDate() + ( (value.substring(0, 1) == '-') ? -1 : 1 ) * parseInt( value.substring(1), 10 ) );
mm = today.getMonth()+1;
dd = today.getDate();
yyyy = today.getFullYear();
ctl.value = dateFormatMDY(mm, dd, yyyy);
valClr( ctl );
} else if (valid) {
var delimChar = (value.indexOf("/") != -1) ? "/" : "-";
var delim1 = value.indexOf(delimChar);
var delim2 = value.lastIndexOf(delimChar);
mm = parseInt(value.substring(0, delim1), 10);
dd = parseInt(value.substring(delim1+1, delim2), 10);
yyyy = parseInt(value.substring(delim2+1), 10);
if (yyyy < 100) {
var today = new Date();
var currCent = parseInt(today.getFullYear() / 100) * 100;
var threshold = (today.getFullYear() + 15) - currCent;
if (yyyy > threshold) {
yyyy += currCent - 100;
} else {
yyyy += currCent;
}
}
var testDate = new Date(yyyy, mm-1, dd);
if (testDate.getDate() == dd) {
if (testDate.getMonth() + 1 == mm) {
if (testDate.getFullYear() == yyyy) {
ctl.value = dateFormatMDY(mm, dd, yyyy);
valClr( ctl );
return false;
} else {
valErr(ctl, attr_name, "Please check the year value.");
return true;
}
} else {
valErr(ctl, attr_name, "Please check the month value.");
return true;
}
} else {
valErr(ctl, attr_name, "Please check the day value.");
return true;
}
} else {
valErr(ctl, attr_name, "Incorrect date format.  Please enter the date using mm/dd/yyyy format.");
return true;
}
valClr( ctl );
return false;
}
function datetimeCheck( attr_name, ctl, is_nullable ) {
var mm, dd, yyyy, hh, mm, ampm;
var value = ctl.value;
var reLongPureDate = /^\d{1,2}[\/-]\d{1,2}[\/-]\d{4}$/;
var reShortPureDate = /\d{1,2}[\/-]\d{1,2}[\/-]\d{2}$/;
var reLong = /^\d{1,2}[\/-]\d{1,2}[\/-]\d{4} \d{1,2}:\d{1,2} [apAP][mM]?$/;
var reShort = /^\d{1,2}[\/-]\d{1,2}[\/-]\d{2} \d{1,2}:\d{1,2} [apAP][mM]?$/;
var reRelative = /[+-]\d+/;
var timeFormatted = '';
if ( ctl.value.length == 0 ) {
if ( is_nullable == false ) {
valErr(ctl, attr_name, "Please enter a date for this field.");
return true;
}
valClr( ctl );
return false;
}
if ( ctl.value.length > 19 ) {
valErr(ctl, attr_name, "The value that you have entered is too long.  (Is " + ctl.value.length + " and needs to be 19 or less.)");
return true;
}
var valid = (reLong.test(value)) || (reShort.test(value) || reLongPureDate.test(value) || reShortPureDate.test(value));
if ( reRelative.test(value) ) {
var today = new Date();
today.setDate( today.getDate() + ( (value.substring(0, 1) == '-') ? -1 : 1 ) * parseInt( value.substring(1), 10 ) );
mm = today.getMonth()+1;
dd = today.getDate();
yyyy = today.getFullYear();
hh = today.getHours();
nn = today.getMinutes();
if ( hh > 12 ) {
ampm = 'pm';
hh -= 12;
} else {
ampm = 'am';
}
timeFormatted = " " + timeFormatHMAM(hh, nn, ampm);
ctl.value = dateFormatMDY(mm, dd, yyyy) + timeFormatted;
valClr( ctl );
} else if (valid) {
var delimChar = (value.indexOf("/") != -1) ? "/" : "-";
var delim1 = value.indexOf(delimChar);
var delim2 = value.lastIndexOf(delimChar);
var delimtime = value.indexOf(" ");
var delimNN = value.indexOf(":");
var delim4 = value.lastIndexOf(" ");
mm = parseInt(value.substring(0, delim1), 10);
dd = parseInt(value.substring(delim1+1, delim2), 10);
yyyy = parseInt(value.substring(delim2+1), 10);
if ( delimtime != -1 ) {
hh = parseInt(value.substring(delimtime + 1, delimNN), 10);
nn = parseInt(value.substring(delimNN + 1, delim4), 10);
ampm = value.substring(delim4+1).toLowerCase();
if ( hh < 1 || hh > 12 ) {
valErr(ctl, attr_name, "Please check the hours value.  Needs to be from 1 to 12.");
return true;
} else if ( nn < 0 || nn > 59 ) {
valErr(ctl, attr_name, "Please check the minutes value.  Needs to be from 0 to 59.");
return true;
} else if ( ampm == 'a' || ampm == 'p' ) {
ampm += 'm';
} else if ( ampm != 'am' && ampm != 'pm' ) {
valErr(ctl, attr_name, "Please check the am/pm area.  Needs to be either am or pm.");
return true;
}
timeFormatted = " " + timeFormatHMAM(hh, nn, ampm);
} else {
timeFormatted = "";
}
if (yyyy < 100) {
var today = new Date();
var currCent = parseInt(today.getFullYear() / 100) * 100;
var threshold = (today.getFullYear() + 15) - currCent;
if (yyyy > threshold) {
yyyy += currCent - 100;
} else {
yyyy += currCent;
}
}
var testDate = new Date(yyyy, mm-1, dd);
if (testDate.getDate() == dd) {
if (testDate.getMonth() + 1 == mm) {
if (testDate.getFullYear() == yyyy) {
ctl.value = dateFormatMDY(mm, dd, yyyy) + timeFormatted;
valClr( ctl );
return false;
} else {
valErr(ctl, attr_name, "Please check the year value.");
return true;
}
} else {
valErr(ctl, attr_name, "Please check the month value.");
return true;
}
} else {
valErr(ctl, attr_name, "Please check the day value.");
return true;
}
} else {
valErr(ctl, attr_name, "Incorrect date/time format.  Please enter the date using mm/dd/yyyy hh:mm am format.  Or, you can use + or - and a number if relative to today.");
return true;
}
valClr( ctl );
return false;
}
function jlDIVPanelInit( div_id, panel_selector_element_prefix, unselected_panel_selector_element_class, selected_panel_selector_element_class, transition_time_in_ms, do_auto_transitions, auto_transition_time_in_ms ) {
var ele = g( div_id );
if ( ele != null ) {
ele.panel_selector_element_prefix = panel_selector_element_prefix;
ele.unselected_panel_selector_element_class = unselected_panel_selector_element_class;
ele.selected_panel_selector_element_class = selected_panel_selector_element_class;
ele.transition_time_in_ms = transition_time_in_ms;
for ( var tt=ele.childNodes.length-1; tt >=0 ; tt-- ) {
if ( ele.childNodes[tt].nodeType == 3 ) {
ele.removeChild( ele.childNodes[tt] );
}
}
ele.panel_count = ele.childNodes.length;
ele.old_panel_id = 0;
ele.current_panel_id = 1;
ele.do_auto_panel_transitions = do_auto_transitions;
ele.auto_transition_time_in_ms = auto_transition_time_in_ms;
ele.opacity_per_step = 10;
for ( var tt = 0; tt < ele.panel_count; tt++ ) {
var div = ele.childNodes[tt];
div.style.left = '0px';
div.style.top = '0px';
div.style.width = ele.style.width;
div.style.height = ele.style.height;
div.style.overflow = 'auto';
if ( div.style.backgroundColor == '' || div.style.backgroundColor == null ) {
div.style.backgroundColor = '#ffffff';
}
div.style.zIndex = ele.panel_count - tt;
div.style.position = 'absolute';
if ( tt != 0 ) {
setOpacity(div, 0);
}
}
ele.doAutoTransition = jlDIVPanel_doAutoTransition;
ele.setPanel = jlDIVPanel_setPanel;
ele.divOpacitySet = jlDIVPanel_divOpacitySet;
ele.divDone = jlDIVPanel_divDone;
if ( ele.do_auto_panel_transitions ) {
setTimeout(' try { ' + div_id + '.doAutoTransition() } catch (e) {}', ele.auto_transition_time_in_ms);
}
}
}
function jlDIVPanel_doAutoTransition() {
if ( this.do_auto_panel_transitions == true ) {
var new_panel_id = this.current_panel_id + 1;
if ( new_panel_id > this.panel_count ) {
new_panel_id = 1;
}
this.setPanel( new_panel_id, this.do_auto_panel_transitions);
setTimeout(' try { ' + this.id + '.doAutoTransition() } catch (e) {}', this.auto_transition_time_in_ms);
}
}
function jlDIVPanel_setPanel( new_panel_id, continue_auto_transitions ) {
this.do_auto_panel_transitions = continue_auto_transitions;
if ( this.current_panel_id != new_panel_id ) {
this.old_panel_id = this.current_panel_id;
this.current_panel_id = new_panel_id;
var divOld = null;
var transition_time_in_ms = this.transition_time_in_ms;
var divNew = this.childNodes[new_panel_id-1];
var old_panel_id = this.old_panel_id;
if ( old_panel_id != 0 ) {
divOld = this.childNodes[old_panel_id-1];
divOld.style.zIndex = 1;
g( this.panel_selector_element_prefix + old_panel_id).className = this.unselected_panel_selector_element_class;
}
g( this.panel_selector_element_prefix + new_panel_id).className = this.selected_panel_selector_element_class;
var opacity_per_step = this.opacity_per_step
var step_count = 100 / opacity_per_step;
var step_time_in_ms = Math.round(transition_time_in_ms / step_count);
divNew.style.zIndex = this.panel_count;
var time = 0;
for ( var tt = 0; tt <= 100; tt+=opacity_per_step) {
setTimeout('try { ' + this.id + '.divOpacitySet(' + tt + ') } catch (e) {}', time );
time += step_time_in_ms;
}
setTimeout('try { ' + this.id + '.divDone(); } catch (e) {};', time );
}
}
function jlDIVPanel_divOpacitySet( opacity ) {
var new_panel_id = this.current_panel_id;
var divNew = this.childNodes[new_panel_id-1];
setOpacity( divNew, opacity );
}
function jlDIVPanel_divDone() {
var old_panel_id = this.old_panel_id;
if ( old_panel_id != 0 ) {
var divOld = this.childNodes[old_panel_id-1];
setOpacity(divOld, 0);
divOld.style.zIndex = 1;
}
}
function setOpacity( ele, opacity) {
var styleDIV = ele.style;
styleDIV.opacity = (opacity / 100);
styleDIV.MozOpacity = (opacity / 100);
styleDIV.KhtmlOpacity = (opacity / 100);
styleDIV.filter = 'alpha(opacity=' + opacity + ')';
}
