<? /* * This file is part of the 'Science Fair In A Box' project * SFIAB Website: http://www.sfiab.ca * * Copyright (C) 2005 Sci-Tech Ontario Inc <info@scitechontario.org> * Copyright (C) 2008 James Grant <james@lightbox.org> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation, version 2. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ ?> <? require ('../common.inc.php'); require_once ('../user.inc.php'); user_auth_required('committee', 'admin'); require_once ('fundraising_common.inc.php'); global $pdo; switch (get_value_from_array($_GET, 'action')) { case 'organizationinfo_load': $id = intval($_GET['id']); $q = $pdo->prepare('SELECT * FROM sponsors WHERE id=?'); $q->execute([$id]); $ret = $q->fetch(PDO::FETCH_ASSOC); echo json_encode($ret); exit; break; case 'organizationinfo_save': $id = intval($_POST['sponsor_id']); if ($id == -1) { $q = $pdo->prepare('INSERT INTO sponsors (year) VALUES (?)'); $q->execute([$config['FAIRYEAR']]); $id = $pdo->lastInsertId(); echo json_encode(array('id' => $id)); save_activityinfo('Created donor/sponsor', $id, $_SESSION['users_uid'], 'System'); $createnew = true; } else $createnew = false; if ($id) { if ($_POST['fundingselectiondate'] == '') { $_POST['fundingselectiondate'] = '0000-00-00'; } if ($_POST['proposalsubmissiondate'] == '') { $_POST['proposalsubmissiondate'] = '0000-00-00'; } if (!$_POST['waiveraccepted']) { $_POST['waiveraccepted'] = 'no'; } $exec = 'UPDATE sponsors SET ' . 'donortype=?, ' . 'organization=?, ' . 'address=?, ' . 'address2=?, ' . 'city=?, ' . 'province_code=?, ' . 'postalcode=?, ' . 'phone=?, ' . 'tollfree=?, ' . 'fax=?, ' . 'email=?, ' . 'website=?, ' . 'notes=?, ' . 'donationpolicyurl=?, ' . 'fundingselectiondate=?, ' . 'proposalsubmissiondate=?, ' . 'waiveraccepted=? ' . 'WHERE id=?'; $q = $pdo->prepare($exec); $q->execute([stripslashes($_POST['donortype']), stripslashes($_POST['organization']), stripslashes($_POST['address']), stripslashes($_POST['address2']), stripslashes($_POST['city']), stripslashes($_POST['province_code']), stripslashes($_POST['postalcode']), stripslashes($_POST['phone']), stripslashes($_POST['tollfree']), stripslashes($_POST['fax']), stripslashes($_POST['email']), stripslashes($_POST['website']), stripslashes($_POST['notes']), stripslashes($_POST['donationpolicyurl']), stripslashes($_POST['fundingselectiondate']), stripslashes($_POST['proposalsubmissiondate']), stripslashes($_POST['waiveraccepted']), $id]); show_pdo_errors_if_any($pdo); // FIXME accept the logo // "logo='".mysql_escape_string(stripslashes($_POST['logo']))."', ". // ($comment , $donorId, $userId, $type, $campaign_id=null){ if (!$createnew) { save_activityinfo('Updated donor/sponsor details', $id, $_SESSION['users_uid'], 'System'); happy_('Donor/Sponsor Details saved'); } } exit; break; case 'sponsorshipinfo_load': $id = intval($_GET['id']); echo '<h4>' . i18n('Summary') . "</h4>\n"; echo "<table cellspacing=3 cellpadding=3>\n"; // LAST DONATION $q = $pdo->prepare('SELECT * FROM fundraising_donations WHERE sponsors_id=? ORDER BY datereceived DESC LIMIT 1'); $q->execute([$id]); if ($r = $q->fetch(PDO::FETCH_OBJ)) $lastdonation = i18n('%1 on %2', array(format_money($r->value, false), format_date($r->datereceived)), array('Donation amount', 'Donation date')); else $lastdonation = i18n('Never'); // TOTAL THIS YEAR $q = $pdo->prepare("SELECT SUM(value) AS total FROM fundraising_donations WHERE sponsors_id=? AND status='received' AND fiscalyear=? "); $q->execute([$id, $config['FISCALYEAR']]); if ($r = $q->fetch(PDO::FETCH_OBJ)) $totalthisyear = format_money($r->total, false); else $totalthisyear = format_money(0); // TOTAL LAST YEAR $lastyear = $config['FISCALYEAR'] - 1; $q = $pdo->prepare("SELECT SUM(value) AS total FROM fundraising_donations WHERE sponsors_id=? AND status='received' AND fiscalyear=? "); $q->execute([$id, $lastyear]); if ($r = $q->fetch(PDO::FETCH_OBJ)) $totallastyear = format_money($r->total, false); else $totallastyear = format_money(0); // OUTPUT echo '<tr><td>' . i18n('Last Donation') . "</td><td>$lastdonation</td></tr>\n"; echo '<tr><td>' . i18n('Total This Year') . "</td><td>$totalthisyear</td></tr>\n"; echo '<tr><td>' . i18n('Total Last Year') . "</td><td>$totallastyear</td></tr>\n"; echo "</table>\n"; echo "<br />\n"; echo '<h4>' . i18n('Donations/Sponsorships') . "</h4>\n"; echo '<div id="thisyeardonationhistory">'; $q = $pdo->prepare("SELECT fundraising_donations.*, fundraising_campaigns.name AS campaignname FROM fundraising_donations LEFT JOIN fundraising_campaigns ON fundraising_donations.fundraising_campaigns_id=fundraising_campaigns.id WHERE sponsors_id=? AND status='received' AND fundraising_donations.fiscalyear=? ORDER BY datereceived DESC"); $q->execute([$id, $config['FISCALYEAR']]); show_pdo_errors_if_any($pdo); if ($q->rowCount()) { echo '<table class="tableview">'; echo '<thead>'; echo '<tr>'; echo ' <th>' . i18n('Date') . "</th>\n"; echo ' <th>' . i18n('Purpose') . "</th>\n"; echo ' <th>' . i18n('Appeal') . "</th>\n"; echo ' <th>' . i18n('Value') . "</th>\n"; echo ' <th>' . i18n('Remove') . "</th>\n"; echo '</tr>'; echo '</thead>'; while ($r = $q->fetch(PDO::FETCH_OBJ)) { echo "<tr>\n"; echo ' <td>' . format_date($r->datereceived) . "</td>\n"; $goal = getGoal($r->fundraising_goal); echo " <td>$goal->name</td>"; echo " <td>$r->campaignname</td>"; echo ' <td>' . format_money($r->value, false) . '</td>'; echo ' <td align="center">'; echo "<a onclick=\"return removedonation($r->id,$id)\" href=\"#\"><img border=0 src=\"" . $config['SFIABDIRECTORY'] . '/images/16/button_cancel.' . $config['icon_extension'] . '"></a>'; echo ' </td>'; echo "</tr>\n"; } echo "</table>\n"; } else { echo i18n('No donations this year') . '<br />'; } echo '<a href="#" onclick="return togglefulldonationhistory()" id="fullhistorylink">' . i18n('View full donation history') . '</a>'; echo '</div>'; echo '<div id="fulldonationhistory" style="display: none;">'; echo '<a href="#" onclick="return togglefulldonationhistory()" id="fullhistorylink">' . i18n("View this year's donation history") . '</a>'; echo '<table class="tableview">'; echo '<thead>'; echo '<tr>'; echo ' <th>' . i18n('Date') . "</th>\n"; echo ' <th>' . i18n('Purpose') . "</th>\n"; echo ' <th>' . i18n('Appeal') . "</th>\n"; echo ' <th>' . i18n('Value') . "</th>\n"; echo ' <th>' . i18n('Remove') . "</th>\n"; echo '</tr>'; echo '</thead>'; $q = $pdo->prepare("SELECT fundraising_donations.*, fundraising_campaigns.name AS campaignname FROM fundraising_donations LEFT JOIN fundraising_campaigns ON fundraising_donations.fundraising_campaigns_id=fundraising_campaigns.id WHERE sponsors_id=? AND status='received' ORDER BY datereceived DESC"); $q->execute([$id]); while ($r = $q->fetch(PDO::FETCH_OBJ)) { echo "<tr>\n"; echo ' <td>' . format_date($r->datereceived) . "</td>\n"; $goal = getGoal($r->fundraising_goal); echo " <td>$goal->name</td>"; echo " <td>$r->campaignname</td>"; echo ' <td>' . format_money($r->value, false) . '</td>'; echo ' <td align="center">'; echo "<a onclick=\"return removedonation($r->id,$id)\" href=\"#\"><img border=0 src=\"" . $config['SFIABDIRECTORY'] . '/images/16/button_cancel.' . $config['icon_extension'] . '"></a>'; echo ' </td>'; echo "</tr>\n"; } echo "</table>\n"; echo "</div>\n"; echo "<br />\n"; echo '<h4>' . i18n('Add New Donation/Sponsorship') . "</h4>\n"; echo '<form id="addnewdonationform" onsubmit="return adddonation()">'; echo "<input type=\"hidden\" name=\"sponsors_id\" value=\"$id\" />\n"; echo '<table cellspacing=3 cellpadding=3>'; echo '<tr><td>'; echo i18n('Appeal') . ':'; echo '</td><td>'; // loop through each contact in the donor $query = $pdo->prepare("SELECT users.id,users.uid,users.deleted,MAX(year) FROM users LEFT JOIN users_sponsor ON users_sponsor.users_id=users.id WHERE sponsors_id=? AND types LIKE '%sponsor%' GROUP BY uid HAVING deleted='no' ORDER BY users_sponsor.primary DESC,lastname,firstname "); $query->execute([$id]); show_pdo_errors_if_any($pdo); $uids = array(); while ($r = $query->fetch(PDO::FETCH_OBJ)) { $uids[] = $r->uid; } $q = $pdo->prepare('SELECT * FROM fundraising_campaigns WHERE fiscalyear=? ORDER BY name'); $q->execute([$config['FISCALYEAR']]); $str = ''; echo '<select id="fundraising_campaign_id" name="fundraising_campaigns_id" onchange="campaignchange()">'; echo '<option value="">' . i18n('Choose an appeal') . "</option>\n"; while ($r = $q->fetch(PDO::FETCH_OBJ)) { // if there's uids, we can check if this sponsor is in the campaign // if there's no uids, (aka no contacts) then there's no way we could have included them in a cmomunication // but they could still get here fors ome reason, so we still need to show all the campaigns if (count($uids)) { $tq = $pdo->prepare('SELECT * FROM fundraising_campaigns_users_link WHERE fundraising_campaigns_id=? AND users_uid IN (' . implode(',', $uids) . ') '); $tq->execute([$r->id]); if ($tq->rowCount()) { $incampaign = i18n('*In Appeal*') . ': '; } else $incampaign = ''; } else $incampaign = ''; echo "<option value=\"$r->id\">{$incampaign}{$r->name}</option>\n"; $str .= "defaultgoals[$r->id]='$r->fundraising_goal';\n"; } echo '<option value="">' . i18n('Other/No Appeal') . "</option>\n"; echo "</select>\n"; echo "</td></tr>\n"; echo '<tr><td>'; echo i18n('Purpose') . ':'; echo '</td><td>'; echo '<script type="text/javascript">'; echo " var defaultgoals=Array();\n"; echo $str; echo "</script>\n"; echo '<select id="fundraising_goal" name="fundraising_goal">'; echo '<option value="">' . i18n('Choose a purpose') . "</option>\n"; // FIXME: only show campaigns that they were included as part of // we need a campaigns_users_link or campaigns_sponsors_link or something $q = $pdo->prepare('SELECT * FROM fundraising_goals WHERE fiscalyear=? ORDER BY name'); $q->execute([$config['FISCALYEAR']]); while ($r = $q->fetch(PDO::FETCH_OBJ)) { echo "<option value=\"$r->goal\">$r->name</option>\n"; } echo "</select>\n"; echo "</td></tr>\n"; echo '<tr><td>' . i18n('Date Received') . ':</td><td><input type="text" class="date" name="datereceived" value="' . date('Y-m-d') . "\"></td></tr>\n"; echo '<tr><td>' . i18n('Amount') . ":</td><td>\$<input type=\"text\" size=\"10\" name=\"value\"></td></tr>\n"; echo '<tr><td>' . i18n('Type of Support') . ':</td><td>'; $supporttypes = array('Gift - no receipt'); if ($config['registered_charity']) $supporttypes[] = 'Donation - with receipt'; $supporttypes[] = 'Sponsorship'; echo "<select name=\"supporttype\">\n"; echo "<option value=\"\">Choose type of support</option>\n"; foreach ($supporttypes as $st) { echo "<option value=\"$st\">" . i18n($st) . "</option>\n"; } echo "</select>\n"; echo "</td></tr>\n"; /* * echo "<tr><td></td><td>"; * echo "<a href=\"#\" onclick=\"return false;\">".i18n("Generate Thank You")."</a></td>"; * echo "</tr>\n"; */ echo '<tr><td colspan="2" style="text-align: center;"><input type="submit" value="' . i18n('Add donation/sponsorship') . "\" /></td></tr>\n"; echo "</table>\n"; echo "</form>\n"; exit; break; case 'contactsinfo_load': // make sure a donor id has been selected if ($_GET['id']) { draw_contactsinfo_form(); } exit; break; case 'contactsinfo_save': save_contact(); exit; break; case 'contactsinfo_delete': delete_contact(); exit; break; case 'contactsinfo_addexisting': addexisting_contact(); exit; break; case 'activityinfo_load': // make sure a donor id has been selected if ($_GET['id']) { draw_activityinfo_form(); } exit; break; case 'activityinfo_save': // ($comment , $donorId, $userId, $type, $campaign_id=null){ if (save_activityinfo( $_POST['comment'], $_GET['id'], $_SESSION['users_uid'], $_POST['type'], $_POST['fundraising_campaigns_id'] )) { happy_('Activity Logged'); } else { error_('Unable to save activity log'); } exit; break; case 'newcontactsearch': if ($_POST['email']) { $q = $pdo->prepare("SELECT *,MAX(year) FROM users WHERE email=? GROUP BY uid HAVING deleted='no'"); $q->execute([trim($_POST['email'])]); } if ($r = $q->fetch(PDO::FETCH_OBJ)) { echo i18n('There is an exact email address match for %1', array($_POST['email'])); echo '<ul>'; echo "<li><a href=\"#\" onclick=\"useexistingcontact($r->uid)\">$r->firstname $r->lastname $r->email $r->phonehome</a></li>\n"; echo '</ul>'; ?> <script type="text/javascript"> $("#contactnewsave").attr("disabled", "disabled"); </script> <? } else { ?> <script type="text/javascript"> $("#contactnewsave").attr("disabled", ""); </script> <? $searchstr = '1 '; if ($_POST['firstname']) $searchstr .= " AND firstname LIKE '%" . $_POST['firstname'] . "%'"; if ($_POST['lastname']) $searchstr .= " AND lastname LIKE '%" . $_POST['lastname'] . "%'"; if ($_POST['email']) $searchstr .= " AND email LIKE '%" . $_POST['email'] . "%'"; $q = $pdo->prepare("SELECT *,MAX(year) FROM users WHERE '$searchstr' GROUP BY uid HAVING deleted='no'"); $q->execute(); $num = $q->rowCount(); if ($num == 0) { echo i18n('No existing users match, will create a new user'); } else if ($num < 15) { echo i18n('Did you mean one of these existing users? (click to choose one)') . '<br />'; echo '<ul>'; while ($r = $q->fetch(PDO::FETCH_OBJ)) { echo "<li><a href=\"#\" onclick=\"useexistingcontact($r->uid)\">$r->firstname $r->lastname $r->email $r->phonehome</a></li>\n"; } echo '</ul>'; } else { echo i18n('There are %1 existing users that match, please enter more details', array($num)); } } echo '<br />'; exit; break; case 'donation_add': $campaignid = intval($_POST['fundraising_campaigns_id']); $sponsorid = intval($_POST['sponsors_id']); $goal = $_POST['fundraising_goal']; $value = intval($_POST['value']); $supporttype = $_POST['supporttype']; $datereceived = $_POST['datereceived']; if ($goal && $value && $supporttype) { $q = $pdo->prepare("INSERT INTO fundraising_donations (sponsors_id,fundraising_goal,fundraising_campaigns_id,value,status,probability,fiscalyear,thanked,datereceived,supporttype) VALUES ( ?, ?, ?, ?, 'received', '100', ?, 'no', ?, ? )"); $q->execute([$sponsorid, $goal, $campaignid, $value, $config['FISCALYEAR'], $datereceived, $supporttype]); $id = $pdo->lastInsertId(); $logStr = getDonationString($id); save_activityinfo("Added donation/sponsorship: $logStr", $sponsorid, $_SESSION['users_uid'], 'System'); show_pdo_errors_if_any($pdo); happy_('Donation/sponsorship added'); } else { error_('All fields are required'); } exit; break; case 'donation_remove': // function save_activityinfo($comment, $donorId, $userId, $type, $campaign_id=null){ $id = intval($_POST['id']); $sponsorid = intval($_POST['sponsors_id']); if ($logStr = getDonationString($id)) { save_activityinfo("Removed donation/sponsorship: $logStr", $sponsorid, $_SESSION['users_uid'], 'System'); happy_('Donation/sponsorship removed'); $q = $pdo->prepare('DELETE FROM fundraising_donations WHERE id=? AND sponsors_id=?'); $q->execute([$id, $sponsorid]); show_pdo_errors_if_any($pdo); } else { error_('Invalid donation/sponsorship to remove'); } exit; break; } send_header( 'Donor/Sponsor Management', array( 'Committee Main' => 'committee_main.php', 'Administration' => 'admin/index.php', 'Fundraising' => 'admin/fundraising.php' ) ); // delete the contact who has been submitted in _POST function delete_contact() { global $pdo; if (array_key_exists('userid', $_POST)) { $uid = $_POST['userid']; $data = $pdo->prepare("SELECT CONCAT_WS(' ', users.firstname, users.lastname) AS name FROM users WHERE id=?"); $data->execute([$uid]); $namedata = $data->fetch(); $name = trim($namedata['name']); user_delete($uid, 'sponsor'); happy_('Deleted contact %1', array($name)); // ($comment , $donorId, $userId, $type, $campaign_id=null){ save_activityinfo("Deleted contact \"$name\"", $_GET['id'], $_SESSION['users_uid'], 'System'); } } function addexisting_contact() { $uid = intval($_POST['uid']); $sponsors_id = intval($_POST['id']); echo "Linking uid=$uid to sponsors_id=$sponsors_id <br />"; $u = []; echo "uid $uid has users.id {$u['id']}"; $u = user_load_by_uid($uid); $u['sponsors_id'] = $sponsors_id; $u['types'][] = 'sponsor'; user_save($u); save_activityinfo('Existing user (' . $u['firstname'] . ' ' . $u['lastname'] . ') linked to donor/sponsor', $sponsors_id, $_SESSION['users_uid'], 'System'); happy_('Added existing user to donor/sponsor'); } // save the contact info function save_contact() { global $config, $pdo; // happy_("happy!"); if (validate_contactdata()) { // load or create the user, according to the situation if ($_POST['recordtype'] == 'new') { if ($_POST['email']) { $q = $pdo->prepare("SELECT *,MAX(year) FROM users WHERE email=? GROUP BY uid HAVING deleted='no'"); $q->execute([trim($_POST['email'])]); if ($q->rowCount()) { error_('A user with that email address already exists'); exit; } } // this is a new record being submitted. Create the user. $successMessage = 'Contact created successfully'; $successLog = 'Added contact '; $u = user_create('sponsor', $_POST['email']); $id = $u['id']; } else if ($_POST['recordtype'] == 'existing') { // this is an existing record being updated. Load the user. $successMessage = 'Contact updated successfully'; $successLog = 'Updated contact '; $u = user_load($_POST['userid']); $id = intval($_POST['userid']); } $sponsor_id = $_POST['sponsor_id']; $p = ($_POST['primary'] == 'yes') ? 'yes' : 'no'; if ($p == 'no') { /* Make sure this sponsor ($sponsor_id) has a primary */ $query = "SELECT users_id FROM users_sponsor, users WHERE users_sponsor.users_id=users.id AND sponsors_id=? AND `primary`='yes' AND year=? AND users_id!=?"; $q = $pdo->prepare($query); $q->execute([$sponsor_id, $config['FAIRYEAR'], $id]); if ($q->rowCount() == 0) { /* This has to be the primary since there isn't one already */ $p = 'yes'; } } else { /* Unset all other primaries */ $q = $pdo->prepare("UPDATE users_sponsor SET `primary`='no' WHERE sponsors_id=? AND users_id !=?"); $q->execute([$sponsor_id, $id]); } // we now know whether or not they're the primary user. Update them with that, // along with all of the user info that's been submitted. $u['primary'] = $p; $u['salutation'] = $_POST['salutation']; $u['firstname'] = $_POST['firstname']; $u['lastname'] = $_POST['lastname']; $u['position'] = $_POST['position']; $u['phonework'] = $_POST['phonework']; $u['phonecell'] = $_POST['phonecell']; $u['phonehome'] = $_POST['phonehome']; $u['address'] = $_POST['address']; $u['address2'] = $_POST['address2']; $u['city'] = $_POST['city']; $u['postalcode'] = $_POST['postalcode']; $u['province'] = $_POST['province_code']; $u['fax'] = $_POST['fax']; $u['email'] = $_POST['email']; $u['notes'] = $_POST['notes']; $u['sponsors_id'] = $sponsor_id; user_save($u); $name = trim($u['firstname'] . ' ' . $u['lastname']); // ($comment , $donorId, $userId, $type, $campaign_id=null){ save_activityinfo($successLog . '"' . $name . '"', $sponsor_id, $_SESSION['users_uid'], 'System'); happy_($successMessage); } else { // something's wrong with the user data submitted. Should flag the fields where // appropriate, but for now just pop up an error error_('Form not filled out'); } } // FIXME: dummy filler function for now. Should go through all of the fields // submitted and validate before hitting the database function validate_contactdata() { $returnval = true; if ($_POST['recordtype'] != 'new' && $_POST['recordtype'] != 'existing') { $returnval = false; } return $returnval; } // draw a group of forms for editing and creating new contacts function draw_contactsinfo_form($contact = null) { global $config, $pdo; // make sure we know what sponsor we're dealing with here if (!isset($sponsor_id)) { if ($_GET['id']) $sponsor_id = $_GET['id']; else if ($_POST['id']) $sponsor_id = $_POST['id']; $buttontext = i18n('Add Contact'); } // start our accordion echo "<div id=\"contactaccordion\" style=\"width: 740px;\">\n"; // loop through each contact and draw a form with their data in it. $query = $pdo->prepare("SELECT *,MAX(year) FROM users LEFT JOIN users_sponsor ON users_sponsor.users_id=users.id WHERE sponsors_id=? AND types LIKE '%sponsor%' GROUP BY uid HAVING deleted='no' ORDER BY users_sponsor.primary DESC,lastname,firstname "); $query->execute([$sponsor_id]); show_pdo_errors_if_any($pdo); while ($contact = $query->fetch()) { // draw a header for this user echo '<h3><a href="#">'; echo $contact['firstname'] . ' ' . $contact['lastname']; echo "</a></h3>\n"; // and draw the actual form echo "<div>\n"; draw_contact_form($sponsor_id, $contact); echo "</div>\n"; } // draw an empty form in which to enter a new user echo '<h3><a href="#">New Contact'; echo "</a></h3>\n"; echo "<div>\n"; // and do the blank one echo '<div id="newcontactsearch"></div>'; draw_contact_form($sponsor_id); echo "</div>\n"; // and finally end the accordion echo "</div>\n"; } // draw a form in which to enter information about the various contacts function draw_contact_form($sponsor_id, $contact = null) { global $salutations, $config, $pdo; // grab the sponsor details, so we can do diff things for individual vs organization $q = $pdo->prepare('SELECT * FROM sponsors WHERE id=?'); $q->execute([$sponsor_id]); $sponsor = $q->fetch(PDO::FETCH_OBJ); if ($contact != null) { $id = $contact['id']; } else { $id = 'new'; if ($sponsor->donortype == 'individual') { list($firstname, $lastname) = explode(' ', $sponsor->organization, 2); $contact['firstname'] = $firstname; $contact['lastname'] = $lastname; $contact['email'] = $sponsor->email; $contact['phonehome'] = $sponsor->phone; } else { $contact['phonework'] = $sponsor->phone; } $contact['fax'] = $sponsor->fax; $contact['address'] = $sponsor->address; $contact['address2'] = $sponsor->address2; $contact['city'] = $sponsor->city; $contact['province'] = $sponsor->province_code; $contact['postalcode'] = $sponsor->postalcode; } echo '<form id="contact_' . $id . "\" method=\"post\" action=\"donors.php?action=contactsinfo_save\">\n"; echo "<input type=\"hidden\" name=\"sponsor_id\" value=\"$sponsor_id\">\n"; if ($id == 'new') { echo "<input type=\"hidden\" name=\"recordtype\" value=\"new\">\n"; $newcontactsearch = 'onkeypress="return newcontactsearch()"'; $newcontactsave = 'id="contactnewsave"'; } else { echo "<input type=\"hidden\" name=\"recordtype\" value=\"existing\">\n"; echo '<input type="hidden" name="userid" value="' . $id . "\">\n"; } ?> <table class="tableedit"> <tr> <td><?= i18n('Salutation'); ?></td> <td> <select name="salutation"> <option value=""><?= i18n('Choose') ?></option> <? foreach ($salutations as $salutation) { if ($contact['salutation'] == $salutation) $sel = 'selected="selected"'; else $sel = ''; echo "<option $sel value=\"$salutation\">$salutation</option>\n"; } ?> </select> </td> <td><?= i18n('Position'); ?></td> <? if ($sponsor->donortype == 'individual') { $d = 'disabled="disabled"'; } else $d = ''; ?> <td><input type="text" name="position" <?= $d ?> value="<?= htmlspecialchars($contact['position']) ?>"></td> </tr> <tr> <td><?= i18n('First Name'); ?></td> <td><input <?= $newcontactsearch ?> type="text" name="firstname" value="<?= htmlspecialchars($contact['firstname']) ?>"></td> <td><?= i18n('Last Name'); ?></td> <td><input <?= $newcontactsearch ?> type="text" name="lastname" value="<?= htmlspecialchars($contact['lastname']) ?>"></td> </tr> <tr> <td><?= i18n('Email'); ?></td> <td colspan="3"><input <?= $newcontactsearch ?> type="text" name="email" size="60" value="<?= htmlspecialchars($contact['email']) ?>"></td> </tr> <tr> <td><?= i18n('Phone (Work)'); ?></td> <td><input type="text" name="phonework" value="<?= htmlspecialchars($contact['phonework']) ?>"></td> <td><?= i18n('Phone (Cell)'); ?></td> <td><input type="text" name="phonecell" value="<?= htmlspecialchars($contact['phonecell']) ?>"></td> </tr> <tr> <td><?= i18n('Phone (Home)'); ?></td> <td><input type="text" name="phonehome" value="<?= htmlspecialchars($contact['phonehome']) ?>"></td> <td><?= i18n('Fax'); ?></td> <td><input type="text" name="fax" value="<?= htmlspecialchars($contact['fax']) ?>"></td> </tr> <tr> <td><?= i18n('Address 1') ?></td> <td colspan="3"><input type="text" name="address" size="60" maxlength="64" value="<?= htmlspecialchars($contact['address']) ?>" /></td> </tr> <tr> <td><?= i18n('Address 2') ?></td> <td colspan="3"><input type="text" name="address2" size="60" maxlength="64" value="<?= htmlspecialchars($contact['address2']) ?>" /></td> </tr> <tr> <td><?= i18n('City') ?></td> <td><input id="city" type="text" name="city" size="16" maxlength="32" value="<?= htmlspecialchars($contact['city']) ?>" /></td> <td><?= i18n($config['provincestate']) ?></td> <td> <? emit_province_selector('province_code', $contact['province']); ?> </td> </tr> <tr> <td><?= i18n($config['postalzip']) ?></td> <td colspan="3"><input type="text" name="postalcode" size="8" maxlength="7" value="<?= htmlspecialchars($contact['postalcode']) ?>" /></td> </tr> <tr> <td><?= i18n('Notes'); ?></td> <td colspan="3"><textarea name="notes" cols="60" rows="4"><?= htmlspecialchars($contact['notes']) ?></textarea></td> </tr> <tr> <td><?= i18n('Primary Contact') ?></td> <td> <label><?= i18n('Yes') ?><input type="radio" name="primary" value="yes" <? if ($contact['primary'] == 'yes') echo 'checked="checked"'; ?></label> <label><?= i18n('No') ?><input type="radio" name="primary" value="no" <? if ($contact['primary'] != 'yes') echo 'checked="checked"'; ?>></label> </td> <?php echo "<td align=\"center\"><input $newcontactsave type=\"submit\" value=\"" . i18n('Save') . '" onClick="return contactsinfo_save(\'' . $id . '\')" /></td>'; echo '<td>'; if ($id != 'new') echo '<input type="submit" value="' . i18n('Remove') . '" onClick="return contactsinfo_delete(\'' . $id . '\')" />'; echo '</td>'; ?> </tr> </table> </form> <?php } function draw_activityinfo_form() { global $config, $pdo; $sponsorid = $_GET['id']; // we'll start by drawing the table header ?> <form id="activityinfo"> <table class="tableview" style="width:99%"> <thead> <tr> <th><?= i18n('Date') ?></th> <th><?= i18n('Committee Member') ?></th> <th><?= i18n('Contact Type') ?></th> <th><?= i18n('Appeal') ?></th> <th><?= i18n('Notes') ?></th> </tr> <tr> <td align="center"><input type="submit" value="<?= i18n('Add Log') ?>" onClick="return activityinfo_save()" /></td> <td align="center"><?= $_SESSION['name'] ?></td> <td align="center"> <?php echo '<select name="type">'; echo '<option value="">' . i18n('Choose Type') . "</option>\n"; $logtypes = array('Appeal', 'Phone Call', 'Email', 'Personal Visit', 'Other'); foreach ($logtypes as $lt) { echo "<option value=\"$lt\">" . i18n($lt) . "</option>\n"; } echo "</select>\n"; ?> </td> <td align="center"> <?php $q = $pdo->prepare('SELECT * FROM fundraising_campaigns WHERE fiscalyear=? ORDER BY name'); $q->execute([$config['FISCALYEAR']]); echo '<select name="fundraising_campaigns_id">'; echo '<option value="">' . i18n('Choose Appeal') . "</option>\n"; while ($r = $q->fetch(PDO::FETCH_OBJ)) { echo "<option value=\"$r->id\">$r->name</option>\n"; } echo "</select>\n"; ?> </td> <td><input type="text" name="comment" style="width: 99%;" /></td> </tr> </thead> <tbody> <?php $query = "SELECT CONCAT_WS(' ', users.firstname, users.lastname) AS name, fdl.dt, fdl.log, fdl.type, fundraising_campaigns.name AS campaignname FROM fundraising_donor_logs AS fdl LEFT JOIN users ON fdl.users_id=users.id \t \t\t\t\t\t\t\tLEFT JOIN fundraising_campaigns ON fdl.fundraising_campaigns_id=fundraising_campaigns.id \t \t\t\t\t\t\tWHERE sponsors_id=? ORDER BY dt DESC"; $q = $pdo->prepare($query); $q->execute([$sponsorid]); show_pdo_errors_if_any($pdo); if ($q->rowCount()) { while ($r = $q->fetch()) { echo '<tr><td>' . $r['dt'] . '</td>'; echo '<td>' . $r['name'] . '</td>'; echo '<td>' . $r['type'] . '</td>'; echo '<td>' . $r['campaignname'] . '</td>'; echo '<td>' . $r['log'] . '</td>'; echo "</tr>\n"; } } else { echo '<tr><td colspan="5" style="text-align:center">' . i18n('No records') . '</td></tr>'; } ?> </tbody> </table> </form> <?php } // Save an activity info log. function save_activityinfo($comment, $donorId, $userId, $type, $campaign_id = null) { global $pdo; if ($campaign_id) $cid = "'$campaign_id'"; else $cid = 'NULL'; $query = 'INSERT INTO fundraising_donor_logs (sponsors_id, dt, users_id, log, `type`, fundraising_campaigns_id) VALUES (?, NOW(), ?, ?, ?, ?)'; $q = $pdo->prepare($query); $q->execute([$donorId, $userId, $comment, $type, $cid]); show_pdo_errors_if_any($pdo); } function getDonationString($id) { global $config, $pdo; $q = $pdo->prepare('SELECT fundraising_donations.*, fundraising_campaigns.name AS campaignname FROM fundraising_donations LEFT JOIN fundraising_campaigns ON fundraising_donations.fundraising_campaigns_id=fundraising_campaigns.id WHERE fundraising_donations.id=? AND fundraising_donations.fiscalyear=? '); $q->execute([$id, $config['FISCALYEAR']]); show_pdo_errors_if_any($pdo); $str = ''; if ($r = $q->fetch(PDO::FETCH_OBJ)) { $str .= format_date($r->datereceived) . ' - '; $goal = getGoal($r->fundraising_goal); if ($goal) { $str .= i18n('Goal: %1', array($goal->name)); } else { $str .= i18n('Goal: none'); } $str .= ' - '; if ($r->campaignname) { $str .= i18n('Campaign: %1', array($r->campaignname)); } else { $str .= i18n('Campaign: none'); } $str .= ' - '; $str .= ' Value: ' . format_money($r->value, false); } else { return false; } return $str; } ?> <script type="text/javascript"> /* Setup the popup window */ $(document).ready(function() { /*` $("#open_editor").dialog({ bgiframe: true, autoOpen: false, modal: true, resizable: false, draggable: false }); */ $("#editor_tabs").tabs({ create: function(event, ui) { update_contactsinfo(); update_organizationinfo(); update_sponsorshipinfo(); update_activityinfo(); }, activate: function(event, ui) { update_organizationinfo(); update_sponsorshipinfo(); update_contactsinfo(); update_activityinfo(); }, collapsible: true, selected: -1 }); $("#organizationinfo_fundingselectiondate").datepicker({ dateFormat: 'yy-mm-dd' }); $("#organizationinfo_proposalsubmissiondate").datepicker({ dateFormat: 'yy-mm-dd' }); //, showOn: 'button', buttonText: "<?= i18n('calendar') ?>" }); open_search(); }); var sponsor_id = 0; function open_editor(id) { sponsor_id = id; $("#donor_editor").show(); $("#searchbrowse").hide(); $("#searchresults").hide(); if (id == -1) { $('#editor_tabs').tabs('option', 'active', 0); $('#editor_tabs').tabs('option', 'disabled', [1, 2, 3]); $("#organizationinfo_organization").val(""); $("#organizationinfo_address").val(""); $("#organizationinfo_address2").val(""); $("#organizationinfo_city").val(""); $("#organizationinfo_province_code").val(""); $("#organizationinfo_postalcode").val(""); $("#organizationinfo_phone").val(""); $("#organizationinfo_tollfree").val(""); $("#organizationinfo_fax").val(""); $("#organizationinfo_email").val(""); $("#organizationinfo_website").val(""); $("#organizationinfo_donationpolicyurl").val(""); $("#organizationinfo_fundingselectiondate").val(""); $("#organizationinfo_proposalsubmissiondate").val(""); $("#organizationinfo_notes").val(""); $("#update_contactsinfoorganizationinfo_save_button").attr('disabled', 'disabled'); $("[name=donortype]").attr('checked', ''); } else { $('#editor_tabs').tabs('option', 'active', 0); $('#editor_tabs').tabs('option', 'collapsible', true); $('#editor_tabs').tabs('option', 'disabled', []); } update_organizationinfo(); return false; } function open_search() { $("#donor_editor").hide(); $("#searchbrowse").show(); donorsearch(false); } function update_organizationinfo() { var id = sponsor_id; if (!sponsor_id) return false; if (sponsor_id == -1) { $("#sponsor_id").val(-1); return false; } $.getJSON("<?= $_SERVER['PHP_SELF'] ?>?action=organizationinfo_load&id=" + id, function(json) { $("#donor_name").html("<h3>" + json.organization + "</h3>"); $("#sponsor_id").val(json.id); $("#organizationinfo_organization").val(json.organization); $("#organizationinfo_address").val(json.address); $("#organizationinfo_address2").val(json.address2); $("#organizationinfo_city").val(json.city); $("#organizationinfo_province_code").val(json.province_code); $("#organizationinfo_postalcode").val(json.postalcode); $("#organizationinfo_phone").val(json.phone); $("#organizationinfo_tollfree").val(json.tollfree); $("#organizationinfo_fax").val(json.fax); $("#organizationinfo_email").val(json.email); $("#organizationinfo_website").val(json.website); $("#organizationinfo_donationpolicyurl").val(json.donationpolicyurl); $("#organizationinfo_fundingselectiondate").val(json.fundingselectiondate); $("#organizationinfo_proposalsubmissiondate").val(json.proposalsubmissiondate); $("#organizationinfo_notes").val(json.notes); // For some reason, with checkboxes, these have to be arrays $("[name=waiveraccepted]").val([json.waiveraccepted]); $("[name=donortype]").val([json.donortype]); donortypechange(); }); } function organizationinfo_save() { //if we're creating we need to do the post, and get the id it returns, so we can re-open the popup window with that id if ($("#sponsor_id").val() == -1) { $.post("<? $_SERVER['PHP_SELF'] ?>?action=organizationinfo_save", $("#organizationinfo").serializeArray(), function(json) { open_editor(json.id); }, "json"); } else $("#debug").load("<? $_SERVER['PHP_SELF'] ?>?action=organizationinfo_save", $("#organizationinfo").serializeArray()); return false; } function update_sponsorshipinfo() { var id = sponsor_id; $("#editor_tab_sponsorship").load("<?= $_SERVER['PHP_SELF'] ?>?action=sponsorshipinfo_load&id=" + id, null, function() { $(".date").datepicker({ dateFormat: 'yy-mm-dd' }); $('.tableview').tablesorter(); }); } function sponsorshipinfo_save() { $("#debug").load("<? $_SERVER['PHP_SELF'] ?>?action=sponsorshipinfo_save", $("#sponsorshipinfo").serializeArray()); return false; } function update_contactsinfo() { var id = sponsor_id; $("#editor_tab_contacts").load("<?= $_SERVER['PHP_SELF'] ?>?action=contactsinfo_load&id=" + id, null, function() { $("#contactaccordion").accordion({ heightStyle: "content" }); } ); } function contactsinfo_save(uid) { var id = sponsor_id; print(id); $("#debug").load("<? $_SERVER['PHP_SELF'] ?>?action=contactsinfo_save&id=" + id, $("#contact_" + uid).serializeArray(), function() { $("#contactaccordion").accordion({ heightStyle: "content" }); update_contactsinfo(); }); return false; } function contactsinfo_delete(uid) { var id = sponsor_id; $("#debug").load("<? $_SERVER['PHP_SELF'] ?>?action=contactsinfo_delete&id=" + id, $("#contact_" + uid).serializeArray(), function() { $("#contactaccordion").accordion({ heightStyle: "content" }); update_contactsinfo(); }); return false; } function update_activityinfo() { var id = sponsor_id; $("#editor_tab_activity").load( "<?= $_SERVER['PHP_SELF'] ?>?action=activityinfo_load&id=" + id, null, function() { $('.tableview').tablesorter(); } ); return false; } function activityinfo_save() { var id = sponsor_id; $("#debug").load("<? $_SERVER['PHP_SELF'] ?>?action=activityinfo_save&id=" + id, $("#activityinfo").serializeArray(), function() { update_activityinfo(); }); return false; } function donorsearch(realsearch) { $("#searchresults").show(); if (realsearch) $("#searchresults").load("donors_search.php", $("#searchform").serializeArray(), function() { $('.tableview').tablesorter(); }); else $("#searchresults").load("donors_search.php", null, function() { $('.tableview').tablesorter(); }); //, $("#searchform").serializeArray()); return false; } var searchtimer; function newcontactsearch() { clearTimeout(searchtimer); searchtimer = setTimeout('donewcontactsearch()', 300); return true; } function donewcontactsearch() { $("#newcontactsearch").load("<?= $_SERVER['PHP_SELF'] ?>?action=newcontactsearch", $("#contact_new").serializeArray()); } function useexistingcontact(uid) { var id = sponsor_id; $("#debug").load("<? $_SERVER['PHP_SELF'] ?>?action=contactsinfo_addexisting", { id: id, uid: uid }, function() { update_contactsinfo(); }); } function togglefulldonationhistory() { $("#fulldonationhistory").toggle('slow'); $("#thisyeardonationhistory").toggle('slow'); } function campaignchange() { var campaignid = $("#fundraising_campaign_id").val(); var goal = defaultgoals[campaignid]; $("#fundraising_goal").val(goal); } function donortypechange() { if ($("input[name='donortype']:checked").val() == "organization") { $("#organizationinfo_logo").removeAttr("disabled", ""); $("#organizationinfo_donationpolicyurl").removeAttr("disabled", ""); $("#organizationinfo_fundingselectiondate").removeAttr("disabled", ""); $("#organizationinfo_proposalsubmissiondate").removeAttr("disabled", ""); } else if ($("input[name='donortype']:checked").val() == "individual") { $("#organizationinfo_logo").attr("disabled", "disabled"); $("#organizationinfo_donationpolicyurl").attr("disabled", "disabled"); $("#organizationinfo_fundingselectiondate").attr("disabled", "disabled"); $("#organizationinfo_proposalsubmissiondate").attr("disabled", "disabled"); } else {} $("#organizationinfo_save_button").removeAttr('disabled', ''); } function adddonation() { var id = sponsor_id; $("#debug").load("<? $_SERVER['PHP_SELF'] ?>?action=donation_add", $("#addnewdonationform").serializeArray(), function() { update_sponsorshipinfo(); }); return false; } function removedonation(donationid, sponsorid) { if (confirmClick('Are you sure you want to remove this donation/sponsorship?')) { $("#debug").load("<? $_SERVER['PHP_SELF'] ?>?action=donation_remove", { id: donationid, sponsors_id: sponsorid }, function() { update_sponsorshipinfo(); }); } return false; } </script> <? if (get_value_from_array($_GET, 'action') == 'delete' && get_value_from_array($_GET, 'delete')) { // dont allow any deleting until we figure out what we need to do, infact, i think we never should hard delete // this should only soft-delete so things like awards from previous years are still all linked correctly. // mysql_query("DELETE FROM sponsors WHERE id='".$_GET['delete']."'"); // echo happy("Sponsors cannot be deleted"); } echo '<table cellspacing=2 width=740 border=0><tr>'; echo '<td>'; echo "<a href=\"#\" onclick=\"open_editor(-1)\">Add New Donor(s)/Sponsor(s)</a>\n"; echo '</td>'; echo '<td>'; echo "<a href=\"#\" onclick=\"open_search()\">View/Modify Donor(s)/Sponsor(s)</a>\n"; echo '</td>'; echo '</tr></table>'; echo '<hr />'; ?> <div id="donor_editor" title="Donor/Sponsor Editor" style="display: none; width: 770px;"> <div id="donor_name"></div> <div id="editor_tabs"> <ul> <li><a href="#editor_tab_organization"><span><?= i18n('Donor/Sponsor Details') ?></span></a></li> <li><a href="#editor_tab_contacts"><span><?= i18n('Contacts') ?></span></a></li> <li><a href="#editor_tab_sponsorship"><span><?= i18n('Donations/Sponsorships') ?></span></a></li> <li><a href="#editor_tab_activity"><span><?= i18n('Activity Log') ?></span></a></li> </ul> <div id="editor_tab_organization"> <form enctype="multipart/form-data" id="organizationinfo"> <input type="hidden" name="sponsor_id" id="sponsor_id" value="0"> <table class="tableedit" border=0> <tr> <td><?= i18n('Donor Type') ?></td> <td colspan="5"> <input id="donortype_individual" type="radio" name="donortype" value="individual" onchange="return donortypechange()" /><label for="donortype_individual"><?= i18n('Individual') ?></label> <input id="donortype_organization" type="radio" name="donortype" value="organization" onchange="return donortypechange()" /><label for="donortype_organization"><?= i18n('Organization') ?></label> </td> </tr> <tr> <td><?= i18n('Name') ?></td> <td colspan="5"><input class="translatable" type="text" id="organizationinfo_organization" name="organization" size="60" maxlength="128" /></td> </tr> <tr> <td><?= i18n('Address 1') ?></td> <td colspan="5"><input id="organizationinfo_address" type="text" name="address" size="60" maxlength="64" /></td> </tr> <tr> <td><?= i18n('Address 2') ?></td> <td colspan="5"><input id="organizationinfo_address2" type="text" name="address2" size="60" maxlength="64" /></td> </tr> <tr> <td><?= i18n('City') ?></td> <td><input id="organizationinfo_city" type="text" name="city" size="16" maxlength="32" /></td> <td><?= i18n($config['provincestate']) ?></td> <td> <? emit_province_selector('province_code', '', 'id="organizationinfo_province_code"'); ?> </td> <td><?= i18n($config['postalzip']) ?></td> <td><input id="organizationinfo_postalcode" type="text" name="postalcode" size="8" maxlength="7" /></td> </tr> <tr> <td><?= i18n('Phone') ?></td> <td><input type="text" id="organizationinfo_phone" name="phone" size="16" maxlength="32" /></td> <td><?= i18n('Toll Free') ?></td> <td><input type="text" id="organizationinfo_tollfree" name="tollfree" size="16" maxlength="32" /></td> <td><?= i18n('Fax') ?></td> <td><input type="text" id="organizationinfo_fax" name="fax" size="16" maxlength="32" /></td> </tr> <tr> <td><?= i18n('Email') ?></td> <td colspan="5"><input type="text" id="organizationinfo_email" name="email" size="60" maxlength="128" /></td> </tr> <tr> <td><?= i18n('Website') ?></td> <td colspan="5"><input type="text" id="organizationinfo_website" name="website" size="60" maxlength="128" /></td> </tr> <tr> <td><?= i18n('Donation Policy') ?></td> <td colspan="5"><input id="organizationinfo_donationpolicyurl" type="file" name="donationpolicyurl" size="30" maxlength="128" /></td> </tr> <tr> <td><?= i18n('Logo') ?></td> <td colspan="5"><input type="file" id="organizationinfo_logo" name="logo" size="30" /></td> </tr> <tr> <td><?= i18n('Funding Selection Date') ?></td> <td><input id="organizationinfo_fundingselectiondate" type="text" name="fundingselectiondate" class="date" size="12" maxlength="12" /></td> <td><?= i18n('Proposal Submission Date') ?></td> <td colspan="3"><input id="organizationinfo_proposalsubmissiondate" type="text" name="proposalsubmissiondate" class="date" size="12" maxlength="12" /></td> </tr> <? /* * <tr><td><?=i18n("Waiver Accepted")?></td><td> * <input type="radio" id="organizationinfo_waiveraccepted_no" name="waiveraccepted" value="no"><label for="organizationinfo_waiveraccepted_no"><?=i18n("No")?></label> * <input type="radio" id="organizationinfo_waiveraccepted_yes" name="waiveraccepted" value="yes"><label for="organizationinfo_waiveraccepted_yes"><?=i18n("Yes")?></label> * </td> * * <td><?=i18n("Tax Receipt Requested")?></td><td> * <input type="radio" id="organizationinfo_taxreceiptrequired_no" name="taxreceiptrequired" value="no"><label for="organizationinfo_taxreceiptrequired_no"><?=i18n("No")?></label> * <input type="radio" id="organizationinfo_taxreceiptrequired_yes" name="taxreceiptrequired" value="yes"><label for="organizationinfo_taxreceiptrequired_yes"><?=i18n("Yes")?></label> * </td> * * <td><?=i18n("Marketing Receipt Requested")?></td><td colspan="3"> * <input type="radio" id="organizationinfo_marketingreceiptrequired_no" name="marketingreceiptrequired" value="no"><label for="organizationinfo_marketingreceiptrequired_no"><?=i18n("No")?></label> * <input type="radio" id="organizationinfo_marketingreceiptrequired_yes" name="marketingreceiptrequired" value="yes"><label for="organizationinfo_marketingreceiptrequired_yes"><?=i18n("Yes")?></label> * </td></tr> */ ?> <tr> <td><?= i18n('Notes') ?></td> <td colspan="5"><textarea id="organizationinfo_notes" name="notes" rows="4" cols="60"></textarea></td> </tr> </table> <input id="organizationinfo_save_button" type="submit" value="<?= i18n('Save') ?>" onClick="return organizationinfo_save()" /> </form> </div> <div id="editor_tab_sponsorship"> sponsorship </div> <div id="editor_tab_contacts"> </div> <div id="editor_tab_activity"> activity </div> </div> </div> <div id="searchbrowse" style="display: none;"> <form id="searchform" method="post" action="donors.php" onsubmit="return donorsearch(true)"> <input type="hidden" name="limit" value="-1" /> <?= i18n('Search') ?>: <input type="text" name="search" /> <input id="search_donortype_individual" type="checkbox" name="donortype[]" value="individual" checked="checked" /><label for="search_donortype_individual"><?= i18n('Individual') ?></label> <input id="search_donortype_organization" type="checkbox" name="donortype[]" value="organization" checked="checked" /><label for="search_donortype_organization"><?= i18n('Organization') ?></label> <input type="submit" value="<?= i18n('Browse') ?>" /> </form> </div> <div id="searchresults"> </div> <? if (get_value_from_array($_GET, 'action') == 'add') { ?> <script type="text/javascript"> $(document).ready(function() { open_editor(-1); }); </script> <? } send_footer(); ?>