|
Server : Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/1.0.0-fips mod_auth_passthrough/2.1 mod_bwlimited/1.4 System : Linux server.jackjohnson.com 2.6.32-279.5.2.el6.x86_64 #1 SMP Fri Aug 24 01:07:11 UTC 2012 x86_64 User : jackjohn ( 502) PHP Version : 5.3.17 Disable Function : NONE Directory : /home/jackjohn/www/style/javascript/ |
Upload File : |
/* Menu Functions */
// -----------------------------------------------------------------------------
// Function : toggleCheckboxesWithPrefix
// Description :
// Usage : <input type="checkbox" ... onclick="toggleCheckboxesWithPrefix(this.checked, 'fieldPrefix')">
// -----------------------------------------------------------------------------
function toggleCheckboxesWithPrefix(checkBool, prefix) {
// TODO: we could update this function to look over all the elements in the page
// instead of just in the first form
var prefixRegexp = new RegExp('^' + prefix);
var thisForm = document.forms[0];
var elementCount = thisForm.length; // element count
for (index=0; index < elementCount; index++) {
var thisElement = thisForm.elements[index];
if (thisElement.type != 'checkbox') { continue; }
if (!thisElement.name.match(prefixRegexp)) { continue; }
thisElement.checked = checkBool;
}
}
/* ------------------------------------------------------------------------- *\
Function : previewWithoutSaving
Description :
Usage :
\* ------------------------------------------------------------------------- */
function previewWithoutSaving(formId, menuName) {
var formObj = document.getElementById(formId);
var previewField = document.getElementById('_preview');
//
saveWysiwygContentToHiddenFields();
// set form target and preview field
formObj.target = "_blank";
previewField.name = "action=" +menuName+ "Preview";
formObj.submit();
// reset form target and preview field to original values
formObj.target = "";
previewField.name = previewField.id;
}
// -----------------------------------------------------------------------------
// Function : uploadFiles
// Description : popup an upload window
// -----------------------------------------------------------------------------
function uploadFilesPopup(tablename, fieldname, uploadType) {
// error checking
if (typeof(tablename) == 'tablename' || tablename == '') { error('uploadFiles: no tablename specified!'); }
if (typeof(fieldname) == 'undefined' || fieldname == '') { error('uploadFiles: no fieldname specified!'); }
if (typeof(uploadType) == 'undefined' || uploadType == '') { error('uploadFiles: no uploadType specified!'); }
// get max uploads allowed (minus the number already uploaded
var listdata = _listdata_loadAll(fieldname);
var maxRows = document.getElementById(fieldname + ':maximum_rows_allowed').value;
var rowCount = _dlist_getVisibleRowCount(listdata);
var maxUploads = maxRows - rowCount;
if (maxUploads <= 0) { error('uploadFiles: no more uploads are allowed!'); }
// launch child window
var _cgiurl = document.getElementById('_cgiurl').value;
var url = _cgiurl + '?action=uploadForm';
url += '&tablename=' + tablename;
url += '&fieldname=' + fieldname;
url += '&uploadType=' + uploadType;
url += '&maxUploads=' + maxUploads;
popup(url, 775, 400, 'uploadWindow');
}
// -----------------------------------------------------------------------------
// Function : modifyUploadAttributes
// Description : popup a modify attributes window
// Usage : onclick="modifyUploadAttributesPopup(fieldname, uploadType)"
// -----------------------------------------------------------------------------
function modifyUploadAttributesPopup(tablename, fieldname, uploadType) {
// error checking
if (typeof(tablename) == 'tablename' || tablename == '') { error('uploadFiles: no tablename specified!'); }
if (typeof(fieldname) == 'undefined' || fieldname == '') { error('modifyUploadAttributes: no fieldname specified!'); }
if (typeof(uploadType) == 'undefined' || uploadType == '') { error('modifyUploadAttributes: no uploadType specified!'); }
// get max uploads allowed (minus the number already uploaded
var listdata = _listdata_loadAll(fieldname);
var maxRows = document.getElementById(fieldname + ':maximum_rows_allowed').value;
var rowCount = _dlist_getVisibleRowCount(listdata);
var maxUploads = maxRows - rowCount;
// launch child window
var _cgiurl = document.getElementById('_cgiurl').value;
var url = _cgiurl + '?action=modifyUploadAttributes';
url += '&tablename=' + tablename;
url += '&fieldname=' + fieldname;
url += '&uploadType=' + uploadType;
url += '&maxUploads=' + maxUploads;
popup(url, 775, 400, 'uploadWindow');
}
// -----------------------------------------------------------------------------
// Function : createListRowForSingleUpload
// Description : create HTML for a row (used when generating and updating list)
// -----------------------------------------------------------------------------
function createListRowForSingleUpload(fields) {
// short alias fields
var fnPrefix = fields._listname +':'+ fields._num +':'; // fieldname:rownum
var nameNumArgs = "'" + fields._listname + "','" + fields._num + "'"; // 'listname','rownum'
// html encoded values before we insert them into HTML
for (var thisname in fields) {
fields[thisname] = htmlEncode( fields[thisname] );
}
//
// NOTE: All Form fields must have fieldname Prefixes!
//
// define extra fields
var _uploadurl = document.getElementById('_uploadurl').value;
var previewImageHTML = '';
if (fields.isImage == 1) {
if (fields.hasThumbnail == 1) { previewImageHTML = '<img src="' +_uploadurl +fields.thumbnailPathFromUploadDir+ '" width=50 border=0>'; }
else { previewImageHTML = '<img src="' +_uploadurl +fields.pathFromUploadDir+ '" width=50 border=0>'; }
previewImageHTML = '<a href="' +_uploadurl +fields.pathFromUploadDir+ '" target="_BLANK">' +previewImageHTML+ '</a>'
}
// generate row HTML
var tablename = document.getElementById('_tablename').value;
var fieldname = fields._listname;
var uploadType = document.getElementById(fieldname + ':uploadType').value;
var rowHTML = ''
+ ' <tr id="' +fields._listname+ ':' +fields._num+ '">\n'
+ ' <td>\n'
+ ' <table cellpadding="0" cellspacing="0" border="0" width="0" align="left" height="40">\n'
+ ' <tr>\n'
+ ' <td>'+previewImageHTML+'</td>\n'
+ ' <td> </td>\n'
+ ' <td valign="top">\n'
+ ' <b>'+fields.title+'</b> ('+fields.filename+')<br>\n'
+ '<span class="fakelink" onclick="modifyUploadAttributesPopup(\'' +tablename+ '\',\'' +fieldname+ '\',\'' +uploadType+ '\')">modify</span> - '
+ '<span class="fakelink" onclick="if(confirm(\'Are you sure you want to remove this file?\\n'+fields.title+' ('+fields.filename+')\')){dlist_removeRow(' +nameNumArgs+ ')}">remove</span> '
+ ' </td>\n'
+ ' </tr>\n'
+ ' </table>\n'
+' </td>\n'
+ ' </tr>\n';
return rowHTML;
}
// -----------------------------------------------------------------------------
// Function : createListRowForAttachmentUpload
// Description : create HTML for a row (used when generating and updating list)
// -----------------------------------------------------------------------------
function createListRowForAttachmentUpload(fields) {
// short alias fields
var fnPrefix = fields._listname +':'+ fields._num +':'; // fieldname:rownum
var nameNumArgs = "'" + fields._listname + "','" + fields._num + "'"; // 'listname','rownum'
// html encoded values before we insert them into HTML
for (var thisname in fields) {
fields[thisname] = htmlEncode( fields[thisname] );
}
//
// NOTE: All Form fields must have fieldname Prefixes!
//
// define extra fields
var _uploadurl = document.getElementById('_uploadurl').value;
var previewImageHTML = '';
if (fields.isImage == 1) {
if (fields.hasThumbnail == 1) { previewImageHTML = '<img src="' +_uploadurl +fields.thumbnailPathFromUploadDir+ '" width=50 border=0>'; }
else { previewImageHTML = '<img src="' +_uploadurl +fields.pathFromUploadDir+ '" width=50 border=0>'; }
previewImageHTML = '<a href="' +_uploadurl +fields.pathFromUploadDir+ '" target="_BLANK">' +previewImageHTML+ '</a>'
}
// generate row HTML
var tablename = document.getElementById('_tablename').value;
var fieldname = fields._listname;
var uploadType = document.getElementById(fieldname + ':uploadType').value;
var rowHTML = ''
+ ' <tr id="' +fields._listname+ ':' +fields._num+ '">\n'
+' <td align=center>\n'
+' <span class="fakelink" onclick="dlist_moveRow(' +nameNumArgs + ', \'up\')">UP</span> |\n'
+' <span class="fakelink" onclick="dlist_moveRow(' +nameNumArgs + ', \'down\')">DN</span>\n'
+' </td>\n'
+ ' <td>'+previewImageHTML+'</td>\n'
+ ' <td>\n'
+ ' <b>'+fields.title+'</b> ('+fields.filename+')<br>\n'
// + ' ' +fields.caption+ '\n'
+ ' </td>\n'
+ ' <td align=center> '
+ '<span class="fakelink" onclick="modifyUploadAttributesPopup(\'' +tablename+ '\',\'' +fieldname+ '\',\'' +uploadType+ '\')">modify</span> '
+ '<span class="fakelink" onclick="if(confirm(\'Are you sure you want to remove this file?\\n'+fields.title+' ('+fields.filename+')\')){dlist_removeRow(' +nameNumArgs+ ')}">remove</span> '
+ '</td>\n'
+ ' </tr>\n';
return rowHTML;
}
// -----------------------------------------------------------------------------
// Function : createListRowForMediaUpload
// Description : create HTML for a row (used when generating and updating list)
// -----------------------------------------------------------------------------
function createListRowForMediaUpload(fields) {
// short alias fields
var fnPrefix = fields._listname +':'+ fields._num +':'; // fieldname:rownum
var nameNumArgs = "'" + fields._listname + "','" + fields._num + "'"; // 'listname','rownum'
// html encoded values before we insert them into HTML
for (var thisname in fields) {
fields[thisname] = htmlEncode( fields[thisname] );
}
//
// NOTE: All Form fields must have fieldname Prefixes!
//
// define extra fields
var _uploadurl = document.getElementById('_uploadurl').value;
var previewImageHTML = '';
if (fields.isImage == 1) {
if (fields.hasThumbnail == 1) { previewImageHTML = '<img src="' +_uploadurl +fields.thumbnailPathFromUploadDir+ '" width=50 border=0>'; }
else { previewImageHTML = '<img src="' +_uploadurl +fields.pathFromUploadDir+ '" width=50 border=0>'; }
previewImageHTML = '<a href="' +_uploadurl +fields.pathFromUploadDir+ '" target="_BLANK">' +previewImageHTML+ '</a>'
}
var thumbnailYesNo = (fields.useThumbnail == 1) ? 'Yes' : 'No';
var linkedText;
if (fields.linkTo == 'image') { linkedText = 'Linked to: image'; }
else if (fields.linkTo == 'url') { linkedText = 'Linked to: url'; }
else { linkedText = 'Linked: No'; }
if (fields.linkTo != '' && fields.openLinkInNewWindow) { linkedText += " (opens new window)"; }
// generate row HTML
var tablename = document.getElementById('_tablename').value;
var fieldname = fields._listname;
var uploadType = document.getElementById(fieldname + ':uploadType').value;
var rowHTML = ''
+ ' <tr id="' +fields._listname+ ':' +fields._num+ '">\n'
+ ' <td>'+previewImageHTML+'</td>\n'
+ ' <td>***' + fields._listname + fields._num + '***</td>\n'
+ ' <td>\n'
+ ' <b>'+fields.title+'</b> ('+fields.filename+')<br>\n'
+ ' <span class="properties">\n'
+ ' <b>Properties:</b>\n'
+ ' Align: '+fields.align+',\n'
+ ' Thumbnail: '+thumbnailYesNo+',\n'
+ ' '+linkedText+'\n'
+ ' </td>\n'
+ ' <td align=center> '
+ '<span class="fakelink" onclick="modifyUploadAttributesPopup(\'' +tablename+ '\',\'' +fieldname+ '\',\'' +uploadType+ '\')">modify</span> '
+ '<span class="fakelink" onclick="if(confirm(\'Are you sure you want to remove this file?\\n'+fields.title+' ('+fields.filename+')\')){dlist_removeRow(' +nameNumArgs+ ')}">remove</span> '
+ '</td>\n'
+ ' </tr>\n';
return rowHTML;
}
function browseForDirOrFile(dirOrFile, targetFieldID) { //launch popup
var targetFieldElement = document.getElementById(targetFieldID);
// error checking
if (dirOrFile != 'dir' && dirOrFile != 'file') { error("First argument must be 'dir' or 'file', not '" +dirOrFile+ "'"); }
if (targetFieldID == '') { error("Second argument is blank. Should be targetFieldID"); }
if (targetFieldElement == null) { error("No fields found with an ID of '" +targetFieldID+ "' in the current form!"); }
if (targetFieldElement.name != targetFieldID) { error("target field '" +targetFieldID+ "' must have the same value for it's 'name' and 'id'"); }
// create popup browser url
var url = '?action=';
url += (dirOrFile == 'dir') ? 'browseForDir' : 'browseForFile';
url += '&target_field_name_and_id=' + escape(targetFieldID);
url += '&target_field_value=' + escape(targetFieldElement.value);
// open a popup window
popup(url, 500, 350);
return true;
}
function updateTargetFieldInParentWindow(targetFieldNameAndId, newValue){
var targetField = opener.document.getElementById(targetFieldNameAndId);
targetField.value = newValue;
window.close();
}
function closePopupIfTargetFieldBecomesUnavailable(targetFieldNameAndId) {
var targetElementStillExists = opener.document.getElementById(targetFieldNameAndId);
if (!targetElementStillExists) { window.close(); }
// check again every N seconds
var coderef = function() { closePopupIfTargetFieldBecomesUnavailable(targetFieldNameAndId); };
var milliseconds = 500;
setTimeout(coderef, milliseconds);
}
// -----------------------------------------------------------------------------
// Function :
// Description :
// Usage :
// -----------------------------------------------------------------------------
function toggleDisplayOfPop3AuthFields(isDisplayed) {
var fieldsContainer = document.getElementById('pop3AuthFields');
var displayFields = document.getElementById('pop3RequiredCheckbox').checked;
if (displayFields) { fieldsContainer.style.display = ''; }
else { fieldsContainer.style.display = 'none'; }
}
// -----------------------------------------------------------------------------
// Function :
// Description :
// Usage :
// -----------------------------------------------------------------------------
function testEmail() {
// load form field values
var sender_name = getFormFieldValueByName('sender_name');
var sender_email = getFormFieldValueByName('sender_email');
var send_mail_with = getFormFieldValueByName('send_mail_with');
var sendmail_path = getFormFieldValueByName('sendmail_path');
var smtp_hostname = getFormFieldValueByName('smtp_hostname');
var POP3Auth_field = (document.getElementsByName('pop3_login_required_before_smtp'))[1];
var pop3_login_required_before_smtp = POP3Auth_field.checked ? POP3Auth_field.value : ''; //getFormFieldValueByName doesn't support multiple checkboxes with the same name
var pop3auth_hostname = getFormFieldValueByName('pop3auth_hostname');
var pop3auth_username = getFormFieldValueByName('pop3auth_username');
var pop3auth_password = getFormFieldValueByName('pop3auth_password');
var admin_email = getFormFieldValueByName('admin_email');
// build url
var url = '?action=admin_testmail'
url += '&sender_name=' + escape(sender_name);
url += '&sender_email=' + escape(sender_email);
url += '&send_mail_with=' + escape(send_mail_with);
url += '&sendmail_path=' + escape(sendmail_path);
url += '&smtp_hostname=' + escape(smtp_hostname);
url += '&pop3_login_required_before_smtp=' + escape(pop3_login_required_before_smtp);
url += '&pop3auth_hostname=' + escape(pop3auth_hostname);
url += '&pop3auth_username=' + escape(pop3auth_username);
url += '&pop3auth_password=' + escape(pop3auth_password);
url += '&email=' + escape(admin_email);
// error checking
var errors = '';
if (sender_name == '') { errors += "Sender name may not be left blank!\n"; }
if (sender_email == '') { errors += "Sender email may not be left blank!\n"; }
if (admin_email == '') { errors += "Admin email may not be left blank!\n"; }
if (send_mail_with == '') { errors += "'Send mail with' may not be left blank!\n"; }
if (send_mail_with == 'SENDMAIL') {
if (sendmail_path == '') { errors += "Sendmail path may not be left blank!\n"; }
}
else if (send_mail_with == 'SMTP') {
if (smtp_hostname == '') { errors += "SMTP Hostname may not be left blank!\n"; }
if (pop3_login_required_before_smtp) {
if (pop3auth_hostname == '') { errors += "POP3 Server may not be left blank!\n"; }
if (pop3auth_username == '') { errors += "POP3 Username may not be left blank!\n"; }
if (pop3auth_password == '') { errors += "POP3 Password may not be left blank!\n"; }
}
}
else {
errors += "Unknown value for 'Send mail with'. Must be 'SENDMAIL' or 'SMTP'!\n";
}
if (errors) {
alert(errors);
return;
}
// launch test email popup
popup(url, 400, 200);
}
/* ------------------------------------------------------------------------- */