aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorroot <root@vadmin.(none)>2010-06-09 21:28:36 -0400
committerroot <root@vadmin.(none)>2010-06-09 21:28:36 -0400
commitaac6f344f0670283401fdf9ee71ab77bdef7cdcc (patch)
tree418b2f67a896c714c613c47e1d49812fd0b028ce /config
parent0c858a2798e4ff467f6bd8b6c76b5695359ade0f (diff)
downloadpfsense-packages-aac6f344f0670283401fdf9ee71ab77bdef7cdcc.tar.gz
pfsense-packages-aac6f344f0670283401fdf9ee71ab77bdef7cdcc.tar.bz2
pfsense-packages-aac6f344f0670283401fdf9ee71ab77bdef7cdcc.zip
Addming countryblock package
Diffstat (limited to 'config')
-rw-r--r--config/countryblock/countryblock.inc102
-rw-r--r--config/countryblock/countryblock.sh1
-rw-r--r--config/countryblock/countryblock.tmp2574
-rw-r--r--config/countryblock/countryblock.xml145
-rw-r--r--config/countryblock/ddaccordion.js209
-rw-r--r--config/countryblock/execute.sh59
-rw-r--r--config/countryblock/index.tmp11
-rw-r--r--config/countryblock/jquery.min.js19
-rw-r--r--config/countryblock/public_smo_scripts.js160
-rw-r--r--config/countryblock/titlebar-active.pngbin0 -> 90 bytes
-rw-r--r--config/countryblock/titlebar.pngbin0 -> 90 bytes
11 files changed, 3280 insertions, 0 deletions
diff --git a/config/countryblock/countryblock.inc b/config/countryblock/countryblock.inc
new file mode 100644
index 00000000..39a22243
--- /dev/null
+++ b/config/countryblock/countryblock.inc
@@ -0,0 +1,102 @@
+<?php
+/* $Id$ */
+/*
+/* ========================================================================== */
+/*
+ countryblock.inc
+ Copyright (C) 2010 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()
+{
+ global $config;
+}
+
+
+function php_install_command()
+{
+
+ 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/");
+ }
+
+
+
+ //rename PHP files from .tmp to .php
+ exec("cp /tmp/countryblock.tmp /usr/local/www/packages/countryblock/countryblock.php");
+ unlink_if_exists("/tmp/countryblock.tmp");
+ exec("cp /tmp/index.tmp /usr/local/www/packages/countryblock/index.php");
+ unlink_if_exists("/tmp/index.tmp");
+ //Get scripts
+ exec("cp /tmp/countryblock.sh /usr/local/etc/rc.d/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.pngs");
+ 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");
+
+
+
+ conf_mount_ro();
+ config_unlock();
+}
+
+
+function deinstall_command()
+{
+ 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");
+ 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("pfctl -t countryblock -T kill");
+ exec("sed -i -e '/countryblock/d' /tmp/rules.debug");
+ exec("pfctl -o basic -f /tmp/rules.debug");
+ conf_mount_ro();
+}
+
+?> \ No newline at end of file
diff --git a/config/countryblock/countryblock.sh b/config/countryblock/countryblock.sh
new file mode 100644
index 00000000..5c736a77
--- /dev/null
+++ b/config/countryblock/countryblock.sh
@@ -0,0 +1 @@
+/usr/local/www/packages/countryblock/execute.sh \ No newline at end of file
diff --git a/config/countryblock/countryblock.tmp b/config/countryblock/countryblock.tmp
new file mode 100644
index 00000000..6c080c06
--- /dev/null
+++ b/config/countryblock/countryblock.tmp
@@ -0,0 +1,2574 @@
+<?php
+
+ // 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();
+
+if (count($_POST)>0) {
+
+ conf_mount_rw();
+
+ $ent = array();
+
+ if ($_POST['enable'] == 1) {
+ //echo "enabled";
+ $config['installedpackages']['countryblock_settings']['config'][0]['enable'] = 1;
+
+ //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");
+ exec("fetch -o lists/temp http://www.countryipblocks.net/e_country_data/{$line}_cidr.txt");
+ 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("sh execute.sh");
+
+ }
+ 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();
+}
+?>
+
+<?php include("fbegin.inc"); ?>
+<p class="pgtitle">Firewall: Country Block</p>
+<form method=POST action="">
+
+<?php
+if ($config['installedpackages']['countryblock_settings']['config'][0]['enable'] == 1) {
+ echo "<input name='enable' type='checkbox' value='1' checked>\n";
+}
+else {
+ echo "<input name='enable' type='checkbox' value='1'>\n";
+}
+?>
+<?php
+
+
+mwexec("touch countries.txt");
+//$myFile = "countries.txt";
+//$fh = fopen($myFile, 'a+');
+
+
+
+ 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(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>");
+ }
+ }
+?>
+<head>
+
+<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">
+
+.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>
+
+
+<strong>Enable Country Block</strong><br><br>
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+ <td class="tabcont" >
+ <?php if ($savemsg_cb) print_info_box($savemsg_cb);
+ //if ($output) print_info_box($output,$output2);
+ echo($output);
+ echo($output2);
+ ?>
+
+ </form>
+
+ <form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
+ <p>
+ Check the country that you would like to block completely.<br/>
+
+
+
+ </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'/>";
+ }
+?>
+
+ <input type="checkbox" name="checkall" onclick="checkUncheckAll(this);"/>select/unselect
+ </p>
+
+ <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&#39;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/>Argentia</li>";
+ else
+ echo " <li><input name='formCountry[]' type='checkbox' value='AR' />Argentia</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&#39;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 BD");
+ob_end_clean();
+ if ($results == 'BD')
+ 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 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/>Burkia Faso</li>";
+ else
+ echo "<li><input name='formCountry[]' type='checkbox' value='BF' />Burkia 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&#39;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 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&#39;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&#39;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&#39;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&#39;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&#39;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&#39;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&#39;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 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&#39;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&#39;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&#39;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 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&#39;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&#39;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&#39;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&#39;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&#39;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&#39;s</h3>
+<ul class="categoryitems">
+<?php
+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 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 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&#39;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&#39;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&#39;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&#39;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&#39;s</h3>
+<ul class="categoryitems">
+<li>&lt;insert easter egg&gt;</li>
+
+</ul>
+
+<h3 class="menuheader expandable">Y&#39;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&#39;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>
+
+
+
+ <u>Usage</u>
+ <br/>
+ Check the country that you would like to block completely. Affects in & out traffic.
+ <br/><span style="color:red">Warning!</span> - Apply after every firewall change or state reset. Use at your own risk.
+ <br/><br/>
+ <input type="submit" name="formSubmit" value="Commit Countries" />
+ </form>
+ <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>";
+ ?>
+
+
+</div>
+<?php
+ //This input guarantees that a POST is sent
+ echo "<input type='hidden' name='zzz' value='required'>";
+?>
+
+</td>
+</tr>
+</table>
+<input type="submit" value="Save/Update">
+</form>
+
+<?php include("fend.inc"); ?>
+
+</body>
+</html> \ No newline at end of file
diff --git a/config/countryblock/countryblock.xml b/config/countryblock/countryblock.xml
new file mode 100644
index 00000000..8bb3994d
--- /dev/null
+++ b/config/countryblock/countryblock.xml
@@ -0,0 +1,145 @@
+<?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) 2010 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>http://forum.pfsense.org/index.php/topic,25732.0.html</faq>
+ <name>Country Block Settings</name>
+ <version>0.1.2</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>http://www.pfsense.com/packages/config/countryblock/countryblock.xml</item>
+ </additional_files_needed>
+ <additional_files_needed>
+ <prefix>/usr/local/pkg/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.com/packages/config/countryblock/countryblock.inc</item>
+ </additional_files_needed>
+ <additional_files_needed>
+ <prefix>/tmp/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.com/packages/config/countryblock/countryblock.tmp</item>
+ </additional_files_needed>
+ <additional_files_needed>
+ <prefix>/tmp/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.com/packages/config/countryblock/execute.sh</item>
+ </additional_files_needed>
+ <additional_files_needed>
+ <prefix>/tmp/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.com/packages/config/countryblock/countryblock.sh</item>
+ </additional_files_needed>
+ <additional_files_needed>
+ <prefix>/tmp/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.com/packages/config/countryblock/index.tmp</item>
+ </additional_files_needed>
+ <additional_files_needed>
+ <prefix>/tmp/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.com/packages/config/countryblock/ddaccordion.js</item>
+ </additional_files_needed>
+ <additional_files_needed>
+ <prefix>/tmp/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.com/packages/config/countryblock/jquery.min.js</item>
+ </additional_files_needed>
+ <additional_files_needed>
+ <prefix>/tmp/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.com/packages/config/countryblock/public_smo_scripts.js</item>
+ </additional_files_needed>
+ <additional_files_needed>
+ <prefix>/tmp/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.com/packages/config/countryblock/titlebar.png</item>
+ </additional_files_needed>
+ <additional_files_needed>
+ <prefix>/tmp/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.com/packages/config/countryblock/titlebar-active.png</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();
+ </custom_php_resync_config_command>
+ <custom_delete_php_command>
+ php_sync_package();
+ </custom_delete_php_command>
+ <custom_php_install_command>
+ php_install_command();
+ </custom_php_install_command>
+ <custom_php_deinstall_command>
+ deinstall_command();
+ </custom_php_deinstall_command>
+</packagegui> \ No newline at end of file
diff --git a/config/countryblock/ddaccordion.js b/config/countryblock/ddaccordion.js
new file mode 100644
index 00000000..8712cf8c
--- /dev/null
+++ b/config/countryblock/ddaccordion.js
@@ -0,0 +1,209 @@
+//** 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/execute.sh b/config/countryblock/execute.sh
new file mode 100644
index 00000000..f109f896
--- /dev/null
+++ b/config/countryblock/execute.sh
@@ -0,0 +1,59 @@
+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]'`
+
+i=$(($i+'1'))
+t=$(($t+'1'))
+#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 "block quick from <countryblock> to any label 'countryblock'" >> /tmp/rules.debug.tmp
+ if [ -f OUTBOUND ]; then
+ echo "block quick from any to <countryblock> label 'countryblock'" >> /tmp/rules.debug.tmp
+ fi
+ 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 > errorOUT.txt 2>&1
diff --git a/config/countryblock/index.tmp b/config/countryblock/index.tmp
new file mode 100644
index 00000000..7c768af6
--- /dev/null
+++ b/config/countryblock/index.tmp
@@ -0,0 +1,11 @@
+<html>
+<HEAD>
+<SCRIPT language="JavaScript">
+<!--
+window.parent.location="../../index.php";
+//-->
+</SCRIPT>
+</HEAD>
+
+
+</html> \ No newline at end of file
diff --git a/config/countryblock/jquery.min.js b/config/countryblock/jquery.min.js
new file mode 100644
index 00000000..b1ae21d8
--- /dev/null
+++ b/config/countryblock/jquery.min.js
@@ -0,0 +1,19 @@
+/*
+ * 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
new file mode 100644
index 00000000..e15fd1ac
--- /dev/null
+++ b/config/countryblock/public_smo_scripts.js
@@ -0,0 +1,160 @@
+//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/titlebar-active.png b/config/countryblock/titlebar-active.png
new file mode 100644
index 00000000..ad675768
--- /dev/null
+++ b/config/countryblock/titlebar-active.png
Binary files differ
diff --git a/config/countryblock/titlebar.png b/config/countryblock/titlebar.png
new file mode 100644
index 00000000..f028a918
--- /dev/null
+++ b/config/countryblock/titlebar.png
Binary files differ