diff options
author | Renato Botelho <garga@FreeBSD.org> | 2015-02-05 10:02:24 -0200 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2015-02-05 20:10:15 -0200 |
commit | 07cf2c4b20230ddedee1bf9dddc1e7cd407385f5 (patch) | |
tree | 44d40561519e0018ad586bb1449e107c9ae431f3 /config/countryblock | |
parent | e526e4aa28867b7743b0e76993f5f6bebd15bc1b (diff) | |
download | pfsense-packages-07cf2c4b20230ddedee1bf9dddc1e7cd407385f5.tar.gz pfsense-packages-07cf2c4b20230ddedee1bf9dddc1e7cd407385f5.tar.bz2 pfsense-packages-07cf2c4b20230ddedee1bf9dddc1e7cd407385f5.zip |
Packages repo cleanup:
- Drop support for pfSense < 2
- Remove archive/, old files can be reached using git
- Remove old and unused packages
- Move stale files from config subdir to a package subdir
Diffstat (limited to 'config/countryblock')
22 files changed, 0 insertions, 7845 deletions
diff --git a/config/countryblock/class.phpmailer.tmp b/config/countryblock/class.phpmailer.tmp deleted file mode 100644 index c2cbba03..00000000 --- a/config/countryblock/class.phpmailer.tmp +++ /dev/null @@ -1,1909 +0,0 @@ -<?php -/*~ class.phpmailer.php -.---------------------------------------------------------------------------. -| Software: PHPMailer - PHP email class | -| Version: 2.0.4 | -| Contact: via sourceforge.net support pages (also www.codeworxtech.com) | -| Info: http://phpmailer.sourceforge.net | -| Support: http://sourceforge.net/projects/phpmailer/ | -| ------------------------------------------------------------------------- | -| Author: Andy Prevost (project admininistrator) | -| Author: Brent R. Matzelle (original founder) | -| Copyright (c) 2004-2007, Andy Prevost. All Rights Reserved. | -| Copyright (c) 2001-2003, Brent R. Matzelle | -| ------------------------------------------------------------------------- | -| License: Distributed under the Lesser General Public License (LGPL) | -| http://www.gnu.org/copyleft/lesser.html | -| This program is distributed in the hope that it will be useful - WITHOUT | -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | -| FITNESS FOR A PARTICULAR PURPOSE. | -| ------------------------------------------------------------------------- | -| We offer a number of paid services (www.codeworxtech.com): | -| - Web Hosting on highly optimized fast and secure servers | -| - Technology Consulting | -| - Oursourcing (highly qualified programmers and graphic designers) | -'---------------------------------------------------------------------------' - -/** - * PHPMailer - PHP email transport class - * @package PHPMailer - * @author Andy Prevost - * @copyright 2004 - 2009 Andy Prevost - */ - -class PHPMailer { - - ///////////////////////////////////////////////// - // PROPERTIES, PUBLIC - ///////////////////////////////////////////////// - - /** - * Email priority (1 = High, 3 = Normal, 5 = low). - * @var int - */ - var $Priority = 3; - - /** - * Sets the CharSet of the message. - * @var string - */ - var $CharSet = 'iso-8859-1'; - - /** - * Sets the Content-type of the message. - * @var string - */ - var $ContentType = 'text/plain'; - - /** - * Sets the Encoding of the message. Options for this are "8bit", - * "7bit", "binary", "base64", and "quoted-printable". - * @var string - */ - var $Encoding = '8bit'; - - /** - * Holds the most recent mailer error message. - * @var string - */ - var $ErrorInfo = ''; - - /** - * Sets the From email address for the message. - * @var string - */ - var $From = 'root@localhost'; - - /** - * Sets the From name of the message. - * @var string - */ - var $FromName = 'Root User'; - - /** - * Sets the Sender email (Return-Path) of the message. If not empty, - * will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode. - * @var string - */ - var $Sender = ''; - - /** - * Sets the Subject of the message. - * @var string - */ - var $Subject = ''; - - /** - * Sets the Body of the message. This can be either an HTML or text body. - * If HTML then run IsHTML(true). - * @var string - */ - var $Body = ''; - - /** - * Sets the text-only body of the message. This automatically sets the - * email to multipart/alternative. This body can be read by mail - * clients that do not have HTML email capability such as mutt. Clients - * that can read HTML will view the normal Body. - * @var string - */ - var $AltBody = ''; - - /** - * Sets word wrapping on the body of the message to a given number of - * characters. - * @var int - */ - var $WordWrap = 0; - - /** - * Method to send mail: ("mail", "sendmail", or "smtp"). - * @var string - */ - var $Mailer = 'mail'; - - /** - * Sets the path of the sendmail program. - * @var string - */ - var $Sendmail = '/usr/sbin/sendmail'; - - /** - * Path to PHPMailer plugins. This is now only useful if the SMTP class - * is in a different directory than the PHP include path. - * @var string - */ - var $PluginDir = ''; - - /** - * Holds PHPMailer version. - * @var string - */ - var $Version = "2.0.4"; - - /** - * Sets the email address that a reading confirmation will be sent. - * @var string - */ - var $ConfirmReadingTo = ''; - - /** - * Sets the hostname to use in Message-Id and Received headers - * and as default HELO string. If empty, the value returned - * by SERVER_NAME is used or 'localhost.localdomain'. - * @var string - */ - var $Hostname = ''; - - /** - * Sets the message ID to be used in the Message-Id header. - * If empty, a unique id will be generated. - * @var string - */ - var $MessageID = ''; - - ///////////////////////////////////////////////// - // PROPERTIES FOR SMTP - ///////////////////////////////////////////////// - - /** - * Sets the SMTP hosts. All hosts must be separated by a - * semicolon. You can also specify a different port - * for each host by using this format: [hostname:port] - * (e.g. "smtp1.example.com:25;smtp2.example.com"). - * Hosts will be tried in order. - * @var string - */ - var $Host = 'smtp.gmail.com'; - - /** - * Sets the default SMTP server port. - * @var int - */ - var $Port = 465; - - /** - * Sets the SMTP HELO of the message (Default is $Hostname). - * @var string - */ - var $Helo = ''; - - /** - * Sets connection prefix. - * Options are "", "ssl" or "tls" - * @var string - */ - var $SMTPSecure = "ssl"; - - /** - * Sets SMTP authentication. Utilizes the Username and Password variables. - * @var bool - */ - var $SMTPAuth = false; - - /** - * Sets SMTP username. - * @var string - */ - var $Username = ''; - - /** - * Sets SMTP password. - * @var string - */ - var $Password = ''; - - /** - * Sets the SMTP server timeout in seconds. This function will not - * work with the win32 version. - * @var int - */ - var $Timeout = 10; - - /** - * Sets SMTP class debugging on or off. - * @var bool - */ - var $SMTPDebug = false; - - /** - * Prevents the SMTP connection from being closed after each mail - * sending. If this is set to true then to close the connection - * requires an explicit call to SmtpClose(). - * @var bool - */ - var $SMTPKeepAlive = false; - - /** - * Provides the ability to have the TO field process individual - * emails, instead of sending to entire TO addresses - * @var bool - */ - var $SingleTo = false; - - ///////////////////////////////////////////////// - // PROPERTIES, PRIVATE - ///////////////////////////////////////////////// - - var $smtp = NULL; - var $to = array(); - var $cc = array(); - var $bcc = array(); - var $ReplyTo = array(); - var $attachment = array(); - var $CustomHeader = array(); - var $message_type = ''; - var $boundary = array(); - var $language = array(); - var $error_count = 0; - var $LE = "\n"; - var $sign_cert_file = ""; - var $sign_key_file = ""; - var $sign_key_pass = ""; - - ///////////////////////////////////////////////// - // METHODS, VARIABLES - ///////////////////////////////////////////////// - - /** - * Sets message type to HTML. - * @param bool $bool - * @return void - */ - function IsHTML($bool) { - if($bool == true) { - $this->ContentType = 'text/html'; - } else { - $this->ContentType = 'text/plain'; - } - } - - /** - * Sets Mailer to send message using SMTP. - * @return void - */ - function IsSMTP() { - $this->Mailer = 'smtp'; - } - - /** - * Sets Mailer to send message using PHP mail() function. - * @return void - */ - function IsMail() { - $this->Mailer = 'mail'; - } - - /** - * Sets Mailer to send message using the $Sendmail program. - * @return void - */ - function IsSendmail() { - $this->Mailer = 'sendmail'; - } - - /** - * Sets Mailer to send message using the qmail MTA. - * @return void - */ - function IsQmail() { - $this->Sendmail = '/var/qmail/bin/sendmail'; - $this->Mailer = 'sendmail'; - } - - ///////////////////////////////////////////////// - // METHODS, RECIPIENTS - ///////////////////////////////////////////////// - - /** - * Adds a "To" address. - * @param string $address - * @param string $name - * @return void - */ - function AddAddress($address, $name = '') { - $cur = count($this->to); - $this->to[$cur][0] = trim($address); - $this->to[$cur][1] = $name; - } - - /** - * Adds a "Cc" address. Note: this function works - * with the SMTP mailer on win32, not with the "mail" - * mailer. - * @param string $address - * @param string $name - * @return void - */ - function AddCC($address, $name = '') { - $cur = count($this->cc); - $this->cc[$cur][0] = trim($address); - $this->cc[$cur][1] = $name; - } - - /** - * Adds a "Bcc" address. Note: this function works - * with the SMTP mailer on win32, not with the "mail" - * mailer. - * @param string $address - * @param string $name - * @return void - */ - function AddBCC($address, $name = '') { - $cur = count($this->bcc); - $this->bcc[$cur][0] = trim($address); - $this->bcc[$cur][1] = $name; - } - - /** - * Adds a "Reply-To" address. - * @param string $address - * @param string $name - * @return void - */ - function AddReplyTo($address, $name = '') { - $cur = count($this->ReplyTo); - $this->ReplyTo[$cur][0] = trim($address); - $this->ReplyTo[$cur][1] = $name; - } - - ///////////////////////////////////////////////// - // METHODS, MAIL SENDING - ///////////////////////////////////////////////// - - /** - * Creates message and assigns Mailer. If the message is - * not sent successfully then it returns false. Use the ErrorInfo - * variable to view description of the error. - * @return bool - */ - function Send() { - $header = ''; - $body = ''; - $result = true; - - if((count($this->to) + count($this->cc) + count($this->bcc)) < 1) { - $this->SetError($this->Lang('provide_address')); - return false; - } - - /* Set whether the message is multipart/alternative */ - if(!empty($this->AltBody)) { - $this->ContentType = 'multipart/alternative'; - } - - $this->error_count = 0; // reset errors - $this->SetMessageType(); - $header .= $this->CreateHeader(); - $body = $this->CreateBody(); - - if($body == '') { - return false; - } - - /* Choose the mailer */ - switch($this->Mailer) { - case 'sendmail': - $result = $this->SendmailSend($header, $body); - break; - case 'smtp': - $result = $this->SmtpSend($header, $body); - break; - case 'mail': - $result = $this->MailSend($header, $body); - break; - default: - $result = $this->MailSend($header, $body); - break; - //$this->SetError($this->Mailer . $this->Lang('mailer_not_supported')); - //$result = false; - //break; - } - - return $result; - } - - /** - * Sends mail using the $Sendmail program. - * @access private - * @return bool - */ - function SendmailSend($header, $body) { - if ($this->Sender != '') { - $sendmail = sprintf("%s -oi -f %s -t", escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender)); - } else { - $sendmail = sprintf("%s -oi -t", escapeshellcmd($this->Sendmail)); - } - - if(!@$mail = popen($sendmail, 'w')) { - $this->SetError($this->Lang('execute') . $this->Sendmail); - return false; - } - - fputs($mail, $header); - fputs($mail, $body); - - $result = pclose($mail); - if (version_compare(phpversion(), '4.2.3') == -1) { - $result = $result >> 8 & 0xFF; - } - if($result != 0) { - $this->SetError($this->Lang('execute') . $this->Sendmail); - return false; - } - return true; - } - - /** - * Sends mail using the PHP mail() function. - * @access private - * @return bool - */ - function MailSend($header, $body) { - - $to = ''; - for($i = 0; $i < count($this->to); $i++) { - if($i != 0) { $to .= ', '; } - $to .= $this->AddrFormat($this->to[$i]); - } - - $toArr = split(',', $to); - - $params = sprintf("-oi -f %s", $this->Sender); - if ($this->Sender != '' && strlen(ini_get('safe_mode')) < 1) { - $old_from = ini_get('sendmail_from'); - ini_set('sendmail_from', $this->Sender); - if ($this->SingleTo === true && count($toArr) > 1) { - foreach ($toArr as $key => $val) { - $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); - } - } else { - $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); - } - } else { - if ($this->SingleTo === true && count($toArr) > 1) { - foreach ($toArr as $key => $val) { - $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); - } - } else { - $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header); - } - } - - if (isset($old_from)) { - ini_set('sendmail_from', $old_from); - } - - if(!$rt) { - $this->SetError($this->Lang('instantiate')); - return false; - } - - return true; - } - - /** - * Sends mail via SMTP using PhpSMTP (Author: - * Chris Ryan). Returns bool. Returns false if there is a - * bad MAIL FROM, RCPT, or DATA input. - * @access private - * @return bool - */ - function SmtpSend($header, $body) { - include_once($this->PluginDir . 'class.smtp.php'); - $error = ''; - $bad_rcpt = array(); - - if(!$this->SmtpConnect()) { - return false; - } - - $smtp_from = ($this->Sender == '') ? $this->From : $this->Sender; - if(!$this->smtp->Mail($smtp_from)) { - $error = $this->Lang('from_failed') . $smtp_from; - $this->SetError($error); - $this->smtp->Reset(); - return false; - } - - /* Attempt to send attach all recipients */ - for($i = 0; $i < count($this->to); $i++) { - if(!$this->smtp->Recipient($this->to[$i][0])) { - $bad_rcpt[] = $this->to[$i][0]; - } - } - for($i = 0; $i < count($this->cc); $i++) { - if(!$this->smtp->Recipient($this->cc[$i][0])) { - $bad_rcpt[] = $this->cc[$i][0]; - } - } - for($i = 0; $i < count($this->bcc); $i++) { - if(!$this->smtp->Recipient($this->bcc[$i][0])) { - $bad_rcpt[] = $this->bcc[$i][0]; - } - } - - if(count($bad_rcpt) > 0) { // Create error message - for($i = 0; $i < count($bad_rcpt); $i++) { - if($i != 0) { - $error .= ', '; - } - $error .= $bad_rcpt[$i]; - } - $error = $this->Lang('recipients_failed') . $error; - $this->SetError($error); - $this->smtp->Reset(); - return false; - } - - if(!$this->smtp->Data($header . $body)) { - $this->SetError($this->Lang('data_not_accepted')); - $this->smtp->Reset(); - return false; - } - if($this->SMTPKeepAlive == true) { - $this->smtp->Reset(); - } else { - $this->SmtpClose(); - } - - return true; - } - - /** - * Initiates a connection to an SMTP server. Returns false if the - * operation failed. - * @access private - * @return bool - */ - function SmtpConnect() { - if($this->smtp == NULL) { - $this->smtp = new SMTP(); - } - - $this->smtp->do_debug = $this->SMTPDebug; - $hosts = explode(';', $this->Host); - $index = 0; - $connection = ($this->smtp->Connected()); - - /* Retry while there is no connection */ - while($index < count($hosts) && $connection == false) { - $hostinfo = array(); - if(eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo)) { - $host = $hostinfo[1]; - $port = $hostinfo[2]; - } else { - $host = $hosts[$index]; - $port = $this->Port; - } - - if($this->smtp->Connect(((!empty($this->SMTPSecure))?$this->SMTPSecure.'://':'').$host, $port, $this->Timeout)) { - if ($this->Helo != '') { - $this->smtp->Hello($this->Helo); - } else { - $this->smtp->Hello($this->ServerHostname()); - } - - $connection = true; - if($this->SMTPAuth) { - if(!$this->smtp->Authenticate($this->Username, $this->Password)) { - $this->SetError($this->Lang('authenticate')); - $this->smtp->Reset(); - $connection = false; - } - } - } - $index++; - } - if(!$connection) { - $this->SetError($this->Lang('connect_host')); - } - - return $connection; - } - - /** - * Closes the active SMTP session if one exists. - * @return void - */ - function SmtpClose() { - if($this->smtp != NULL) { - if($this->smtp->Connected()) { - $this->smtp->Quit(); - $this->smtp->Close(); - } - } - } - - /** - * Sets the language for all class error messages. Returns false - * if it cannot load the language file. The default language type - * is English. - * @param string $lang_type Type of language (e.g. Portuguese: "br") - * @param string $lang_path Path to the language file directory - * @access public - * @return bool - */ - function SetLanguage($lang_type, $lang_path = 'language/') { - if(file_exists($lang_path.'phpmailer.lang-'.$lang_type.'.php')) { - include($lang_path.'phpmailer.lang-'.$lang_type.'.php'); - } elseif (file_exists($lang_path.'phpmailer.lang-en.php')) { - include($lang_path.'phpmailer.lang-en.php'); - } else { - $PHPMAILER_LANG = array(); - $PHPMAILER_LANG["provide_address"] = 'You must provide at least one ' . - $PHPMAILER_LANG["mailer_not_supported"] = ' mailer is not supported.'; - $PHPMAILER_LANG["execute"] = 'Could not execute: '; - $PHPMAILER_LANG["instantiate"] = 'Could not instantiate mail function.'; - $PHPMAILER_LANG["authenticate"] = 'SMTP Error: Could not authenticate.'; - $PHPMAILER_LANG["from_failed"] = 'The following From address failed: '; - $PHPMAILER_LANG["recipients_failed"] = 'SMTP Error: The following ' . - $PHPMAILER_LANG["data_not_accepted"] = 'SMTP Error: Data not accepted.'; - $PHPMAILER_LANG["connect_host"] = 'SMTP Error: Could not connect to SMTP host.'; - $PHPMAILER_LANG["file_access"] = 'Could not access file: '; - $PHPMAILER_LANG["file_open"] = 'File Error: Could not open file: '; - $PHPMAILER_LANG["encoding"] = 'Unknown encoding: '; - $PHPMAILER_LANG["signing"] = 'Signing Error: '; - } - $this->language = $PHPMAILER_LANG; - - return true; - } - - ///////////////////////////////////////////////// - // METHODS, MESSAGE CREATION - ///////////////////////////////////////////////// - - /** - * Creates recipient headers. - * @access private - * @return string - */ - function AddrAppend($type, $addr) { - $addr_str = $type . ': '; - $addr_str .= $this->AddrFormat($addr[0]); - if(count($addr) > 1) { - for($i = 1; $i < count($addr); $i++) { - $addr_str .= ', ' . $this->AddrFormat($addr[$i]); - } - } - $addr_str .= $this->LE; - - return $addr_str; - } - - /** - * Formats an address correctly. - * @access private - * @return string - */ - function AddrFormat($addr) { - if(empty($addr[1])) { - $formatted = $this->SecureHeader($addr[0]); - } else { - $formatted = $this->EncodeHeader($this->SecureHeader($addr[1]), 'phrase') . " <" . $this->SecureHeader($addr[0]) . ">"; - } - - return $formatted; - } - - /** - * Wraps message for use with mailers that do not - * automatically perform wrapping and for quoted-printable. - * Original written by philippe. - * @access private - * @return string - */ - function WrapText($message, $length, $qp_mode = false) { - $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE; - // If utf-8 encoding is used, we will need to make sure we don't - // split multibyte characters when we wrap - $is_utf8 = (strtolower($this->CharSet) == "utf-8"); - - $message = $this->FixEOL($message); - if (substr($message, -1) == $this->LE) { - $message = substr($message, 0, -1); - } - - $line = explode($this->LE, $message); - $message = ''; - for ($i=0 ;$i < count($line); $i++) { - $line_part = explode(' ', $line[$i]); - $buf = ''; - for ($e = 0; $e<count($line_part); $e++) { - $word = $line_part[$e]; - if ($qp_mode and (strlen($word) > $length)) { - $space_left = $length - strlen($buf) - 1; - if ($e != 0) { - if ($space_left > 20) { - $len = $space_left; - if ($is_utf8) { - $len = $this->UTF8CharBoundary($word, $len); - } elseif (substr($word, $len - 1, 1) == "=") { - $len--; - } elseif (substr($word, $len - 2, 1) == "=") { - $len -= 2; - } - $part = substr($word, 0, $len); - $word = substr($word, $len); - $buf .= ' ' . $part; - $message .= $buf . sprintf("=%s", $this->LE); - } else { - $message .= $buf . $soft_break; - } - $buf = ''; - } - while (strlen($word) > 0) { - $len = $length; - if ($is_utf8) { - $len = $this->UTF8CharBoundary($word, $len); - } elseif (substr($word, $len - 1, 1) == "=") { - $len--; - } elseif (substr($word, $len - 2, 1) == "=") { - $len -= 2; - } - $part = substr($word, 0, $len); - $word = substr($word, $len); - - if (strlen($word) > 0) { - $message .= $part . sprintf("=%s", $this->LE); - } else { - $buf = $part; - } - } - } else { - $buf_o = $buf; - $buf .= ($e == 0) ? $word : (' ' . $word); - - if (strlen($buf) > $length and $buf_o != '') { - $message .= $buf_o . $soft_break; - $buf = $word; - } - } - } - $message .= $buf . $this->LE; - } - - return $message; - } - - /** - * Finds last character boundary prior to maxLength in a utf-8 - * quoted (printable) encoded string. - * Original written by Colin Brown. - * @access private - * @param string $encodedText utf-8 QP text - * @param int $maxLength find last character boundary prior to this length - * @return int - */ - function UTF8CharBoundary($encodedText, $maxLength) { - $foundSplitPos = false; - $lookBack = 3; - while (!$foundSplitPos) { - $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack); - $encodedCharPos = strpos($lastChunk, "="); - if ($encodedCharPos !== false) { - // Found start of encoded character byte within $lookBack block. - // Check the encoded byte value (the 2 chars after the '=') - $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2); - $dec = hexdec($hex); - if ($dec < 128) { // Single byte character. - // If the encoded char was found at pos 0, it will fit - // otherwise reduce maxLength to start of the encoded char - $maxLength = ($encodedCharPos == 0) ? $maxLength : - $maxLength - ($lookBack - $encodedCharPos); - $foundSplitPos = true; - } elseif ($dec >= 192) { // First byte of a multi byte character - // Reduce maxLength to split at start of character - $maxLength = $maxLength - ($lookBack - $encodedCharPos); - $foundSplitPos = true; - } elseif ($dec < 192) { // Middle byte of a multi byte character, look further back - $lookBack += 3; - } - } else { - // No encoded character found - $foundSplitPos = true; - } - } - return $maxLength; - } - - /** - * Set the body wrapping. - * @access private - * @return void - */ - function SetWordWrap() { - if($this->WordWrap < 1) { - return; - } - - switch($this->message_type) { - case 'alt': - /* fall through */ - case 'alt_attachments': - $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap); - break; - default: - $this->Body = $this->WrapText($this->Body, $this->WordWrap); - break; - } - } - - /** - * Assembles message header. - * @access private - * @return string - */ - function CreateHeader() { - $result = ''; - - /* Set the boundaries */ - $uniq_id = md5(uniqid(time())); - $this->boundary[1] = 'b1_' . $uniq_id; - $this->boundary[2] = 'b2_' . $uniq_id; - - $result .= $this->HeaderLine('Date', $this->RFCDate()); - if($this->Sender == '') { - $result .= $this->HeaderLine('Return-Path', trim($this->From)); - } else { - $result .= $this->HeaderLine('Return-Path', trim($this->Sender)); - } - - /* To be created automatically by mail() */ - if($this->Mailer != 'mail') { - if(count($this->to) > 0) { - $result .= $this->AddrAppend('To', $this->to); - } elseif (count($this->cc) == 0) { - $result .= $this->HeaderLine('To', 'undisclosed-recipients:;'); - } - } - - $from = array(); - $from[0][0] = trim($this->From); - $from[0][1] = $this->FromName; - $result .= $this->AddrAppend('From', $from); - - /* sendmail and mail() extract Cc from the header before sending */ - if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->cc) > 0)) { - $result .= $this->AddrAppend('Cc', $this->cc); - } - - /* sendmail and mail() extract Bcc from the header before sending */ - if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->bcc) > 0)) { - $result .= $this->AddrAppend('Bcc', $this->bcc); - } - - if(count($this->ReplyTo) > 0) { - $result .= $this->AddrAppend('Reply-To', $this->ReplyTo); - } - - /* mail() sets the subject itself */ - if($this->Mailer != 'mail') { - $result .= $this->HeaderLine('Subject', $this->EncodeHeader($this->SecureHeader($this->Subject))); - } - - if($this->MessageID != '') { - $result .= $this->HeaderLine('Message-ID',$this->MessageID); - } else { - $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE); - } - $result .= $this->HeaderLine('X-Priority', $this->Priority); - $result .= $this->HeaderLine('X-Mailer', 'PHPMailer (phpmailer.sourceforge.net) [version ' . $this->Version . ']'); - - if($this->ConfirmReadingTo != '') { - $result .= $this->HeaderLine('Disposition-Notification-To', '<' . trim($this->ConfirmReadingTo) . '>'); - } - - // Add custom headers - for($index = 0; $index < count($this->CustomHeader); $index++) { - $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), $this->EncodeHeader(trim($this->CustomHeader[$index][1]))); - } - if (!$this->sign_key_file) { - $result .= $this->HeaderLine('MIME-Version', '1.0'); - $result .= $this->GetMailMIME(); - } - - return $result; - } - - /** - * Returns the message MIME. - * @access private - * @return string - */ - function GetMailMIME() { - $result = ''; - switch($this->message_type) { - case 'plain': - $result .= $this->HeaderLine('Content-Transfer-Encoding', $this->Encoding); - $result .= sprintf("Content-Type: %s; charset=\"%s\"", $this->ContentType, $this->CharSet); - break; - case 'attachments': - /* fall through */ - case 'alt_attachments': - if($this->InlineImageExists()){ - $result .= sprintf("Content-Type: %s;%s\ttype=\"text/html\";%s\tboundary=\"%s\"%s", 'multipart/related', $this->LE, $this->LE, $this->boundary[1], $this->LE); - } else { - $result .= $this->HeaderLine('Content-Type', 'multipart/mixed;'); - $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); - } - break; - case 'alt': - $result .= $this->HeaderLine('Content-Type', 'multipart/alternative;'); - $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); - break; - } - - if($this->Mailer != 'mail') { - $result .= $this->LE.$this->LE; - } - - return $result; - } - - /** - * Assembles the message body. Returns an empty string on failure. - * @access private - * @return string - */ - function CreateBody() { - $result = ''; - if ($this->sign_key_file) { - $result .= $this->GetMailMIME(); - } - - $this->SetWordWrap(); - - switch($this->message_type) { - case 'alt': - $result .= $this->GetBoundary($this->boundary[1], '', 'text/plain', ''); - $result .= $this->EncodeString($this->AltBody, $this->Encoding); - $result .= $this->LE.$this->LE; - $result .= $this->GetBoundary($this->boundary[1], '', 'text/html', ''); - $result .= $this->EncodeString($this->Body, $this->Encoding); - $result .= $this->LE.$this->LE; - $result .= $this->EndBoundary($this->boundary[1]); - break; - case 'plain': - $result .= $this->EncodeString($this->Body, $this->Encoding); - break; - case 'attachments': - $result .= $this->GetBoundary($this->boundary[1], '', '', ''); - $result .= $this->EncodeString($this->Body, $this->Encoding); - $result .= $this->LE; - $result .= $this->AttachAll(); - break; - case 'alt_attachments': - $result .= sprintf("--%s%s", $this->boundary[1], $this->LE); - $result .= sprintf("Content-Type: %s;%s" . "\tboundary=\"%s\"%s", 'multipart/alternative', $this->LE, $this->boundary[2], $this->LE.$this->LE); - $result .= $this->GetBoundary($this->boundary[2], '', 'text/plain', '') . $this->LE; // Create text body - $result .= $this->EncodeString($this->AltBody, $this->Encoding); - $result .= $this->LE.$this->LE; - $result .= $this->GetBoundary($this->boundary[2], '', 'text/html', '') . $this->LE; // Create the HTML body - $result .= $this->EncodeString($this->Body, $this->Encoding); - $result .= $this->LE.$this->LE; - $result .= $this->EndBoundary($this->boundary[2]); - $result .= $this->AttachAll(); - break; - } - - if($this->IsError()) { - $result = ''; - } else if ($this->sign_key_file) { - $file = tempnam("", "mail"); - $fp = fopen($file, "w"); - fwrite($fp, $result); - fclose($fp); - $signed = tempnam("", "signed"); - - if (@openssl_pkcs7_sign($file, $signed, "file://".$this->sign_cert_file, array("file://".$this->sign_key_file, $this->sign_key_pass), null)) { - $fp = fopen($signed, "r"); - $result = fread($fp, filesize($this->sign_key_file)); - $result = ''; - while(!feof($fp)){ - $result = $result . fread($fp, 1024); - } - fclose($fp); - } else { - $this->SetError($this->Lang("signing").openssl_error_string()); - $result = ''; - } - - unlink($file); - unlink($signed); - } - - return $result; - } - - /** - * Returns the start of a message boundary. - * @access private - */ - function GetBoundary($boundary, $charSet, $contentType, $encoding) { - $result = ''; - if($charSet == '') { - $charSet = $this->CharSet; - } - if($contentType == '') { - $contentType = $this->ContentType; - } - if($encoding == '') { - $encoding = $this->Encoding; - } - $result .= $this->TextLine('--' . $boundary); - $result .= sprintf("Content-Type: %s; charset = \"%s\"", $contentType, $charSet); - $result .= $this->LE; - $result .= $this->HeaderLine('Content-Transfer-Encoding', $encoding); - $result .= $this->LE; - - return $result; - } - - /** - * Returns the end of a message boundary. - * @access private - */ - function EndBoundary($boundary) { - return $this->LE . '--' . $boundary . '--' . $this->LE; - } - - /** - * Sets the message type. - * @access private - * @return void - */ - function SetMessageType() { - if(count($this->attachment) < 1 && strlen($this->AltBody) < 1) { - $this->message_type = 'plain'; - } else { - if(count($this->attachment) > 0) { - $this->message_type = 'attachments'; - } - if(strlen($this->AltBody) > 0 && count($this->attachment) < 1) { - $this->message_type = 'alt'; - } - if(strlen($this->AltBody) > 0 && count($this->attachment) > 0) { - $this->message_type = 'alt_attachments'; - } - } - } - - /* Returns a formatted header line. - * @access private - * @return string - */ - function HeaderLine($name, $value) { - return $name . ': ' . $value . $this->LE; - } - - /** - * Returns a formatted mail line. - * @access private - * @return string - */ - function TextLine($value) { - return $value . $this->LE; - } - - ///////////////////////////////////////////////// - // CLASS METHODS, ATTACHMENTS - ///////////////////////////////////////////////// - - /** - * Adds an attachment from a path on the filesystem. - * Returns false if the file could not be found - * or accessed. - * @param string $path Path to the attachment. - * @param string $name Overrides the attachment name. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return bool - */ - function AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { - if(!@is_file($path)) { - $this->SetError($this->Lang('file_access') . $path); - return false; - } - - $filename = basename($path); - if($name == '') { - $name = $filename; - } - - $cur = count($this->attachment); - $this->attachment[$cur][0] = $path; - $this->attachment[$cur][1] = $filename; - $this->attachment[$cur][2] = $name; - $this->attachment[$cur][3] = $encoding; - $this->attachment[$cur][4] = $type; - $this->attachment[$cur][5] = false; // isStringAttachment - $this->attachment[$cur][6] = 'attachment'; - $this->attachment[$cur][7] = 0; - - return true; - } - - /** - * Attaches all fs, string, and binary attachments to the message. - * Returns an empty string on failure. - * @access private - * @return string - */ - function AttachAll() { - /* Return text of body */ - $mime = array(); - - /* Add all attachments */ - for($i = 0; $i < count($this->attachment); $i++) { - /* Check for string attachment */ - $bString = $this->attachment[$i][5]; - if ($bString) { - $string = $this->attachment[$i][0]; - } else { - $path = $this->attachment[$i][0]; - } - - $filename = $this->attachment[$i][1]; - $name = $this->attachment[$i][2]; - $encoding = $this->attachment[$i][3]; - $type = $this->attachment[$i][4]; - $disposition = $this->attachment[$i][6]; - $cid = $this->attachment[$i][7]; - - $mime[] = sprintf("--%s%s", $this->boundary[1], $this->LE); - $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $this->EncodeHeader($this->SecureHeader($name)), $this->LE); - $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE); - - if($disposition == 'inline') { - $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE); - } - - $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", $disposition, $this->EncodeHeader($this->SecureHeader($name)), $this->LE.$this->LE); - - /* Encode as string attachment */ - if($bString) { - $mime[] = $this->EncodeString($string, $encoding); - if($this->IsError()) { - return ''; - } - $mime[] = $this->LE.$this->LE; - } else { - $mime[] = $this->EncodeFile($path, $encoding); - if($this->IsError()) { - return ''; - } - $mime[] = $this->LE.$this->LE; - } - } - - $mime[] = sprintf("--%s--%s", $this->boundary[1], $this->LE); - - return join('', $mime); - } - - /** - * Encodes attachment in requested format. Returns an - * empty string on failure. - * @access private - * @return string - */ - function EncodeFile ($path, $encoding = 'base64') { - if(!@$fd = fopen($path, 'rb')) { - $this->SetError($this->Lang('file_open') . $path); - return ''; - } - $magic_quotes = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); - $file_buffer = fread($fd, filesize($path)); - $file_buffer = $this->EncodeString($file_buffer, $encoding); - fclose($fd); - set_magic_quotes_runtime($magic_quotes); - - return $file_buffer; - } - - /** - * Encodes string to requested format. Returns an - * empty string on failure. - * @access private - * @return string - */ - function EncodeString ($str, $encoding = 'base64') { - $encoded = ''; - switch(strtolower($encoding)) { - case 'base64': - /* chunk_split is found in PHP >= 3.0.6 */ - $encoded = chunk_split(base64_encode($str), 76, $this->LE); - break; - case '7bit': - case '8bit': - $encoded = $this->FixEOL($str); - if (substr($encoded, -(strlen($this->LE))) != $this->LE) - $encoded .= $this->LE; - break; - case 'binary': - $encoded = $str; - break; - case 'quoted-printable': - $encoded = $this->EncodeQP($str); - break; - default: - $this->SetError($this->Lang('encoding') . $encoding); - break; - } - return $encoded; - } - - /** - * Encode a header string to best of Q, B, quoted or none. - * @access private - * @return string - */ - function EncodeHeader ($str, $position = 'text') { - $x = 0; - - switch (strtolower($position)) { - case 'phrase': - if (!preg_match('/[\200-\377]/', $str)) { - /* Can't use addslashes as we don't know what value has magic_quotes_sybase. */ - $encoded = addcslashes($str, "\0..\37\177\\\""); - if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) { - return ($encoded); - } else { - return ("\"$encoded\""); - } - } - $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches); - break; - case 'comment': - $x = preg_match_all('/[()"]/', $str, $matches); - /* Fall-through */ - case 'text': - default: - $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches); - break; - } - - if ($x == 0) { - return ($str); - } - - $maxlen = 75 - 7 - strlen($this->CharSet); - /* Try to select the encoding which should produce the shortest output */ - if (strlen($str)/3 < $x) { - $encoding = 'B'; - if (function_exists('mb_strlen') && $this->HasMultiBytes($str)) { - // Use a custom function which correctly encodes and wraps long - // multibyte strings without breaking lines within a character - $encoded = $this->Base64EncodeWrapMB($str); - } else { - $encoded = base64_encode($str); - $maxlen -= $maxlen % 4; - $encoded = trim(chunk_split($encoded, $maxlen, "\n")); - } - } else { - $encoding = 'Q'; - $encoded = $this->EncodeQ($str, $position); - $encoded = $this->WrapText($encoded, $maxlen, true); - $encoded = str_replace('='.$this->LE, "\n", trim($encoded)); - } - - $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded); - $encoded = trim(str_replace("\n", $this->LE, $encoded)); - - return $encoded; - } - - /** - * Checks if a string contains multibyte characters. - * @access private - * @param string $str multi-byte text to wrap encode - * @return bool - */ - function HasMultiBytes($str) { - if (function_exists('mb_strlen')) { - return (strlen($str) > mb_strlen($str, $this->CharSet)); - } else { // Assume no multibytes (we can't handle without mbstring functions anyway) - return False; - } - } - - /** - * Correctly encodes and wraps long multibyte strings for mail headers - * without breaking lines within a character. - * Adapted from a function by paravoid at http://uk.php.net/manual/en/function.mb-encode-mimeheader.php - * @access private - * @param string $str multi-byte text to wrap encode - * @return string - */ - function Base64EncodeWrapMB($str) { - $start = "=?".$this->CharSet."?B?"; - $end = "?="; - $encoded = ""; - - $mb_length = mb_strlen($str, $this->CharSet); - // Each line must have length <= 75, including $start and $end - $length = 75 - strlen($start) - strlen($end); - // Average multi-byte ratio - $ratio = $mb_length / strlen($str); - // Base64 has a 4:3 ratio - $offset = $avgLength = floor($length * $ratio * .75); - - for ($i = 0; $i < $mb_length; $i += $offset) { - $lookBack = 0; - - do { - $offset = $avgLength - $lookBack; - $chunk = mb_substr($str, $i, $offset, $this->CharSet); - $chunk = base64_encode($chunk); - $lookBack++; - } - while (strlen($chunk) > $length); - - $encoded .= $chunk . $this->LE; - } - - // Chomp the last linefeed - $encoded = substr($encoded, 0, -strlen($this->LE)); - return $encoded; - } - - /** - * Encode string to quoted-printable. - * @access private - * @return string - */ - function EncodeQP( $input = '', $line_max = 76, $space_conv = false ) { - $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'); - $lines = preg_split('/(?:\r\n|\r|\n)/', $input); - $eol = "\r\n"; - $escape = '='; - $output = ''; - while( list(, $line) = each($lines) ) { - $linlen = strlen($line); - $newline = ''; - for($i = 0; $i < $linlen; $i++) { - $c = substr( $line, $i, 1 ); - $dec = ord( $c ); - if ( ( $i == 0 ) && ( $dec == 46 ) ) { // convert first point in the line into =2E - $c = '=2E'; - } - if ( $dec == 32 ) { - if ( $i == ( $linlen - 1 ) ) { // convert space at eol only - $c = '=20'; - } else if ( $space_conv ) { - $c = '=20'; - } - } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required - $h2 = floor($dec/16); - $h1 = floor($dec%16); - $c = $escape.$hex[$h2].$hex[$h1]; - } - if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted - $output .= $newline.$escape.$eol; // soft line break; " =\r\n" is okay - $newline = ''; - // check if newline first character will be point or not - if ( $dec == 46 ) { - $c = '=2E'; - } - } - $newline .= $c; - } // end of for - $output .= $newline.$eol; - } // end of while - return $output; - } - - /** - * Encode string to q encoding. - * @access private - * @return string - */ - function EncodeQ ($str, $position = 'text') { - /* There should not be any EOL in the string */ - $encoded = preg_replace("[\r\n]", '', $str); - - switch (strtolower($position)) { - case 'phrase': - $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); - break; - case 'comment': - $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); - case 'text': - default: - /* Replace every high ascii, control =, ? and _ characters */ - $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e', - "'='.sprintf('%02X', ord('\\1'))", $encoded); - break; - } - - /* Replace every spaces to _ (more readable than =20) */ - $encoded = str_replace(' ', '_', $encoded); - - return $encoded; - } - - /** - * Adds a string or binary attachment (non-filesystem) to the list. - * This method can be used to attach ascii or binary data, - * such as a BLOB record from a database. - * @param string $string String attachment data. - * @param string $filename Name of the attachment. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return void - */ - function AddStringAttachment($string, $filename, $encoding = 'base64', $type = 'application/octet-stream') { - /* Append to $attachment array */ - $cur = count($this->attachment); - $this->attachment[$cur][0] = $string; - $this->attachment[$cur][1] = $filename; - $this->attachment[$cur][2] = $filename; - $this->attachment[$cur][3] = $encoding; - $this->attachment[$cur][4] = $type; - $this->attachment[$cur][5] = true; // isString - $this->attachment[$cur][6] = 'attachment'; - $this->attachment[$cur][7] = 0; - } - - /** - * Adds an embedded attachment. This can include images, sounds, and - * just about any other document. Make sure to set the $type to an - * image type. For JPEG images use "image/jpeg" and for GIF images - * use "image/gif". - * @param string $path Path to the attachment. - * @param string $cid Content ID of the attachment. Use this to identify - * the Id for accessing the image in an HTML form. - * @param string $name Overrides the attachment name. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return bool - */ - function AddEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { - - if(!@is_file($path)) { - $this->SetError($this->Lang('file_access') . $path); - return false; - } - - $filename = basename($path); - if($name == '') { - $name = $filename; - } - - /* Append to $attachment array */ - $cur = count($this->attachment); - $this->attachment[$cur][0] = $path; - $this->attachment[$cur][1] = $filename; - $this->attachment[$cur][2] = $name; - $this->attachment[$cur][3] = $encoding; - $this->attachment[$cur][4] = $type; - $this->attachment[$cur][5] = false; - $this->attachment[$cur][6] = 'inline'; - $this->attachment[$cur][7] = $cid; - - return true; - } - - /** - * Returns true if an inline attachment is present. - * @access private - * @return bool - */ - function InlineImageExists() { - $result = false; - for($i = 0; $i < count($this->attachment); $i++) { - if($this->attachment[$i][6] == 'inline') { - $result = true; - break; - } - } - - return $result; - } - - ///////////////////////////////////////////////// - // CLASS METHODS, MESSAGE RESET - ///////////////////////////////////////////////// - - /** - * Clears all recipients assigned in the TO array. Returns void. - * @return void - */ - function ClearAddresses() { - $this->to = array(); - } - - /** - * Clears all recipients assigned in the CC array. Returns void. - * @return void - */ - function ClearCCs() { - $this->cc = array(); - } - - /** - * Clears all recipients assigned in the BCC array. Returns void. - * @return void - */ - function ClearBCCs() { - $this->bcc = array(); - } - - /** - * Clears all recipients assigned in the ReplyTo array. Returns void. - * @return void - */ - function ClearReplyTos() { - $this->ReplyTo = array(); - } - - /** - * Clears all recipients assigned in the TO, CC and BCC - * array. Returns void. - * @return void - */ - function ClearAllRecipients() { - $this->to = array(); - $this->cc = array(); - $this->bcc = array(); - } - - /** - * Clears all previously set filesystem, string, and binary - * attachments. Returns void. - * @return void - */ - function ClearAttachments() { - $this->attachment = array(); - } - - /** - * Clears all custom headers. Returns void. - * @return void - */ - function ClearCustomHeaders() { - $this->CustomHeader = array(); - } - - ///////////////////////////////////////////////// - // CLASS METHODS, MISCELLANEOUS - ///////////////////////////////////////////////// - - /** - * Adds the error message to the error container. - * Returns void. - * @access private - * @return void - */ - function SetError($msg) { - $this->error_count++; - $this->ErrorInfo = $msg; - } - - /** - * Returns the proper RFC 822 formatted date. - * @access private - * @return string - */ - function RFCDate() { - $tz = date('Z'); - $tzs = ($tz < 0) ? '-' : '+'; - $tz = abs($tz); - $tz = (int)($tz/3600)*100 + ($tz%3600)/60; - $result = sprintf("%s %s%04d", date('D, j M Y H:i:s'), $tzs, $tz); - - return $result; - } - - /** - * Returns the appropriate server variable. Should work with both - * PHP 4.1.0+ as well as older versions. Returns an empty string - * if nothing is found. - * @access private - * @return mixed - */ - function ServerVar($varName) { - global $HTTP_SERVER_VARS; - global $HTTP_ENV_VARS; - - if(!isset($_SERVER)) { - $_SERVER = $HTTP_SERVER_VARS; - if(!isset($_SERVER['REMOTE_ADDR'])) { - $_SERVER = $HTTP_ENV_VARS; // must be Apache - } - } - - if(isset($_SERVER[$varName])) { - return $_SERVER[$varName]; - } else { - return ''; - } - } - - /** - * Returns the server hostname or 'localhost.localdomain' if unknown. - * @access private - * @return string - */ - function ServerHostname() { - if ($this->Hostname != '') { - $result = $this->Hostname; - } elseif ($this->ServerVar('SERVER_NAME') != '') { - $result = $this->ServerVar('SERVER_NAME'); - } else { - $result = 'localhost.localdomain'; - } - - return $result; - } - - /** - * Returns a message in the appropriate language. - * @access private - * @return string - */ - function Lang($key) { - if(count($this->language) < 1) { - $this->SetLanguage('en'); // set the default language - } - - if(isset($this->language[$key])) { - return $this->language[$key]; - } else { - return 'Language string failed to load: ' . $key; - } - } - - /** - * Returns true if an error occurred. - * @return bool - */ - function IsError() { - return ($this->error_count > 0); - } - - /** - * Changes every end of line from CR or LF to CRLF. - * @access private - * @return string - */ - function FixEOL($str) { - $str = str_replace("\r\n", "\n", $str); - $str = str_replace("\r", "\n", $str); - $str = str_replace("\n", $this->LE, $str); - return $str; - } - - /** - * Adds a custom header. - * @return void - */ - function AddCustomHeader($custom_header) { - $this->CustomHeader[] = explode(':', $custom_header, 2); - } - - /** - * Evaluates the message and returns modifications for inline images and backgrounds - * @access public - * @return $message - */ - function MsgHTML($message,$basedir='') { - preg_match_all("/(src|background)=\"(.*)\"/Ui", $message, $images); - if(isset($images[2])) { - foreach($images[2] as $i => $url) { - // do not change urls for absolute images (thanks to corvuscorax) - if (!preg_match('/^[A-z][A-z]*:\/\//',$url)) { - $filename = basename($url); - $directory = dirname($url); - ($directory == '.')?$directory='':''; - $cid = 'cid:' . md5($filename); - $fileParts = split("\.", $filename); - $ext = $fileParts[1]; - $mimeType = $this->_mime_types($ext); - if ( strlen($basedir) > 1 && substr($basedir,-1) != '/') { $basedir .= '/'; } - if ( strlen($directory) > 1 && substr($directory,-1) != '/') { $directory .= '/'; } - if ( $this->AddEmbeddedImage($basedir.$directory.$filename, md5($filename), $filename, 'base64',$mimeType) ) { - $message = preg_replace("/".$images[1][$i]."=\"".preg_quote($url, '/')."\"/Ui", $images[1][$i]."=\"".$cid."\"", $message); - } - } - } - } - $this->IsHTML(true); - $this->Body = $message; - $textMsg = trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/s','',$message))); - if ( !empty($textMsg) && empty($this->AltBody) ) { - $this->AltBody = html_entity_decode($textMsg); - } - if ( empty($this->AltBody) ) { - $this->AltBody = 'To view this email message, open the email in with HTML compatibility!' . "\n\n"; - } - } - - /** - * Gets the mime type of the embedded or inline image - * @access private - * @return mime type of ext - */ - function _mime_types($ext = '') { - $mimes = array( - 'ai' => 'application/postscript', - 'aif' => 'audio/x-aiff', - 'aifc' => 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'avi' => 'video/x-msvideo', - 'bin' => 'application/macbinary', - 'bmp' => 'image/bmp', - 'class' => 'application/octet-stream', - 'cpt' => 'application/mac-compactpro', - 'css' => 'text/css', - 'dcr' => 'application/x-director', - 'dir' => 'application/x-director', - 'dll' => 'application/octet-stream', - 'dms' => 'application/octet-stream', - 'doc' => 'application/msword', - 'dvi' => 'application/x-dvi', - 'dxr' => 'application/x-director', - 'eml' => 'message/rfc822', - 'eps' => 'application/postscript', - 'exe' => 'application/octet-stream', - 'gif' => 'image/gif', - 'gtar' => 'application/x-gtar', - 'htm' => 'text/html', - 'html' => 'text/html', - 'jpe' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'hqx' => 'application/mac-binhex40', - 'js' => 'application/x-javascript', - 'lha' => 'application/octet-stream', - 'log' => 'text/plain', - 'lzh' => 'application/octet-stream', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mif' => 'application/vnd.mif', - 'mov' => 'video/quicktime', - 'movie' => 'video/x-sgi-movie', - 'mp2' => 'audio/mpeg', - 'mp3' => 'audio/mpeg', - 'mpe' => 'video/mpeg', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpga' => 'audio/mpeg', - 'oda' => 'application/oda', - 'pdf' => 'application/pdf', - 'php' => 'application/x-httpd-php', - 'php3' => 'application/x-httpd-php', - 'php4' => 'application/x-httpd-php', - 'phps' => 'application/x-httpd-php-source', - 'phtml' => 'application/x-httpd-php', - 'png' => 'image/png', - 'ppt' => 'application/vnd.ms-powerpoint', - 'ps' => 'application/postscript', - 'psd' => 'application/octet-stream', - 'qt' => 'video/quicktime', - 'ra' => 'audio/x-realaudio', - 'ram' => 'audio/x-pn-realaudio', - 'rm' => 'audio/x-pn-realaudio', - 'rpm' => 'audio/x-pn-realaudio-plugin', - 'rtf' => 'text/rtf', - 'rtx' => 'text/richtext', - 'rv' => 'video/vnd.rn-realvideo', - 'sea' => 'application/octet-stream', - 'shtml' => 'text/html', - 'sit' => 'application/x-stuffit', - 'so' => 'application/octet-stream', - 'smi' => 'application/smil', - 'smil' => 'application/smil', - 'swf' => 'application/x-shockwave-flash', - 'tar' => 'application/x-tar', - 'text' => 'text/plain', - 'txt' => 'text/plain', - 'tgz' => 'application/x-tar', - 'tif' => 'image/tiff', - 'tiff' => 'image/tiff', - 'wav' => 'audio/x-wav', - 'wbxml' => 'application/vnd.wap.wbxml', - 'wmlc' => 'application/vnd.wap.wmlc', - 'word' => 'application/msword', - 'xht' => 'application/xhtml+xml', - 'xhtml' => 'application/xhtml+xml', - 'xl' => 'application/excel', - 'xls' => 'application/vnd.ms-excel', - 'xml' => 'text/xml', - 'xsl' => 'text/xml', - 'zip' => 'application/zip' - ); - return ( ! isset($mimes[strtolower($ext)])) ? 'application/octet-stream' : $mimes[strtolower($ext)]; - } - - /** - * Set (or reset) Class Objects (variables) - * - * Usage Example: - * $page->set('X-Priority', '3'); - * - * @access public - * @param string $name Parameter Name - * @param mixed $value Parameter Value - * NOTE: will not work with arrays, there are no arrays to set/reset - */ - function set ( $name, $value = '' ) { - if ( isset($this->$name) ) { - $this->$name = $value; - } else { - $this->SetError('Cannot set or reset variable ' . $name); - return false; - } - } - - /** - * Read a file from a supplied filename and return it. - * - * @access public - * @param string $filename Parameter File Name - */ - function getFile($filename) { - $return = ''; - if ($fp = fopen($filename, 'rb')) { - while (!feof($fp)) { - $return .= fread($fp, 1024); - } - fclose($fp); - return $return; - } else { - return false; - } - } - - /** - * Strips newlines to prevent header injection. - * @access private - * @param string $str String - * @return string - */ - function SecureHeader($str) { - $str = trim($str); - $str = str_replace("\r", "", $str); - $str = str_replace("\n", "", $str); - return $str; - } - - /** - * Set the private key file and password to sign the message. - * - * @access public - * @param string $key_filename Parameter File Name - * @param string $key_pass Password for private key - */ - function Sign($cert_filename, $key_filename, $key_pass) { - $this->sign_cert_file = $cert_filename; - $this->sign_key_file = $key_filename; - $this->sign_key_pass = $key_pass; - } - -} - -?>
\ No newline at end of file diff --git a/config/countryblock/class.smtp.tmp b/config/countryblock/class.smtp.tmp deleted file mode 100644 index be084a11..00000000 --- a/config/countryblock/class.smtp.tmp +++ /dev/null @@ -1,1062 +0,0 @@ -<?php -/*~ class.smtp.php -.---------------------------------------------------------------------------. -| Software: PHPMailer - PHP email class | -| Version: 2.0.4 | -| Contact: via sourceforge.net support pages (also www.codeworxtech.com) | -| Info: http://phpmailer.sourceforge.net | -| Support: http://sourceforge.net/projects/phpmailer/ | -| ------------------------------------------------------------------------- | -| Author: Andy Prevost (project admininistrator) | -| Author: Brent R. Matzelle (original founder) | -| Copyright (c) 2004-2007, Andy Prevost. All Rights Reserved. | -| Copyright (c) 2001-2003, Brent R. Matzelle | -| ------------------------------------------------------------------------- | -| License: Distributed under the Lesser General Public License (LGPL) | -| http://www.gnu.org/copyleft/lesser.html | -| This program is distributed in the hope that it will be useful - WITHOUT | -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | -| FITNESS FOR A PARTICULAR PURPOSE. | -| ------------------------------------------------------------------------- | -| We offer a number of paid services (www.codeworxtech.com): | -| - Web Hosting on highly optimized fast and secure servers | -| - Technology Consulting | -| - Oursourcing (highly qualified programmers and graphic designers) | -'---------------------------------------------------------------------------' - -/** - * SMTP is rfc 821 compliant and implements all the rfc 821 SMTP - * commands except TURN which will always return a not implemented - * error. SMTP also provides some utility methods for sending mail - * to an SMTP server. - * @package PHPMailer - * @author Chris Ryan - */ - -class SMTP -{ - /** - * SMTP server port - * @var int - */ - var $SMTP_PORT = 25; - - /** - * SMTP reply line ending - * @var string - */ - var $CRLF = "\r\n"; - - /** - * Sets whether debugging is turned on - * @var bool - */ - var $do_debug; # the level of debug to perform - - /** - * Sets VERP use on/off (default is off) - * @var bool - */ - var $do_verp = false; - - /**#@+ - * @access private - */ - var $smtp_conn; # the socket to the server - var $error; # error if any on the last call - var $helo_rply; # the reply the server sent to us for HELO - /**#@-*/ - - /** - * Initialize the class so that the data is in a known state. - * @access public - * @return void - */ - function SMTP() { - $this->smtp_conn = 0; - $this->error = null; - $this->helo_rply = null; - - $this->do_debug = 0; - } - - /************************************************************* - * CONNECTION FUNCTIONS * - ***********************************************************/ - - /** - * Connect to the server specified on the port specified. - * If the port is not specified use the default SMTP_PORT. - * If tval is specified then a connection will try and be - * established with the server for that number of seconds. - * If tval is not specified the default is 30 seconds to - * try on the connection. - * - * SMTP CODE SUCCESS: 220 - * SMTP CODE FAILURE: 421 - * @access public - * @return bool - */ - function Connect($host,$port=0,$tval=30) { - # set the error val to null so there is no confusion - $this->error = null; - - # make sure we are __not__ connected - if($this->connected()) { - # ok we are connected! what should we do? - # for now we will just give an error saying we - # are already connected - $this->error = array("error" => "Already connected to a server"); - return false; - } - - if(empty($port)) { - $port = $this->SMTP_PORT; - } - - #connect to the smtp server - $this->smtp_conn = fsockopen($host, # the host of the server - $port, # the port to use - $errno, # error number if any - $errstr, # error message if any - $tval); # give up after ? secs - # verify we connected properly - if(empty($this->smtp_conn)) { - $this->error = array("error" => "Failed to connect to server", - "errno" => $errno, - "errstr" => $errstr); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": $errstr ($errno)" . $this->CRLF; - } - return false; - } - - # sometimes the SMTP server takes a little longer to respond - # so we will give it a longer timeout for the first read - // Windows still does not have support for this timeout function - if(substr(PHP_OS, 0, 3) != "WIN") - socket_set_timeout($this->smtp_conn, $tval, 0); - - # get any announcement stuff - $announce = $this->get_lines(); - - # set the timeout of any socket functions at 1/10 of a second - //if(function_exists("socket_set_timeout")) - // socket_set_timeout($this->smtp_conn, 0, 100000); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $announce; - } - - return true; - } - - /** - * Performs SMTP authentication. Must be run after running the - * Hello() method. Returns true if successfully authenticated. - * @access public - * @return bool - */ - function Authenticate($username, $password) { - // Start authentication - fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($code != 334) { - $this->error = - array("error" => "AUTH not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - // Send encoded username - fputs($this->smtp_conn, base64_encode($username) . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($code != 334) { - $this->error = - array("error" => "Username not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - // Send encoded password - fputs($this->smtp_conn, base64_encode($password) . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($code != 235) { - $this->error = - array("error" => "Password not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - return true; - } - - /** - * Returns true if connected to a server otherwise false - * @access private - * @return bool - */ - function Connected() { - if(!empty($this->smtp_conn)) { - $sock_status = socket_get_status($this->smtp_conn); - if($sock_status["eof"]) { - # hmm this is an odd situation... the socket is - # valid but we are not connected anymore - if($this->do_debug >= 1) { - echo "SMTP -> NOTICE:" . $this->CRLF . - "EOF caught while checking if connected"; - } - $this->Close(); - return false; - } - return true; # everything looks good - } - return false; - } - - /** - * Closes the socket and cleans up the state of the class. - * It is not considered good to use this function without - * first trying to use QUIT. - * @access public - * @return void - */ - function Close() { - $this->error = null; # so there is no confusion - $this->helo_rply = null; - if(!empty($this->smtp_conn)) { - # close the connection and cleanup - fclose($this->smtp_conn); - $this->smtp_conn = 0; - } - } - - /*************************************************************** - * SMTP COMMANDS * - *************************************************************/ - - /** - * Issues a data command and sends the msg_data to the server - * finializing the mail transaction. $msg_data is the message - * that is to be send with the headers. Each header needs to be - * on a single line followed by a <CRLF> with the message headers - * and the message body being seperated by and additional <CRLF>. - * - * Implements rfc 821: DATA <CRLF> - * - * SMTP CODE INTERMEDIATE: 354 - * [data] - * <CRLF>.<CRLF> - * SMTP CODE SUCCESS: 250 - * SMTP CODE FAILURE: 552,554,451,452 - * SMTP CODE FAILURE: 451,554 - * SMTP CODE ERROR : 500,501,503,421 - * @access public - * @return bool - */ - function Data($msg_data) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Data() without being connected"); - return false; - } - - fputs($this->smtp_conn,"DATA" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 354) { - $this->error = - array("error" => "DATA command not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - # the server is ready to accept data! - # according to rfc 821 we should not send more than 1000 - # including the CRLF - # characters on a single line so we will break the data up - # into lines by \r and/or \n then if needed we will break - # each of those into smaller lines to fit within the limit. - # in addition we will be looking for lines that start with - # a period '.' and append and additional period '.' to that - # line. NOTE: this does not count towards are limit. - - # normalize the line breaks so we know the explode works - $msg_data = str_replace("\r\n","\n",$msg_data); - $msg_data = str_replace("\r","\n",$msg_data); - $lines = explode("\n",$msg_data); - - # we need to find a good way to determine is headers are - # in the msg_data or if it is a straight msg body - # currently I am assuming rfc 822 definitions of msg headers - # and if the first field of the first line (':' sperated) - # does not contain a space then it _should_ be a header - # and we can process all lines before a blank "" line as - # headers. - $field = substr($lines[0],0,strpos($lines[0],":")); - $in_headers = false; - if(!empty($field) && !strstr($field," ")) { - $in_headers = true; - } - - $max_line_length = 998; # used below; set here for ease in change - - while(list(,$line) = @each($lines)) { - $lines_out = null; - if($line == "" && $in_headers) { - $in_headers = false; - } - # ok we need to break this line up into several - # smaller lines - while(strlen($line) > $max_line_length) { - $pos = strrpos(substr($line,0,$max_line_length)," "); - - # Patch to fix DOS attack - if(!$pos) { - $pos = $max_line_length - 1; - } - - $lines_out[] = substr($line,0,$pos); - $line = substr($line,$pos + 1); - # if we are processing headers we need to - # add a LWSP-char to the front of the new line - # rfc 822 on long msg headers - if($in_headers) { - $line = "\t" . $line; - } - } - $lines_out[] = $line; - - # now send the lines to the server - while(list(,$line_out) = @each($lines_out)) { - if(strlen($line_out) > 0) - { - if(substr($line_out, 0, 1) == ".") { - $line_out = "." . $line_out; - } - } - fputs($this->smtp_conn,$line_out . $this->CRLF); - } - } - - # ok all the message data has been sent so lets get this - # over with aleady - fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "DATA not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Expand takes the name and asks the server to list all the - * people who are members of the _list_. Expand will return - * back and array of the result or false if an error occurs. - * Each value in the array returned has the format of: - * [ <full-name> <sp> ] <path> - * The definition of <path> is defined in rfc 821 - * - * Implements rfc 821: EXPN <SP> <string> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE FAILURE: 550 - * SMTP CODE ERROR : 500,501,502,504,421 - * @access public - * @return string array - */ - function Expand($name) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Expand() without being connected"); - return false; - } - - fputs($this->smtp_conn,"EXPN " . $name . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "EXPN not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - # parse the reply and place in our array to return to user - $entries = explode($this->CRLF,$rply); - while(list(,$l) = @each($entries)) { - $list[] = substr($l,4); - } - - return $list; - } - - /** - * Sends the HELO command to the smtp server. - * This makes sure that we and the server are in - * the same known state. - * - * Implements from rfc 821: HELO <SP> <domain> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE ERROR : 500, 501, 504, 421 - * @access public - * @return bool - */ - function Hello($host="") { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Hello() without being connected"); - return false; - } - - # if a hostname for the HELO was not specified determine - # a suitable one to send - if(empty($host)) { - # we need to determine some sort of appopiate default - # to send to the server - $host = "localhost"; - } - - // Send extended hello first (RFC 2821) - if(!$this->SendHello("EHLO", $host)) - { - if(!$this->SendHello("HELO", $host)) - return false; - } - - return true; - } - - /** - * Sends a HELO/EHLO command. - * @access private - * @return bool - */ - function SendHello($hello, $host) { - fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER: " . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => $hello . " not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - $this->helo_rply = $rply; - - return true; - } - - /** - * Gets help information on the keyword specified. If the keyword - * is not specified then returns generic help, ussually contianing - * A list of keywords that help is available on. This function - * returns the results back to the user. It is up to the user to - * handle the returned data. If an error occurs then false is - * returned with $this->error set appropiately. - * - * Implements rfc 821: HELP [ <SP> <string> ] <CRLF> - * - * SMTP CODE SUCCESS: 211,214 - * SMTP CODE ERROR : 500,501,502,504,421 - * @access public - * @return string - */ - function Help($keyword="") { - $this->error = null; # to avoid confusion - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Help() without being connected"); - return false; - } - - $extra = ""; - if(!empty($keyword)) { - $extra = " " . $keyword; - } - - fputs($this->smtp_conn,"HELP" . $extra . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 211 && $code != 214) { - $this->error = - array("error" => "HELP not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - return $rply; - } - - /** - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more Recipient - * commands may be called followed by a Data command. - * - * Implements rfc 821: MAIL <SP> FROM:<reverse-path> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE SUCCESS: 552,451,452 - * SMTP CODE SUCCESS: 500,501,421 - * @access public - * @return bool - */ - function Mail($from) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Mail() without being connected"); - return false; - } - - $useVerp = ($this->do_verp ? "XVERP" : ""); - fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $useVerp . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "MAIL not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Sends the command NOOP to the SMTP server. - * - * Implements from rfc 821: NOOP <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE ERROR : 500, 421 - * @access public - * @return bool - */ - function Noop() { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Noop() without being connected"); - return false; - } - - fputs($this->smtp_conn,"NOOP" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "NOOP not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Sends the quit command to the server and then closes the socket - * if there is no error or the $close_on_error argument is true. - * - * Implements from rfc 821: QUIT <CRLF> - * - * SMTP CODE SUCCESS: 221 - * SMTP CODE ERROR : 500 - * @access public - * @return bool - */ - function Quit($close_on_error=true) { - $this->error = null; # so there is no confusion - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Quit() without being connected"); - return false; - } - - # send the quit command to the server - fputs($this->smtp_conn,"quit" . $this->CRLF); - - # get any good-bye messages - $byemsg = $this->get_lines(); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $byemsg; - } - - $rval = true; - $e = null; - - $code = substr($byemsg,0,3); - if($code != 221) { - # use e as a tmp var cause Close will overwrite $this->error - $e = array("error" => "SMTP server rejected quit command", - "smtp_code" => $code, - "smtp_rply" => substr($byemsg,4)); - $rval = false; - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $e["error"] . ": " . - $byemsg . $this->CRLF; - } - } - - if(empty($e) || $close_on_error) { - $this->Close(); - } - - return $rval; - } - - /** - * Sends the command RCPT to the SMTP server with the TO: argument of $to. - * Returns true if the recipient was accepted false if it was rejected. - * - * Implements from rfc 821: RCPT <SP> TO:<forward-path> <CRLF> - * - * SMTP CODE SUCCESS: 250,251 - * SMTP CODE FAILURE: 550,551,552,553,450,451,452 - * SMTP CODE ERROR : 500,501,503,421 - * @access public - * @return bool - */ - function Recipient($to) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Recipient() without being connected"); - return false; - } - - fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250 && $code != 251) { - $this->error = - array("error" => "RCPT not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Sends the RSET command to abort and transaction that is - * currently in progress. Returns true if successful false - * otherwise. - * - * Implements rfc 821: RSET <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE ERROR : 500,501,504,421 - * @access public - * @return bool - */ - function Reset() { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Reset() without being connected"); - return false; - } - - fputs($this->smtp_conn,"RSET" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "RSET failed", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - return true; - } - - /** - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more Recipient - * commands may be called followed by a Data command. This command - * will send the message to the users terminal if they are logged - * in. - * - * Implements rfc 821: SEND <SP> FROM:<reverse-path> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE SUCCESS: 552,451,452 - * SMTP CODE SUCCESS: 500,501,502,421 - * @access public - * @return bool - */ - function Send($from) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Send() without being connected"); - return false; - } - - fputs($this->smtp_conn,"SEND FROM:" . $from . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "SEND not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more Recipient - * commands may be called followed by a Data command. This command - * will send the message to the users terminal if they are logged - * in and send them an email. - * - * Implements rfc 821: SAML <SP> FROM:<reverse-path> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE SUCCESS: 552,451,452 - * SMTP CODE SUCCESS: 500,501,502,421 - * @access public - * @return bool - */ - function SendAndMail($from) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called SendAndMail() without being connected"); - return false; - } - - fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "SAML not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more Recipient - * commands may be called followed by a Data command. This command - * will send the message to the users terminal if they are logged - * in or mail it to them if they are not. - * - * Implements rfc 821: SOML <SP> FROM:<reverse-path> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE SUCCESS: 552,451,452 - * SMTP CODE SUCCESS: 500,501,502,421 - * @access public - * @return bool - */ - function SendOrMail($from) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called SendOrMail() without being connected"); - return false; - } - - fputs($this->smtp_conn,"SOML FROM:" . $from . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "SOML not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * This is an optional command for SMTP that this class does not - * support. This method is here to make the RFC821 Definition - * complete for this class and __may__ be implimented in the future - * - * Implements from rfc 821: TURN <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE FAILURE: 502 - * SMTP CODE ERROR : 500, 503 - * @access public - * @return bool - */ - function Turn() { - $this->error = array("error" => "This method, TURN, of the SMTP ". - "is not implemented"); - if($this->do_debug >= 1) { - echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF; - } - return false; - } - - /** - * Verifies that the name is recognized by the server. - * Returns false if the name could not be verified otherwise - * the response from the server is returned. - * - * Implements rfc 821: VRFY <SP> <string> <CRLF> - * - * SMTP CODE SUCCESS: 250,251 - * SMTP CODE FAILURE: 550,551,553 - * SMTP CODE ERROR : 500,501,502,421 - * @access public - * @return int - */ - function Verify($name) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Verify() without being connected"); - return false; - } - - fputs($this->smtp_conn,"VRFY " . $name . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250 && $code != 251) { - $this->error = - array("error" => "VRFY failed on name '$name'", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return $rply; - } - - /******************************************************************* - * INTERNAL FUNCTIONS * - ******************************************************************/ - - /** - * Read in as many lines as possible - * either before eof or socket timeout occurs on the operation. - * With SMTP we can tell if we have more lines to read if the - * 4th character is '-' symbol. If it is a space then we don't - * need to read anything else. - * @access private - * @return string - */ - function get_lines() { - $data = ""; - while($str = @fgets($this->smtp_conn,515)) { - if($this->do_debug >= 4) { - echo "SMTP -> get_lines(): \$data was \"$data\"" . - $this->CRLF; - echo "SMTP -> get_lines(): \$str is \"$str\"" . - $this->CRLF; - } - $data .= $str; - if($this->do_debug >= 4) { - echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF; - } - # if the 4th character is a space then we are done reading - # so just break the loop - if(substr($str,3,1) == " ") { break; } - } - return $data; - } - -} - - - ?> diff --git a/config/countryblock/countryblock.inc b/config/countryblock/countryblock.inc deleted file mode 100644 index dc7bffd3..00000000 --- a/config/countryblock/countryblock.inc +++ /dev/null @@ -1,146 +0,0 @@ -<?php -/* $Id$ */ -/* -/* ========================================================================== */ -/* - countryblock.inc - Copyright (C) 2012 Tom Schaefer - All rights reserved. - */ -/* ========================================================================== */ -/* - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - - - -function php_sync_package_cb() -{ - global $config; -} - - -function php_install_command_cb() -{ - - global $config; - conf_mount_rw(); - config_lock(); - - if (!is_dir('/usr/local/www/packages/')) { - exec("mkdir /usr/local/www/packages/"); - } - - if (!is_dir('/usr/local/www/packages/countryblock/')) { - exec("mkdir /usr/local/www/packages/countryblock/"); - } - - if (!is_dir('/usr/local/www/packages/countryblock/CIDR')) { - exec("mkdir /usr/local/www/packages/countryblock/CIDR"); - } - - - - - //rename PHP files from .tmp to .php - exec("cp /tmp/countryblock_IPBlocklist.widget.tmp /usr/local/www/widgets/widgets/countryblock_IPBlocklist.widget.php"); - unlink_if_exists("/tmp/countryblock_IPBlocklist.widget.tmp"); - - exec("cp /tmp/class.phpmailer.tmp /usr/local/www/packages/countryblock/class.phpmailer.php"); - unlink_if_exists("/tmp/class.phpmailer.tmp "); - exec("cp /tmp/class.smtp.tmp /usr/local/www/packages/countryblock/class.smtp.php"); - unlink_if_exists("/tmp/class.smtp.tmp"); - exec("cp /tmp/email.tmp /usr/local/www/packages/countryblock/email.php"); - unlink_if_exists("/tmp/email.tmp"); - exec("cp /tmp/countryblock.tmp /usr/local/www/packages/countryblock/countryblock.php"); - unlink_if_exists("/tmp/countryblock.tmp"); - exec("cp /tmp/countryblock_if.tmp /usr/local/www/packages/countryblock/countryblock_if.php"); - unlink_if_exists("/tmp/countryblock_if.tmp"); - exec("cp /tmp/index.tmp /usr/local/www/packages/countryblock/index.php"); - unlink_if_exists("/tmp/index.tmp"); - exec("cp /tmp/firewall_shaper.tmp /usr/local/www/packages/countryblock/firewall_shaper.php"); - unlink_if_exists("/tmp/firewall_shaper.tmp"); - exec("cp /tmp/help.tmp /usr/local/www/packages/countryblock/help.php"); - unlink_if_exists("/tmp/help.tmp"); - exec("cp /tmp/settings.tmp /usr/local/www/packages/countryblock/settings.php"); - unlink_if_exists("/tmp/settings.tmp"); - //Get scripts - exec("cp /tmp/countryblock.sh /usr/local/etc/rc.d/countryblock.sh"); - exec("cp /tmp/countryblock.sh /usr/local/pkg/pf/countryblock.sh"); - unlink_if_exists("/tmp/countryblock.sh"); - exec("cp /tmp/execute.sh /usr/local/www/packages/countryblock/execute.sh"); - unlink_if_exists("/tmp/execute.sh"); - exec("cp /tmp/jquery.min.js /usr/local/www/packages/countryblock/jquery.min.js"); - unlink_if_exists("/tmp/jquery.min.js"); - exec("cp /tmp/ddaccordion.js /usr/local/www/packages/countryblock/ddaccordion.js"); - unlink_if_exists("/tmp/ddaccordion.js"); - exec("cp /tmp/public_smo_scripts.js /usr/local/www/packages/countryblock/public_smo_scripts.js"); - unlink_if_exists("/tmp/public_smo_scripts.js"); - exec("cp /tmp/titlebar.png /usr/local/www/packages/countryblock/titlebar.png"); - unlink_if_exists("/tmp/titlebar.png"); - exec("cp /tmp/titlebar-active.png /usr/local/www/packages/countryblock/titlebar-active.png"); - unlink_if_exists("/tmp/titlebar-active.png"); - exec("cp /tmp/purge.tmp /usr/local/www/packages/countryblock/purge.php"); - unlink_if_exists("/tmp/purge.tmp"); - exec("cp /tmp/whitelist.tmp /usr/local/www/packages/countryblock/whitelist.php"); - unlink_if_exists("/tmp/whitelist.tmp"); - exec("cp /tmp/interfaces.txt /usr/local/www/packages/countryblock/interfaces.txt"); - unlink_if_exists("/tmp/interfaces.txt"); - - exec("/usr/bin/fetch -o /tmp https://raw.github.com/tommyboy180/pfsense-bin/2812cb9e1c9357bbf2027eff82096773bc4ddc5d/countryblock/CIDR.tar.gz"); - - exec("cp /tmp/CIDR.tar.gz /usr/local/www/packages/countryblock/CIDR.tar.gz"); - unlink_if_exists("/tmp/CIDR.tar.gz"); - - exec("tar xzf /usr/local/www/packages/countryblock/CIDR.tar.gz -C /usr/local/www/packages/countryblock/CIDR"); - exec("rm /usr/local/www/packages/countryblock/CIDR.tar.gz"); - - exec("mkdir /usr/local/www/packages/countryblock/lists"); - exec("touch /usr/local/www/packages/countryblock/lists/countries.txt"); - - //Attempt to restore from backup - exec("mkdir /usr/local/www/packages/countryblock_bkup"); - exec("cp /usr/local/www/packages/countryblock_bkup/countries.txt /usr/local/www/packages/countryblock/countries.txt"); - - conf_mount_ro(); - config_unlock(); -} - - -function deinstall_command_cb() -{ - conf_mount_rw(); - $handle = popen("/usr/local/etc/rc.d/countryblock.sh stop", "r"); - unlink_if_exists("/usr/local/pkg/countryblock.xml"); - unlink_if_exists("/usr/local/pkg/countryblock.inc"); - //unlink_if_exists("/usr/local/pkg/pf/countryblock.sh"); - exec("rm -R /usr/local/www/packages/countryblock/countryblocks"); - exec("rm -R /usr/local/www/packages/countryblock"); - exec("rm /usr/local/etc/rc.d/countryblock.sh"); - exec("rm /usr/local/pkg/pf/countryblock.sh"); - exec("pfctl -t countryblock -T kill"); - exec("sed -i -e '/countryblock/d' /tmp/rules.debug"); - exec("pfctl -f /tmp/rules.debug"); - conf_mount_ro(); -} - -?> diff --git a/config/countryblock/countryblock.sh b/config/countryblock/countryblock.sh deleted file mode 100755 index e8454db1..00000000 --- a/config/countryblock/countryblock.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/sh - -#version 2.4 2012 -#check if countryblock running -export resultr=`pfctl -s rules | grep -c countryblock` -#echo $resultr -if [ "$resultr" -gt "0" ]; then - echo running - exit 1 -else - echo not running - /usr/bin/logger -s "Countryblock was found not running" - echo "Countryblock not running" | /usr/local/bin/php /usr/local/www/packages/countryblock/email_send.php -fi - -pfctl -t countryblock -T kill -sed -i -e '/countryblock/d' /tmp/rules.debug - -#Now edit /tmp/rules.debug - -#find my line for table -export i=`grep -n 'block quick from any to <snort2c>' /tmp/rules.debug | grep -o '[0-9]\{2,4\}'` -export t=`grep -n 'User Aliases' /tmp/rules.debug |grep -o '[0-9]\{1,2\}'` - -i=$(($i+'1')) -t=$(($t+'1')) -#i = line where <snort2c> is -#t is where 'User Aliases' is -echo $i -echo $t - -rm /tmp/rules.debug.tmp - -#Insert table-entry limit -sed -i -e '/900000/d' /tmp/rules.debug -while read line - do a=$(($a+1)); - #echo $a; - if [ "$a" = "$t" ]; then - echo "" >> /tmp/rules.debug.tmp - echo "set limit table-entries 900000" >> /tmp/rules.debug.tmp - fi - echo $line >> /tmp/rules.debug.tmp -done < "/tmp/rules.debug" - -mv /tmp/rules.debug /tmp/rules.debug.old -mv /tmp/rules.debug.tmp /tmp/rules.debug - -pfctl -o basic -f /tmp/rules.debug > errorOUT.txt 2>&1 - -rm /tmp/rules.debug.tmp - -#Insert countryblock rules -a="0" -echo $a -while read line - do a=$(($a+1)); - echo $a; - if [ "$a" = "$i" ]; then - echo "" >> /tmp/rules.debug.tmp - echo "#countryblock" >> /tmp/rules.debug.tmp - echo "table <countryblock> persist file '/usr/local/www/packages/countryblock/lists/countries.txt'" >> /tmp/rules.debug.tmp - echo "table <countryblockW> persist file '/usr/local/www/packages/countryblock/countries-white.txt'" >> /tmp/rules.debug.tmp - - for i in $(cat /usr/local/www/packages/countryblock/interfaces.txt); do - echo "pass quick from <countryblockW> to $i label 'countryblock'" >> /tmp/rules.debug.tmp - echo "pass quick from $i to <countryblockW> label 'countryblock'" >> /tmp/rules.debug.tmp - if [ -f logging ]; then - echo "block log quick from <countryblock> to $i label 'countryblock'" >> /tmp/rules.debug.tmp - else - echo "block quick from <countryblock> to $i label 'countryblock'" >> /tmp/rules.debug.tmp - fi - if [ -f OUTBOUND ]; then - echo "block quick from $i to <countryblock> label 'countryblock'" >> /tmp/rules.debug.tmp - fi - done - fi - echo $line >> /tmp/rules.debug.tmp -done < "/tmp/rules.debug" - -mv /tmp/rules.debug /tmp/rules.debug.old -mv /tmp/rules.debug.tmp /tmp/rules.debug - -rm errorOUT.txt -pfctl -o basic -f /tmp/rules.debug > /usr/local/www/packages/countryblock/errorOUT.txt 2>&1 diff --git a/config/countryblock/countryblock.tmp b/config/countryblock/countryblock.tmp deleted file mode 100644 index eb98f283..00000000 --- a/config/countryblock/countryblock.tmp +++ /dev/null @@ -1,2699 +0,0 @@ -<?php -$pgtitle = "Firewall: Countryblock"; - // TomSchaefer.org countryblock package 2012 - // - // Notes: Find: ^(.*)$ - // Replace: ob_start();\n$results = exec("cat countries.txt | grep XX");\nob_end_clean();\n\tif ($results == 'XX')\n\t\techo "\1";\n\telse\n\t\techo "\1";\n - // - // - // - // - //require_once('config.inc'); - require("guiconfig.inc"); - include("head.inc"); - - //set the config as a global variable - global $config; - - $global_usage = '/usr/local/www/packages/countryblock/global_usage'; - //$fh = fopen($global_usage, 'r'); - - //phpinfo(); - -if (count($_POST)>0) { - - conf_mount_rw(); - - $ent = array(); - - if ($_POST['enable'] == 1) { - //echo "enabled"; - $config['installedpackages']['countryblock_settings']['config'][0]['enable'] = 1; - //touch countries-white.txt to fix bug - exec("touch /usr/local/www/packages/countryblock/countries-white.txt"); - //Process list by downloading and extracting - $myFile = "countries.txt"; - $fileContents = file_get_contents($myFile); - $lines = explode(PHP_EOL, $fileContents); - //Remove DIR lists to eliminate duplates - exec("rm -R lists"); - //Process each list URL, Extract, and put in DIR lists - exec("mkdir lists"); - foreach ($lines as $line) { - //echo("fetch -o lists http://www.countryipblocks.net/e_country_data/{$line}_cidr.txt"); - //Fetch countries from server - //exec("fetch -o lists/temp http://127.0.0.1//packages/countryblock/CIDR/{$line}_cidr.txt"); - //Pull from local file since https or http on other ports may be used - exec("cat CIDR/{$line}_cidr.txt >> lists/countries.txt"); - //exec("fetch -o lists/temp http://www.countryipblocks.net/e_country_data/{$line}_cidr.txt"); - //Remove cat lists/temp since fetch is not used - //Thank you g4m3c4ck, 'He got a real pretty mouth ain't he', 1 Feb 2011 - //exec("cat lists/temp >> lists/countries.txt"); - $filename = basename($line); - //Extract list - //exec("gzip -d lists/$filename"); - } - //Prep pfctl - mwexec("rm lists/temp"); - //mwexec("touch lists/ipfw.ipfw"); - //Now clear ipfw, and process each list to ipfw commands - //mwexec("pfctl -t countryblock -T kill"); - //mwexec("sed -i -e '/countryblock/d' /tmp/rules.debug"); - mwexec("sh execute.sh"); - - //attempt to create a backup of countries.txt - mwexec("cp /usr/local/www/packages/countryblock/countries.txt /usr/local/www/packages/countryblock_bkup/countries.txt"); - - } - else { - //echo "disabled"; - $config['installedpackages']['countryblock_settings']['config'][0]['enable'] = 0; - //Clear Lists - mwexec("pfctl -t countryblock -T kill"); - mwexec("rm -R /usr/local/www/packages/countryblock/lists"); - mwexec("sed -i -e '/countryblock/d' /tmp/rules.debug"); - mwexec("pfctl -o basic -f /tmp/rules.debug"); - //Clear errorOUT.txt - mwexec("rm errorOUT.txt"); - - } - - - //write_config(); - //services_dnsmasq_configure(); - sleep(1); - $savemsg_cb = "Country Block settings have been saved/updated. "; - conf_mount_ro(); -} -?> - -<body link="#0000CC" vlink="#0000CC" alink="#0000CC"> -<?php include("fbegin.inc"); ?> - -<?php if ($input_errors) print_input_errors($input_errors); ?> -<?php if ($savemsg) print_info_box($savemsg); ?> -<form method=POST action=""> -<?php -ob_start(); -$resultstop = exec("pfctl -s rules | grep -c countryblock"); -ob_end_clean(); -if ($config['installedpackages']['countryblock_settings']['config'][0]['enable'] == 1) { - echo "<input name='enable' type='checkbox' value='1' checked>\n"; -} -elseif ($resultstop > '0') { -echo "<input name='enable' type='checkbox' value='1' checked>\n"; -} -else { - echo "<input name='enable' type='checkbox' value='1'>\n"; -} -?><strong>Enable Country Block</strong><br><br> -<?php if ($savemsg_cb) print_info_box($savemsg_cb); - //if ($output) print_info_box($output,$output2); - echo($output); - echo($output2); - ?> -<table width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr><td class="tabnavtbl"> -<?php - $tab_array = array(); - $tab_array[0] = array("Countries", true, "countryblock.php"); - $tab_array[1] = array("Settings", false, "settings.php"); - $tab_array[2] = array("Whitelist", false, "whitelist.php"); - $tab_array[3] = array("Interfaces", false, "countryblock_if.php"); - $tab_array[4] = array("Help", false, "help.php"); - //$tab_array[5] = array("Email", false, "email.php"); - display_top_tabs($tab_array); -?> - </td></tr> - <tr> - <td> - <div id="mainarea"> - <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr> - <td class="listhdrr">Main</td> - - </tr> - - <tr> - <td class="listlr" valign="middle"> - -<?php - -conf_mount_rw(); -mwexec("touch countries.txt"); -//$myFile = "countries.txt"; -//$fh = fopen($myFile, 'a+'); - - - - if(isset($_POST['formSubmit'])) - { - $aCountry = $_POST['formCountry']; - - - if(empty($aCountry)) - { - $output = "<b>You didn't select any Countries."; - exec("rm countries.txt"); - } - else - { - - $N = count($aCountry); - - $myFile = "countries.txt"; - $fh = fopen($myFile, 'w+'); - $output = "<b>You selected $N Countries"; - - for($i=0; $i < $N; $i++) - { - //echo($aCountry[$i] . " "); - fwrite($fh, $aCountry[$i] . "\n"); - } - echo("</p>"); - } - } -conf_mount_ro(); -?> - - -<script type="text/javascript" src="jquery.min.js"></script> - -<script type="text/javascript" src="ddaccordion.js"> - -/*********************************************** -* Accordion Content script- (c) Dynamic Drive DHTML code library (www.dynamicdrive.com) -* Visit http://www.dynamicDrive.com for hundreds of DHTML scripts -* This notice must stay intact for legal use -***********************************************/ - -</script> - - -<script type="text/javascript"> - - -ddaccordion.init({ - headerclass: "expandable", //Shared CSS class name of headers group that are expandable - contentclass: "categoryitems", //Shared CSS class name of contents group - revealtype: "click", //Reveal content when user clicks or onmouseover the header? Valid value: "click", "clickgo", or "mouseover" - mouseoverdelay: 200, //if revealtype="mouseover", set delay in milliseconds before header expands onMouseover - collapseprev: true, //Collapse previous content (so only one open at any time)? true/false - defaultexpanded: [0], //index of content(s) open by default [index1, index2, etc]. [] denotes no content - onemustopen: false, //Specify whether at least one header should be open always (so never all headers closed) - animatedefault: false, //Should contents open by default be animated into view? - persiststate: true, //persist state of opened contents within browser session? - toggleclass: ["", "openheader"], //Two CSS classes to be applied to the header when it's collapsed and expanded, respectively ["class1", "class2"] - togglehtml: ["prefix", "", ""], //Additional HTML added to the header when it's collapsed and expanded, respectively ["position", "html1", "html2"] (see docs) - animatespeed: "fast", //speed of animation: integer in milliseconds (ie: 200), or keywords "fast", "normal", or "slow" - oninit:function(headers, expandedindices){ //custom code to run when headers have initalized - //do nothing - }, - onopenclose:function(header, index, state, isuseractivated){ //custom code to run whenever a header is opened or closed - //do nothing - } -}) - - -</script> - -<style type="text/css"> - -a img {border:none; } - -.arrowlistmenu{ -width: 180px; /*width of accordion menu*/ -} - -.arrowlistmenu .menuheader{ /*CSS class for menu headers in general (expanding or not!)*/ -font: bold 14px Arial; -color: white; -background: black url(titlebar.png) repeat-x center left; -margin-bottom: 10px; /*bottom spacing between header and rest of content*/ -text-transform: uppercase; -padding: 4px 0 4px 10px; /*header text is indented 10px*/ -cursor: hand; -cursor: pointer; -} - -.arrowlistmenu .openheader{ /*CSS class to apply to expandable header when it's expanded*/ -background-image: url(titlebar-active.png); -} - -.arrowlistmenu ul{ /*CSS for UL of each sub menu*/ -list-style-type: none; -margin: 0; -padding: 0; -margin-bottom: 8px; /*bottom spacing between each UL and rest of content*/ -} - -.arrowlistmenu ul li{ -padding-bottom: 2px; /*bottom spacing between menu items*/ -} - -.arrowlistmenu ul li a{ -color: #A70303; -background: url(arrowbullet.png) no-repeat center left; /*custom bullet list image*/ -display: block; -padding: 2px 0; -padding-left: 19px; /*link text is indented 19px*/ -text-decoration: none; -font-weight: bold; -border-bottom: 1px solid #dadada; -font-size: 90%; -} - -.arrowlistmenu ul li a:visited{ -color: #A70303; - -} - -.arrowlistmenu ul li a:hover{ /*hover state CSS*/ -color: #A70303; -background-color: #F3F3F3; -} - -</style> - -<script type="text/javascript" src="public_smo_scripts.js"></script> - -</head> - - - -<table width="100%" border="0" cellpadding="0" cellspacing="0"> -<tr> - <td > - - - </form> - - <form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post"> - <p> - <?php - $countif = "interfaces.txt"; - if (file_exists($countif)) { - $countif = count(file($countif)); - echo "$countlines"; - } else { - echo "<span style='color:red'>Warning! No Interfaces Selected Click <a href='countryblock_if.php' target='_parent'><img src='../../themes/nervecenter/images/icons/icon_cablenic.gif' ALT='if'></a></span>"; - } - - ?> - </p> - <h3><p>Check the country that you would like to block completely. Currently - <?php - $countfile = "countries.txt"; - if (file_exists($countfile)) { - $countlines = count(file($countfile)); - echo "$countlines"; - } else { - echo "0 "; - } - - ?> - - of 252 selected. </h3><input type="checkbox" name="checkall" onClick="checkUncheckAll(this);"/>select/unselect - -<br/> - - -<table style="width: 50%"> - <tr> - <td><div class="arrowlistmenu"> - -<h3 class="menuheader expandable">Top Spammers</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep KR"); -ob_end_clean(); - if ($results == 'KR') - echo "<li><input name='formCountry[]' type='checkbox' value='KR' checked/>Korea</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='KR'/>Korea</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CN"); -ob_end_clean(); - if ($results == 'CN') - echo "<li><input name='formCountry[]' type='checkbox' value='CN' checked/>China</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CN'/>China</li>"; -ob_start(); -$results = exec("cat countries.txt | grep IN"); -ob_end_clean(); - if ($results == 'IN') - echo "<li><input name='formCountry[]' type='checkbox' value='IN' checked/>India</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='IN' />India</li>"; -ob_start(); -$results = exec("cat countries.txt | grep RU"); -ob_end_clean(); - if ($results == 'RU') - echo "<li><input name='formCountry[]' type='checkbox' value='RU' checked/>Russia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='RU' />Russia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TR"); -ob_end_clean(); - if ($results == 'TR') - echo "<li><input name='formCountry[]' type='checkbox' value='TR' checked/>Turkey</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TR' />Turkey</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep VN"); -ob_end_clean(); - if ($results == 'VN') - echo "<li><input name='formCountry[]' type='checkbox' value='VN' checked/>Vietnam</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='VN' />Vietnam</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep UA"); -ob_end_clean(); - if ($results == 'UA') - echo "<li><input name='formCountry[]' type='checkbox' value='UA' checked/>Ukraine</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='UA' />Ukraine</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BR"); -ob_end_clean(); - if ($results == 'BR') - echo "<li><input name='formCountry[]' type='checkbox' value='BR' checked/>Brazil</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BR' />Brazil</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep VE"); -ob_end_clean(); - if ($results == 'VE') - echo "<li><input name='formCountry[]' type='checkbox' value='VE' checked/>Venezuela</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='VE' />Venezuela</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep PK"); -ob_end_clean(); - if ($results == 'PK') - echo "<li><input name='formCountry[]' type='checkbox' value='PK' checked/>Pakistan</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='PK' />Pakistan</li>"; - - - -?> - -</ul> - -<h3 class="menuheader expandable">A's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep AF"); -ob_end_clean(); - if ($results == 'AF') - echo "<li><input name='formCountry[]' type='checkbox' value='AF' checked/>Afghanistan</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AF' />Afghanistan</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AX"); -ob_end_clean(); - if ($results == 'AX') - echo "<li><input name='formCountry[]' type='checkbox' value='AX' checked/>Aland Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AX' />Aland Islands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AL"); -ob_end_clean(); - if ($results == 'AL') - echo "<li><input name='formCountry[]' type='checkbox' value='AL' checked/>Albania</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AL' />Albania</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep DZ"); -ob_end_clean(); - if ($results == 'DZ') - echo "<li><input name='formCountry[]' type='checkbox' value='DZ' checked/>Algeria</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='DZ' />Algeria</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AS"); -ob_end_clean(); - if ($results == 'AS') - echo "<li><input name='formCountry[]' type='checkbox' value='AS' checked/>American Samoa</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AS' />American Samoa</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AD"); -ob_end_clean(); - if ($results == 'AD') - echo "<li><input name='formCountry[]' type='checkbox' value='AD' checked/>Andorra</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AD' />Andorra</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AO"); -ob_end_clean(); - if ($results == 'AO') - echo "<li><input name='formCountry[]' type='checkbox' value='AO' checked/>Angola</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AO' />Angola</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AI"); -ob_end_clean(); - if ($results == 'AI') - echo "<li><input name='formCountry[]' type='checkbox' value='AI' checked/>Anguilla</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AI' />Anguilla</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AQ"); -ob_end_clean(); - if ($results == 'AQ') - echo "<li><input name='formCountry[]' type='checkbox' value='AQ' checked/>Antarctica</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AQ' />Antarctica</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AG"); -ob_end_clean(); - if ($results == 'AG') - echo "<li><input name='formCountry[]' type='checkbox' value='AG' checked/>Antigua And Barbuda</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AG' />Antigua And Barbuda</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AR"); -ob_end_clean(); - if ($results == 'AR') - echo " <li><input name='formCountry[]' type='checkbox' value='AR' checked/>Argentina</li>"; - else - echo " <li><input name='formCountry[]' type='checkbox' value='AR' />Argentina</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AM"); -ob_end_clean(); - if ($results == 'AM') - echo "<li><input name='formCountry[]' type='checkbox' value='AM' checked/>Armenia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AM' />Armenia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AW"); -ob_end_clean(); - if ($results == 'AW') - echo "<li><input name='formCountry[]' type='checkbox' value='AW' checked/>Aruba</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AW' />Aruba</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AP"); -ob_end_clean(); - if ($results == 'AP') - echo "<li><input name='formCountry[]' type='checkbox' value='AP' checked/>Asia Pacific</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AP' />Asia Pacific</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AU"); -ob_end_clean(); - if ($results == 'AU') - echo "<li><input name='formCountry[]' type='checkbox' value='AU' checked/>Australia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AU' />Australia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AT"); -ob_end_clean(); - if ($results == 'AT') - echo "<li><input name='formCountry[]' type='checkbox' value='AT' checked/>Austria</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AT' />Austria</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AZ"); -ob_end_clean(); - if ($results == 'AZ') - echo "<li><input name='formCountry[]' type='checkbox' value='AZ' checked/>Azerbaijan</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AZ' />Azerbaijan</li>"; -?> -</ul> - -<h3 class="menuheader expandable">B's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep BS"); -ob_end_clean(); - if ($results == 'BS') - echo "<li><input name='formCountry[]' type='checkbox' value='BS' checked/>Bahamas</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BS' />Bahamas</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BH"); -ob_end_clean(); - if ($results == 'BH') - echo "<li><input name='formCountry[]' type='checkbox' value='BH' checked/>Bahrain</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BH' />Bahrain</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BD"); -ob_end_clean(); - if ($results == 'BD') - echo "<li><input name='formCountry[]' type='checkbox' value='BD' checked/>Bangladesh</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BD' />Bangladesh</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BB"); -ob_end_clean(); - if ($results == 'BB') - echo "<li><input name='formCountry[]' type='checkbox' value='BB' checked/>Barbados</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BB' />Barbados</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BY"); -ob_end_clean(); - if ($results == 'BY') - echo "<li><input name='formCountry[]' type='checkbox' value='BY' checked/>Belarus</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BY' />Belarus</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BE"); -ob_end_clean(); - if ($results == 'BE') - echo "<li><input name='formCountry[]' type='checkbox' value='BE' checked/>Belgium</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BE' />Belgium</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BZ"); -ob_end_clean(); - if ($results == 'BZ') - echo "<li><input name='formCountry[]' type='checkbox' value='BZ' checked/>Belize</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BZ' />Belize</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BJ"); -ob_end_clean(); - if ($results == 'BJ') - echo "<li><input name='formCountry[]' type='checkbox' value='BJ' checked/>Benin</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BJ' />Benin</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BM"); -ob_end_clean(); - if ($results == 'BM') - echo "<li><input name='formCountry[]' type='checkbox' value='BM' checked/>Bermuda</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BM' />Bermuda</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BT"); -ob_end_clean(); - if ($results == 'BT') - echo "<li><input name='formCountry[]' type='checkbox' value='BT' checked/>Bhutan</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BT' />Bhutan</li>"; -/* -ob_start(); -$results = exec("cat countries.txt | grep XA"); -ob_end_clean(); - if ($results == 'XA') - echo "<li><input name='formCountry[]' type='checkbox' value='XA' checked/>Bogons</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='XA' />Bogons</li>"; -*/ -ob_start(); -$results = exec("cat countries.txt | grep BO"); -ob_end_clean(); - if ($results == 'BO') - echo "<li><input name='formCountry[]' type='checkbox' value='BO' checked/>Bolivia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BO' />Bolivia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BQ"); -ob_end_clean(); - if ($results == 'BQ') - echo "<li><input name='formCountry[]' type='checkbox' value='BQ' checked/>Bonaire, Saint Eustatius and Saba</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BQ' />Bonaire, Saint Eustatius and Saba</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BA"); -ob_end_clean(); - if ($results == 'BA') - echo "<li><input name='formCountry[]' type='checkbox' value='BA' checked/>Bosnia And Gerzegovia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BA' />Bosnia And Gerzegovia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BW"); -ob_end_clean(); - if ($results == 'BW') - echo "<li><input name='formCountry[]' type='checkbox' value='BW' checked/>Botswana</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BW' />Botswana</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BV"); -ob_end_clean(); - if ($results == 'BV') - echo "<li><input name='formCountry[]' type='checkbox' value='BV' checked/>Bouvet Island</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BV' />Bouvet Island</li>"; - -//ob_start(); -//$results = exec("cat countries.txt | grep BR"); -//ob_end_clean(); -// if ($results == 'BR') -// echo "<li><input name='formCountry[]' type='checkbox' value='BR' checked/>Brazil</li>"; -// else -// echo "<li><input name='formCountry[]' type='checkbox' value='BR' />Brazil</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep IO"); -ob_end_clean(); - if ($results == 'IO') - echo "<li><input name='formCountry[]' type='checkbox' value='IO' checked/>British India Ocean Territory</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='IO' />British India Ocean Territory</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BN"); -ob_end_clean(); - if ($results == 'BN') - echo "<li><input name='formCountry[]' type='checkbox' value='BN' checked/>Brunei Darussalam</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BN' />Brunei Darussalam</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BG"); -ob_end_clean(); - if ($results == 'BG') - echo "<li><input name='formCountry[]' type='checkbox' value='BG' checked/>Bulgaria</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BG' />Bulgaria</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BF"); -ob_end_clean(); - if ($results == 'BF') - echo "<li><input name='formCountry[]' type='checkbox' value='BF' checked/>Burkina Faso</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BF' />Burkina Faso</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep BI"); -ob_end_clean(); - if ($results == 'BI') - echo "<li><input name='formCountry[]' type='checkbox' value='BI' checked/>Burundi</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BI' />Burundi</li>"; -?> -</ul> -<h3 class="menuheader expandable">C's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep KH"); -ob_end_clean(); - if ($results == 'KH') - echo "<li><input name='formCountry[]' type='checkbox' value='KH' checked/>Cambodia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='KH' />Cambodia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CM"); -ob_end_clean(); - if ($results == 'CM') - echo "<li><input name='formCountry[]' type='checkbox' value='CM' checked/>Cameroon</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CM' />Cameroon</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CA"); -ob_end_clean(); - if ($results == 'CA') - echo "<li><input name='formCountry[]' type='checkbox' value='CA' checked/>Canada</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CA' />Canada</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CV"); -ob_end_clean(); - if ($results == 'CV') - echo "<li><input name='formCountry[]' type='checkbox' value='CV' checked/>Cape Verde</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CV' />Cape Verde</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep KY"); -ob_end_clean(); - if ($results == 'KY') - echo "<li><input name='formCountry[]' type='checkbox' value='KY' checked/>Cayman Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='KY' />Cayman Islands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CF"); -ob_end_clean(); - if ($results == 'CF') - echo "<li><input name='formCountry[]' type='checkbox' value='CF' checked/>Central African Republic</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CF' />Central African Republic</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TD"); -ob_end_clean(); - if ($results == 'TD') - echo "<li><input name='formCountry[]' type='checkbox' value='TD' checked/>Chad</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TD' />Chad</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CL"); -ob_end_clean(); - if ($results == 'CL') - echo "<li><input name='formCountry[]' type='checkbox' value='CL' checked/>Chile</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CL' />Chile</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CX"); -ob_end_clean(); - if ($results == 'CX') - echo "<li><input name='formCountry[]' type='checkbox' value='CX' checked/>Christmas Island</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CX' />Christmas Island</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CC"); -ob_end_clean(); - if ($results == 'CC') - echo "<li><input name='formCountry[]' type='checkbox' value='CC' checked/>Cocos (Keeling) Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CC' />Cocos (Keeling) Islands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CO"); -ob_end_clean(); - if ($results == 'CO') - echo "<li><input name='formCountry[]' type='checkbox' value='CO' checked/>Colombia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CO' />Colombia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep KM"); -ob_end_clean(); - if ($results == 'KM') - echo "<li><input name='formCountry[]' type='checkbox' value='KM' checked/>Comoros</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='KM' />Comoros</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CG"); -ob_end_clean(); - if ($results == 'CG') - echo "<li><input name='formCountry[]' type='checkbox' value='CG' checked/>Congo - Brazzaville</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CG' />Congo - Brazzaville</li>"; - - -ob_start(); -$results = exec("cat countries.txt | grep CD"); -ob_end_clean(); - if ($results == 'CD') - echo "<li><input name='formCountry[]' type='checkbox' value='CD' checked/>Congo, The Democratic Republic of the</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CD' />Congo, The Democratic Republic of the</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CK"); -ob_end_clean(); - if ($results == 'CK') - echo "<li><input name='formCountry[]' type='checkbox' value='CK' checked/>Cook Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CK' />Cook Islands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CR"); -ob_end_clean(); - if ($results == 'CR') - echo "<li><input name='formCountry[]' type='checkbox' value='CR' checked/>Costa Rica</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CR' />Costa Rica</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CI"); -ob_end_clean(); - if ($results == 'CI') - echo "<li><input name='formCountry[]' type='checkbox' value='CI' checked/>Côte d’Ivoire</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CI' />Côte d’Ivoire</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep HR"); -ob_end_clean(); - if ($results == 'HR') - echo "<li><input name='formCountry[]' type='checkbox' value='HR' checked/>Croatia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='HR' />Croatia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CU"); -ob_end_clean(); - if ($results == 'CU') - echo "<li><input name='formCountry[]' type='checkbox' value='CU' checked/>Cuba</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CU' />Cuba</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CW"); -ob_end_clean(); - if ($results == 'CW') - echo "<li><input name='formCountry[]' type='checkbox' value='CW' checked/>Curacao</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CW' />Curacao</li>"; - - -ob_start(); -$results = exec("cat countries.txt | grep CY"); -ob_end_clean(); - if ($results == 'CY') - echo "<li><input name='formCountry[]' type='checkbox' value='CY' checked/>Cyprus</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CY' />Cyprus</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CZ"); -ob_end_clean(); - if ($results == 'CZ') - echo "<li><input name='formCountry[]' type='checkbox' value='CZ' checked/>Czech Republic</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CZ' />Czech Republic</li>"; - -?> -</ul> -<h3 class="menuheader expandable">D's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep DK"); -ob_end_clean(); - if ($results == 'DK') - echo "<li><input name='formCountry[]' type='checkbox' value='DK' checked/>Denmark</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='DK' />Denmark</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep DJ"); -ob_end_clean(); - if ($results == 'DJ') - echo "<li><input name='formCountry[]' type='checkbox' value='DJ' checked/>Djibouti</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='DJ' />Djibouti</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep DM"); -ob_end_clean(); - if ($results == 'DM') - echo "<li><input name='formCountry[]' type='checkbox' value='DM' checked/>Dominica</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='DM' />Dominica</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep DO"); -ob_end_clean(); - if ($results == 'DO') - echo "<li><input name='formCountry[]' type='checkbox' value='DO' checked/>Dominican Republic</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='DO' />Dominican Republic</li>"; - -?> -</ul> -<h3 class="menuheader expandable">E's</h3> -<ul class="categoryitems"> -<?php -//ob_start(); -//$results = exec("cat countries.txt | grep XX"); -//ob_end_clean(); -// if ($results == 'XX') -// echo "<li><input name='formCountry[]' type='checkbox' value='East_Timor' checked/>East Timor</li>"; -// else -// echo "<li><input name='formCountry[]' type='checkbox' value='East_Timor' />East Timor</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep EC"); -ob_end_clean(); - if ($results == 'EC') - echo "<li><input name='formCountry[]' type='checkbox' value='EC' checked/>Ecuador</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='EC' />Ecuador</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep EG"); -ob_end_clean(); - if ($results == 'EG') - echo "<li><input name='formCountry[]' type='checkbox' value='EG' checked/>Egypt</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='EG' />Egypt</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SV"); -ob_end_clean(); - if ($results == 'SV') - echo "<li><input name='formCountry[]' type='checkbox' value='SV' checked/>El Salvador</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SV' />El Salvador</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GQ"); -ob_end_clean(); - if ($results == 'GQ') - echo "<li><input name='formCountry[]' type='checkbox' value='GQ' checked/>Equatorial Guinea</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GQ' />Equatorial Guinea</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep ER"); -ob_end_clean(); - if ($results == 'ER') - echo "<li><input name='formCountry[]' type='checkbox' value='ER' checked/>Eritrea</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='ER' />Eritrea</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep EE"); -ob_end_clean(); - if ($results == 'EE') - echo "<li><input name='formCountry[]' type='checkbox' value='EE' checked/>Estonia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='EE' />Estonia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep ET"); -ob_end_clean(); - if ($results == 'ET') - echo "<li><input name='formCountry[]' type='checkbox' value='ET' checked/>Ethiopia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='ET' />Ethiopia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep EU"); -ob_end_clean(); - if ($results == 'EU') - echo "<li><input name='formCountry[]' type='checkbox' value='EU' checked/>European Union</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='EU' />European Union</li>"; - - -?> -</ul> - -<h3 class="menuheader expandable">F's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep FK"); -ob_end_clean(); - if ($results == 'FK') - echo "<li><input name='formCountry[]' type='checkbox' value='FK' checked/>Falkland Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='FK' />Falkland Islands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep FO"); -ob_end_clean(); - if ($results == 'FO') - echo "<li><input name='formCountry[]' type='checkbox' value='FO' checked/>Faroe Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='FO' />Faroe Islands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep FJ"); -ob_end_clean(); - if ($results == 'FJ') - echo "<li><input name='formCountry[]' type='checkbox' value='FJ' checked/>Fiji Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='FJ' />Fiji Islands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep FI"); -ob_end_clean(); - if ($results == 'FI') - echo "<li><input name='formCountry[]' type='checkbox' value='FI' checked/>Finland</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='FI' />Finland</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep FR"); -ob_end_clean(); - if ($results == 'FR') - echo "<li><input name='formCountry[]' type='checkbox' value='FR' checked/>France</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='FR' />France</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GF"); -ob_end_clean(); - if ($results == 'GF') - echo "<li><input name='formCountry[]' type='checkbox' value='GF' checked/>French Guiana</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GF' />French Guiana</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep PF"); -ob_end_clean(); - if ($results == 'PF') - echo "<li><input name='formCountry[]' type='checkbox' value='PF' checked/>French Polynesia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='PF' />French Polynesia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TF"); -ob_end_clean(); - if ($results == 'TF') - echo "<li><input name='formCountry[]' type='checkbox' value='TF' checked/>French Southern territories</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TF' />French Southern territories</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">G's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep GA"); -ob_end_clean(); - if ($results == 'GA') - echo "<li><input name='formCountry[]' type='checkbox' value='GA' checked/>Gabon</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GA' />Gabon</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GM"); -ob_end_clean(); - if ($results == 'GM') - echo "<li><input name='formCountry[]' type='checkbox' value='GM' checked/>Gambia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GM' />Gambia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GE"); -ob_end_clean(); - if ($results == 'GE') - echo "<li><input name='formCountry[]' type='checkbox' value='GE' checked/>Georgia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GE' />Georgia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep DE"); -ob_end_clean(); - if ($results == 'DE') - echo "<li><input name='formCountry[]' type='checkbox' value='DE' checked/>Germany</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='DE' />Germany</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GH"); -ob_end_clean(); - if ($results == 'GH') - echo "<li><input name='formCountry[]' type='checkbox' value='GH' checked/>Ghana</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GH' />Ghana</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GI"); -ob_end_clean(); - if ($results == 'GI') - echo "<li><input name='formCountry[]' type='checkbox' value='GI' checked/>Gibraltar</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GI' />Gibraltar</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GR"); -ob_end_clean(); - if ($results == 'GR') - echo "<li><input name='formCountry[]' type='checkbox' value='GR' checked/>Greece</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GR' />Greece</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GL"); -ob_end_clean(); - if ($results == 'GL') - echo "<li><input name='formCountry[]' type='checkbox' value='GL' checked/>Greenland</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GL' />Greenland</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GD"); -ob_end_clean(); - if ($results == 'GD') - echo "<li><input name='formCountry[]' type='checkbox' value='GD' checked/>Grenada</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GD' />Grenada</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GP"); -ob_end_clean(); - if ($results == 'GP') - echo "<li><input name='formCountry[]' type='checkbox' value='GP' checked/>Guadeloupe</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GP' />Guadeloupe</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GU"); -ob_end_clean(); - if ($results == 'GU') - echo "<li><input name='formCountry[]' type='checkbox' value='GU' checked/>Guam</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GU' />Guam</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GT"); -ob_end_clean(); - if ($results == 'GT') - echo "<li><input name='formCountry[]' type='checkbox' value='GT' checked/>Guatemala</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GT' />Guatemala</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GG"); -ob_end_clean(); - if ($results == 'GG') - echo "<li><input name='formCountry[]' type='checkbox' value='GG' checked/>Guernsey</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GG' />Guernsey</li>"; - - -ob_start(); -$results = exec("cat countries.txt | grep GN"); -ob_end_clean(); - if ($results == 'GN') - echo "<li><input name='formCountry[]' type='checkbox' value='GN' checked/>Guinea</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GN' />Guinea</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GW"); -ob_end_clean(); - if ($results == 'GW') - echo "<li><input name='formCountry[]' type='checkbox' value='GW' checked/>Guinea-Bissau</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GW' />Guinea-Bissau</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GY"); -ob_end_clean(); - if ($results == 'GY') - echo "<li><input name='formCountry[]' type='checkbox' value='GY' checked/>Guyana</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GY' />Guyana</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">H's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep HT"); -ob_end_clean(); - if ($results == 'HT') - echo "<li><input name='formCountry[]' type='checkbox' value='HT' checked/>Haiti</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='HT' />Haiti</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep HM"); -ob_end_clean(); - if ($results == 'HM') - echo "<li><input name='formCountry[]' type='checkbox' value='HM' checked/>Heard Island and McDonald Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='HM' />Heard Island and McDonald Islands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep VA"); -ob_end_clean(); - if ($results == 'VA') - echo "<li><input name='formCountry[]' type='checkbox' value='VA' checked/>Holy See (Vatican City State)</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='VA' />Holy See (Vatican City State)</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep HN"); -ob_end_clean(); - if ($results == 'HN') - echo "<li><input name='formCountry[]' type='checkbox' value='HN' checked/>Honduras</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='HN' />Honduras</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep HK"); -ob_end_clean(); - if ($results == 'HK') - echo "<li><input name='formCountry[]' type='checkbox' value='HK' checked/>Hong Kong</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='HK' />Hong Kong</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep HU"); -ob_end_clean(); - if ($results == 'HU') - echo "<li><input name='formCountry[]' type='checkbox' value='HU' checked/>Hungary</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='HU' />Hungary</li>"; - -?> -</ul> -</div> -</td> - <td><div class="arrowlistmenu"> -<h3 class="menuheader expandable">I's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep IS"); -ob_end_clean(); - if ($results == 'IS') - echo "<li><input name='formCountry[]' type='checkbox' value='IS' checked/>Iceland</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='IS' />Iceland</li>"; - -//ob_start(); -//$results = exec("cat countries.txt | grep IN"); -//ob_end_clean(); -// if ($results == 'IN') -// echo "<li><input name='formCountry[]' type='checkbox' value='IN' checked/>India</li>"; -// else -// echo "<li><input name='formCountry[]' type='checkbox' value='IN' />India</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep ID"); -ob_end_clean(); - if ($results == 'ID') - echo "<li><input name='formCountry[]' type='checkbox' value='ID' checked/>Indonesia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='ID' />Indonesia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep IR"); -ob_end_clean(); - if ($results == 'IR') - echo "<li><input name='formCountry[]' type='checkbox' value='IR' checked/>Iran</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='IR' />Iran</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep IQ"); -ob_end_clean(); - if ($results == 'IQ') - echo "<li><input name='formCountry[]' type='checkbox' value='IQ' checked/>Iraq</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='IQ' />Iraq</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep IE"); -ob_end_clean(); - if ($results == 'IE') - echo "<li><input name='formCountry[]' type='checkbox' value='IE' checked/>Ireland</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='IE' />Ireland</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep IM"); -ob_end_clean(); - if ($results == 'IM') - echo "<li><input name='formCountry[]' type='checkbox' value='IM' checked/>Isle of Man</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='IM' />Isle of Man</li>"; - - -ob_start(); -$results = exec("cat countries.txt | grep IL"); -ob_end_clean(); - if ($results == 'IL') - echo "<li><input name='formCountry[]' type='checkbox' value='IL' checked/>Israel</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='IL' />Israel</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep IT"); -ob_end_clean(); - if ($results == 'IT') - echo "<li><input name='formCountry[]' type='checkbox' value='IT' checked/>Italy</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='IT' />Italy</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">J's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep JM"); -ob_end_clean(); - if ($results == 'JM') - echo "<li><input name='formCountry[]' type='checkbox' value='JM' checked/>Jamaica</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='JM' />Jamaica</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep JP"); -ob_end_clean(); - if ($results == 'JP') - echo "<li><input name='formCountry[]' type='checkbox' value='JP' checked/>Japan</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='JP' />Japan</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep JE"); -ob_end_clean(); - if ($results == 'JE') - echo "<li><input name='formCountry[]' type='checkbox' value='JE' checked/>Jersey</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='JE' />Jersey</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep JO"); -ob_end_clean(); - if ($results == 'JO') - echo "<li><input name='formCountry[]' type='checkbox' value='JO' checked/>Jordan</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='JO' />Jordan</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">K's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep KZ"); -ob_end_clean(); - if ($results == 'KZ') - echo "<li><input name='formCountry[]' type='checkbox' value='KZ' checked/>Kazakstan</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='KZ' />Kazakstan</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep KE"); -ob_end_clean(); - if ($results == 'KE') - echo "<li><input name='formCountry[]' type='checkbox' value='KE' checked/>Kenya</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='KE' />Kenya</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep KI"); -ob_end_clean(); - if ($results == 'KI') - echo "<li><input name='formCountry[]' type='checkbox' value='KI' checked/>Kiribati</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='KI' />Kiribati</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep KP"); -ob_end_clean(); - if ($results == 'KP') - echo "<li><input name='formCountry[]' type='checkbox' value='KP' checked/>Korea, Democratic Replublic</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='KP' />Korea, Democratic Replublic</li>"; - -//ob_start(); -//$results = exec("cat countries.txt | grep KR"); -//ob_end_clean(); -// if ($results == 'KR') -// echo "<li><input name='formCountry[]' type='checkbox' value='KR' checked/>Korea</li>"; -// else -// echo "<li><input name='formCountry[]' type='checkbox' value='KR' />Korea</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CS"); -ob_end_clean(); - if ($results == 'CS') - echo "<li><input name='formCountry[]' type='checkbox' value='CS' checked/>Kosovo</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CS' />Kosovo</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep KW"); -ob_end_clean(); - if ($results == 'KW') - echo "<li><input name='formCountry[]' type='checkbox' value='KW' checked/>Kuwait</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='KW' />Kuwait</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep KG"); -ob_end_clean(); - if ($results == 'KG') - echo "<li><input name='formCountry[]' type='checkbox' value='KG' checked/>Kyrgyzstan</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='KG' />Kyrgyzstan</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">L's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep LA"); -ob_end_clean(); - if ($results == 'LA') - echo "<li><input name='formCountry[]' type='checkbox' value='LA' checked/>Lao Democratic Republic</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='LA' />Lao Democratic Republic</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep LV"); -ob_end_clean(); - if ($results == 'LV') - echo "<li><input name='formCountry[]' type='checkbox' value='LV' checked/>Latvia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='LV' />Latvia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep LB"); -ob_end_clean(); - if ($results == 'LB') - echo "<li><input name='formCountry[]' type='checkbox' value='LB' checked/>Lebanon</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='LB' />Lebanon</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep LS"); -ob_end_clean(); - if ($results == 'LS') - echo "<li><input name='formCountry[]' type='checkbox' value='LS' checked/>Lesotho</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='LS' />Lesotho</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep LR"); -ob_end_clean(); - if ($results == 'LR') - echo "<li><input name='formCountry[]' type='checkbox' value='LR' checked/>Liberia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='LR' />Liberia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep LY"); -ob_end_clean(); - if ($results == 'LY') - echo "<li><input name='formCountry[]' type='checkbox' value='LY' checked/>Libyan Arab Jamahiriya</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='LY' />Libyan Arab Jamahiriya</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep LI"); -ob_end_clean(); - if ($results == 'LI') - echo "<li><input name='formCountry[]' type='checkbox' value='LI' checked/>Liechtenstein</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='LI' />Liechtenstein</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep LT"); -ob_end_clean(); - if ($results == 'LT') - echo "<li><input name='formCountry[]' type='checkbox' value='LT' checked/>Lithuania</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='LT' />Lithuania</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep LU"); -ob_end_clean(); - if ($results == 'LU') - echo "<li><input name='formCountry[]' type='checkbox' value='LU' checked/>Luxembourg</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='LU' />Luxembourg</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">M's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep MO"); -ob_end_clean(); - if ($results == 'MO') - echo "<li><input name='formCountry[]' type='checkbox' value='MO' checked/>Macao</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MO' />Macao</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MK"); -ob_end_clean(); - if ($results == 'MK') - echo "<li><input name='formCountry[]' type='checkbox' value='MK' checked/>Macedonia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MK' />Macedonia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MG"); -ob_end_clean(); - if ($results == 'MG') - echo "<li><input name='formCountry[]' type='checkbox' value='MG' checked/>Madagascar</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MG' />Madagascar</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MW"); -ob_end_clean(); - if ($results == 'MW') - echo "<li><input name='formCountry[]' type='checkbox' value='MW' checked/>Malawi</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MW' />Malawi</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MY"); -ob_end_clean(); - if ($results == 'MY') - echo "<li><input name='formCountry[]' type='checkbox' value='MY' checked/>Malaysia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MY' />Malaysia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MV"); -ob_end_clean(); - if ($results == 'MV') - echo "<li><input name='formCountry[]' type='checkbox' value='MV' checked/>Maldives</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MV' />Maldives</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep ML"); -ob_end_clean(); - if ($results == 'ML') - echo "<li><input name='formCountry[]' type='checkbox' value='ML' checked/>Mali</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='ML' />Mali</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MT"); -ob_end_clean(); - if ($results == 'MT') - echo "<li><input name='formCountry[]' type='checkbox' value='MT' checked/>Malta</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MT' />Malta</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MH"); -ob_end_clean(); - if ($results == 'MH') - echo "<li><input name='formCountry[]' type='checkbox' value='MH' checked/>Marshall Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MH' />Marshall Islands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MQ"); -ob_end_clean(); - if ($results == 'MQ') - echo "<li><input name='formCountry[]' type='checkbox' value='MQ' checked/>Martinique</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MQ' />Martinique</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MR"); -ob_end_clean(); - if ($results == 'MR') - echo "<li><input name='formCountry[]' type='checkbox' value='MR' checked/>Mauritania</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MR' />Mauritania</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MU"); -ob_end_clean(); - if ($results == 'MU') - echo "<li><input name='formCountry[]' type='checkbox' value='MU' checked/>Mauritius</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MU' />Mauritius</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep YT"); -ob_end_clean(); - if ($results == 'YT') - echo "<li><input name='formCountry[]' type='checkbox' value='YT' checked/>Mayotte</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='YT' />Mayotte</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MX"); -ob_end_clean(); - if ($results == 'MX') - echo "<li><input name='formCountry[]' type='checkbox' value='MX' checked/>Mexico</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MX' />Mexico</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep FM"); -ob_end_clean(); - if ($results == 'FM') - echo "<li><input name='formCountry[]' type='checkbox' value='FM' checked/>Micronesia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='FM' />Micronesia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MD"); -ob_end_clean(); - if ($results == 'MD') - echo "<li><input name='formCountry[]' type='checkbox' value='MD' checked/>Moldova</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MD' />Moldova</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MC"); -ob_end_clean(); - if ($results == 'MC') - echo "<li><input name='formCountry[]' type='checkbox' value='MC' checked/>Monaco</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MC' />Monaco</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MN"); -ob_end_clean(); - if ($results == 'MN') - echo "<li><input name='formCountry[]' type='checkbox' value='MN' checked/>Mongolia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MN' />Mongolia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep ME"); -ob_end_clean(); - if ($results == 'ME') - echo "<li><input name='formCountry[]' type='checkbox' value='ME' checked/>Montenegro</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='ME' />Montenegro</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MS"); -ob_end_clean(); - if ($results == 'MS') - echo "<li><input name='formCountry[]' type='checkbox' value='MS' checked/>Montserrat</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MS' />Montserrat</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MA"); -ob_end_clean(); - if ($results == 'MA') - echo "<li><input name='formCountry[]' type='checkbox' value='MA' checked/>Morocco</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MA' />Morocco</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MZ"); -ob_end_clean(); - if ($results == 'MZ') - echo "<li><input name='formCountry[]' type='checkbox' value='MZ' checked/>Mozambique</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MZ' />Mozambique</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MM"); -ob_end_clean(); - if ($results == 'MM') - echo "<li><input name='formCountry[]' type='checkbox' value='MM' checked/>Myanmar</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MM' />Myanmar</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">N's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep NA"); -ob_end_clean(); - if ($results == 'NA') - echo "<li><input name='formCountry[]' type='checkbox' value='NA' checked/>Namibia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='NA' />Namibia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep NR"); -ob_end_clean(); - if ($results == 'NR') - echo "<li><input name='formCountry[]' type='checkbox' value='NR' checked/>Nauru</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='NR' />Nauru</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep NP"); -ob_end_clean(); - if ($results == 'NP') - echo "<li><input name='formCountry[]' type='checkbox' value='NP' checked/>Nepal</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='NP' />Nepal</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep NL"); -ob_end_clean(); - if ($results == 'NL') - echo "<li><input name='formCountry[]' type='checkbox' value='NL' checked/>Netherlands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='NL' />Netherlands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AN"); -ob_end_clean(); - if ($results == 'AN') - echo "<li><input name='formCountry[]' type='checkbox' value='AN' checked/>Netherlands Antilles</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AN' />Netherlands Antilles</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep NC"); -ob_end_clean(); - if ($results == 'NC') - echo "<li><input name='formCountry[]' type='checkbox' value='NC' checked/>New Caledonia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='NC' />New Caledonia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep NZ"); -ob_end_clean(); - if ($results == 'NZ') - echo "<li><input name='formCountry[]' type='checkbox' value='NZ' checked/>New Zealand</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='NZ' />New Zealand</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep NI"); -ob_end_clean(); - if ($results == 'NI') - echo "<li><input name='formCountry[]' type='checkbox' value='NI' checked/>Nicaragua</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='NI' />Nicaragua</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep NE"); -ob_end_clean(); - if ($results == 'NE') - echo "<li><input name='formCountry[]' type='checkbox' value='NE' checked/>Niger</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='NE' />Niger</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep NG"); -ob_end_clean(); - if ($results == 'NG') - echo "<li><input name='formCountry[]' type='checkbox' value='NG' checked/>Nigeria</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='NG' />Nigeria</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep NU"); -ob_end_clean(); - if ($results == 'NU') - echo "<li><input name='formCountry[]' type='checkbox' value='NU' checked/>Niue</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='NU' />Niue</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep NF"); -ob_end_clean(); - if ($results == 'NF') - echo "<li><input name='formCountry[]' type='checkbox' value='NF' checked/>Norfolk Island</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='NF' />Norfolk Island</li>"; - -//ob_start(); -//$results = exec("cat countries.txt | grep XX"); -//ob_end_clean(); -// if ($results == 'XX') -// echo "<li><input name='formCountry[]' type='checkbox' value='North_Korea' checked/>North Korea</li>"; -// else -// echo "<li><input name='formCountry[]' type='checkbox' value='North_Korea' />North Korea</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MP"); -ob_end_clean(); - if ($results == 'MP') - echo "<li><input name='formCountry[]' type='checkbox' value='MP' checked/>Northern Mariana Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MP' />Northern Mariana Islands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep NO"); -ob_end_clean(); - if ($results == 'NO') - echo "<li><input name='formCountry[]' type='checkbox' value='NO' checked/>Norway</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='NO' />Norway</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">O's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep OM"); -ob_end_clean(); - if ($results == 'OM') - echo "<li><input name='formCountry[]' type='checkbox' value='OM' checked/>Oman</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='OM' />Oman</li>"; - - -?> -</ul> - -<h3 class="menuheader expandable">P's</h3> -<ul class="categoryitems"> -<?php -//ob_start(); -//$results = exec("cat countries.txt | grep PK"); -//ob_end_clean(); -// if ($results == 'PK') -// echo "<li><input name='formCountry[]' type='checkbox' value='PK' checked/>Pakistan</li>"; -// else -// echo "<li><input name='formCountry[]' type='checkbox' value='PK' />Pakistan</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep PW"); -ob_end_clean(); - if ($results == 'PW') - echo "<li><input name='formCountry[]' type='checkbox' value='PW' checked/>Palau</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='PW' />Palau</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep PS"); -ob_end_clean(); - if ($results == 'PS') - echo "<li><input name='formCountry[]' type='checkbox' value='PS' checked/>Palestine</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='PS' />Palestine</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep PA"); -ob_end_clean(); - if ($results == 'PA') - echo "<li><input name='formCountry[]' type='checkbox' value='PA' checked/>Panama</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='PA' />Panama</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep PG"); -ob_end_clean(); - if ($results == 'PG') - echo "<li><input name='formCountry[]' type='checkbox' value='PG' checked/>Papua New Guinea</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='PG' />Papua New Guinea</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep PY"); -ob_end_clean(); - if ($results == 'PY') - echo "<li><input name='formCountry[]' type='checkbox' value='PY' checked/>Paraguay</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='PY' />Paraguay</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep PE"); -ob_end_clean(); - if ($results == 'PE') - echo "<li><input name='formCountry[]' type='checkbox' value='PE' checked/>Peru</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='PE' />Peru</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep PH"); -ob_end_clean(); - if ($results == 'PH') - echo "<li><input name='formCountry[]' type='checkbox' value='PH' checked/>Philippines</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='PH' />Philippines</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep PN"); -ob_end_clean(); - if ($results == 'PN') - echo "<li><input name='formCountry[]' type='checkbox' value='PN' checked/>Pitcairn</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='PN' />Pitcairn</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep PL"); -ob_end_clean(); - if ($results == 'PL') - echo "<li><input name='formCountry[]' type='checkbox' value='PL' checked/>Poland</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='PL' />Poland</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep PT"); -ob_end_clean(); - if ($results == 'PT') - echo "<li><input name='formCountry[]' type='checkbox' value='PT' checked/>Portugal</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='PT' />Portugal</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep PR"); -ob_end_clean(); - if ($results == 'PR') - echo "<li><input name='formCountry[]' type='checkbox' value='PR' checked/>Puerto Rico</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='PR' />Puerto Rico</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">Q's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep QA"); -ob_end_clean(); - if ($results == 'QA') - echo "<li><input name='formCountry[]' type='checkbox' value='QA' checked/>Qatar</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='QA' />Qatar</li>"; - -?> -</ul> -</div> -</td> - <td><div class="arrowlistmenu"> - -<h3 class="menuheader expandable">R's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep RE"); -ob_end_clean(); - if ($results == 'RE') - echo "<li><input name='formCountry[]' type='checkbox' value='RE' checked/>Réunion</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='RE' />Réunion</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep RO"); -ob_end_clean(); - if ($results == 'RO') - echo "<li><input name='formCountry[]' type='checkbox' value='RO' checked/>Romania</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='RO' />Romania</li>"; - -//ob_start(); -//$results = exec("cat countries.txt | grep RU"); -//ob_end_clean(); -// if ($results == 'RU') -// echo "<li><input name='formCountry[]' type='checkbox' value='RU' checked/>Russian Federation</li>"; -// else -// echo "<li><input name='formCountry[]' type='checkbox' value='RU' />Russian Federation</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep RW"); -ob_end_clean(); - if ($results == 'RW') - echo "<li><input name='formCountry[]' type='checkbox' value='RW' checked/>Rwanda</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='RW' />Rwanda</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">S's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep BL"); -ob_end_clean(); - if ($results == 'BL') - echo "<li><input name='formCountry[]' type='checkbox' value='BL' checked/>Saint Barthelemy</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='BL' />Saint Barthelemy</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SH"); -ob_end_clean(); - if ($results == 'SH') - echo "<li><input name='formCountry[]' type='checkbox' value='SH' checked/>Saint Helena</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SH' />Saint Helena</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep KN"); -ob_end_clean(); - if ($results == 'KN') - echo "<li><input name='formCountry[]' type='checkbox' value='KN' checked/>Saint Kitts and Nevis</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='KN' />Saint Kitts and Nevis</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep LC"); -ob_end_clean(); - if ($results == 'LC') - echo "<li><input name='formCountry[]' type='checkbox' value='LC' checked/>Saint Lucia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='LC' />Saint Lucia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep MF"); -ob_end_clean(); - if ($results == 'MF') - echo "<li><input name='formCountry[]' type='checkbox' value='MF' checked/>Saint Martin</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='MF' />Saint Martin</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep PM"); -ob_end_clean(); - if ($results == 'PM') - echo "<li><input name='formCountry[]' type='checkbox' value='PM' checked/>Saint Pierre and Miquelon</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='PM' />Saint Pierre and Miquelon</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep VC"); -ob_end_clean(); - if ($results == 'VC') - echo "<li><input name='formCountry[]' type='checkbox' value='VC' checked/>Saint Vincent and the Grenadines</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='VC' />Saint Vincent and the Grenadines</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep WS"); -ob_end_clean(); - if ($results == 'WS') - echo "<li><input name='formCountry[]' type='checkbox' value='WS' checked/>Samoa</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='WS' />Samoa</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SM"); -ob_end_clean(); - if ($results == 'SM') - echo "<li><input name='formCountry[]' type='checkbox' value='SM' checked/>San Marino</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SM' />San Marino</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep ST"); -ob_end_clean(); - if ($results == 'ST') - echo "<li><input name='formCountry[]' type='checkbox' value='ST' checked/>Sao Tome and Principe</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='ST' />Sao Tome and Principe</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SA"); -ob_end_clean(); - if ($results == 'SA') - echo "<li><input name='formCountry[]' type='checkbox' value='SA' checked/>Saudi Arabia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SA' />Saudi Arabia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SN"); -ob_end_clean(); - if ($results == 'SN') - echo "<li><input name='formCountry[]' type='checkbox' value='SN' checked/>Senegal</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SN' />Senegal</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep RS"); -ob_end_clean(); - if ($results == 'RS') - echo "<li><input name='formCountry[]' type='checkbox' value='RS' checked/>Serbia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='RS' />Serbia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SC"); -ob_end_clean(); - if ($results == 'SC') - echo "<li><input name='formCountry[]' type='checkbox' value='SC' checked/>Seychelles</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SC' />Seychelles</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SL"); -ob_end_clean(); - if ($results == 'SL') - echo "<li><input name='formCountry[]' type='checkbox' value='SL' checked/>Sierra Leone</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SL' />Sierra Leone</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SG"); -ob_end_clean(); - if ($results == 'SG') - echo "<li><input name='formCountry[]' type='checkbox' value='SG' checked/>Singapore</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SG' />Singapore</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SX"); -ob_end_clean(); - if ($results == 'SX') - echo "<li><input name='formCountry[]' type='checkbox' value='SX' checked/>Sint Maarten</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SX' />Sint Maarten</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SK"); -ob_end_clean(); - if ($results == 'SK') - echo "<li><input name='formCountry[]' type='checkbox' value='SK' checked/>Slovakia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SK' />Slovakia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SI"); -ob_end_clean(); - if ($results == 'SI') - echo "<li><input name='formCountry[]' type='checkbox' value='SI' checked/>Slovenia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SI' />Slovenia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SB"); -ob_end_clean(); - if ($results == 'SB') - echo "<li><input name='formCountry[]' type='checkbox' value='SB' checked/>Solomon Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SB' />Solomon Islands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SO"); -ob_end_clean(); - if ($results == 'SO') - echo "<li><input name='formCountry[]' type='checkbox' value='SO' checked/>Somalia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SO' />Somalia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep ZA"); -ob_end_clean(); - if ($results == 'ZA') - echo "<li><input name='formCountry[]' type='checkbox' value='ZA' checked/>South Africa</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='ZA' />South Africa</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GS"); -ob_end_clean(); - if ($results == 'GS') - echo "<li><input name='formCountry[]' type='checkbox' value='GS' checked/>South Georgia and the South Sandwich Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GS' />South Georgia and the South Sandwich Islands</li>"; - -//ob_start(); -//$results = exec("cat countries.txt | grep XX"); -//ob_end_clean(); -// if ($results == 'XX') -// echo " <li><input name='formCountry[]' type='checkbox' value='South_Korea' checked/>South Korea</li>"; -// else -// echo " <li><input name='formCountry[]' type='checkbox' value='South_Korea' />South Korea</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep ES"); -ob_end_clean(); - if ($results == 'ES') - echo "<li><input name='formCountry[]' type='checkbox' value='ES' checked/>Spain</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='ES' />Spain</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep LK"); -ob_end_clean(); - if ($results == 'LK') - echo "<li><input name='formCountry[]' type='checkbox' value='LK' checked/>Sri Lanka</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='LK' />Sri Lanka</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SD"); -ob_end_clean(); - if ($results == 'SD') - echo "<li><input name='formCountry[]' type='checkbox' value='SD' checked/>Sudan</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SD' />Sudan</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SR"); -ob_end_clean(); - if ($results == 'SR') - echo "<li><input name='formCountry[]' type='checkbox' value='SR' checked/>Suriname</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SR' />Suriname</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SJ"); -ob_end_clean(); - if ($results == 'SJ') - echo "<li><input name='formCountry[]' type='checkbox' value='SJ' checked/>Svalbard and Jan Mayen</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SJ' />Svalbard and Jan Mayen</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SZ"); -ob_end_clean(); - if ($results == 'SZ') - echo "<li><input name='formCountry[]' type='checkbox' value='SZ' checked/>Swaziland</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SZ' />Swaziland</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SE"); -ob_end_clean(); - if ($results == 'SE') - echo "<li><input name='formCountry[]' type='checkbox' value='SE' checked/>Sweden</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SE' />Sweden</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep CH"); -ob_end_clean(); - if ($results == 'CH') - echo "<li><input name='formCountry[]' type='checkbox' value='CH' checked/>Switzerland</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='CH' />Switzerland</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep SY"); -ob_end_clean(); - if ($results == 'SY') - echo "<li><input name='formCountry[]' type='checkbox' value='SY' checked/>Syria</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='SY' />Syria</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">T's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep TW"); -ob_end_clean(); - if ($results == 'TW') - echo "<li><input name='formCountry[]' type='checkbox' value='TW' checked/>Taiwan</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TW' />Taiwan</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TJ"); -ob_end_clean(); - if ($results == 'TJ') - echo "<li><input name='formCountry[]' type='checkbox' value='TJ' checked/>Tajikistan</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TJ' />Tajikistan</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TZ"); -ob_end_clean(); - if ($results == 'TZ') - echo "<li><input name='formCountry[]' type='checkbox' value='TZ' checked/>Tanzania</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TZ' />Tanzania</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TH"); -ob_end_clean(); - if ($results == 'TH') - echo "<li><input name='formCountry[]' type='checkbox' value='TH' checked/>Thailand</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TH' />Thailand</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TL"); -ob_end_clean(); - if ($results == 'TL') - echo "<li><input name='formCountry[]' type='checkbox' value='TL' checked/>Timor-Leste</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TL' />Timor-Leste</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TG"); -ob_end_clean(); - if ($results == 'TG') - echo "<li><input name='formCountry[]' type='checkbox' value='TG' checked/>Togo</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TG' />Togo</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TK"); -ob_end_clean(); - if ($results == 'TK') - echo "<li><input name='formCountry[]' type='checkbox' value='TK' checked/>Tokelau</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TK' />Tokelau</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TO"); -ob_end_clean(); - if ($results == 'TO') - echo "<li><input name='formCountry[]' type='checkbox' value='TO' checked/>Tonga</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TO' />Tonga</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TT"); -ob_end_clean(); - if ($results == 'TT') - echo "<li><input name='formCountry[]' type='checkbox' value='TT' checked/>Trinidad and Tobago</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TT' />Trinidad and Tobago</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TN"); -ob_end_clean(); - if ($results == 'TN') - echo "<li><input name='formCountry[]' type='checkbox' value='TN' checked/>Tunisia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TN' />Tunisia</li>"; - -//ob_start(); -//$results = exec("cat countries.txt | grep TR"); -//ob_end_clean(); -// if ($results == 'TR') -// echo "<li><input name='formCountry[]' type='checkbox' value='TR' checked/>Turkey</li>"; -// else -// echo "<li><input name='formCountry[]' type='checkbox' value='TR' />Turkey</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TM"); -ob_end_clean(); - - if ($results == 'TM') - echo "<li><input name='formCountry[]' type='checkbox' value='TM' checked/>Turkmenistan</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TM' />Turkmenistan</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TC"); -ob_end_clean(); - if ($results == 'TC') - echo "<li><input name='formCountry[]' type='checkbox' value='TC' checked/>Turks and Caicos Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TC' />Turks and Caicos Islands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep TV"); -ob_end_clean(); - if ($results == 'TV') - echo "<li><input name='formCountry[]' type='checkbox' value='TV' checked/>Tuvalu</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='TV' />Tuvalu</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">U's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep UG"); -ob_end_clean(); - if ($results == 'UG') - echo "<li><input name='formCountry[]' type='checkbox' value='UG' checked/>Uganda</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='UG' />Uganda</li>"; - -//ob_start(); -//$results = exec("cat countries.txt | grep UA"); -//ob_end_clean(); -// if ($results == 'UA') -// echo "<li><input name='formCountry[]' type='checkbox' value='UA' checked/>Ukraine</li>"; -// else -// echo "<li><input name='formCountry[]' type='checkbox' value='UA' />Ukraine</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep AE"); -ob_end_clean(); - if ($results == 'AE') - echo "<li><input name='formCountry[]' type='checkbox' value='AE' checked/>United Arab Emirates</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='AE' />United Arab Emirates</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep GB"); -ob_end_clean(); - if ($results == 'GB') - echo "<li><input name='formCountry[]' type='checkbox' value='GB' checked/>United Kingdom</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='GB' />United Kingdom</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep US"); -ob_end_clean(); - if ($results == 'US') - echo "<li><input name='formCountry[]' type='checkbox' value='US' checked/>United States</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='US' />United States</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep UM"); -ob_end_clean(); - if ($results == 'UM') - echo "<li><input name='formCountry[]' type='checkbox' value='UM' checked/>United States Minor Outlying Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='UM' />United States Minor Outlying Islands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep UY"); -ob_end_clean(); - if ($results == 'UY') - echo "<li><input name='formCountry[]' type='checkbox' value='UY' checked/>Uruguay</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='UY' />Uruguay</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep UZ"); -ob_end_clean(); - if ($results == 'UZ') - echo "<li><input name='formCountry[]' type='checkbox' value='UZ' checked/>Uzbekistan</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='UZ' />Uzbekistan</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">V's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep VU"); -ob_end_clean(); - if ($results == 'VU') - echo "<li><input name='formCountry[]' type='checkbox' value='VU' checked/>Vanuatu</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='VU' />Vanuatu</li>"; - -//ob_start(); -//$results = exec("cat countries.txt | grep VE"); -//ob_end_clean(); -// if ($results == 'VE') -// echo "<li><input name='formCountry[]' type='checkbox' value='VE' checked/>Venezuela</li>"; -// else -// echo "<li><input name='formCountry[]' type='checkbox' value='VE' />Venezuela</li>"; - -//ob_start(); -//$results = exec("cat countries.txt | grep VN"); -//ob_end_clean(); -// if ($results == 'VN') -// echo "<li><input name='formCountry[]' type='checkbox' value='VN' checked/>Vietnam</li>"; -// else -// echo "<li><input name='formCountry[]' type='checkbox' value='VN' />Vietnam</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep VG"); -ob_end_clean(); - if ($results == 'VG') - echo "<li><input name='formCountry[]' type='checkbox' value='VG' checked/>Virgin Islands, British</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='VG' />Virgin Islands, British</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep VI"); -ob_end_clean(); - if ($results == 'VI') - echo "<li><input name='formCountry[]' type='checkbox' value='VI' checked/>Virgin Islands, U.S.</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='VI' />Virgin Islands, U.S.</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">W's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep WF"); -ob_end_clean(); - if ($results == 'WF') - echo "<li><input name='formCountry[]' type='checkbox' value='WF' checked/>Wallis and Futuna Islands</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='WF' />Wallis and Futuna Islands</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep EH"); -ob_end_clean(); - if ($results == 'EH') - echo "<li><input name='formCountry[]' type='checkbox' value='EH' checked/>Western Sahara</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='EH' />Western Sahara</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">X's</h3> -<ul class="categoryitems"> -<li><insert easter egg></li> - -</ul> - -<h3 class="menuheader expandable">Y's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep YE"); -ob_end_clean(); - if ($results == 'YE') - echo "<li><input name='formCountry[]' type='checkbox' value='YE' checked/>Yemen</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='YE' />Yemen</li>"; - -//ob_start(); -//$results = exec("cat countries.txt | grep XX"); -//ob_end_clean(); -// if ($results == 'XX') -// echo "<li><input name='formCountry[]' type='checkbox' value='Yugoslavia' checked/>Yugoslavia</li>"; -// else -// echo "<li><input name='formCountry[]' type='checkbox' value='Yugoslavia' />Yugoslavia</li>"; - -?> -</ul> - -<h3 class="menuheader expandable">Z's</h3> -<ul class="categoryitems"> -<?php -ob_start(); -$results = exec("cat countries.txt | grep ZM"); -ob_end_clean(); - if ($results == 'ZM') - echo "<li><input name='formCountry[]' type='checkbox' value='ZM' checked/>Zambia</li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='ZM' />Zambia</li>"; - -ob_start(); -$results = exec("cat countries.txt | grep ZW"); -ob_end_clean(); - if ($results == 'ZW') - echo "<li><input name='formCountry[]' type='checkbox' value='ZW' checked/>Zimbabwe </li>"; - else - echo "<li><input name='formCountry[]' type='checkbox' value='ZW' />Zimbabwe </li>"; - -?> - -</ul> - - -<div> -</div> - -</div> -</td> - </tr> -</table> - - - - <br/><br/> - <input type="submit" name="formSubmit" value="Commit Countries" /> - </p> -</form> -<br/> - - - - -</div> -<?php - //This input guarantees that a POST is sent - echo "<input type='hidden' name='zzz' value='required'>"; -?> - -</td> -</tr> -</table> - </td> - - - </tr> - - -</table> -</div> -<br> -<?php - echo "Current Status = "; - ob_start(); - $results = exec("pfctl -s rules | grep -c countryblock"); - ob_end_clean(); - if ($results > '0') echo "Running"; - else - echo "<span style='color:red'>NOT running</span>"; - - //Get Errors if exists - ob_start(); - $results = exec("tail -r errorOUT.txt"); - ob_end_clean(); - echo "<br/><span style='color:red'>"; - echo $results; - echo "</span>"; - - //Get IP Count - echo "<br>You are blocking "; - ob_start(); - $results = exec("pfctl -T show -t countryblock |grep -v -c Z"); - ob_end_clean(); - echo $results; - echo " Networks"; - ?> -<br><br> -<input type="submit" value="Save/Update"><br><br> -<p> -<small>Lists provided by <a href="http://www.countryipblocks.net/">countryipblocks.net</a></small> -<br /><small>Created by <a href="http://www.tomschaefer.org/pfsense">TomSchaefer</a></small> -</p> -</td> - </tr> -</table> -</form> -<?php include("fend.inc"); ?> -</body> -</html> diff --git a/config/countryblock/countryblock.xml b/config/countryblock/countryblock.xml deleted file mode 100644 index b7336e98..00000000 --- a/config/countryblock/countryblock.xml +++ /dev/null @@ -1,200 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE packagegui SYSTEM "./schema/packages.dtd"> -<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?> -<packagegui> - <copyright> - <![CDATA[ -/* $Id$ */ -/* ========================================================================== */ -/* - countryblock.xml - Copyright (C) 2012 Tom Schaefer - All rights reserved. - */ -/* ========================================================================== */ -/* - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ -/* ========================================================================== */ - ]]> - </copyright> - <description>Country Block</description> - <requirements>Active Internet</requirements> - <faq>https://forum.pfsense.org/index.php/topic,25732.0.html</faq> - <name>Country Block Settings</name> - <version>0.2.4</version> - <title>Settings</title> - <include_file>/usr/local/pkg/countryblock.inc</include_file> - <menu> - <name>Country Block</name> - <tooltiptext>Country Block settings</tooltiptext> - <section>Firewall</section> - <configfile>countryblock.xml</configfile> - <url>/packages/countryblock/countryblock.php</url> - </menu> - <tabs> - <tab> - <text>Settings</text> - <url>/packages/countryblock/countryblock.php</url> - <active/> - </tab> - </tabs> - <configpath>installedpackages->package->$packagename->configuration->countryblock</configpath> - <additional_files_needed> - <prefix>/usr/local/pkg/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/countryblock.xml</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/usr/local/pkg/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/countryblock.inc</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/interfaces.txt</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/countryblock.tmp</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/execute.sh</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/countryblock.sh</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/index.tmp</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/ddaccordion.js</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/jquery.min.js</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/public_smo_scripts.js</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/titlebar.png</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/titlebar-active.png</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/purge.tmp</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/whitelist.tmp</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/countryblock_if.tmp</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/firewall_shaper.tmp</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/help.tmp</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/settings.tmp</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/class.phpmailer.tmp</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/class.smtp.tmp</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/email.tmp</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/tmp/</prefix> - <chmod>0644</chmod> - <item>https://packages.pfsense.org/packages/config/countryblock/countryblock_IPBlocklist.widget.tmp</item> - </additional_files_needed> - <fields> - <field> - <fielddescr>Variable One</fielddescr> - <fieldname>var1</fieldname> - <description>Enter the variable one here.</description> - <type>input</type> - </field> - <field> - <fielddescr>Variable Two</fielddescr> - <fieldname>var1</fieldname> - <description>Enter the variable one here.</description> - <type>input</type> - </field> - </fields> - <custom_add_php_command> - </custom_add_php_command> - <custom_php_resync_config_command> - php_sync_package_cb(); - </custom_php_resync_config_command> - <custom_delete_php_command> - php_sync_package_cb(); - </custom_delete_php_command> - <custom_php_install_command> - php_install_command_cb(); - </custom_php_install_command> - <custom_php_deinstall_command> - deinstall_command_cb(); - </custom_php_deinstall_command> -</packagegui> diff --git a/config/countryblock/countryblock_IPBlocklist.widget.tmp b/config/countryblock/countryblock_IPBlocklist.widget.tmp deleted file mode 100644 index 59911f5a..00000000 --- a/config/countryblock/countryblock_IPBlocklist.widget.tmp +++ /dev/null @@ -1,116 +0,0 @@ -<?php -/* - Copyright 2012 Thomas Schaefer - Tomschaefer.org - Part of pfSense widgets (www.pfsense.org) - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -$nocsrf = true; - -@require_once("guiconfig.inc"); -@require_once("pfsense-utils.inc"); -@require_once("functions.inc"); - -$ipblocklist_file = "/usr/local/www/packages/ipblocklist/ipblocklist.php"; -$countryblock_file = "/usr/local/www/packages/countryblock/countryblock.php"; - -echo "<table style=\"padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\""; -echo" <tr>"; -if (file_exists($ipblocklist_file)) { - echo " <td class=\"listhdrr\">IP-Blocklist"; - ob_start(); - $results = exec("/sbin/pfctl -s rules | grep -c ipblocklist"); - ob_end_clean(); - if ($results > '2') echo "<img src ='/themes/{$g['theme']}/images/icons/icon_interface_up.gif'>"; - else - echo "<img src ='/themes/{$g['theme']}/images/icons/icon_interface_down.gif'>"; - echo "</td>"; -} -if (file_exists($countryblock_file)) { - echo " <td class=\"listhdrr\">Countryblock"; - ob_start(); - $results = exec("/sbin/pfctl -s rules | grep -c countryblock"); - ob_end_clean(); - if ($results > '0') echo "<img src ='/themes/{$g['theme']}/images/icons/icon_interface_up.gif'>"; - else - echo "<img src ='/themes/{$g['theme']}/images/icons/icon_interface_down.gif'>"; - echo "</td>"; -} -echo" </tr>"; -echo" <tr>"; -if (file_exists($ipblocklist_file)) { - echo " <td class=\"listlr\">"; - ob_start(); - $resultsIP = exec("/sbin/pfctl -T show -t ipblocklist |grep -v -c Z"); - ob_end_clean(); - echo $resultsIP; - echo " Networks"; - echo "</td>"; -} -if (file_exists($countryblock_file)) { - echo " <td class=\"listr\">"; - ob_start(); - $resultsCB = exec("pfctl -T show -t countryblock |grep -v -c Z"); - ob_end_clean(); - echo $resultsCB; - echo " Networks"; - echo "</td>"; -} -echo" </tr>"; -echo" <tr>"; -if (file_exists($ipblocklist_file)) { - ob_start(); - $resultsIP = exec("tail -r /usr/local/www/packages/ipblocklist/errorOUT.txt"); - ob_end_clean(); - if ($resultsIP == "") { - echo " <td></td>"; - } else { - echo " <td class=\"listlr\">"; - echo "<br/><span style='color:red'>"; - echo $resultsIP; - echo "</span>"; - echo "</td>"; - } -} -if (file_exists($countryblock_file)) { - ob_start(); - $resultsCB = exec("tail -r /usr/local/www/packages/countryblock/errorOUT.txt"); - ob_end_clean(); - if ($resultsCB == "") { - echo " <td></td>"; - } else { - echo " <td class=\"listlr\">"; - echo "<br/><span style='color:red'>"; - echo $resultsCB; - echo "</span>"; - echo "</td>"; - } -} -echo" </tr>"; -//echo" <tr>"; -//if (file_exists($ipblocklist_file)) echo " <td> </td>"; -//if (file_exists($countryblock_file)) echo " <td> </td>"; -//echo" </tr>"; -echo"</table>"; - -?> diff --git a/config/countryblock/countryblock_if.tmp b/config/countryblock/countryblock_if.tmp deleted file mode 100644 index 65b80992..00000000 --- a/config/countryblock/countryblock_if.tmp +++ /dev/null @@ -1,206 +0,0 @@ -<?php -/* - interfaces_assign.php - part of m0n0wall (http://m0n0.ch/wall) - Written by Jim McBeath based on existing m0n0wall files - - Copyright (C) 2003-2005 Manuel Kasper <mk@neon1.net>. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ - -$pgtitle = "Firewall: Countryblock - Interfaces"; -require("guiconfig.inc"); - -/* - In this file, "port" refers to the physical port name, - while "interface" refers to LAN, WAN, or OPTn. -*/ - -/* get list without VLAN interfaces */ -$portlist = get_interface_list(); - -/* add VLAN interfaces */ -if (is_array($config['vlans']['vlan']) && count($config['vlans']['vlan'])) { - $i = 0; - foreach ($config['vlans']['vlan'] as $vlan) { - $portlist['vlan' . $i] = $vlan; - $portlist['vlan' . $i]['isvlan'] = true; - $i++; - } -} - -if ($_POST) { - - unset($input_errors); - - /* input validation */ - - /* Build a list of the port names so we can see how the interfaces map */ - $portifmap = array(); - foreach ($portlist as $portname => $portinfo) - $portifmap[$portname] = array(); - - /* Go through the list of ports selected by the user, - build a list of port-to-interface mappings in portifmap */ - conf_mount_rw(); - $myFile = "interfaces.txt"; - $fh = fopen($myFile, 'w+'); - - foreach ($_POST as $ifname => $ifport) { - //echo $ifname; - //echo "<br>"; - fwrite($fh, $ifname . "\n"); - //if (($ifname == 'lan') || ($ifname == 'wan') || (substr($ifname, 0, 3) == 'opt')) - //$portifmap[$ifport][] = strtoupper($ifname); - } - - conf_mount_ro(); - - - if (!$input_errors) { - /* No errors detected, so update the config */ - foreach ($_POST as $ifname => $ifport) { - - if (($ifname == 'lan') || ($ifname == 'wan') || - (substr($ifname, 0, 3) == 'opt')) { - - - } - } - - $savemsg = get_std_save_message($retval); - - - - } -} - - - - - - -include("head.inc"); - - - -?> - -<body link="#0000CC" vlink="#0000CC" alink="#0000CC"> -<?php include("fbegin.inc"); ?> -<p class="pgtitle"><?=$pgtitle?></p> -<?php if ($input_errors) print_input_errors($input_errors); ?> -<?php if ($savemsg) print_info_box("Interfaces selected - Click <a href='countryblock.php'>Here</a> to go back"); ?> -<form action="" method="post" name="iform" id="iform"> -<table width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr><td class="tabnavtbl"> -<?php - $tab_array = array(); - $tab_array[0] = array("Countries", false, "countryblock.php"); - $tab_array[1] = array("Settings", false, "settings.php"); - $tab_array[2] = array("Whitelist", false, "whitelist.php"); - $tab_array[3] = array("Interfaces", true, "countryblock_if.php"); - $tab_array[4] = array("Help", false, "help.php"); - //$tab_array[5] = array("Email", false, "email.php"); - display_top_tabs($tab_array); -?> - </td></tr> - <tr> - <td> - <div id="mainarea"> - <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr> - <td class="listhdrr">Interface</td> - <td class="listhdr">Selected</td> - <td class="list"> </td> - </tr> - <?php foreach ($config['interfaces'] as $ifname => $iface): - if ($iface['descr']) - $ifdescr = $iface['descr']; - else - $ifdescr = strtoupper($ifname); - ?> - <tr> - <td class="listlr" valign="middle"><strong><?=$ifdescr;?></strong></td> - <td valign="middle" class="listr"> - - - <!---<input name='<?=$ifname;?>' type='checkbox' value='<?=$ifname;?>' checked/>- <?=$ifname;?>---> - - <?php foreach ($portlist as $portname => $portinfo): ?> - - <?php if ($portname == $iface['if']) { - - ob_start(); - $resultsany = exec("cat interfaces.txt | grep any"); - $results = exec("cat interfaces.txt | grep $portname"); - ob_end_clean(); - - if ($results == $portname || $resultsany == any) - echo "<input name='$portname' type='checkbox' value='$portname' checked/>$portname"; - else - echo "<input name='$portname' type='checkbox' value='$portname' />$portname"; - } - ?> - <?php endforeach; ?> - - </td> - <td valign="middle" class="list"> - - </td> - </tr> - <?php endforeach; ?> - - <tr> - <td class="list" colspan="3" height="10"></td> - </tr> - -</table> -</div> - <p><br> - <input type="submit" class="formbtn" value="Save"> - </p> - <p>Select the interfaces you want secured. It's recommended to select all interfaces. </p> - <p>Default: All interfaces are seleted. <br> - <br> - </p> - <p></p></td> - </tr> -</table> -</form> -<?php include("fend.inc"); ?> - - -</body> -</html> - -<?php -conf_mount_rw(); - if ($_POST) { - if (!$input_errors) - touch("interfaces.txt"); - - } - conf_mount_ro(); -?> diff --git a/config/countryblock/ddaccordion.js b/config/countryblock/ddaccordion.js deleted file mode 100644 index f5fd441c..00000000 --- a/config/countryblock/ddaccordion.js +++ /dev/null @@ -1,209 +0,0 @@ -//** Accordion Content script: By Dynamic Drive, at http://www.dynamicdrive.com -//** Created: Jan 7th, 08' - -//Version 1.3: April 3rd, 08': -//**1) Script now no longer conflicts with other JS frameworks -//**2) Adds custom oninit() and onopenclose() event handlers that fire when Accordion Content instance has initialized, plus whenever a header is opened/closed -//**3) Adds support for expanding header(s) using the URL parameter (ie: http://mysite.com/accordion.htm?headerclass=0,1) - -//April 9th, 08': Fixed "defaultexpanded" setting not working when page first loads - -//Version 1.4: June 4th, 08': -//**1) Added option to activate a header "mouseover" instead of the default "click" -//**2) Bug persistence not working when used with jquery 1.2.6 - -//Version 1.5: June 20th, 08': -//**1) Adds new "onemustopen:true/false" parameter, which lets you set whether at least one header should be open at all times (so never all closed). -//**2) Changed cookie path to site wide for persistence feature -//**3) Fixed bug so "expandedindices" parameter in oninit(headers, expandedindices) returns empty array [] instead of [-1] when no expanded headers found - -//**1) Version 1.5.1: June 27th, 08': Fixed "defaultexpanded" setting not working properly when used with jquery 1.2.6 - -//Version 1.6: Oct 3rd, 08': -//**1) Adds new "mouseoverdelay" param that sets delay before headers are activated when "revealtype" param is set to "mouseover" -//**2) Fixed bug with "onemustopen" param not working properly when "revealtype" is set to "click" - -//Version 1.7: March 24th, 09': Adds a 3rd revealtype setting "clickgo", which causes browser to navigate to URL specified inside the header after expanding its contents. - -//Version 1.7.1: May 28th, 09': Fixed issue that causes margins/paddings in accordion DIVs to be lost in IE8 - - -var ddaccordion={ - - contentclassname:{}, //object to store corresponding contentclass name based on headerclass - - expandone:function(headerclass, selected){ //PUBLIC function to expand a particular header - this.toggleone(headerclass, selected, "expand") - }, - - collapseone:function(headerclass, selected){ //PUBLIC function to collapse a particular header - this.toggleone(headerclass, selected, "collapse") - }, - - expandall:function(headerclass){ //PUBLIC function to expand all headers based on their shared CSS classname - var $=jQuery - var $headers=$('.'+headerclass) - $('.'+this.contentclassname[headerclass]+':hidden').each(function(){ - $headers.eq(parseInt($(this).attr('contentindex'))).trigger("evt_accordion") - }) - }, - - collapseall:function(headerclass){ //PUBLIC function to collapse all headers based on their shared CSS classname - var $=jQuery - var $headers=$('.'+headerclass) - $('.'+this.contentclassname[headerclass]+':visible').each(function(){ - $headers.eq(parseInt($(this).attr('contentindex'))).trigger("evt_accordion") - }) - }, - - toggleone:function(headerclass, selected, optstate){ //PUBLIC function to expand/ collapse a particular header - var $=jQuery - var $targetHeader=$('.'+headerclass).eq(selected) - var $subcontent=$('.'+this.contentclassname[headerclass]).eq(selected) - if (typeof optstate=="undefined" || optstate=="expand" && $subcontent.is(":hidden") || optstate=="collapse" && $subcontent.is(":visible")) - $targetHeader.trigger("evt_accordion") - }, - - expandit:function($targetHeader, $targetContent, config, useractivated, directclick){ - this.transformHeader($targetHeader, config, "expand") - $targetContent.slideDown(config.animatespeed, function(){ - config.onopenclose($targetHeader.get(0), parseInt($targetHeader.attr('headerindex')), $targetContent.css('display'), useractivated) - if (config.postreveal=="gotourl" && directclick){ //if revealtype is "Go to Header URL upon click", and this is a direct click on the header - var targetLink=($targetHeader.is("a"))? $targetHeader.get(0) : $targetHeader.find('a:eq(0)').get(0) - if (targetLink) //if this header is a link - setTimeout(function(){location=targetLink.href}, 200) //ignore link target, as window.open(targetLink, targetLink.target) doesn't work in FF if popup blocker enabled - } - }) - }, - - collapseit:function($targetHeader, $targetContent, config, isuseractivated){ - this.transformHeader($targetHeader, config, "collapse") - $targetContent.slideUp(config.animatespeed, function(){config.onopenclose($targetHeader.get(0), parseInt($targetHeader.attr('headerindex')), $targetContent.css('display'), isuseractivated)}) - }, - - transformHeader:function($targetHeader, config, state){ - $targetHeader.addClass((state=="expand")? config.cssclass.expand : config.cssclass.collapse) //alternate btw "expand" and "collapse" CSS classes - .removeClass((state=="expand")? config.cssclass.collapse : config.cssclass.expand) - if (config.htmlsetting.location=='src'){ //Change header image (assuming header is an image)? - $targetHeader=($targetHeader.is("img"))? $targetHeader : $targetHeader.find('img').eq(0) //Set target to either header itself, or first image within header - $targetHeader.attr('src', (state=="expand")? config.htmlsetting.expand : config.htmlsetting.collapse) //change header image - } - else if (config.htmlsetting.location=="prefix") //if change "prefix" HTML, locate dynamically added ".accordprefix" span tag and change it - $targetHeader.find('.accordprefix').html((state=="expand")? config.htmlsetting.expand : config.htmlsetting.collapse) - else if (config.htmlsetting.location=="suffix") - $targetHeader.find('.accordsuffix').html((state=="expand")? config.htmlsetting.expand : config.htmlsetting.collapse) - }, - - urlparamselect:function(headerclass){ - var result=window.location.search.match(new RegExp(headerclass+"=((\\d+)(,(\\d+))*)", "i")) //check for "?headerclass=2,3,4" in URL - if (result!=null) - result=RegExp.$1.split(',') - return result //returns null, [index], or [index1,index2,etc], where index are the desired selected header indices - }, - - getCookie:function(Name){ - var re=new RegExp(Name+"=[^;]+", "i") //construct RE to search for target name/value pair - if (document.cookie.match(re)) //if cookie found - return document.cookie.match(re)[0].split("=")[1] //return its value - return null - }, - - setCookie:function(name, value){ - document.cookie = name + "=" + value + "; path=/" - }, - - init:function(config){ - document.write('<style type="text/css">\n') - document.write('.'+config.contentclass+'{display: none}\n') //generate CSS to hide contents - document.write('<\/style>') - jQuery(document).ready(function($){ - ddaccordion.urlparamselect(config.headerclass) - var persistedheaders=ddaccordion.getCookie(config.headerclass) - ddaccordion.contentclassname[config.headerclass]=config.contentclass //remember contentclass name based on headerclass - config.cssclass={collapse: config.toggleclass[0], expand: config.toggleclass[1]} //store expand and contract CSS classes as object properties - config.revealtype=config.revealtype || "click" - config.revealtype=config.revealtype.replace(/mouseover/i, "mouseenter") - if (config.revealtype=="clickgo"){ - config.postreveal="gotourl" //remember added action - config.revealtype="click" //overwrite revealtype to "click" keyword - } - if (typeof config.togglehtml=="undefined") - config.htmlsetting={location: "none"} - else - config.htmlsetting={location: config.togglehtml[0], collapse: config.togglehtml[1], expand: config.togglehtml[2]} //store HTML settings as object properties - config.oninit=(typeof config.oninit=="undefined")? function(){} : config.oninit //attach custom "oninit" event handler - config.onopenclose=(typeof config.onopenclose=="undefined")? function(){} : config.onopenclose //attach custom "onopenclose" event handler - var lastexpanded={} //object to hold reference to last expanded header and content (jquery objects) - var expandedindices=ddaccordion.urlparamselect(config.headerclass) || ((config.persiststate && persistedheaders!=null)? persistedheaders : config.defaultexpanded) - if (typeof expandedindices=='string') //test for string value (exception is config.defaultexpanded, which is an array) - expandedindices=expandedindices.replace(/c/ig, '').split(',') //transform string value to an array (ie: "c1,c2,c3" becomes [1,2,3] - var $subcontents=$('.'+config["contentclass"]) - if (expandedindices.length==1 && expandedindices[0]=="-1") //check for expandedindices value of [-1], indicating persistence is on and no content expanded - expandedindices=[] - if (config["collapseprev"] && expandedindices.length>1) //only allow one content open? - expandedindices=[expandedindices.pop()] //return last array element as an array (for sake of jQuery.inArray()) - if (config["onemustopen"] && expandedindices.length==0) //if at least one content should be open at all times and none are, open 1st header - expandedindices=[0] - $('.'+config["headerclass"]).each(function(index){ //loop through all headers - if (/(prefix)|(suffix)/i.test(config.htmlsetting.location) && $(this).html()!=""){ //add a SPAN element to header depending on user setting and if header is a container tag - $('<span class="accordprefix"></span>').prependTo(this) - $('<span class="accordsuffix"></span>').appendTo(this) - } - $(this).attr('headerindex', index+'h') //store position of this header relative to its peers - $subcontents.eq(index).attr('contentindex', index+'c') //store position of this content relative to its peers - var $subcontent=$subcontents.eq(index) - var needle=(typeof expandedindices[0]=="number")? index : index+'' //check for data type within expandedindices array- index should match that type - if (jQuery.inArray(needle, expandedindices)!=-1){ //check for headers that should be expanded automatically (convert index to string first) - if (config.animatedefault==false) - $subcontent.show() - ddaccordion.expandit($(this), $subcontent, config, false) //Last param sets 'isuseractivated' parameter - lastexpanded={$header:$(this), $content:$subcontent} - } //end check - else{ - $subcontent.hide() - config.onopenclose($(this).get(0), parseInt($(this).attr('headerindex')), $subcontent.css('display'), false) //Last Boolean value sets 'isuseractivated' parameter - ddaccordion.transformHeader($(this), config, "collapse") - } - }) - $('.'+config["headerclass"]).bind("evt_accordion", function(e, isdirectclick){ //assign custom event handler that expands/ contacts a header - var $subcontent=$subcontents.eq(parseInt($(this).attr('headerindex'))) //get subcontent that should be expanded/collapsed - if ($subcontent.css('display')=="none"){ - ddaccordion.expandit($(this), $subcontent, config, true, isdirectclick) //2nd last param sets 'isuseractivated' parameter - if (config["collapseprev"] && lastexpanded.$header && $(this).get(0)!=lastexpanded.$header.get(0)){ //collapse previous content? - ddaccordion.collapseit(lastexpanded.$header, lastexpanded.$content, config, true) //Last Boolean value sets 'isuseractivated' parameter - } - lastexpanded={$header:$(this), $content:$subcontent} - } - else if (!config["onemustopen"] || config["onemustopen"] && lastexpanded.$header && $(this).get(0)!=lastexpanded.$header.get(0)){ - ddaccordion.collapseit($(this), $subcontent, config, true) //Last Boolean value sets 'isuseractivated' parameter - } - }) - $('.'+config["headerclass"]).bind(config.revealtype, function(){ - if (config.revealtype=="mouseenter"){ - clearTimeout(config.revealdelay) - var headerindex=parseInt($(this).attr("headerindex")) - config.revealdelay=setTimeout(function(){ddaccordion.expandone(config["headerclass"], headerindex)}, config.mouseoverdelay || 0) - } - else{ - $(this).trigger("evt_accordion", [true]) - return false //cancel default click behavior - } - }) - $('.'+config["headerclass"]).bind("mouseleave", function(){ - clearTimeout(config.revealdelay) - }) - config.oninit($('.'+config["headerclass"]).get(), expandedindices) - $(window).bind('unload', function(){ //clean up and persist on page unload - $('.'+config["headerclass"]).unbind() - var expandedindices=[] - $('.'+config["contentclass"]+":visible").each(function(index){ //get indices of expanded headers - expandedindices.push($(this).attr('contentindex')) - }) - if (config.persiststate==true && $('.'+config["headerclass"]).length>0){ //persist state? - expandedindices=(expandedindices.length==0)? '-1c' : expandedindices //No contents expanded, indicate that with dummy '-1c' value? - ddaccordion.setCookie(config.headerclass, expandedindices) - } - }) - }) - } -}
\ No newline at end of file diff --git a/config/countryblock/email.tmp b/config/countryblock/email.tmp deleted file mode 100644 index e5ac6c18..00000000 --- a/config/countryblock/email.tmp +++ /dev/null @@ -1,291 +0,0 @@ -<?php - -$pgtitle = "Firewall: Countryblock - Email"; - - require("guiconfig.inc"); - include("head.inc"); - - //set the config as a global variable - global $config; - - $global_usage = '/usr/local/www/packages/countryblock/global_usage'; - //$fh = fopen($global_usage, 'r'); - - //phpinfo(); - - -if (isset($_GET['save'])) { - exec("rm email_send.php"); - exec("touch email_send.php"); - $file = "email_send.php"; - $smtp_auth = $_POST['smtp_auth']; - $smtp_secure = $_POST['smtp_secure']; - $host = $_POST['host']; - $port = $_POST['port']; - $user = $_POST['user']; - $pass = $_POST['pass']; - $html = $_POST['html']; - $from = $_POST['from']; - $to = $_POST['to']; - $subject = $_POST['subject']; - $fp = fopen($file, "w") or die("Couldn't open $file for writing!"); - fwrite($fp, "<?php\ninclude(\"class.phpmailer.php\");\n\$mail = new PHPMailer(); -\n\$mail->IsSMTP();\n\$mail->SMTPAuth = ") or die("Couldn't write values to file!"); - fwrite($fp, $smtp_auth) or die("Couldn't write values to file!"); - fwrite($fp, ";\n\$mail->SMTPSecure = \"") or die("Couldn't write values to file!"); - fwrite($fp, $smtp_secure) or die("Couldn't write values to file!"); - fwrite($fp, "\";\n\$mail->Host = \"") or die("Couldn't write values to file!"); - fwrite($fp, $host) or die("Couldn't write values to file!"); - fwrite($fp, "\";\n\$mail->Port = ") or die("Couldn't write values to file!"); - fwrite($fp, $port) or die("Couldn't write values to file!"); - fwrite($fp, ";\n\$mail->Username = \"") or die("Couldn't write values to file!"); - fwrite($fp, $user) or die("Couldn't write values to file!"); - fwrite($fp, "\";\n\$mail->Password = \"") or die("Couldn't write values to file!"); - fwrite($fp, $pass); - fwrite($fp, "\";\n\$mail->AddReplyTo(\"") or die("Couldn't write values to file!"); - fwrite($fp, $from) or die("Couldn't write values to file!"); - fwrite($fp, "\",\"pfsense countryblock\");\n\$mail->From = \"") or die("Couldn't write values to file!"); - fwrite($fp, $from) or die("Couldn't write values to file!"); - fwrite($fp, "\";\n\$mail->Subject = \"" . $subject . "\";\n\$mail->AltBody = \"To view the message, please use an HTML compatible email viewer!\";\n\$mail->WordWrap = 50;\n\$body = \"Countryblock encountered an event. A system log entry was made with details of event\";\n\$body .= \"<br><br>\" . date('l jS \of F Y h:i:s A') . \"<br><br>Current Status = \";\nob_start();\n\$results = exec(\"pfctl -s rules | grep -c countryblock\");\nob_end_clean();\nif (\$results > '0')\n\$body .= \"Running\";\nelse\n\$body .= \"<span style='color:red'>Restarting</span>\";\nob_start();\n\$results = exec(\"tail -r /usr/local/www/packages/countryblock/errorOUT.txt\");\nob_end_clean();\n\$body .= \"<br/><span style='color:red'>\";\n\$body .= \$results;\n\$body .= \"</span>\";\n\$body .= \"<br>You are blocking \";\nob_start();\n\$results = exec(\"pfctl -T show -t countryblock |grep -v -c Z\");\nob_end_clean();\n\$body .= \$results;\n\$body .= \" Networks\";\n\n\$mail->MsgHTML(\$body);\n\$mail->AddAddress(\"") or die("Couldn't write values to file!"); - fwrite($fp, $to) or die("Couldn't write values to file!"); - fwrite($fp, "\");\n\$mail->IsHTML(") or die("Couldn't write values to file!"); - fwrite($fp, $html) or die("Couldn't write values to file!"); - fwrite($fp, ");\n\nif(!\$mail->Send()) {\n echo \"Mailer Error: \" . \$mail->ErrorInfo;\n} else {\n echo \"Message sent! - <a href=email.php>Go Back</a>\";\n}\n?>") or die("Couldn't write values to file!"); - fclose($fp); - //echo "Saved successfully!"; - - exec("rm email_config.html"); - exec("touch email_config.html"); - $file2 = "email_config.html"; - $fp2 = fopen($file2, "w") or die("Couldn't open $file for writing!"); - fwrite($fp2, "<table width=\"100%\" b align=\"center\"> - <tr> - <td>SMTP Auth</td>") or die("Couldn't write values to file!"); - if ($smtp_auth=="true") - fwrite($fp2, "<td><select name=\"smtp_auth\"><option label=\"true\" value=\"true\" selected>Yes</option><option label=\"false\" value=\"false\">No</option></select></td>") or die("Couldn't write values to file!"); - else - fwrite($fp2, "<td><select name=\"smtp_auth\"><option label=\"true\" value=\"true\">Yes</option><option label=\"false\" value=\"false\" selected>No</option></select></td>") or die("Couldn't write values to file!"); - fwrite($fp2, "</tr> - <tr class=\"d0\"> - <td>SMTP Security</td>") or die("Couldn't write values to file!"); - if ($smtp_secure=="ssl") - fwrite($fp2, "<td><select name=\"smtp_secure\"><option label=\"ssl\" value=\"ssl\" selected>ssl</option><option label=\"none\" value=\"none\">None</option></select></td>") or die("Couldn't write values to file!"); - else - fwrite($fp2, "<td><select name=\"smtp_secure\"><option label=\"ssl\" value=\"ssl\">ssl</option><option label=\"none\" value=\"none\" selected>None</option></select></td>") or die("Couldn't write values to file!"); - fwrite($fp2, "</tr> - <tr> - <td>Host</td> - <td><input type=\"text\" name=\"host\" value=\"" . $host ."\"></td> - </tr> - <tr class=\"d0\"> - <td>Port</td> - <td><input type=\"port\" name=\"port\" value=\"" . $port . "\"></td> - </tr> - <tr> - <td>Username</td> - <td><input type=\"user\" name=\"user\" value=\"" . $user . "\"></td> - </tr> - <tr class=\"d0\"> - <td>Password</td> - <td><input type=\"password\" name=\"pass\" value=\"" . $pass . "\"></td> - </tr> - <tr> - <td>Use HTML formatting</td>") or die("Couldn't write values to file!"); - if ($html=="true") - fwrite($fp2, "<td><select name=\"html\"><option label=\"true\" value=\"true\" selected>Yes</option><option label=\"false\" value=\"false\">No</option></select></td>") or die("Couldn't write values to file!"); - else - fwrite($fp2, "<td><select name=\"html\"><option label=\"true\" value=\"true\">Yes</option><option label=\"false\" value=\"false\" selected>No</option></select></td>") or die("Couldn't write values to file!"); - fwrite($fp2, "</tr> - <tr class=\"d0\"> - <td>From email address</td> - <td><input type=\"from\" name=\"from\" value=\"" . $from . "\"></td> - </tr> - <tr> - <td>To email address</td> - <td><input type=\"to\" name=\"to\" value=\"" . $to . "\"></td> - </tr> - <tr class=\"d0\"> - <td>Subject</td> - <td><input type=\"subject\" name=\"subject\" value=\"" . $subject . "\"></td> - </tr> -</table> -<br> -<input type=\"submit\" value=\"Save\"> -</form>") or die("Couldn't write values to file!"); - fclose($fp2); -} -if (isset($_GET['test'])) { - echo '<script type="text/javascript">' . "\n"; - echo 'window.location="email_send.php";'; - echo '</script>'; -} -if (isset($_GET['reset'])) { - exec ("rm email_send.php"); - exec ("rm email_config.html"); - echo '<script type="text/javascript">' . "\n"; - echo 'window.location="email.php";'; - echo '</script>'; -} -?> - -<html> -<head> -<style type="text/css"> -.style1 { - text-align: center; -} -tr.d0 td { - background-color: #eedddd; color: black; -} -</style> - -</head> -<body link="#0000CC" vlink="#0000CC" alink="#0000CC"> -<?php include("fbegin.inc"); ?> -<p class="pgtitle"><?=$pgtitle?></p> - - - -<table width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr><td class="tabnavtbl"> -<?php - $tab_array = array(); - $tab_array[0] = array("Countries", false, "countryblock.php"); - $tab_array[1] = array("Settings", false, "settings.php"); - $tab_array[2] = array("Whitelist", false, "whitelist.php"); - $tab_array[3] = array("Interfaces", false, "countryblock_if.php"); - $tab_array[4] = array("Help", false, "help.php"); - $tab_array[5] = array("Email", true, "email.php"); - display_top_tabs($tab_array); -?> - </td></tr> - <tr> - <td> - <div id="mainarea"> - <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr> - <td class="listhdrr">Email Settings for SMTP mail</td> - - </tr> - - <tr> - <td class="listlr" valign="middle"> - -<table width="100%" border="0" cellpadding="0" cellspacing="0"> -<tr> - -<form name="emailform" method="post" action="email.php?save=1"> -<?php -if (file_exists("email_send.php")) { - echo "<p>Your settings have already been set. Would you like to overwrite your email settings?</p>\n"; - $content = file_get_contents('email_config.html'); - echo $content; - echo "<p>\n"; - echo "<input name=\"resetbutton\" type=\"button\" value=\"Reset email config\" onClick=\"window.location='email.php?reset=1'\" />\n"; - echo "</p>\n"; - echo "\n"; -} else { - echo "<table width=\"100%\" b align=\"center\">\n"; - echo " <tr>\n"; - echo " <td>SMTP Auth</td>\n"; - echo " <td><select name=\"smtp_auth\"><option label=\"true\" value=\"true\">Yes</option><option label=\"false\" value=\"false\">No</option></select></td>\n"; - echo " </tr>\n"; - echo " <tr class=\"d0\">\n"; - echo " <td>SMTP Security</td>\n"; - echo " <td><select name=\"smtp_secure\"><option label=\"ssl\" value=\"ssl\">ssl</option><option label=\"none\" value=\"none\">None</option></select></td>\n"; - echo " </tr>\n"; - echo " <tr>\n"; - echo " <td>Host</td>\n"; - echo " <td><input type=\"text\" name=\"host\" value=\"\"></td>\n"; - echo " </tr>\n"; - echo " <tr class=\"d0\">\n"; - echo " <td>Port</td>\n"; - echo " <td><input type=\"port\" name=\"port\" value=\"\"></td>\n"; - echo " </tr>\n"; - echo " <tr>\n"; - echo " <td>Username</td>\n"; - echo " <td><input type=\"user\" name=\"user\" value=\"\"></td>\n"; - echo " </tr>\n"; - echo " <tr class=\"d0\">\n"; - echo " <td>Password</td>\n"; - echo " <td><input type=\"password\" name=\"pass\" value=\"\"></td>\n"; - echo " </tr>\n"; - echo " <tr>\n"; - echo " <td>Use HTML formatting</td>\n"; - echo " <td><select name=\"html\"><option label=\"true\" value=\"true\">Yes</option><option label=\"false\" value=\"false\">No</option></select></td>\n"; - echo " </tr>\n"; - echo " <tr class=\"d0\">\n"; - echo " <td>From email address</td>\n"; - echo " <td><input type=\"from\" name=\"from\" value=\"\"></td>\n"; - echo " </tr>\n"; - echo " <tr>\n"; - echo " <td>To email address</td>\n"; - echo " <td><input type=\"to\" name=\"to\" value=\"\"></td>\n"; - echo " </tr>\n"; - echo " <tr class=\"d0\">\n"; - echo " <td>Subject</td>\n"; - echo " <td><input type=\"subject\" name=\"subject\" value=\"\"></td>\n"; - echo " </tr>\n"; - echo "</table>\n"; - echo "\n"; - echo "<br>\n"; - echo "<input type=\"submit\" value=\"Save\">\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "</form>\n"; -} -?> - -<input type="button" value="Test" onClick="window.location='email.php?test=1'"> - - -</td> -</tr> -</table> - </td> - - - </tr> - - -</table> - -<br> -<?php - echo "Current Status = "; - ob_start(); - $results = exec("pfctl -s rules | grep -c countryblock"); - ob_end_clean(); - if ($results > '0') echo "Running"; - else - echo "<span style='color:red'>NOT running</span>"; - - //Get Errors if exists - ob_start(); - $results = exec("tail -r errorOUT.txt"); - ob_end_clean(); - echo "<br/><span style='color:red'>"; - echo $results; - echo "</span>"; - - //Get IP Count - echo "<br>You are blocking "; - ob_start(); - $results = exec("pfctl -T show -t countryblock |grep -v -c Z"); - ob_end_clean(); - echo $results; - echo " Networks"; - ?> - -<br><br> - -<p> -</p> -</td> - </tr> -</table> - -<?php include("fend.inc"); ?> -</body> -</html> diff --git a/config/countryblock/execute.sh b/config/countryblock/execute.sh deleted file mode 100755 index d79c37b7..00000000 --- a/config/countryblock/execute.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/sh - -#version 2.0 -#is countryblock running -#export resultr=`pfctl -s rules | grep -c countryblock` -#echo $resultr -#if [ "$resultr" -gt "0" ]; then -# echo running -# exit 1 -#else -# echo not running -# /usr/bin/logger -s "Countryblock was found not running" -# echo "Countryblock not running" | /usr/local/bin/php /usr/local/www/packages/countryblock/email_send.php -#fi - -pfctl -t countryblock -T kill -sed -i -e '/countryblock/d' /tmp/rules.debug - -#Now edit /tmp/rules.debug - -#find my line for table -export i=`grep -n 'block quick from any to <snort2c>' /tmp/rules.debug | grep -o '[0-9]\{2,4\}'` -export t=`grep -n 'User Aliases' /tmp/rules.debug |grep -o '[0-9]\{1,2\}'` - -i=$(($i+'1')) -t=$(($t+'1')) -#i = line where <snort2c> is -#t is where 'User Aliases' is -echo $i -echo $t - -rm /tmp/rules.debug.tmp - -#Insert table-entry limit -sed -i -e '/900000/d' /tmp/rules.debug -while read line - do a=$(($a+1)); - #echo $a; - if [ "$a" = "$t" ]; then - echo "" >> /tmp/rules.debug.tmp - echo "set limit table-entries 900000" >> /tmp/rules.debug.tmp - fi - echo $line >> /tmp/rules.debug.tmp -done < "/tmp/rules.debug" - -mv /tmp/rules.debug /tmp/rules.debug.old -mv /tmp/rules.debug.tmp /tmp/rules.debug - -pfctl -o basic -f /tmp/rules.debug > errorOUT.txt 2>&1 - -rm /tmp/rules.debug.tmp - -#Insert countryblock rules -a="0" -echo $a -while read line - do a=$(($a+1)); - echo $a; - if [ "$a" = "$i" ]; then - echo "" >> /tmp/rules.debug.tmp - echo "#countryblock" >> /tmp/rules.debug.tmp - echo "table <countryblock> persist file '/usr/local/www/packages/countryblock/lists/countries.txt'" >> /tmp/rules.debug.tmp - echo "table <countryblockW> persist file '/usr/local/www/packages/countryblock/countries-white.txt'" >> /tmp/rules.debug.tmp - - for i in $(cat /usr/local/www/packages/countryblock/interfaces.txt); do - echo "pass quick from <countryblockW> to $i label 'countryblock'" >> /tmp/rules.debug.tmp - echo "pass quick from $i to <countryblockW> label 'countryblock'" >> /tmp/rules.debug.tmp - if [ -f logging ]; then - echo "block log quick from <countryblock> to $i label 'countryblock'" >> /tmp/rules.debug.tmp - else - echo "block quick from <countryblock> to $i label 'countryblock'" >> /tmp/rules.debug.tmp - fi - if [ -f OUTBOUND ]; then - echo "block quick from $i to <countryblock> label 'countryblock'" >> /tmp/rules.debug.tmp - fi - done - fi - echo $line >> /tmp/rules.debug.tmp -done < "/tmp/rules.debug" - -mv /tmp/rules.debug /tmp/rules.debug.old -mv /tmp/rules.debug.tmp /tmp/rules.debug - -rm errorOUT.txt -pfctl -o basic -f /tmp/rules.debug > /usr/local/www/packages/countryblock/errorOUT.txt 2>&1
\ No newline at end of file diff --git a/config/countryblock/firewall_shaper.tmp b/config/countryblock/firewall_shaper.tmp deleted file mode 100644 index d01ed55c..00000000 --- a/config/countryblock/firewall_shaper.tmp +++ /dev/null @@ -1,11 +0,0 @@ -<html> -<HEAD> -<SCRIPT language="JavaScript"> -<!-- -window.parent.location="../../firewall_shaper.php"; -//--> -</SCRIPT> -</HEAD> - - -</html>
\ No newline at end of file diff --git a/config/countryblock/help.tmp b/config/countryblock/help.tmp deleted file mode 100644 index 577a7f49..00000000 --- a/config/countryblock/help.tmp +++ /dev/null @@ -1,148 +0,0 @@ -<?php -$pgtitle = "Firewall: Countryblock - Help"; - - require("guiconfig.inc"); - include("head.inc"); - - //set the config as a global variable - global $config; - - $global_usage = '/usr/local/www/packages/countryblock/global_usage'; - //$fh = fopen($global_usage, 'r'); - - //phpinfo(); - - - - - - -?> - -<body link="#0000CC" vlink="#0000CC" alink="#0000CC"> -<?php include("fbegin.inc"); ?> -<p class="pgtitle"><?=$pgtitle?></p> - - - -<table width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr><td class="tabnavtbl"> -<?php - $tab_array = array(); - $tab_array[0] = array("Countries", false, "countryblock.php"); - $tab_array[1] = array("Settings", false, "settings.php"); - $tab_array[2] = array("Whitelist", false, "whitelist.php"); - $tab_array[3] = array("Interfaces", false, "countryblock_if.php"); - $tab_array[4] = array("Help", true, "help.php"); - //$tab_array[5] = array("Email", false, "email.php"); - display_top_tabs($tab_array); -?> - </td></tr> - <tr> - <td> - <div id="mainarea"> - <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr> - <td class="listhdrr">Help</td> - - </tr> - - <tr> - <td class="listlr" valign="middle"> - -<table width="100%" border="0" cellpadding="0" cellspacing="0"> -<tr> -<!--- -Usage:<br><br> -Countries - Check the country that you would like to block completely.<br> - -Choose if you want to block outbound access and if you want to log attempts. <br> - -Click "Commit Countries" to store your settings. -<br><br> -Settings - -Click the setting you want and save<br> - -Block outbound blocks all outbound traffic. You will not be able to browse a website hosted in one of these countries. <br> - -Enable Logging will log all attempted traffic in/out to any of your selected countries. Logs show in the Firewall secion -<br><br> -Whitelist - -Add networks you don't want blocked and save<br> - -Add a CIDR Range and press + -<br><br> -Interfaces - -Select which interfaces to block on<br> - -All selected countries will be blocked from the interfaces you slected.<br> - -By Default all interfaces are selected.<br> - -It's highly recommended that you keep all interfaces selected -<br><br> -Cron Jobs - -Setup a cron job for countryblock<br> - -To run countryblock as a cron job use /usr/local/etc/rc.d/countryblock.sh <br> - -*Before the cron job will work, countryblock must be run via the webGUI atleast once -<br><br> - -<span style="color:red">Warning!</span> - Apply after every firewall change or state reset. Use at your own risk. ----> -<a href="https://doc.pfsense.org/index.php/Country_Block">Please see wiki for help</a> or the <a href="https://forum.pfsense.org/index.php/topic,25732.0.html">Forum</a> - -</div> - - -</td> -</tr> -</table> - </td> - - - </tr> - - -</table> -</div> -<br> -<?php - echo "Current Status = "; - ob_start(); - $results = exec("pfctl -s rules | grep -c countryblock"); - ob_end_clean(); - if ($results > '0') echo "Running"; - else - echo "<span style='color:red'>NOT running</span>"; - - //Get Errors if exists - ob_start(); - $results = exec("tail -r errorOUT.txt"); - ob_end_clean(); - echo "<br/><span style='color:red'>"; - echo $results; - echo "</span>"; - - //Get IP Count - echo "<br>You are blocking "; - ob_start(); - $results = exec("pfctl -T show -t countryblock |grep -v -c Z"); - ob_end_clean(); - echo $results; - echo " Networks"; - ?> - -<br><br> - -<p> -</p> -</td> - </tr> -</table> -</form> -<?php include("fend.inc"); ?> -</body> -</html> - diff --git a/config/countryblock/index.tmp b/config/countryblock/index.tmp deleted file mode 100644 index 7c768af6..00000000 --- a/config/countryblock/index.tmp +++ /dev/null @@ -1,11 +0,0 @@ -<html> -<HEAD> -<SCRIPT language="JavaScript"> -<!-- -window.parent.location="../../index.php"; -//--> -</SCRIPT> -</HEAD> - - -</html>
\ No newline at end of file diff --git a/config/countryblock/interfaces.txt b/config/countryblock/interfaces.txt deleted file mode 100644 index 124009d7..00000000 --- a/config/countryblock/interfaces.txt +++ /dev/null @@ -1 +0,0 @@ -any
\ No newline at end of file diff --git a/config/countryblock/jquery.min.js b/config/countryblock/jquery.min.js deleted file mode 100644 index b1ae21d8..00000000 --- a/config/countryblock/jquery.min.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * jQuery JavaScript Library v1.3.2 - * http://jquery.com/ - * - * Copyright (c) 2009 John Resig - * Dual licensed under the MIT and GPL licenses. - * http://docs.jquery.com/License - * - * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) - * Revision: 6246 - */ -(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); -/* - * Sizzle CSS Selector Engine - v0.9.3 - * Copyright 2009, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
\ No newline at end of file diff --git a/config/countryblock/public_smo_scripts.js b/config/countryblock/public_smo_scripts.js deleted file mode 100644 index 67125c44..00000000 --- a/config/countryblock/public_smo_scripts.js +++ /dev/null @@ -1,160 +0,0 @@ -//Custom JavaScript Functions by Shawn Olson -//Copyright 2006-2008 -//http://www.shawnolson.net -//If you copy any functions from this page into your scripts, you must provide credit to Shawn Olson & http://www.shawnolson.net -//******************************************* - - function stripCharacter(words,character) { - //documentation for this script at http://www.shawnolson.net/a/499/ - var spaces = words.length; - for(var x = 1; x<spaces; ++x){ - words = words.replace(character, ""); - } - return words; - } - - function changecss(theClass,element,value) { - //Last Updated on June 23, 2009 - //documentation for this script at - //http://www.shawnolson.net/a/503/altering-css-class-attributes-with-javascript.html - var cssRules; - - var added = false; - for (var S = 0; S < document.styleSheets.length; S++){ - - if (document.styleSheets[S]['rules']) { - cssRules = 'rules'; - } else if (document.styleSheets[S]['cssRules']) { - cssRules = 'cssRules'; - } else { - //no rules found... browser unknown - } - - for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) { - if (document.styleSheets[S][cssRules][R].selectorText == theClass) { - if(document.styleSheets[S][cssRules][R].style[element]){ - document.styleSheets[S][cssRules][R].style[element] = value; - added=true; - break; - } - } - } - if(!added){ - if(document.styleSheets[S].insertRule){ - document.styleSheets[S].insertRule(theClass+' { '+element+': '+value+'; }',document.styleSheets[S][cssRules].length); - } else if (document.styleSheets[S].addRule) { - document.styleSheets[S].addRule(theClass,element+': '+value+';'); - } - } - } - } - - function checkUncheckAll(theElement) { - var theForm = theElement.form, z = 0; - for(z=0; z<theForm.length;z++){ - if(theForm[z].type == 'checkbox' && theForm[z].name != 'checkall'){ - theForm[z].checked = theElement.checked; - } - } - } - -function checkUncheckSome(controller,theElements) { - //Programmed by Shawn Olson - //Copyright (c) 2006-2007 - //Updated on August 12, 2007 - //Permission to use this function provided that it always includes this credit text - // http://www.shawnolson.net - //Find more JavaScripts at http://www.shawnolson.net/topics/Javascript/ - - //theElements is an array of objects designated as a comma separated list of their IDs - //If an element in theElements is not a checkbox, then it is assumed - //that the function is recursive for that object and will check/uncheck - //all checkboxes contained in that element - - var formElements = theElements.split(','); - var theController = document.getElementById(controller); - for(var z=0; z<formElements.length;z++){ - theItem = document.getElementById(formElements[z]); - if(theItem.type){ - if (theItem.type=='checkbox') { - theItem.checked=theController.checked; - } - } else { - theInputs = theItem.getElementsByTagName('input'); - for(var y=0; y<theInputs.length; y++){ - if(theInputs[y].type == 'checkbox' && theInputs[y].id != theController.id){ - theInputs[y].checked = theController.checked; - } - } - } - } -} - - function changeImgSize(objectId,newWidth,newHeight) { - imgString = 'theImg = document.getElementById("'+objectId+'")'; - eval(imgString); - oldWidth = theImg.width; - oldHeight = theImg.height; - if(newWidth>0){ - theImg.width = newWidth; - } - if(newHeight>0){ - theImg.height = newHeight; - } - - } - - function changeColor(theObj,newColor){ - eval('var theObject = document.getElementById("'+theObj+'")'); - if(theObject.style.backgroundColor==null){theBG='white';}else{theBG=theObject.style.backgroundColor;} - if(theObject.style.color==null){theColor='black';}else{theColor=theObject.style.color;} - //alert(theObject.style.color+' '+theObject.style.backgroundColor); - switch(theColor){ - case newColor: - switch(theBG){ - case 'white': - theObject.style.color = 'black'; - break; - case 'black': - theObject.style.color = 'white'; - break; - default: - theObject.style.color = 'black'; - break; - } - break; - default: - theObject.style.color = newColor; - break; - } - } - -//Below script added to prevent my work from being used -//on websites that are not child-safe - -var restrictWords = new Array('free sex','amateurmatch.com','free porn'); - -function badSites(word){ -//this function helps keep this script from being used on inappropriate websites - -var badword = false; -var word = new String(word); -word = word.toLowerCase(); - - for (var i = 0; i<restrictWords.length; i++){ - if (word.match(restrictWords[i])){ - - badword = true; - alert("This website is improperly using a script from www.shawnolson.net.\n\nWhile the script is free ... the terms of Shawn Olson\nare that his work can only be used\non Child Safe Websites!\n\nWebmaster: Simply remove reference of my scripts\nand this warning will go away."); - } - } - if (badword==true){document.location='http://www.fbi.gov/hq/cid/cac/states.htm';} - return badword; -} - -var siteCheckArray = new Array(document.title,document.URL); -var siteCheckRound = 0; - -for(siteCheckRound in siteCheckArray){ - badSites(siteCheckArray[siteCheckRound]); -}
\ No newline at end of file diff --git a/config/countryblock/purge.tmp b/config/countryblock/purge.tmp deleted file mode 100644 index 81d16a7c..00000000 --- a/config/countryblock/purge.tmp +++ /dev/null @@ -1,26 +0,0 @@ -<?php -$line = $_GET["line"]; - -//echo("$line"); -//exec("more lists.txt > temp_lists.txt"); -if ($line == 0) { - exec("rm countries-white.txt"); - } else { - exec("sed $line'd' countries-white.txt > temp_countries-white.txt"); - } -exec("more temp_countries-white.txt > countries-white.txt"); -exec("rm temp_countries-white.txt"); - - -?> -<html> -<HEAD> -<SCRIPT language="JavaScript"> -<!-- -window.parent.location="whitelist.php"; -//--> -</SCRIPT> -</HEAD> - - -</html>
\ No newline at end of file diff --git a/config/countryblock/settings.tmp b/config/countryblock/settings.tmp deleted file mode 100644 index 0a067d83..00000000 --- a/config/countryblock/settings.tmp +++ /dev/null @@ -1,220 +0,0 @@ -<?php -$pgtitle = "Firewall: Countryblock - Settings"; - // TomSchaefer.org countryblock package 2010 - // - // Notes: Find: ^(.*)$ - // Replace: ob_start();\n$results = exec("cat countries.txt | grep XX");\nob_end_clean();\n\tif ($results == 'XX')\n\t\techo "\1";\n\telse\n\t\techo "\1";\n - // - // - // - // - //require_once('config.inc'); - require("guiconfig.inc"); - include("head.inc"); - - //set the config as a global variable - global $config; - - $global_usage = '/usr/local/www/packages/countryblock/global_usage'; - //$fh = fopen($global_usage, 'r'); - - //phpinfo(); - - -?> - -<body link="#0000CC" vlink="#0000CC" alink="#0000CC"> -<?php include("fbegin.inc"); ?> -<p class="pgtitle"><?=$pgtitle?></p> -<?php if ($input_errors) print_input_errors($input_errors); ?> -<?php if ($savemsg) print_info_box($savemsg); ?> -<form method=POST action=""> - -<?php if ($savemsg_cb) print_info_box($savemsg_cb); - //if ($output) print_info_box($output,$output2); - echo($output); - echo($output2); - ?> -<table width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr><td class="tabnavtbl"> -<?php - $tab_array = array(); - $tab_array[0] = array("Countries", false, "countryblock.php"); - $tab_array[1] = array("Settings", true, "settings.php"); - $tab_array[2] = array("Whitelist", false, "whitelist.php"); - $tab_array[3] = array("Interfaces", false, "countryblock_if.php"); - $tab_array[4] = array("Help", false, "help.php"); - //$tab_array[5] = array("Email", false, "email.php"); - display_top_tabs($tab_array); -?> - </td></tr> - <tr> - <td> - <div id="mainarea"> - <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr> - <td class="listhdrr">Settings</td> - - </tr> - - <tr> - <td class="listlr" valign="middle"> - -<?php - -conf_mount_rw(); - - - - if(isset($_POST['formSubmit'])) - { - $aCountry = $_POST['formCountry']; - - if(isset($_POST['formOutbound'])) - { - $output2 = " and Outbound access is BLOCKED.</b>"; - exec("touch OUTBOUND"); - } - else - { - $output2 = " and Outbound access is ALLOWED.</b>"; - exec("rm OUTBOUND"); - } - - if(isset($_POST['formlogging'])) - { - exec("touch logging"); - } - else - { - exec("rm logging"); - } - - - - - } -conf_mount_ro(); -?> - - - - -</head> - - - -<table width="100%" border="0" cellpadding="0" cellspacing="0"> -<tr> - <td > - - - </form> - - <form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post"> - <p> - <?php - $countif = "interfaces.txt"; - if (file_exists($countif)) { - $countif = count(file($countif)); - echo "$countlines"; - } else { - echo "<span style='color:red'>Warning! No Interfaces Selected Click <a href='countryblock_if.php' target='_parent'><img src='../../themes/nervecenter/images/icons/icon_cablenic.gif' ALT='if'></a></span>"; - } - - ?> - </p> - - - <p> - Block outbound? -<?php - - if (file_exists("OUTBOUND")) { - echo "<input name='formOutbound' type='checkbox' value='Yes' checked/>"; - } else { - echo "<input name='formOutbound' type='checkbox' value='Yes'/>"; - } -?> - - <br> - Enable Logging? -<?php - - if (file_exists("logging")) { - echo "<input name='formlogging' type='checkbox' value='Yes' checked/>"; - } else { - echo "<input name='formlogging' type='checkbox' value='Yes'/>"; - } -?> -<br/> - - - - - - - - - </p> - -<br/> - - - -</div> -<?php - //This input guarantees that a POST is sent - echo "<input type='hidden' name='zzz' value='required'>"; -?> - -</td> -</tr> -</table> - </td> - - - </tr> - - -</table> -</div> -<br> -<?php - echo "Current Status = "; - ob_start(); - $results = exec("pfctl -s rules | grep -c countryblock"); - ob_end_clean(); - if ($results > '0') echo "Running"; - else - echo "<span style='color:red'>NOT running</span>"; - - //Get Errors if exists - ob_start(); - $results = exec("tail -r errorOUT.txt"); - ob_end_clean(); - echo "<br/><span style='color:red'>"; - echo $results; - echo "</span>"; - - //Get IP Count - echo "<br>You are blocking "; - ob_start(); - $results = exec("pfctl -T show -t countryblock |grep -v -c Z"); - ob_end_clean(); - echo $results; - echo " Networks"; - ?> - -<br><br> -<input type="submit" name="formSubmit" value="Save" /><br><br> -<p> -</p> -</td> - </tr> -</table> -</form> -<?php include("fend.inc"); ?> -</body> -</html> - diff --git a/config/countryblock/titlebar-active.png b/config/countryblock/titlebar-active.png Binary files differdeleted file mode 100644 index ad675768..00000000 --- a/config/countryblock/titlebar-active.png +++ /dev/null diff --git a/config/countryblock/titlebar.png b/config/countryblock/titlebar.png Binary files differdeleted file mode 100644 index f028a918..00000000 --- a/config/countryblock/titlebar.png +++ /dev/null diff --git a/config/countryblock/whitelist.tmp b/config/countryblock/whitelist.tmp deleted file mode 100644 index d613ee11..00000000 --- a/config/countryblock/whitelist.tmp +++ /dev/null @@ -1,241 +0,0 @@ -<?php -$pgtitle = "Firewall: Countryblock - Whitelist"; - - require("guiconfig.inc"); - include("head.inc"); - - //set the config as a global variable - global $config; - - $global_usage = '/usr/local/www/packages/countryblock/global_usage'; - //$fh = fopen($global_usage, 'r'); - - //phpinfo(); - - - - - - -?> - -<body link="#0000CC" vlink="#0000CC" alink="#0000CC"> -<?php include("fbegin.inc"); ?> -<p class="pgtitle"><?=$pgtitle?></p> -<?php if ($input_errors) print_input_errors($input_errors); ?> -<?php if ($savemsg) print_info_box($savemsg); ?> -<form method=POST action=""> -<?php - - -mwexec("touch countries-white.txt"); -//$myFile = "countries-white.txt"; -//$fh = fopen($myFile, 'a+'); - - -?> -<table width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr><td class="tabnavtbl"> -<?php - $tab_array = array(); - $tab_array[0] = array("Countries", false, "countryblock.php"); - $tab_array[1] = array("Settings", false, "settings.php"); - $tab_array[2] = array("Whitelist", true, "whitelist.php"); - $tab_array[3] = array("Interfaces", false, "countryblock_if.php"); - $tab_array[4] = array("Help", false, "help.php"); - //$tab_array[5] = array("Email", false, "email.php"); - display_top_tabs($tab_array); -?> - </td></tr> - <tr> - <td> - <div id="mainarea"> - <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr> - <td class="listhdrr">Whitelist</td> - - </tr> - - <tr> - <td class="listlr" valign="middle"> - -<table width="100%" border="0" cellpadding="0" cellspacing="0"> -<tr> - -<p> - Enter the CIDR Range you would like to whitlist</p> - <p><form method="post" action=""> -<input name="content" type="text" /> -<input type="image" src="../../themes/nervecenter/images/icons/icon_plus.gif" value="submit"> -<a href="purge.php?line=0">Purge All</a> - -<STYLE type="text/css"> - a img {border:none; } - </STYLE> -</head> - -<?php - -function delLineFromFile($fileName, $lineNum){ -// check the file exists - if(!is_writable($fileName)) - { - // print an error - print "The file $fileName is not writable"; - // exit the function - exit; - } - else - { - // read the file into an array - $arr = file($fileName); - } - - // the line to delete is the line number minus 1, because arrays begin at zero - $lineToDelete = $lineNum-1; - - // check if the line to delete is greater than the length of the file - if($lineToDelete > sizeof($arr)) - { - // print an error - print "You have chosen a line number, <b>[$lineNum]</b>, higher than the length of the file."; - // exit the function - exit; - } - - //remove the line - unset($arr["$lineToDelete"]); - - // open the file for reading - if (!$fp = fopen($fileName, 'w+')) - { - // print an error - print "Cannot open file ($fileName)"; - // exit the function - exit; - } - - // if $fp is valid - if($fp) - { - // write the array to the file - foreach($arr as $line) { fwrite($fp,$line); } - - // close the file - fclose($fp); - } - -echo "done"; -} - - -$myFile = "countries-white.txt"; -$content = $_REQUEST['content']; -$fh = fopen($myFile, 'a+'); -fwrite($fh, $content); -if (strlen($content) > 1) { - fwrite($fh, "\n"); - } else { -} -fclose($fh); - - -//echo (filesize($myFile)); -if (filesize($myFile) > 1) { - //$fh = fopen($myFile, 'r'); - //$theData = fread($fh, filesize($myFile)); - //fclose($fh); - echo "<br/> Current List(s): <br/>"; - // Get the whole file into a single string - $fileContents = file_get_contents($myFile); - - // Explode the file contents string by each line - $lines = explode(PHP_EOL, $fileContents); // Replace PHP_EOL with "\r\n" or "\n" or "\r" if you like - - // Iterate through each line and do what you need with it - - foreach ($lines as $line) { - $i++; - echo "<a href=purge.php?line=$i style='border-style: none'><img src='../../themes/nervecenter/images/icons/icon_x.gif'></a>"; - echo " "; - echo $line; - //echo ""; - // echo $i; - echo "<br/>"; - - } - - - //echo $theData; - - -} -echo "<br/><br/>"; - - - - -?></p> - - <p> <u>Usage</u> - <br/> - Enter a CIDR range for the Address you wish to whitlist. <br/> - Example: 192.168.1.0/24 - <br/><br/> - </p> -</form> - - -</div> - - -</td> -</tr> -</table> - </td> - - - </tr> - - -</table> -</div> -<br> -<?php - echo "Current Status = "; - ob_start(); - $results = exec("pfctl -s rules | grep -c countryblock"); - ob_end_clean(); - if ($results > '0') echo "Running"; - else - echo "<span style='color:red'>NOT running</span>"; - - //Get Errors if exists - ob_start(); - $results = exec("tail -r errorOUT.txt"); - ob_end_clean(); - echo "<br/><span style='color:red'>"; - echo $results; - echo "</span>"; - - //Get IP Count - echo "<br>You are blocking "; - ob_start(); - $results = exec("pfctl -T show -t countryblock |grep -v -c Z"); - ob_end_clean(); - echo $results; - echo " Networks"; - ?> - -<br><br> - -<p> -</p> -</td> - </tr> -</table> -</form> -<?php include("fend.inc"); ?> -</body> -</html> - |