Hi, on my page I have a tabbed pannel. One tab has 8 child tabs in it and the others have forms or info.
All the tabs work great all info show up no problems. Two of the tabs,registration and contact us, have forms on them and the message board you can post comments on them. The forms all work fine I get emails with the form info and the message board works fine the new comments show up. Here is where my problem lies.
Now when I hit submit on the 2 forms and post on the message board my page refreshes and I get taken back to my home page when my site first launches.(just screen shots of top of pages)
So when I hit post I get redirected to my home page(below).
When I go back in to the message boardtab my new comment is there. How do I get my page to refresh while staying in the message board tab.
As for posting code I am not sure of what to post. When I hit post it triggers my form action is as follows:
------------------------
<form id="form1" name="form1" method="POST" action="<?php echo $editFormAction; ?>">
Here is the $editFormAction code:
$currentPage = $_SERVER["PHP_SELF"];
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO comments (comment_by, email, `comment`) VALUES (%s, %s, %s)",
GetSQLValueString($_POST['name'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['Comment'], "text"));
mysql_select_db($database_conComments, $conComments);
$Result1 = mysql_query($insertSQL, $conComments) or die(mysql_error());
$insertGoTo = "IndexMain.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
$pageNum_rsComments = 0;
if (isset($_GET['pageNum_rsComments'])) {
$pageNum_rsComments = $_GET['pageNum_rsComments'];
}
$startRow_rsComments = $pageNum_rsComments * $maxRows_rsComments;
-------------------------
Now when I created the insert record it asked me what page to goto after. How do I get it to refresh but stay on the same tab?
Thanks winrol
You can submit the form using Spry utils via ajax, so you never leave the page. You add call back function that runs when the server page responds. In the call back function you reload the messageboard by using Spry Data Seturl function.
if (Spry.Widget.Form.validate(Spry.$$('#replyform')[0]) == true)
{
Spry.Utils.submitForm('replyform', updateReplyDiv, {method:'post',url:'newReply.asp'})
updateReplyDiv is the function to run when the server page newreply.asp responds.
function updateReplyDiv(req)
{
var x = req.xhRequest.responseText;
if (x == 'Success')
{
Spry.$$('#replyResponse','TabbedPanels1')[0].innerHTML = 'Your reply has been posted. Thank you for your Contribution<p> </p>';
latesttopics.setURL('serverside/latestJSON.asp?cache=' + (new Date()).valueOf());
latesttopics.loadData() ;
}
....
the cache new date query string ensures that it doesn't return the cached Spry dataset.(I.e. the data before the message post). loadData cause the Spry data to be reloaded which causes any spry regions using that data to also be refreshed
Hi Phil,
Can you me understand this code as I am new and have not used ajax and asp before. Can I use PHP ajax and asp all together on one page?
Is the first part validating the form fields and the next line submiting the form and getting a reply?
When the function is called if the response from the submit is success, what would the response be?
Now after the if(x=="Success") line do I change the '0' in " TabbedPanels1')[0].innerHTML " to "tabbedPanels1')[4].innerHTML? The cache stuff at the end is that for browsing history?
if (Spry.Widget.Form.validate(Spry.$$('#replyform')[0]) == true)
{
Spry.Utils.submitForm('replyform', updateReplyDiv, {method:'post',url:'newReply.asp'})
updateReplyDiv is the function to run when the server page newreply.asp responds. function updateReplyDiv(req) Would I then change my form action to call the function updateReplyDiv(req)? Where would this code go? Thanks Winrol
{
var x = req.xhRequest.responseText;
if (x == 'Success')
{
Spry.$$('#replyResponse','TabbedPanels1')[0].innerHTML = 'Your reply has been posted. Thank you for your Contribution<p> </p>';
latesttopics.setURL('serverside/latestJSON.asp?cache=' + (new Date()).valueOf());
latesttopics.loadData() ;
}
Hi,
See http://www.thehmc.co.uk/forum2 , Click on a topic then click on a reply button to see my page in action. You'll be able to fill out the form and click submit without registering. The server code will reject your submission but you'll be able see it in action.
Is the first part validating the form fields and the next line submiting the form and getting a reply?
Yes - I have Spry validation fields see complete form html below
PHP When the function is called if the response from the submit is success, what would the response be?
Yes just replace my asp server page url with your serverside php page url. All the php server page does is update the database and then respond with some simple text like success or fail.
In my asp page the code for the response, if the database update was ok is
Response.Write("Success")
So that is what the server responds with Success and nothing else. So imagine your php server page writes one word instead of a HTML web page.
Now after the if(x=="Success") line do I change the '0' in "
TabbedPanels1')[0].innerHTML " to "tabbedPanels1')[4].innerHTML?
The arrays are zero indexed so [0] represents the first tab, and [4] would represent the 5th tab. I think you want [3] as it's the 4th tab you are updating
The cache stuff at the end is that for browsing history?
Yes the browser can cache the Spry Data as can Spry itself. This way you force the data to refresh and pick up the latest from your database, assuming the Spry dataset is dynamically generated via one of your php pages.
Would I then change my form action to call the function updateReplyDiv(req)? Where would this code go?
No the form looks like this, it has not default method or action, as that is handled in the Spry form submit code
<form id="replyform" name="replyform">
<input id="rforumID" name="rforumID" type="hidden" value="0" />
<input id="rtopicID" name="rtopicID" type="hidden" value="0" />
<span id="sprytextareareply">
<textarea name="ReplyQuote" rows="10" id="ReplyQuote" ></textarea>
<span class="textareaRequiredMsg">You have not entered a reply.</span></span>
</form>
<div id="preview" class="mynone"></div>
<div id="replyResponse" class="formresponse"></div>
<br />
<ul class="forumMenu" >
<li id="postreply" title="Click here to post your reply"><strong>Post your reply</strong></li>
<li id="cancelreply" title="Click here to cancel your reply"><strong>Cancel your reply</strong></li>
</ul>
The Javascript is in an external file at the end of the page with the form on it.
</div>
<script src="js/default.end.js" type="text/javascript"></script>
</div>
<!-- InstanceEndEditable -->
<div id="footer">
<p> © 2008 Created / Maintained by Phil Whitehurst</p>
</div>
</div>
<script type="text/javascript">
<!--
Spry.Utils.addEventListener("#footer","load",footer(),false);
function footer()
{
// Update copyright notice in footer
var d = new Date();
var dYear = d.getFullYear();
var content = "<p>© 2008 - " + dYear + " Created and maintained by Phil Whitehurst</p>"
Spry.$$("#footer")[0].innerHTML = content;
}
//-->
</script>
</body>
I attach a event listener to a list item made to look like a button rather than use the default submit button.
Spry.$$('#postreply').addEventListener('click',postreply,false);
function postreply()
{
if (Spry.Widget.Form.validate(Spry.$$('#replyform')[0]) == true)
{
Spry.Utils.submitForm('replyform', updateReplyDiv, {method:'post',url:'newReply.asp'});
}
}
function updateReplyDiv(req)
{
....
Here's a diagram to try and explain what each of your pages is doing
Hope that explains it ![]()
Phil
Hi Phil,
I am still having problems with this. I changed my submit button into a unorderd list. But how do I get the post text to act like a submit button with out attaching a link to it. I was looking at the code for the page you suggested I look at and there was no link attribute just id and title. My page does not use a spry data set. and my form never sent an action to another php it just called the edit formaction function. I also add the your code to the bottom of my page. Here is my code for my page.( I have stripped down all the infor from the other pages to reduce the size of text to post)
---------------
<?php require_once('Connections/conComments.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$currentPage = $_SERVER["PHP_SELF"];
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO comments (comment_by, email, `comment`) VALUES (%s, %s, %s)",
GetSQLValueString($_POST['name'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['Comment'], "text"));
mysql_select_db($database_conComments, $conComments);
$Result1 = mysql_query($insertSQL, $conComments) or die(mysql_error());
$insertGoTo = "IndexMain.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
$pageNum_rsComments = 0;
if (isset($_GET['pageNum_rsComments'])) {
$pageNum_rsComments = $_GET['pageNum_rsComments'];
}
$startRow_rsComments = $pageNum_rsComments * $maxRows_rsComments;
mysql_select_db($database_conComments, $conComments);
$query_rsComments = "SELECT * FROM comments ORDER BY comment_on DESC";
$rsComments = mysql_query($query_rsComments, $conComments) or die(mysql_error());
$row_rsComments = mysql_fetch_assoc($rsComments);
$totalRows_rsComments = mysql_num_rows($rsComments);mysql_select_db($database_conComments, $conComments);
$query_rsComments = "SELECT * FROM comments ORDER BY comment_on DESC";
$rsComments = mysql_query($query_rsComments, $conComments) or die(mysql_error());
$row_rsComments = mysql_fetch_assoc($rsComments);
$totalRows_rsComments = mysql_num_rows($rsComments);
$queryString_rsComments = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_rsComments") == false &&
stristr($param, "totalRows_rsComments") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_rsComments = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_rsComments = sprintf("&totalRows_rsComments=%d%s", $totalRows_rsComments, $queryString_rsComments);
?>
<?php if(isset($_POST['iAgree'])=="-1"){
$disable=true;
} else {
$disable=false;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script src="SpryAssets/SpryTabbedPanels.js" type="text/javascript"></script>
<script src="SpryAssets/SpryValidationTextarea.js" type="text/javascript"></script>
<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
<link href="SpryAssets/SpryTabbedPanels.css" rel="stylesheet" type="text/css" />
<link href="test.css" rel="stylesheet" type="text/css" />
<link href="SpryAssets/SpryValidationTextarea.css" rel="stylesheet" type="text/css" />
<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
</head>
<body>
<p> </p>
<div id="TabbedPanels1" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab" tabindex="0">Home</li>
<li class="TabbedPanelsTab" tabindex="0">Camps</li>
<li class="TabbedPanelsTab" tabindex="0">Apperances</li>
<li class="TabbedPanelsTab" tabindex="0">Contact Us</li>
<li class="TabbedPanelsTab" tabindex="0">Message Board</li>
<li class="TabbedPanelsTab" tabindex="0">Registration</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div class="TabbedPanelsContent">Content 1</div>
<div class="TabbedPanelsContent">
<div id="TabbedPanels2" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab" tabindex="0">2004</li>
<li class="TabbedPanelsTab" tabindex="0">2005</li>
<li class="TabbedPanelsTab" tabindex="0">2006</li>
<li class="TabbedPanelsTab" tabindex="0">2007</li>
<li class="TabbedPanelsTab" tabindex="0">2008</li>
<li class="TabbedPanelsTab" tabindex="0">2009</li>
<li class="TabbedPanelsTab" tabindex="0">2010</li>
<li class="TabbedPanelsTab" tabindex="0">1011</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div class="TabbedPanelsContent">Content 1</div>
<div class="TabbedPanelsContent">Content 2</div>
<div class="TabbedPanelsContent">Content 3</div>
<div class="TabbedPanelsContent">Content 4</div>
<div class="TabbedPanelsContent">Content 5</div>
<div class="TabbedPanelsContent">Content 6</div>
<div class="TabbedPanelsContent">Content 7</div>
<div class="TabbedPanelsContent">Content 8</div>
</div>
</div>
<p> </p>
</div>
<div class="TabbedPanelsContent">Apperances Page</div>
<div class="TabbedPanelsContent">Contact Us form page</div>
<div class="TabbedPanelsContent">
<div class="sidebar1">
<div class="Comment_Form">
<form id="repyform" name="repyform" method="POST" action="<?php echo $editFormAction; ?>">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="23"> </td>
<td> </td>
</tr>
<tr height:"10">
<td>Comment:</td>
<td> </td>
</tr>
<tr>
<td><span id="sprytextarea1">
<textarea name="Comment" cols="25" rows="2"></textarea>
<span class="textareaRequiredMsg">A value is required.</span></span></td>
<td> </td>
</tr>
<tr>
<td>Name:</td>
<td> </td>
</tr>
<tr>
<td><span id="sprytextfield1">
<input name="name" type="text" size="25" />
<span class="textfieldRequiredMsg">A value is required.</span></span></td>
<td> </td>
</tr>
<tr>
<td>Email:</td>
<td> </td>
</tr>
<tr>
<td><span id="sprytextfield2">
<input name="email" type="text" size="25" /><br />
<span class="textfieldRequiredMsg">A value is required.</span><span class="textfieldInvalidFormatMsg">Invalid format.</span></span><br />
</td>
<td><ul class="nav">
<li id="postreply">
Post
</li>
</ul>
</td>
</tr>
<tr class="Comment_Time_LogIn">
<td>Log In</td>
<td> </td>
</tr>
<tr class="Comment_Time_LogIn">
<td> </td>
<td> </td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="form1" />
</form>
</div>
<p> </p>
<p> </p>
<!-- end .sidebar1 --></div>
<div class="content">
<?php do { ?>
<?php if ($totalRows_rsComments > 0) { // Show if recordset not empty ?>
<div class="Comment">
<table width="350" border="0" cellpadding="5" cellspacing="0">
<tr>
<td>
Comment:
</td>
</tr>
<tr>
<td><textarea name="comments" cols="35" rows="3" readonly="readonly"><?php echo $row_rsComments['comment']; ?></textarea>
</td>
</tr>
<tr class="Comment_Time_name">
<td>
By: <?php echo $row_rsComments['comment_by']; ?><br />
<?php echo $row_rsComments['comment_on']; ?>
</td>
</tr>
</table>
</div>
<?php } else { echo "No Comments Available at this time";}// Show if recordset not empty ?>
<?php } while ($row_rsComments = mysql_fetch_assoc($rsComments)); ?>
<p> </p>
<div class="clearfloat"></div>
<div align="center">
<table border="0">
<tr>
<td><?php if ($pageNum_rsComments > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_rsComments=%d%s", $currentPage, 0, $queryString_rsComments); ?>">First</a>
<?php } // Show if not first page ?></td>
<td><?php if ($pageNum_rsComments > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_rsComments=%d%s", $currentPage, max(0, $pageNum_rsComments - 1), $queryString_rsComments); ?>">Previous</a>
<?php } // Show if not first page ?></td>
<td><?php if ($pageNum_rsComments < $totalPages_rsComments) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_rsComments=%d%s", $currentPage, min($totalPages_rsComments, $pageNum_rsComments + 1), $queryString_rsComments); ?>">Next</a>
<?php } // Show if not last page ?></td>
<td><?php if ($pageNum_rsComments < $totalPages_rsComments) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_rsComments=%d%s", $currentPage, $totalPages_rsComments, $queryString_rsComments); ?>">Last</a>
<?php } // Show if not last page ?></td>
</tr>
</table>
</div>
<!-- end .content --></div>
</div>
<div class="TabbedPanelsContent">Registrion form Page</div>
</div>
</div>
<script type="text/javascript">
var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
var TabbedPanels2 = new Spry.Widget.TabbedPanels("TabbedPanels2");
var sprytextarea1 = new Spry.Widget.ValidationTextarea("sprytextarea1");
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1");
var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2", "email");
</script>
<script type="text/javascript">
Spry.$$('#postreply').addEventListener('click',postreply,false);
function postreply()
{
if (Spry.Widget.Form.validate(Spry.$$('#replyform')[4]) == true)
{
Spry.Utils.submitForm('replyform', updateReplyDiv, {method:'post',url:'indexmain.php'});
}
}
</script>
</body>
</html>
-----------------
my css file
------------
@charset "UTF-8";
/* CSS Document */
@charset "UTF-8";
body {
font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
margin: 0;
padding: 0;
color: #000;
}
/* ~~ Element/tag selectors ~~ */
ul, ol, dl { /* Due to variations between browsers, it's best practices to zero padding and margin on lists. For consistency, you can either specify the amounts you want here, or on the list items (LI, DT, DD) they contain. Remember that what you do here will cascade to the .nav list unless you write a more specific selector. */
padding: 0;
margin: 0;
}
h1, h2, h3, h4, h5, h6, p {
margin-top: 0; /* removing the top margin gets around an issue where margins can escape from their containing div. The remaining bottom margin will hold it away from any elements that follow. */
padding-right: 15px;
padding-left: 15px;
}
a img { /* this selector removes the default blue border displayed in some browsers around an image when it is surrounded by a link */
border: none;
}
/* ~~ Styling for your site's links must remain in this order - including the group of selectors that create the hover effect. ~~ */
a:link {
color: #42413C;
text-decoration: underline; /* unless you style your links to look extremely unique, it's best to provide underlines for quick visual identification */
}
a:visited {
color: #6E6C64;
text-decoration: underline;
}
a:hover, a:active, a:focus { /* this group of selectors will give a keyboard navigator the same hover experience as the person using a mouse. */
text-decoration: none;
}
/* ~~this fixed width container surrounds the other divs~~ */
.container {
width: 960px;
margin: 0 auto;
background-image: url(football41.jpg);
}
/* ~~ the header is not given a width. It will extend the full width of your layout. It contains an image placeholder that should be replaced with your own linked logo ~~ */
.header {
background-color: #060;
height: 75px;
background-image: url(Images/field.jpg);
}
/* ~~ These are the columns for the layout. ~~
1) Padding is only placed on the top and/or bottom of the divs. The elements within these divs have padding on their sides. This saves you from any "box model math". Keep in mind, if you add any side padding or border to the div itself, it will be added to the width you define to create the *total* width. You may also choose to remove the padding on the element in the div and place a second div within it with no width and the padding necessary for your design. You may also choose to remove the padding on the element in the div and place a second div within it with no width and the padding necessary for your design.
2) No margin has been given to the columns since they are all floated. If you must add margin, avoid placing it on the side you're floating toward (for example: a right margin on a div set to float right). Many times, padding can be used instead. For divs where this rule must be broken, you should add a "display:inline" declaration to the div's rule to tame a bug where some versions of Internet Explorer double the margin.
3) Since classes can be used multiple times in a document (and an element can also have multiple classes applied), the columns have been assigned class names instead of IDs. For example, two sidebar divs could be stacked if necessary. These can very easily be changed to IDs if that's your preference, as long as you'll only be using them once per document.
4) If you prefer your nav on the right instead of the left, simply float these columns the opposite direction (all right instead of all left) and they'll render in reverse order. There's no need to move the divs around in the HTML source.
*/
.sidebar1 {
float: right;
width: 40%;
padding-bottom: 10px;
text-align: left;
}
.content {
padding: 10px 0;
width: 60%;
float: left;
}
.content_Comments {
width: 60%;
float: none;
padding-right: 0px;
padding-bottom: 10px;
padding-left: 0;
}
/* ~~ This grouped selector gives the lists in the .content area space ~~ */
.content ul, .content ol {
padding: 0; /* this padding mirrors the right padding in the headings and paragraph rule above. Padding was placed on the bottom for space between other elements on the lists and on the left to create the indention. These may be adjusted as you wish. */
list-style-type: none;
}
/* ~~ The navigation list styles (can be removed if you choose to use a premade flyout menu like Spry) ~~ */
ul.nav {
list-style: none; /* this removes the list marker */
border-top: 1px solid #666; /* this creates the top border for the links - all others are placed using a bottom border on the LI */
margin-bottom: 15px; /* this creates the space between the navigation on the content below */
}
ul.nav li {
/* [disabled]border-bottom: 1px solid #666; */ /* this creates the button separation */
}
ul.nav a, ul.nav a:visited { /* grouping these selectors makes sure that your links retain their button look even after being visited */
padding: 5px 5px 5px 15px;
display: inline; /* this gives the link block properties causing it to fill the whole LI containing it. This causes the entire area to react to a mouse click. */
width: 160px; /*this width makes the entire button clickable for IE6. If you don't need to support IE6, it can be removed. Calculate the proper width by subtracting the padding on this link from the width of your sidebar container. */
text-decoration: none;
background: #C6D580;
}
ul.nav a:hover, ul.nav a:active, ul.nav a:focus { /* this changes the background and text color for both mouse and keyboard navigators */
background: #ADB96E;
color: #FFF;
}
/* ~~ The footer ~~ */
.footer {
padding: 10px 0;
background: #060;
position: relative;/* this gives IE6 hasLayout to properly clear */
clear: both;
}
/* ~~ miscellaneous float/clear classes ~~ */
.fltrt { /* this class can be used to float an element right in your page. The floated element must precede the element it should be next to on the page. */
float: right;
margin-left: 8px;
}
.fltlft { /* this class can be used to float an element left in your page. The floated element must precede the element it should be next to on the page. */
float: left;
margin-right: 8px;
}
.clearfloat { /* this class can be placed on a <br /> or empty div as the final element following the last floated div (within the #container) if the #footer is removed or taken out of the #container */
clear:both;
height:0;
font-size: 1px;
line-height: 0px;
}
div.img
{
height:auto;
text-align:center;
width: auto;
/* [disabled]float: left; */
margin: 20px;
}
div.imgs
{
height:auto;
width:auto;
float:left;
text-align:center;
margin: 20px;
}
div.emptyimgs {
height:auto;
width:auto;
float:left;
text-align:center;
margin: 12px;
}
div.img img
{
display:inline;
margin:15px;
border:1px solid #ffffff;
-moz-box-shadow: 5px 5px 5px #060;
-webkit-box-shadow: 5px 5px 5px #060;
zoom: 1;
filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=5, OffY=5, Color=#C4AF3A, Positive='true');
-ms-filter:progid:DXImageTransform.Microsoft.Blur(pixelredius=10);
}
div.imgs img
{
display:inline;
margin:14px;
border:1px solid #ffffff;
-moz-box-shadow: 5px 5px 5px #060;
-webkit-box-shadow: 5px 5px 5px #060;
zoom:1;
filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=5, OffY=5, Color=#C4AF3A, Positive='true');
-ms-filter:progid:DXImageTransform.Microsoft.Blur(pixelredius=10);
}
div.img a:hover img
{
border:1px solid #060;
}
div.desc
{
text-align:center;
font-weight:normal;
width:auto;
margin:2px;
color: #000000;
}
.container .content #TabbedPanels1 .TabbedPanelsContentGroup .TabbedPanelsContent.TabbedPanelsContentVisible #form1 p label {
text-align: left;
display: block;
float: left;
margin-right: 5px;
width: 180px;
}
.container .content #TabbedPanels1 .TabbedPanelsContentGroup .TabbedPanelsContent.TabbedPanelsContentVisible div #frmContactUs p label {
text-align: left;
display: block;
float: left;
width: 150px;
margin-right: 5px;
}
.container .content #TabbedPanels1 .TabbedPanelsContentGroup .TabbedPanelsContent.TabbedPanelsContentVisible div #form1 {
text-align: left;
padding-left: 17px;
}
.Comment {
float: right;
width: 300px;
-moz-box-shadow: inset 0 0 5px 5px #060;
-webkit-box-shadow: inset 0 0 5px 5px #060;
box-shadow: inset 0 0 5px 5px #060;
padding-left: 17px;
border-radius: 10px;
-moz-border-radius: 10px;
text-align: left;
margin-right: 100px;
/* [disabled]overflow: hidden; */
padding-right: 17px;
background-color: #FFF;
}
.Comment_Form {
float: left;
width: auto;
-moz-box-shadow: inset 0 0 5px 5px #060;
-webkit-box-shadow: inset 0 0 5px 5px #060;
box-shadow: inset 0 0 5px 5px #060;
border-radius: 10px;
-moz-border-radius: 10px;
padding-right: 17px;
padding-left: 17px;
background-color: #FFF;
}
.Comment_Time_name {
font-size: 12px;
}
.Comment_Time_LogIn {
font-size: 9px;
}
North America
Europe, Middle East and Africa
Asia Pacific