Spry bandwidth detector
Are there any demos that use the spry framework for bandwidth
detection?
Links please
Thanks in advance
Are there any demos that use the spry framework for bandwidth
detection?
Links please
Thanks in advance
Similar Messages
-
SPRY menu bar not working in IE 9
Hey! I recently just finished building my very first website using Dreamweaver CS5.5! It looks really great and works perfectly in firefox and safari however the SPRY menu bar does not work in IE 8 or 9. Does anyone know what i can do to fix this without messing up how the website looks in firefox and safari?
thanks,
Toby
here is a copy of my code:
1
@charset "UTF-8";
/* SpryMenuBarVertical.css - version 0.6 - Spry Pre-Release 1.6.1 */
/* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */
LAYOUT INFORMATION: describes box model, positioning, z-order
/* The outermost container of the Menu Bar, a fixed width box with no margin or padding */
ul.MenuBarVertical
margin: 0;
padding: 0;
list-style-type: none;
font-size: 100%;
cursor: default;
width: 200px;
/* Set the active Menu Bar with this class, currently setting z-index to accomodate IE rendering bug: http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html */
ul.MenuBarActive
z-index: 1000;
/* Menu item containers, position children relative to this container and are same fixed width as parent */
ul.MenuBarVertical li
margin: 0;
padding: 0;
list-style-type: none;
font-size: 100%;
position: relative;
text-align: left;
cursor: pointer;
width: 200px;
/* Submenus should appear slightly overlapping to the right (95%) and up (-5%) with a higher z-index, but they are initially off the left side of the screen (-1000em) */
ul.MenuBarVertical ul
margin: -5% 0 0 95%;
padding: 0;
list-style-type: none;
font-size: 50%;
position: absolute;
z-index: 1020;
cursor: default;
width: 180px;
left: -1000em;
top: 0;
background-color: #cccccc;
/* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */
ul.MenuBarVertical ul.MenuBarSubmenuVisible
left: 0;
/* Menu item containers are same fixed width as parent */
ul.MenuBarVertical ul li
width: 8.2em;
DESIGN INFORMATION: describes color scheme, borders, fonts
/* Outermost menu container has borders on all sides */
ul.MenuBarVertical
border: 0px solid #CCC;
/* Submenu containers have borders on all sides */
ul.MenuBarVertical ul
border: 0px solid #CCC;
/* Menu items are a light gray block with padding and no text decoration */
ul.MenuBarVertical a
display: block;
cursor: pointer;
padding: 0.5em 0.75em;
color: ;
text-decoration: none;
/* Menu items that have mouse over or focus have a blue background and white text */
ul.MenuBarVertical a:hover, ul.MenuBarVertical a:focus
color: ;
font-size: 100%;
/* Menu items that are open with submenus are set to MenuBarItemHover with a blue background and white text */
ul.MenuBarVertical a.MenuBarItemHover, ul.MenuBarVertical a.MenuBarItemSubmenuHover, ul.MenuBarVertical a.MenuBarSubmenuVisible
background-color: ;
color: ;
SUBMENU INDICATION: styles if there is a submenu under a given menu item
/* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarVertical a.MenuBarItemSubmenu
background-image: url(home.gif);
background-repeat: no-repeat;
background-position: 95% 50%;
/* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarVertical a.MenuBarItemSubmenuHover
background-image: url(SpryMenuBarRightHover.gif);
background-repeat: no-repeat;
background-position: 95% 50%;
BROWSER HACKS: the hacks below should not be changed unless you are an expert
/* HACK FOR IE: to make sure the sub menus show above form controls, we underlay each submenu with an iframe */
ul.MenuBarVertical iframe
position: absolute;
z-index: 1010;
filter:alpha(opacity:0.1);
/* HACK FOR IE: to stabilize appearance of menu items; the slash in float is to keep IE 5.0 from parsing */
@media screen, projection
ul.MenuBarVertical li.MenuBarItemIE
display: inline;
f\loat: left;
background: #FFF;
2
// SpryMenuBar.js - version 0.13 - Spry Pre-Release 1.6.1
// Copyright (c) 2006. Adobe Systems Incorporated.
// All rights reserved.
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// * Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
// * 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.
// * Neither the name of Adobe Systems Incorporated nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR CONTRIBUTORS 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.
SpryMenuBar.js
This file handles the JavaScript for Spry Menu Bar. You should have no need
to edit this file. Some highlights of the MenuBar object is that timers are
used to keep submenus from showing up until the user has hovered over the parent
menu item for some time, as well as a timer for when they leave a submenu to keep
showing that submenu until the timer fires.
(function() { // BeginSpryComponent
if (typeof Spry == "undefined") window.Spry = {}; if (!Spry.Widget) Spry.Widget = {};
Spry.BrowserSniff = function()
var b = navigator.appName.toString();
var up = navigator.platform.toString();
var ua = navigator.userAgent.toString();
this.mozilla = this.ie = this.opera = this.safari = false;
var re_opera = /Opera.([0-9\.]*)/i;
var re_msie = /MSIE.([0-9\.]*)/i;
var re_gecko = /gecko/i;
var re_safari = /(applewebkit|safari)\/([\d\.]*)/i;
var r = false;
if ( (r = ua.match(re_opera))) {
this.opera = true;
this.version = parseFloat(r[1]);
} else if ( (r = ua.match(re_msie))) {
this.ie = true;
this.version = parseFloat(r[1]);
} else if ( (r = ua.match(re_safari))) {
this.safari = true;
this.version = parseFloat(r[2]);
} else if (ua.match(re_gecko)) {
var re_gecko_version = /rv:\s*([0-9\.]+)/i;
r = ua.match(re_gecko_version);
this.mozilla = true;
this.version = parseFloat(r[1]);
this.windows = this.mac = this.linux = false;
this.Platform = ua.match(/windows/i) ? "windows" :
(ua.match(/linux/i) ? "linux" :
(ua.match(/mac/i) ? "mac" :
ua.match(/unix/i)? "unix" : "unknown"));
this[this.Platform] = true;
this.v = this.version;
if (this.safari && this.mac && this.mozilla) {
this.mozilla = false;
Spry.is = new Spry.BrowserSniff();
// Constructor for Menu Bar
// element should be an ID of an unordered list (<ul> tag)
// preloadImage1 and preloadImage2 are images for the rollover state of a menu
Spry.Widget.MenuBar = function(element, opts)
this.init(element, opts);
Spry.Widget.MenuBar.prototype.init = function(element, opts)
this.element = this.getElement(element);
// represents the current (sub)menu we are operating on
this.currMenu = null;
this.showDelay = 250;
this.hideDelay = 600;
if(typeof document.getElementById == 'undefined' || (navigator.vendor == 'Apple Computer, Inc.' && typeof window.XMLHttpRequest == 'undefined') || (Spry.is.ie && typeof document.uniqueID == 'undefined'))
// bail on older unsupported browsers
return;
// Fix IE6 CSS images flicker
if (Spry.is.ie && Spry.is.version < 7){
try {
document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}
this.upKeyCode = Spry.Widget.MenuBar.KEY_UP;
this.downKeyCode = Spry.Widget.MenuBar.KEY_DOWN;
this.leftKeyCode = Spry.Widget.MenuBar.KEY_LEFT;
this.rightKeyCode = Spry.Widget.MenuBar.KEY_RIGHT;
this.escKeyCode = Spry.Widget.MenuBar.KEY_ESC;
this.hoverClass = 'MenuBarItemHover';
this.subHoverClass = 'MenuBarItemSubmenuHover';
this.subVisibleClass ='MenuBarSubmenuVisible';
this.hasSubClass = 'MenuBarItemSubmenu';
this.activeClass = 'MenuBarActive';
this.isieClass = 'MenuBarItemIE';
this.verticalClass = 'MenuBarVertical';
this.horizontalClass = 'MenuBarHorizontal';
this.enableKeyboardNavigation = true;
this.hasFocus = false;
// load hover images now
if(opts)
for(var k in opts)
if (typeof this[k] == 'undefined')
var rollover = new Image;
rollover.src = opts[k];
Spry.Widget.MenuBar.setOptions(this, opts);
// safari doesn't support tabindex
if (Spry.is.safari)
this.enableKeyboardNavigation = false;
if(this.element)
this.currMenu = this.element;
var items = this.element.getElementsByTagName('li');
for(var i=0; i<items.length; i++)
if (i > 0 && this.enableKeyboardNavigation)
items[i].getElementsByTagName('a')[0].tabIndex='-1';
this.initialize(items[i], element);
if(Spry.is.ie)
this.addClassName(items[i], this.isieClass);
items[i].style.position = "static";
if (this.enableKeyboardNavigation)
var self = this;
this.addEventListener(document, 'keydown', function(e){self.keyDown(e); }, false);
if(Spry.is.ie)
if(this.hasClassName(this.element, this.verticalClass))
this.element.style.position = "relative";
var linkitems = this.element.getElementsByTagName('a');
for(var i=0; i<linkitems.length; i++)
linkitems[i].style.position = "relative";
Spry.Widget.MenuBar.KEY_ESC = 27;
Spry.Widget.MenuBar.KEY_UP = 38;
Spry.Widget.MenuBar.KEY_DOWN = 40;
Spry.Widget.MenuBar.KEY_LEFT = 37;
Spry.Widget.MenuBar.KEY_RIGHT = 39;
Spry.Widget.MenuBar.prototype.getElement = function(ele)
if (ele && typeof ele == "string")
return document.getElementById(ele);
return ele;
Spry.Widget.MenuBar.prototype.hasClassName = function(ele, className)
if (!ele || !className || !ele.className || ele.className.search(new RegExp("\\b" + className + "\\b")) == -1)
return false;
return true;
Spry.Widget.MenuBar.prototype.addClassName = function(ele, className)
if (!ele || !className || this.hasClassName(ele, className))
return;
ele.className += (ele.className ? " " : "") + className;
Spry.Widget.MenuBar.prototype.removeClassName = function(ele, className)
if (!ele || !className || !this.hasClassName(ele, className))
return;
ele.className = ele.className.replace(new RegExp("\\s*\\b" + className + "\\b", "g"), "");
// addEventListener for Menu Bar
// attach an event to a tag without creating obtrusive HTML code
Spry.Widget.MenuBar.prototype.addEventListener = function(element, eventType, handler, capture)
try
if (element.addEventListener)
element.addEventListener(eventType, handler, capture);
else if (element.attachEvent)
element.attachEvent('on' + eventType, handler);
catch (e) {}
// createIframeLayer for Menu Bar
// creates an IFRAME underneath a menu so that it will show above form controls and ActiveX
Spry.Widget.MenuBar.prototype.createIframeLayer = function(menu)
var layer = document.createElement('iframe');
layer.tabIndex = '-1';
layer.src = 'javascript:""';
layer.frameBorder = '0';
layer.scrolling = 'no';
menu.parentNode.appendChild(layer);
layer.style.left = menu.offsetLeft + 'px';
layer.style.top = menu.offsetTop + 'px';
layer.style.width = menu.offsetWidth + 'px';
layer.style.height = menu.offsetHeight + 'px';
// removeIframeLayer for Menu Bar
// removes an IFRAME underneath a menu to reveal any form controls and ActiveX
Spry.Widget.MenuBar.prototype.removeIframeLayer = function(menu)
var layers = ((menu == this.element) ? menu : menu.parentNode).getElementsByTagName('iframe');
while(layers.length > 0)
layers[0].parentNode.removeChild(layers[0]);
// clearMenus for Menu Bar
// root is the top level unordered list (<ul> tag)
Spry.Widget.MenuBar.prototype.clearMenus = function(root)
var menus = root.getElementsByTagName('ul');
for(var i=0; i<menus.length; i++)
this.hideSubmenu(menus[i]);
this.removeClassName(this.element, this.activeClass);
// bubbledTextEvent for Menu Bar
// identify bubbled up text events in Safari so we can ignore them
Spry.Widget.MenuBar.prototype.bubbledTextEvent = function()
return Spry.is.safari && (event.target == event.relatedTarget.parentNode || (event.eventPhase == 3 && event.target.parentNode == event.relatedTarget));
// showSubmenu for Menu Bar
// set the proper CSS class on this menu to show it
Spry.Widget.MenuBar.prototype.showSubmenu = function(menu)
if(this.currMenu)
this.clearMenus(this.currMenu);
this.currMenu = null;
if(menu)
this.addClassName(menu, this.subVisibleClass);
if(typeof document.all != 'undefined' && !Spry.is.opera && navigator.vendor != 'KDE')
if(!this.hasClassName(this.element, this.horizontalClass) || menu.parentNode.parentNode != this.element)
menu.style.top = menu.parentNode.offsetTop + 'px';
if(Spry.is.ie && Spry.is.version < 7)
this.createIframeLayer(menu);
this.addClassName(this.element, this.activeClass);
// hideSubmenu for Menu Bar
// remove the proper CSS class on this menu to hide it
Spry.Widget.MenuBar.prototype.hideSubmenu = function(menu)
if(menu)
this.removeClassName(menu, this.subVisibleClass);
if(typeof document.all != 'undefined' && !Spry.is.opera && navigator.vendor != 'KDE')
menu.style.top = '';
menu.style.left = '';
if(Spry.is.ie && Spry.is.version < 7)
this.removeIframeLayer(menu);
// initialize for Menu Bar
// create event listeners for the Menu Bar widget so we can properly
// show and hide submenus
Spry.Widget.MenuBar.prototype.initialize = function(listitem, element)
var opentime, closetime;
var link = listitem.getElementsByTagName('a')[0];
var submenus = listitem.getElementsByTagName('ul');
var menu = (submenus.length > 0 ? submenus[0] : null);
if(menu)
this.addClassName(link, this.hasSubClass);
if(!Spry.is.ie)
// define a simple function that comes standard in IE to determine
// if a node is within another node
listitem.contains = function(testNode)
// this refers to the list item
if(testNode == null)
return false;
if(testNode == this)
return true;
else
return this.contains(testNode.parentNode);
// need to save this for scope further down
var self = this;
this.addEventListener(listitem, 'mouseover', function(e){self.mouseOver(listitem, e);}, false);
this.addEventListener(listitem, 'mouseout', function(e){if (self.enableKeyboardNavigation) self.clearSelection(); self.mouseOut(listitem, e);}, false);
if (this.enableKeyboardNavigation)
this.addEventListener(link, 'blur', function(e){self.onBlur(listitem);}, false);
this.addEventListener(link, 'focus', function(e){self.keyFocus(listitem, e);}, false);
Spry.Widget.MenuBar.prototype.keyFocus = function (listitem, e)
this.lastOpen = listitem.getElementsByTagName('a')[0];
this.addClassName(this.lastOpen, listitem.getElementsByTagName('ul').length > 0 ? this.subHoverClass : this.hoverClass);
this.hasFocus = true;
Spry.Widget.MenuBar.prototype.onBlur = function (listitem)
this.clearSelection(listitem);
Spry.Widget.MenuBar.prototype.clearSelection = function(el){
//search any intersection with the current open element
if (!this.lastOpen)
return;
if (el)
el = el.getElementsByTagName('a')[0];
// check children
var item = this.lastOpen;
while (item != this.element)
var tmp = el;
while (tmp != this.element)
if (tmp == item)
return;
try{
tmp = tmp.parentNode;
}catch(err){break;}
item = item.parentNode;
var item = this.lastOpen;
while (item != this.element)
this.hideSubmenu(item.parentNode);
var link = item.getElementsByTagName('a')[0];
this.removeClassName(link, this.hoverClass);
this.removeClassName(link, this.subHoverClass);
item = item.parentNode;
this.lastOpen = false;
Spry.Widget.MenuBar.prototype.keyDown = function (e)
if (!this.hasFocus)
return;
if (!this.lastOpen)
this.hasFocus = false;
return;
var e = e|| event;
var listitem = this.lastOpen.parentNode;
var link = this.lastOpen;
var submenus = listitem.getElementsByTagName('ul');
var menu = (submenus.length > 0 ? submenus[0] : null);
var hasSubMenu = (menu) ? true : false;
var opts = [listitem, menu, null, this.getSibling(listitem, 'previousSibling'), this.getSibling(listitem, 'nextSibling')];
if (!opts[3])
opts[2] = (listitem.parentNode.parentNode.nodeName.toLowerCase() == 'li')?listitem.parentNode.parentNode:null;
var found = 0;
switch (e.keyCode){
case this.upKeyCode:
found = this.getElementForKey(opts, 'y', 1);
break;
case this.downKeyCode:
found = this.getElementForKey(opts, 'y', -1);
break;
case this.leftKeyCode:
found = this.getElementForKey(opts, 'x', 1);
break;
case this.rightKeyCode:
found = this.getElementForKey(opts, 'x', -1);
break;
case this.escKeyCode:
case 9:
this.clearSelection();
this.hasFocus = false;
default: return;
switch (found)
case 0: return;
case 1:
//subopts
this.mouseOver(listitem, e);
break;
case 2:
//parent
this.mouseOut(opts[2], e);
break;
case 3:
case 4:
// left - right
this.removeClassName(link, hasSubMenu ? this.subHoverClass : this.hoverClass);
break;
var link = opts[found].getElementsByTagName('a')[0];
if (opts[found].nodeName.toLowerCase() == 'ul')
opts[found] = opts[found].getElementsByTagName('li')[0];
this.addClassName(link, opts[found].getElementsByTagName('ul').length > 0 ? this.subHoverClass : this.hoverClass);
this.lastOpen = link;
opts[found].getElementsByTagName('a')[0].focus();
//stop further event handling by the browser
return Spry.Widget.MenuBar.stopPropagation(e);
Spry.Widget.MenuBar.prototype.mouseOver = function (listitem, e)
var link = listitem.getElementsByTagName('a')[0];
var submenus = listitem.getElementsByTagName('ul');
var menu = (submenus.length > 0 ? submenus[0] : null);
var hasSubMenu = (menu) ? true : false;
if (this.enableKeyboardNavigation)
this.clearSelection(listitem);
if(this.bubbledTextEvent())
// ignore bubbled text events
return;
if (listitem.closetime)
clearTimeout(listitem.closetime);
if(this.currMenu == listitem)
this.currMenu = null;
// move the focus too
if (this.hasFocus)
link.focus();
// show menu highlighting
this.addClassName(link, hasSubMenu ? this.subHoverClass : this.hoverClass);
this.lastOpen = link;
if(menu && !this.hasClassName(menu, this.subHoverClass))
var self = this;
listitem.opentime = window.setTimeout(function(){self.showSubmenu(menu);}, this.showDelay);
Spry.Widget.MenuBar.prototype.mouseOut = function (listitem, e)
var link = listitem.getElementsByTagName('a')[0];
var submenus = listitem.getElementsByTagName('ul');
var menu = (submenus.length > 0 ? submenus[0] : null);
var hasSubMenu = (menu) ? true : false;
if(this.bubbledTextEvent())
// ignore bubbled text events
return;
var related = (typeof e.relatedTarget != 'undefined' ? e.relatedTarget : e.toElement);
if(!listitem.contains(related))
if (listitem.opentime)
clearTimeout(listitem.opentime);
this.currMenu = listitem;
// remove menu highlighting
this.removeClassName(link, hasSubMenu ? this.subHoverClass : this.hoverClass);
if(menu)
var self = this;
listitem.closetime = window.setTimeout(function(){self.hideSubmenu(menu);}, this.hideDelay);
if (this.hasFocus)
link.blur();
Spry.Widget.MenuBar.prototype.getSibling = function(element, sibling)
var child = element[sibling];
while (child && child.nodeName.toLowerCase() !='li')
child = child[sibling];
return child;
Spry.Widget.MenuBar.prototype.getElementForKey = function(els, prop, dir)
var found = 0;
var rect = Spry.Widget.MenuBar.getPosition;
var ref = rect(els[found]);
var hideSubmenu = false;
//make the subelement visible to compute the position
if (els[1] && !this.hasClassName(els[1], this.MenuBarSubmenuVisible))
els[1].style.visibility = 'hidden';
this.showSubmenu(els[1]);
hideSubmenu = true;
var isVert = this.hasClassName(this.element, this.verticalClass);
var hasParent = els[0].parentNode.parentNode.nodeName.toLowerCase() == 'li' ? true : false;
for (var i = 1; i < els.length; i++){
//when navigating on the y axis in vertical menus, ignore children and parents
if(prop=='y' && isVert && (i==1 || i==2))
continue;
//when navigationg on the x axis in the FIRST LEVEL of horizontal menus, ignore children and parents
if(prop=='x' && !isVert && !hasParent && (i==1 || i==2))
continue;
if (els[i])
var tmp = rect(els[i]);
if ( (dir * tmp[prop]) < (dir * ref[prop]))
ref = tmp;
found = i;
// hide back the submenu
if (els[1] && hideSubmenu){
this.hideSubmenu(els[1]);
els[1].style.visibility = '';
return found;
Spry.Widget.MenuBar.camelize = function(str)
if (str.indexOf('-') == -1){
return str;
var oStringList = str.split('-');
var isFirstEntry = true;
var camelizedString = '';
for(var i=0; i < oStringList.length; i++)
if(oStringList[i].length>0)
if(isFirstEntry)
camelizedString = oStringList[i];
isFirstEntry = false;
else
var s = oStringList[i];
camelizedString += s.charAt(0).toUpperCase() + s.substring(1);
return camelizedString;
Spry.Widget.MenuBar.getStyleProp = function(element, prop)
var value;
try
if (element.style)
value = element.style[Spry.Widget.MenuBar.camelize(prop)];
if (!value)
if (document.defaultView && document.defaultView.getComputedStyle)
var css = document.defaultView.getComputedStyle(element, null);
value = css ? css.getPropertyValue(prop) : null;
else if (element.currentStyle)
value = element.currentStyle[Spry.Widget.MenuBar.camelize(prop)];
catch (e) {}
return value == 'auto' ? null : value;
Spry.Widget.MenuBar.getIntProp = function(element, prop)
var a = parseInt(Spry.Widget.MenuBar.getStyleProp(element, prop),10);
if (isNaN(a))
return 0;
return a;
Spry.Widget.MenuBar.getPosition = function(el, doc)
doc = doc || document;
if (typeof(el) == 'string') {
el = doc.getElementById(el);
if (!el) {
return false;
if (el.parentNode === null || Spry.Widget.MenuBar.getStyleProp(el, 'display') == 'none') {
//element must be visible to have a box
return false;
var ret = {x:0, y:0};
var parent = null;
var box;
if (el.getBoundingClientRect) { // IE
box = el.getBoundingClientRect();
var scrollTop = doc.documentElement.scrollTop || doc.body.scrollTop;
var scrollLeft = doc.documentElement.scrollLeft || doc.body.scrollLeft;
ret.x = box.left + scrollLeft;
ret.y = box.top + scrollTop;
} else if (doc.getBoxObjectFor) { // gecko
box = doc.getBoxObjectFor(el);
ret.x = box.x;
ret.y = box.y;
} else { // safari/opera
ret.x = el.offsetLeft;
ret.y = el.offsetTop;
parent = el.offsetParent;
if (parent != el) {
while (parent) {
ret.x += parent.offsetLeft;
ret.y += parent.offsetTop;
parent = parent.offsetParent;
// opera & (safari absolute) incorrectly account for body offsetTop
if (Spry.is.opera || Spry.is.safari && Spry.Widget.MenuBar.getStyleProp(el, 'position') == 'absolute')
ret.y -= doc.body.offsetTop;
if (el.parentNode)
parent = el.parentNode;
else
parent = null;
if (parent.nodeName){
var cas = parent.nodeName.toUpperCase();
while (parent && cas != 'BODY' && cas != 'HTML') {
cas = parent.nodeName.toUpperCase();
ret.x -= parent.scrollLeft;
ret.y -= parent.scrollTop;
if (parent.parentNode)
parent = parent.parentNode;
else
parent = null;
return ret;
Spry.Widget.MenuBar.stopPropagation = function(ev)
if (ev.stopPropagation)
ev.stopPropagation();
else
ev.cancelBubble = true;
if (ev.preventDefault)
ev.preventDefault();
else
ev.returnValue = false;
Spry.Widget.MenuBar.setOptions = function(obj, optionsObj, ignoreUndefinedProps)
if (!optionsObj)
return;
for (var optionName in optionsObj)
if (ignoreUndefinedProps && optionsObj[optionName] == undefined)
continue;
obj[optionName] = optionsObj[optionName];
})(); // EndSpryComponent
3
<!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>Integrated Sensors, LLC</title>
<style type="text/css">
body,td,th {
font-family: "Arial Narrow", "Arial Narrow Bold", "Arial Narrow Bold Italic", "Arial Narrow Italic";
font-size: medium;
color: #000000;
body {
background-image: url(images/_jpg%20png/background.jpg);
</style>
<link rel="shortcut icon" href="images/favicon.ico" />
<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<script type="text/javascript">
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
</script>
<link href="SpryAssets/SpryMenuBarVertical.css" rel="stylesheet" type="text/css" />
<style type="text/css">
a:link {
text-decoration: underline;
a:visited {
text-decoration: underline;
a:hover {
text-decoration: none;
a:active {
text-decoration: underline;
h1 {
font-size: large;
color: #3165C9;
</style>
</head>
<body>
<table width="617" border="0" align="center" cellpadding="2" href="images/favicon.ico" rel="favicon">
<tr>
<td width="609"><table width="600" border="0" cellpadding="2">
<tr>
<td><img src="images/sensor2.gif" width="195" height="195" align="absmiddle" /></td>
<td><img src="images/heading.gif" width="600" height="170" /></td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="817" border="0" cellpadding="0">
<tr>
<td width="200" height="35" valign="top"><ul id="MenuBar1" class="MenuBarVertical">
<li><a href="index.html"><img src="images/b2_home.gif" alt="" onmouseover=" this.src='images/b2_home_ov.gif'" onmouseout=" this.src='images/b2_home.gif'"
style="cursor:pointer;"></a> </li>
<li><a href="about_1.html" class="MenuBarItemSubmenu"><img src="images/b2_about.gif" alt="" onmouseover=" this.src='images/b2_about_ov.gif'" onmouseout=" this.src='images/b2_about.gif'"
style="cursor:pointer;"></a>
<ul>
<li><a href="about_1.html"><img src="images/bs_1.gif" alt="" onmouseover=" this.src='images/bs_1_ov.gif'" onmouseout=" this.src='images/bs_1.gif'"
style="cursor:pointer;"></a></li>
<li><a href="about_2.html"><img src="images/bs_2.gif" alt="" onmouseover=" this.src='images/bs_2_ov.gif'" onmouseout=" this.src='images/bs_2.gif'"
style="cursor:pointer;"></a></li>
<li><a href="about_3.html"><img src="images/bs_3.gif" alt="" onmouseover=" this.src='images/bs_3_ov.gif'" onmouseout=" this.src='images/bs_3.gif'"
style="cursor:pointer;"></a></li>
</ul>
</li>
<li><a href="technology_2.html" class="MenuBarItemSubmenu"><img src="images/b2_technology.gif" alt="" onmouseover=" this.src='images/b2_technology_ov.gif'" onmouseout=" this.src='images/b2_technology.gif'"
style="cursor:pointer;"></a>
<ul>
<li><a href="technology_2.html"><img src="images/bs_6.gif" alt="" onmouseover=" this.src='images/bs_6_ov.gif'" onmouseout=" this.src='images/bs_6.gif'"
style="cursor:pointer;"></a></li>
<li><a href="technology_3.html"><img src="images/bs_7.gif" alt="" onmouseover=" this.src='images/bs_7_ov.gif'" onmouseout=" this.src='images/bs_7.gif'"
style="cursor:pointer;"></a></li>
<li><a href="technology_4.html"><img src="images/bs_8.gif" alt="" onmouseover=" this.src='images/bs_8_ov.gif'" onmouseout=" this.src='images/bs_8.gif'"
style="cursor:pointer;"></a></li>
</ul>
</li>
<li><a href="#" class="MenuBarItemSubmenu"><img src="images/b2_applications.gif" alt="" onmouseover=" this.src='images/b2_applications_ov.gif'" onmouseout=" this.src='images/b2_applications.gif'"
style="cursor:pointer;"></a>
<ul>
<li><a href="applications_1.html"><img src="images/bs_10.gif" alt="" onmouseover=" this.src='images/bs_10_ov.gif'" onmouseout=" this.src='images/bs_10.gif'"
style="cursor:pointer;"></a></li>
<li><a href="applications_2.html"><img src="images/bs_11.gif" alt="" onmouseover=" this.src='images/bs_11_ov.gif'" onmouseout=" this.src='images/bs_11.gif'"
style="cursor:pointer;"></a></li>
<li><a href="applications_3.html"><img src="images/bs_12.gif" alt="" onmouseover=" this.src='images/bs_12_ov.gif'" onmouseout=" this.src='images/bs_12.gif'"
style="cursor:pointer;"></a></li>
<li><a href="applications_4.html"><img src="images/bs_13.gif" alt="" onmouseover=" this.src='images/bs_13_ov.gif'" onmouseout=" this.src='images/bs_13.gif'"
style="cursor:pointer;"></a></li>
<li><a href="applications_5.html"><img src="images/bs_14.gif" alt="" onmouseover=" this.src='images/bs_14_ov.gif'" onmouseout=" this.src='images/bs_14.gif'"
style="cursor:pointer;"></a></li>
<li><a href="applications_6.html"><img src="images/bs_15.gif" alt="" onmouseover=" this.src='images/bs_15_ov.gif'" onmouseout=" this.src='images/bs_15.gif'"
style="cursor:pointer;"></a></li>
</ul>
</li>
<li><a href="publications.html" class="MenuBarItemSubmenu"><img src="images/b2_publications.gif" alt="" onmouseover=" this.src='images/b2_publications_ov.gif'" onmouseout=" this.src='images/b2_publications.gif'"
style="cursor:pointer;"></a></li>
<li><a href="contact.html"><img src="images/b2_contact.gif" alt="" onmouseover=" this.src='images/b2_contact_ov.gif'" onmouseout=" this.src='images/b2_contact.gif'"
style="cursor:pointer;"></a></li>
</ul></td>
<td width="611" valign="top" bgcolor="#FFFFFF"><div align="justify">
<blockquote>
<h1 align="center">Background</h1>
<p>Integrated Sensors is the first company in the world to apply the high gain, high-performance advantages of low cost PDP-TV (plasma display panel) technology to radiation detection. This has resulted in the development of what is now known as the Plasma Panel Sensor (PPS), which has been called a <em>revolutionary</em> technology by U.S. government scientists. </p>
<p>Integrated Sensors with seven issued patents holds all of the core intellectual property - which is seminal in scope - on the PPS radiation detector technology. The PPS could well prove to be a transformational technology for a number of <em>multibillion</em> dollar industries, ranging from radiation therapeutics for the treatment of cancer, to medical imaging, to homeland security. </p>
<p>With a secure IP and patent position established, and an international collaborative team involving over a dozen world-class scientists, and with substantial research investment by the U.S. government, Integration Sensors is now transitioning to the commercialization of its technology.</p>
</blockquote>
</div></td>
</tr>
</table></td>
</tr>
<tr>
<td><p> </p>
<p>Copyright 2007-2011. Integrated Sensors, LLC. All rights reserved.</p></td>
</tr>
</table>
<script type="text/javascript">
var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
</script>
</body>
</html>90% of browser rendering problems are caused by invalid code. See details here:
http://validator.w3.org/check?verbose=1&uri=http%3A%2F%2Fwww.i-sensors.com%2F
You have a bunch of unclosed <img /> tags on your menus.
Nancy O.
Alt-Web Design & Publishing
Web | Graphics | Print | Media Specialists
http://alt-web.com/
http://twitter.com/altweb -
I have a problem where I have Spry Tabbed Panels 2 implemented in a Magento CMS page. In Opera, Firefox, Safari it works exactly as I want. In IE (I have IE8, but I've been told the problem also shows up in IE7) the content displays for the first tab only. The 2nd and 3rd tabs do not show the content. The web page is at http://www.gulfcoastvirtualmall.com. Here is the html for the tabbed panel:
<script src="/js/spry/SpryDOMUtils.js" type="text/javascript"></script>
<script src="/js/spry/SpryDOMEffects.js" type="text/javascript"></script>
<script src="/js/spry/SpryWidget.js" type="text/javascript"></script>
<script src="/js/spry/SpryPanelSet.js" type="text/javascript"></script>
<script src="/js/spry/SpryPanelSelector.js" type="text/javascript"></script>
<script src="/js/spry/SpryFadingPanels.js" type="text/javascript"></script>
<script src="/js/spry/SpryTabbedPanels2.js" type="text/javascript"></script>
<script src="/js/spry/plugins/TabbedPanels2/SpryFadingPanelsPlugin.js" type="text/javascript"></script>
<script src="/js/spry/plugins/TabbedPanels2/SpryTabbedPanelsKeyNavigationPlugin.js" type="text/javascript"></script>
<script src="/js/mapper/mapper.js" type="text/javascript"></script>
<!-- /* TabbedPanelsTabGroup */ #TabbedPanels2 .TabbedPanelsTabGroup { top: 1px; left: 0px; font-family: inherit; font-weight: inherit; font-size: inherit; color: #000000; background-color: transparent; border-left: solid 0px #000000; border-bottom: solid 0px #000000; border-top: solid 0px #000000; border-right: solid 0px #000000; padding: 0px 0px 0px 0px; } /* TabbedPanelsTab */ #TabbedPanels2.TabbedPanels .TabbedPanelsTab, #TabbedPanels2.VTabbedPanels .TabbedPanelsTab { font-family: inherit; font-weight: normal; font-size: 10px; color: #ffffff; background-color: #009900; border-left: solid 1px #cccccc; border-bottom: solid 1px #999999; border-top: solid 1px #999999; border-right: solid 1px #999999; padding: 4px 10px 4px 10px; } #TabbedPanels2.TabbedPanels .TabbedPanelsTab a, #TabbedPanels2.VTabbedPanels .TabbedPanelsTab a { font-family: inherit; font-weight: normal; font-size: 10px; color: #ffffff; } /* TabbedPanelsTabHover */ #TabbedPanels2.TabbedPanels .TabbedPanelsTabHover, #TabbedPanels2.VTabbedPanels .TabbedPanelsTabHover { font-family: inherit; font-weight: inherit; font-size: inherit; color: #ffffff; background-color: #33cc00; border-left: solid 1px #cccccc; border-bottom: solid 1px #999999; border-top: solid 1px #999999; border-right: solid 1px #999999; padding: 4px 10px 4px 10px; } #TabbedPanels2.TabbedPanels .TabbedPanelsTabHover a, #TabbedPanels2.VTabbedPanels .TabbedPanelsTabHover a { font-family: inherit; font-weight: inherit; font-size: inherit; color: #ffffff; } /* TabbedPanelsTabSelected */ #TabbedPanels2.TabbedPanels .TabbedPanelsTabSelected, #TabbedPanels2.VTabbedPanels .TabbedPanelsTabSelected { font-family: inherit; font-weight: inherit; font-size: 12px; color: #ffffff; background-color: #339933; border-left: solid 1px #cccccc; border-bottom: solid 1px #eeeeee; border-top: solid 1px #999999; border-right: solid 1px #999999; padding: 4px 10px 4px 10px; } #TabbedPanels2.TabbedPanels .TabbedPanelsTabSelected a, #TabbedPanels2.VTabbedPanels .TabbedPanelsTabSelected a { font-family: inherit; font-weight: inherit; font-size: 12px; color: #ffffff; } /* TabbedPanelsTabFocused */ #TabbedPanels2.TabbedPanels .TabbedPanelsTabFocused, #TabbedPanels2.VTabbedPanels .TabbedPanelsTabFocused { font-family: inherit; font-weight: inherit; font-size: inherit; color: #ffffff; background-color: #00ff00; border-left: solid 1px #cccccc; border-bottom: solid 1px #eeeeee; border-top: solid 1px #999999; border-right: solid 1px #999999; padding: 4px 10px 4px 10px; } #TabbedPanels2.TabbedPanels .TabbedPanelsTabFocused a, #TabbedPanels2.VTabbedPanels .TabbedPanelsTabFocused a { font-family: inherit; font-weight: inherit; font-size: inherit; color: #ffffff; } /* TabbedPanelsContentGroup */ #TabbedPanels2 .TabbedPanelsContentGroup { font-family: inherit; font-weight: inherit; font-size: inherit; color: #000000; background-color: #eeeeee; border-left: solid 1px #cccccc; border-bottom: solid 1px #cccccc; border-top: solid 1px #999999; border-right: solid 1px #999999; padding: 0px 0px 0px 0px; } /* TabbedPanelsContentVisible */ #TabbedPanels2 .TabbedPanelsContentVisible { font-family: inherit; font-weight: inherit; font-size: inherit; color: #000000; background-color: transparent; border-left: solid 0px #cccccc; border-bottom: solid 0px #cccccc; border-top: solid 0px #999999; border-right: solid 0px #999999; padding: 4px 12px 4px 12px; } #TabbedPanels2.BTabbedPanels .TabbedPanelsTab { border-bottom: solid 1px #999999; border-top: solid 1px #999999; } #TabbedPanels2.BTabbedPanels .TabbedPanelsTabSelected { border-top: solid 1px #999999; } #TabbedPanels2.VTabbedPanels .TabbedPanelsTabGroup { width: 10em; height: 20em; top: 1px; left: 0px; } #TabbedPanels2.VTabbedPanels .TabbedPanelsTabSelected { background-color: #339933; border-bottom: solid 1px #eeeeee; } -->
<h1 style="text-align: center;"><span style="text-decoration: underline; color: #ff6600;"><strong>Mall Stores</strong></span></h1>
<div id="TabbedPanels2">
<h2>GROUND FLOOR</h2>
<p><img class="mapper" style="border-style: none; display: block;" usemap="#gulf-coast-virtual-mall-map" src="/media/gulf-coast-virtual-mall-map.png" alt="Gulf Coast Virtual Mall Ground Floor" />
<map id="gulf-coast-virtual-mall-map" name="gulf-coast-virtual-mall-map">
<area class="noborder icolorff9900" title="Inspired Silk - Silk florist that produces custom arrangements and has a floral warehouse containing a huge selection of floral supplies." shape="rect" coords="11,151,160,206" href="http://store.inspiredsilk.com" alt="Inspired Silk" />
<area class="noborder icolorff9900" title="The Main Event has very high quality leather belts, buckles and motorcycle leathers including jackets, vests and chaps." shape="poly" coords="275,17,369,17,369,151,343,151,297,104,280,105,276,100" href="http://www.themaineventofflorida.com" alt="The Main Event has very high quality leather belts, buckles and motorcycle leathers including jackets, vests and chaps." />
<area class="noborder icolor00ff00" title="The Atrium is integrated within the Mall and is our Social Network which is open to the public." shape="poly" coords="229,136,242,121,255,120,266,129,276,121,286,121,302,134,303,147,294,157,304,168,3 03,180,291,195,274,195,267,186,260,192,245,194,230,181,229,169,239,158,229,147" href="http://social.gulfcoastvirtualmall.com" alt="The Atrium" />
<area class="noborder icolorff9900" title="VzPrints has very high quality prints of sports, famous people, actors and actresses, movies and much more." shape="poly" coords="390,203,402,203,417,217,470,218,470,233,452,234,452,245,447,250,450,256,462,259,4 48,269,389,269" href="http://www.vzprints.com" alt="VzPrints" />
<area class="noborder icolorff9900" title="Put Your Store Here - Completely turn-key solution for your online store." shape="poly" coords="8,14,8,91,159,93,160,83,147,81,148,51,127,31,103,30,103,38,88,38,88,14" href="http://www.gulfcoastvirtualmall.com/index.php/eStores/ready-to-use-host-ecommerce-site.htm l" alt="Put Your Store Here" />
<area shape="default" />
</map>
</p>
<h2>FLOOR 2</h2>
<p><img class="mapper" style="border-style: none; display: block;" usemap="#gulf-coast-virtual-mall-map-floor2" src="/media/gulf-coast-virtual-mall-map-floor2.png" alt="" />
<map id="gulf-coast-virtual-mall-map-floor2" name="gulf-coast-virtual-mall-map-floor2">
<area class="noborder icolorff9900" title="Put Your Store Here - Completely turn-key solution for your online store." shape="poly" coords="13,208,12,208,159,208,160,238,158,239,157,250,11,251" href="http://www.gulfcoastvirtualmall.com/index.php/eStores/ready-to-use-host-ecommerce-site.htm l" alt="Put Your Store here" />
<area class="noborder icolorff9900" title="Put Your Store Here - Completely turn-key solution for your online store." shape="poly" coords="370,21,369,151,418,151,417,123,419,123,420,114,484,114,484,68,452,68,451,31,460,3 1,461,18" href="http://www.gulfcoastvirtualmall.com/index.php/eStores/ready-to-use-host-ecommerce-site.htm l" alt="Put Your Store here" />
<area class="noborder icolor00ff00" title="The Atrium is integrated within the Mall and is our Social Network which is open to the public." shape="poly" coords="229,135,229,148,239,158,230,168,230,180,242,194,255,195,267,186,275,194,289,195,3 04,181,305,168,293,157,304,148,304,135,289,120,277,120,267,130,256,121,244,121" href="http://social.gulfcoastvirtualmall.com" alt="The Atrium" />
<area shape="default" />
</map>
</p>
<h2>FLOOR 3</h2>
<p><img class="mapper" style="border-style: none; display: block;" usemap="#gulf-coast-virtual-mall-map-floor3" src="/media/gulf-coast-virtual-mall-map-floor3.png" alt="" />
<map id="gulf-coast-virtual-mall-map-floor3" name="gulf-coast-virtual-mall-map-floor3">
<area class="noborder icolorff9900" title="Put Your Store Here - Completely turn-key solution for your online store." shape="poly" coords="12,252,12,294,153,295,153,252,156,252" href="http://www.gulfcoastvirtualmall.com/index.php/eStores/ready-to-use-host-ecommerce-site.htm l" alt="Put Your Store here" />
<area class="noborder icolorff9900" title="Put Your Store Here - Completely turn-key solution for your online store." shape="poly" coords="306,244,306,229,315,219,316,202,387,203,388,267,386,269,386,296,341,295,342,262,3 45,262,346,255,319,255" href="http://www.gulfcoastvirtualmall.com/index.php/eStores/ready-to-use-host-ecommerce-site.htm l" alt="Put Your Store Here" />
<area class="noborder icolor00ff00" title="The Atrium is integrated within the Mall and is our Social Network which is open to the public." shape="poly" coords="230,135,244,121,255,121,265,130,278,121,289,121,304,136,303,145,295,155,294,158,3 04,167,303,180,291,195,275,195,267,186,258,194,243,194,230,182,229,168,238,158,230,146" href="http://social.gulfcoastvirtualmall.com" alt="The Atrium" />
<area shape="default" />
</map>
</p>
</div>
<script type="text/javascript">// <![CDATA[
var TabbedPanels2 = new Spry.Widget.TabbedPanels2("TabbedPanels2", {
injectionType: "inside",
widgetID: "TabbedPanels2",
autoPlay: false,
defaultTab: 0,
enableKeyboardNavigation: true,
hideHeader: true,
tabsPosition: "bottom",
event:"click",
stopOnUserAction: true,
displayInterval: 5000,
minDuration: 300,
maxDuration: 500,
stoppedMinDuration: 100,
stoppedMaxDuration: 200,
plugIns:[]
// ]]></script>
<p> </p>
<p> </p>
<h1 style="color: #ff9900; text-decoration: underline; text-align: center;">A New Approach to Online Selling</h1>
<table style="width: 594px; height: 290px;" border="0" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td align="center" valign="middle">
<p style="text-align: center;"><a href="http://www.magento-mall.com/" target="_blank"> </a><a href="http://www.magento-mall.com/" target="_blank"><img title="Front End Demo" src="http://www.gulfcoastvirtualmall.com/index.php/admin/cms_wysiwyg/directive/key/ab5bb11d2d7f 999ec514519137cd6011/___directive/e3ttZWRpYSB1cmw9Ii9mcm9udGVuZGRlbW8uanBnIn19/" alt="Front End Demo" /></a></p>
</td>
<td> </td>
<td align="center" valign="middle">
<p style="text-align: center;"><a href="http://demo-admin.magentocommerce.com/index.php/admin/" target="_blank"> </a><a href="http://demo-admin.magentocommerce.com/index.php/admin/" target="_blank"> <img title="Admin Panel Demo" src="http://www.gulfcoastvirtualmall.com/index.php/admin/cms_wysiwyg/directive/key/ab5bb11d2d7f 999ec514519137cd6011/___directive/e3ttZWRpYSB1cmw9Ii9hZG1pbmRlbW8uanBnIn19/" alt="Admin Panel Demo" /></a></p>
</td>
</tr>
<tr style="text-align: center;">
<td>
<h3 style="text-align: center;"><span style="color: #ff9900;">Front End Demo</span></h3>
</td>
<td> </td>
<td>
<h3><span style="color: #ff9900;">Admin Panel Demo</span></h3>
</td>
</tr>
</tbody>
</table>
<p><span style="color: #ffffff;">So many of the choices out there that “claim” they have more features for your money fall short once you’ve signed up. What is actually being offered to you is a plain “vanilla” web site that looks just like many of the others you’ve seen. When you start working to get your store up and running you depend on reading documents from the hosting company’s web site. If you have to call for help you wait on hold and when you finally get someone on the phone they can’t answer your questions. You finally get your web site set up, your products loaded, but no one buys anything. You can’t tell if people are really even able to find your store. After spending hundreds of dollars you’re frustrated and angry. You should be. Now wouldn’t it be great to have a site that was all set up for you, ready for your products to be entered? And of course since you’ve decided to market your products online, it would be great if this site had a way to put your products in front of people looking for them. And last but certainly not least, it would be really nice to be able to pick up the phone and have a real person answer that is knowledgeable and really cares about helping you. It isn’t a dream any more, it has become reality.</span></p>
<p> </p>
<h3 style="text-align: center;"><span style="color: #ff9900;">An Overview of Our Solution Compared to Other Hosting Solutions</span></h3>
<h4> </h4>
<h4 style="text-align: center;"><img src="/media/upload/image/Features1.png" border="0" alt="" hspace="0" width="350" height="211" align="middle" /></h4>
<h4 style="text-align: center;"><img src="/media/upload/image/Features2.png" border="0" alt="" hspace="0" width="350" height="233" align="middle" /> <img src="/media/upload/image/Features3.png" border="0" alt="" hspace="0" width="350" height="243" align="middle" /></h4>
<h4> </h4>
<h3><span style="color: #ff9900;">Enterprise Class e-Commerce</span></h3>
<p><span style="color: #ffffff;">The software running the Mall site and all of the stores is new written by a commercial software company that specializes in e-commerce. Although the software is new it is extremely stable and has features other e-commerce software can’t match.</span></p>
<h4> </h4>
<h3><span style="color: #ff9900;">Feature Rich</span></h3>
<p><span style="color: #ffffff;">Getting past the shopping cart which is the one common thread among all e-commerce software there are many store owner and customer centric features. To start, you need to get your products in front of people that are looking for them. The system uploads your products to Google Merchant Center (formerly Froogle). If you change a price, an item goes out of stock the system automatically updates Google. The software has the ability to use almost any payment gateway. We chose PayPal as our initial offering since almost everyone is familiar with it. The shipping portion of the software allows a customer, in real time to find out (through an interface to the major shipping companies) what it costs for all of the shipping options available. Automated email communication with your customers which is triggered by you processing your orders. Unlike other e-commerce offerings, we do not limit how many products you can market or how many photos you use. The software allows you to create “configurable” products (multiple colors and sizes), bundled products (like custom built computers) where the customer can choose which options or sizes and colors they want. The system takes care of price differences as well with these types of product. And finally, although your online store is a business and businesses require time and energy to be successful the system emails you when you receive an order. You don’t have to stare at the screen waiting for orders. By now you’re probably thinking this is going to cost a fortune. Well, it doesn’t. We charge a $75.00 one time setup fee which also gives you 2 dedicated hours of training when you start. Each month you’ll be billed $50.00 and 3% (cumulative) of your transactions. The only other cost would be for templates to change the look and feel of your store. If you need an e-commerce site you owe it to yourself to talk it over with us.</span></p>
<h4> </h4>
<h3><span style="color: #ff9900;">Why A Virtual Mall?</span></h3>
<p><span style="color: #ffffff;">As with any other venture in life, strength comes in numbers or groups. People want “one stop shopping”, search engines love links and content rich sites. Grouping online stores creates an environment where customers will jump from store to store. Your products will be seen by more people. We also give you a site where you can see not just how many people, but where they are, where they came from, what search terms they used and how long they stayed along with much more information critical to make your business a success. The concept is simple, we do all the configuration and support you. You focus on your business. The link provided below is the front end of the mall. Go have a look, go through the stores. When you’re ready to move forward with a store or want more information, call or email us. The systems running the mall are owned by the company and are located on the company’s property. We have up to 15MB of network bandwidth which is scalable to 30MB (that’s quite a bit). As the mall grows we will monitor and add additional systems and network bandwidth to maintain the same level of service you enjoy today.</span></p>
I've tried everything I can think of to get this woking 100% and am getting a bit frustrated with it. Any help would be really appreciated!!!!
Thanks in advance!Hi,
It is hard to guess where you have gone wrong with you modified CSS without actually seeing the code.
Have a look here for more background info.
I hope this helps.
Ben -
Does Spry meet every requirement of this project?
Hello everyone,
I can’t decide whether Spry can be used in my project
since I am a newbie in the Ajax world.
The main task of this project relates to online examining in
all middle schools of a province. The structure of each testing
paper is rather simple. It contains only 20 to 30 single choice or
multiple-choice questions. Once a student finishes a test paper, he
or she can press the Submit button to transmit all the answers to
the server for further processing.
The requirements of my project are as follows,
1) Calling CFC directly from within HTML file and easily to
handle the result returned from server in the client side. The
reason for using HTML file to represent a test paper is to
accelerate transmission speed.
2) Having full control over DOM elements, especially the
radio group buttons and checkboxes. If a student presses the Submit
button while he or she does not entirely finish the test paper, the
submission will be rejected. The browser gathers all the unanswered
questions via iterating all the radio group buttons to prompt the
student to do them again.
3) Making the radio button and checkbox to have a bit more
attractive appearance. The ordinary look and feel of these UI
elements is too unobtrusive.
4) Minimizing the size of the HTML file as smaller as
possible, so the size of JavaScript files including in the HTML
file should be smaller.
5) Transmitting the student’s information along with
the test paper answers. When submitting, the content passes from
the student to the server containing not only all answers but also
the student’s name, the client machine’s IP address and
the total elapsed time for finishing the test paper.
6) Having a small area in the test paper to receive the real
time messages from the teachers, which causes the HTML file to
access the server periodically.
So, Can I use Spry to accomplish all the requirements above?
Or maybe there is another better Ajax framework I should take.
Thank you in advance!
AlisaHello,
From the sounds of your post, you are not a newbie to web
dev. Here's the short answer. NO.
The long answer is "YES if you massage it to work".
As you have pointed out, you are mixing server-side with
client-side scripting. Spry is client-side.
It's up to you to determine what parts of you web app (the
test) you want handled by the server
vs. the browser.
Spry reads XML files so if you want to pass data to Spry via
the server, you can output in XML
and pass an event for Spry to update every second (or some
other event you desire). Good for
a live message que.
If you want to make snazzy UI form objects you can get a lot
of control from CSS. But as a fall back
make them in photoshop as image swaps.
20-30 question test page is not going to be a big deal for
bandwidth. AJAX coding is cached so if you
have multiple pages, the script can be reused from the
browser cache (saves on re-downloading the same file).
Grabbing IP's and time between request can be handled in a
multitude of ways either by the server, client or combo.
I recommend using a cookie to set the time start, build in a
timer on the page with js. and then validate on the server by
reading the POST/ GET, enviromental variables, and cookie. But
there are other ways...that's just my way.
In conclusion, there is no magic pill that will do everything
you want. You'll have to mix and match technology from AJAX, CFC,
HTML, JS, CSS, XML, DHTML, SQL, and whatever else you need to make
it do what you want.
Cheers,
JS -
I'm using loadurl to build a chat application.
quote:
var cTimer;
cTimer = setTimeout('updatechat();',3000);
x = null;
function sendchat() {
document.getElementById('inputtext').focus();
document.inputs.inputtext.value = "";
updatechat();
function updatechat() {
currentTime = new Date();
time = currentTime.getTime();
clearInterval(cTimer);
request = Spry.Utils.loadURL("GET",
"hubchat.php?function=updatechat&sid=$sid&time=" + time,
false, ChatSuccessCallback, {errorCallback: ChatErrorCallback });
function ChatSuccessCallback(request) {
if (request.xhRequest.responseText!='') {
x=document.getElementById('chatbox');
Spry.Utils.setInnerHTML('chatbox',
x.innerHTML+request.xhRequest.responseText );
document.getElementById('chatbox').scrollTop=document.getElementById('chatbox').scrollHeig ht;
cTimer = setTimeout('updatechat()', 3000);
request=null;
x=null;
function ChatErrorCallback(request) {
cTimer = setTimeout('updatechat()', 3000);
Here is my html:
quote:
<div id="chatbox" class="chatbox">
</div>
<div id="input" class="input">
<form action='hubchat.php' method='GET' name='inputs'
id='inputs' onsubmit="return Spry.Utils.submitForm('inputs',
sendchat);" style="display: inline;">
<input
name="inputtext" id="inputtext" type="text" class="textfield"
size="69" maxlength="300" />
<input type='submit' name='submit' id='submit'
value='Submit' class='thead' >
<input name='function' type='hidden' value='sendchat'
/>
<input name='sid' type='hidden' value='$sid' />
</form></div>
$sid is php generated. All it really means is what 'room' the
user is in.
The loadURL function calls a php script that uses PHP
sessions to only return the lines of text from a database that are
newer than the last time updatechat was requested. This uses less
bandwidth than using an entire dataset, the response is blank if
there are no new messages.
The problem I am seeing is that each time my updatechat
function is ran, the memory usage goes up. As you can see in my
javascript, I am running that function every 3 seconds. The memory
that is being used for each call never gets released until the
browser is closed.
This is fine if you only have the page loaded for 30-60
minutes. If you mess around and leave your browser window open
overnight, you will wake up to see IE consuming almost 200,000K of
ram. Ouch!
Does anybody see anything in my javascript that can be
changed to be easier on memory?I'm experiencing these issues too. I've tried all the usual
tricks to bypass IE's caching but to no avail.
I'm currently working on a system monitoring application,
which needs to refresh the xml every 5 seconds. Given the above
issues, i'm having to resort to Firefox in order to run properly
and not to over inflate the memory footprint. -
Excuse me for sounding like a wuss, but it seems that the new
widgets like Tooltip include a bunch of instructions about how to
add the container and the constructor script in Code View. Isn't
one of the main points of the included widgets to use the WYSIWYG
interface of Dreamweaver so you don't have to code everything.
I would have thought that when Adobe came out with new
widgets, they would have done so in a way that worked like
extensions, where there were properties to set for things to work.
Not where you would copy files into directories, and then use
sample code to learn syntax.
This is not the reason that people purchase Dreamweaver. I
have just spent 45 minutes learning code for a Spry tooltip widget,
where I could have purchased an extension to do the same thing. I
did not buy Dreamweaver CS3 so I can spend my days coding pages
every time I want a tooltip to show up.
I would rather use Spry. I am just confused as to why the
original Spry widgets are so user friendly, and the new ones are
not simply something updated within the program having their own
toolbar buttons.
Any ideas or suggestions?
Thanks!Hi Bubba,
Allow me to explain.
While related, the DW deam is separate from the Spry team.
The Spry team designs and releases features and widgets on their
schedule. DW has a much longer schedule than Spry and also, the
work involved in getting first class widget support takes a long
time. It has to be built and tested and that can take many weeks.
The DW team is busy building the next version and they don't
have the bandwidth to keep up with the Spry team as far as widget
support. So there will always be a lag between the widgets that
Spry has and the widgets that DW supports.
That being said, we, along with many of you, do not like this
widget disparity. We are taking steps to solve this, but I can't
say exactly what those plans are or when you will see the results,
but we are doing some cool widget work on the DW side that you can
look forward to.
And, there is nothing wrong with learning a little code!
Hope this helps.
Donald Booth
Adobe Spry Team -
Spry Collapsible panel - open and closed default question...
I am using a Spry Collapsible panel in a vertical nav menu (DW CS4) and it's in a template for my site. I want it to be closed as default on the Home page, but when a visitor clicks to open it and selects their option, I would like it to remain open on the selected page - Is there a way to do this?
Thank you all!
AzaCheck out the examples on this page: http://www.spry-it.com/examples/spry-widget-cookie-history/#collapsiblepanel
-
Spry menu bar woes (add submenu levels and edit width)
So i need some spry menu bar help. Apparently as a graphic designer i'm also expected to webdesign, and while i can solve most problems with a good googling, i seem to be at my wit's end fo this one. So the site i'm doing has a header ith a horizontal spry pop-up menubar (in Dreamweaver CS4). But some problems arise: when i manually add another submenu level, they don't show up in chrome or FF, they do werk perfectly in IE6. I just add the following code to the codepage:
<li><a href="#" class="MenuBarItemSubmenu">audio equipment</a> <ul> <li><a href="#">Digital Matrix Systems</a></li> <ul> <li><a href="#">R2 Digital Audio Matrix</a></li> </ul> <li><a href="#">pre-amplifiers & mixers</a></li> <ul> <li><a href="#">PMX124</a></li> </ul>
the PMX never pops open in FF an chrome.. Should i be adding anything else to another part of the code? i'd like my submenu text to have a slight indent? How ever, when i add the indent to ul.menubarhorizontal ul , it elongates the submeny boxes in IE6, while looking normal (width) in chrome and FF. WHat part of the CSS style should i change to just have the text scoot over a bit without it really affecting the box layout? ALso, if anyone could tell me how to add a wee bit of spacing above the text (and beneath), i'd be eternally gratefull. Also, how do i change the with of the submenus? seing as my main buttons are images, but the names i ned to put in my submenus are turning out to be pretty long...
HTML code for the menu:
<tr> <td><ul id="MenuBar1" class="MenuBarHorizontal"> <li><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Products','','images/knoppenrollover_01.jpg',1)"><img src="images/knoppenbalk_01.jpg" name="Products" width="169" height="41" border="0" id="Products" /></a> <ul> <li><a href="#" class="MenuBarItemSubmenu">audio equipment</a> <ul> <li><a href="#">Digital Matrix Systems</a></li> <ul> <li><a href="#">R2 Digital Audio Matrix</a></li> </ul> <li><a href="#">pre-amplifiers & mixers</a></li> <ul> <li><a href="#">PMX124</a></li> </ul> <li><a href="#">music Sources</a></li> <li><a href="#">amplifiers</a></li> <li><a href="#">paging</a></li> <li><a href="#">speakers</a></li> <li><a href="#">microphones</a></li> </ul> </li> <li><a href="#">racks and stands</a></li> <li><a href="#">cables</a></li> </ul> </li> <li><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Company','','images/knoppenrollover_02.jpg',1)"><img src="images/knoppenbalk_02.jpg" name="Company" width="165" height="41" border="0" id="Company" /></a> <ul> <li><a href="#">Who are we?</a></li> <li><a href="#">history</a></li> <li><a href="#">contact us</a></li> <li><a href="#">philosophy</a></li> <li><a href="#">careers</a></li> </ul> </li> <li><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('news','','images/knoppenrollover_03.jpg',1)"><img src="images/knoppenbalk_03.jpg" name="news" width="166" height="41" border="0" id="news" /></a></li> <li><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('projects','','images/knoppenrollover_04.jpg',1)"><img src="images/knoppenbalk_04.jpg" name="projects" width="166" height="41" border="0" id="projects" /></a></li> <li><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Downloads','','images/knoppenrollover_05.jpg',1)"><img src="images/knoppenbalk_05.jpg" name="Downloads" width="165" height="41" border="0" id="Downloads" /></a> <ul> <li><a href="#">catalogs</a> </li> <li><a href="#">manuals</a></li> <li><a href="#">software</a></li> <li><a href="#">documents</a></li> <li><a href="#">pricelists</a></li> </ul> </li> <li><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Contact','','images/knoppenrollover_06.jpg',1)"><img src="images/knoppenbalk_06.jpg" name="Contact" width="169" height="41" border="0" id="Contact" /></a></li> </ul></td>
sprymenuhorizontal.css:
@charset "UTF-8"; /* SpryMenuBarHorizontal.css - version 0.6 - Spry Pre-Release 1.6.1 */ /* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */ /******************************************************************************* LAYOUT INFORMATION: describes box model, positioning, z-order *******************************************************************************/ /* The outermost container of the Menu Bar, an auto width box with no margin or padding */ ul.MenuBarHorizontal { margin: 0; padding: 0; list-style-type: none; font-size: 14px; cursor: default; width: 1010px; font-family: Arial, Helvetica, sans-serif; } /* Set the active Menu Bar with this class, currently setting z-index to accomodate IE rendering bug: [url]http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html[/url] */ ul.MenuBarActive { z-index: 1000; } /* Menu item containers, position children relative to this container and are a fixed width */ ul.MenuBarHorizontal li { margin: 0; padding: 0; list-style-type: none; font-size: 100%; position: relative; text-align: left; cursor: pointer; float: left; } /* Submenus should appear below their parent (top: 0) with a higher z-index, but they are initially off the left side of the screen (-1000em) */ ul.MenuBarHorizontal ul { list-style-type: none; font-size: 100%; z-index: 1020; cursor: default; width: 166px; position: absolute; left: -1000em; background-color: #6C6C6C; height: 0px; margin-top: 0px; margin-right: 0em; margin-bottom: 10px; margin-left: 0em; text-align: right; text-indent: 0em; padding-top: 0px; padding-right: 0em; padding-bottom: 0px; padding-left: 0px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #666; border-right-color: #666; border-bottom-color: #666; border-left-color: #666; } /* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to auto so it comes onto the screen below its parent menu item */ ul.MenuBarHorizontal ul.MenuBarSubmenuVisible { left: auto; height: 0px; } /* Menu item containers are same fixed width as parent */ ul.MenuBarHorizontal ul li { width: 166px; } /* Submenus should appear slightly overlapping to the right (95%) and up (-5%) */ ul.MenuBarHorizontal ul ul { position: absolute; height: 41px; margin-top: 0%; margin-right: 0%; margin-bottom: 0px; margin-left: 162px; float: right; } /* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */ ul.MenuBarHorizontal ul.MenuBarSubmenuVisible ul.MenuBarSubmenuVisible { left: auto; top: 0; } /******************************************************************************* DESIGN INFORMATION: describes color scheme, borders, fonts *******************************************************************************/ /* Submenu containers have borders on all sides */ ul.MenuBarHorizontal ul { border: 1px solid #666; background-color: #6C6C6C; height: 0px; padding-left: 0em; } /* Menu items are a light gray block with padding and no text decoration */ ul.MenuBarHorizontal a { display: block; cursor: pointer; background-color: #6C6C6C; padding: 0em; color: #FC0; text-decoration: none; font-size: 14px; margin-left: 0em; } /* Menu items that have mouse over or focus have a blue background and white text */ ul.MenuBarHorizontal a:hover, ul.MenuBarHorizontal a:focus { background-color: #FC0; color: #FFF; } /* Menu items that are open with submenus are set to MenuBarItemHover with a blue background and white text */ ul.MenuBarHorizontal a.MenuBarItemHover, ul.MenuBarHorizontal a.MenuBarItemSubmenuHover, ul.MenuBarHorizontal a.MenuBarSubmenuVisible { background-color: #FC0; color: #FFF; } /******************************************************************************* SUBMENU INDICATION: styles if there is a submenu under a given menu item *******************************************************************************/ /* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */ ul.MenuBarHorizontal a.MenuBarItemSubmenu { background-image: url(SpryMenuBarDown.gif); background-repeat: no-repeat; background-position: 98% 50%; } /* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */ ul.MenuBarHorizontal ul a.MenuBarItemSubmenu { background-image: url(SpryMenuBarRight.gif); background-repeat: no-repeat; background-position: 98% 50%; } /* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */ ul.MenuBarHorizontal a.MenuBarItemSubmenuHover { background-image: url(SpryMenuBarDownHover.gif); background-repeat: no-repeat; background-position: 98% 50%; } /* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */ ul.MenuBarHorizontal ul a.MenuBarItemSubmenuHover { background-image: url(SpryMenuBarRightHover.gif); background-repeat: no-repeat; background-position: 98% 50%; } /******************************************************************************* BROWSER HACKS: the hacks below should not be changed unless you are an expert *******************************************************************************/ /* HACK FOR IE: to make sure the sub menus show above form controls, we underlay each submenu with an iframe */ ul.MenuBarHorizontal iframe { position: absolute; z-index: 1010; filter:alpha(opacity:0.1); } /* HACK FOR IE: to stabilize appearance of menu items; the slash in float is to keep IE 5.0 from parsing */ @media screen, projection { ul.MenuBarHorizontal li.MenuBarItemIE { display: inline; f\loat: left; background: #FFF; } }[/SPOILER] any help would be greatly appreciated, as i've been fidgiting with this thing for 2 days now, to no satisfying effect...since the layout of the pasted text got all weird, here i'm trying it again.
sprymenubarhorizontal.css:
@charset "UTF-8";
/* SpryMenuBarHorizontal.css - version 0.6 - Spry Pre-Release 1.6.1 */
/* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */
LAYOUT INFORMATION: describes box model, positioning, z-order
/* The outermost container of the Menu Bar, an auto width box with no margin or padding */
ul.MenuBarHorizontal
margin: 0;
padding: 0;
list-style-type: none;
font-size: 14px;
cursor: default;
width: 1010px;
font-family: Arial, Helvetica, sans-serif;
/* Set the active Menu Bar with this class, currently setting z-index to accomodate IE rendering bug: http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html */
ul.MenuBarActive
z-index: 1000;
/* Menu item containers, position children relative to this container and are a fixed width */
ul.MenuBarHorizontal li
margin: 0;
padding: 0;
list-style-type: none;
font-size: 100%;
position: relative;
text-align: left;
cursor: pointer;
float: left;
/* Submenus should appear below their parent (top: 0) with a higher z-index, but they are initially off the left side of the screen (-1000em) */
ul.MenuBarHorizontal ul
list-style-type: none;
font-size: 100%;
z-index: 1020;
cursor: default;
width: 166px;
position: absolute;
left: -1000em;
background-color: #6C6C6C;
height: 0px;
margin-top: 0px;
margin-right: 0em;
margin-bottom: 10px;
margin-left: 0em;
text-align: right;
text-indent: 0em;
padding-top: 0px;
padding-right: 0em;
padding-bottom: 0px;
padding-left: 0px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: #666;
border-right-color: #666;
border-bottom-color: #666;
border-left-color: #666;
/* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to auto so it comes onto the screen below its parent menu item */
ul.MenuBarHorizontal ul.MenuBarSubmenuVisible
left: auto;
height: 0px;
/* Menu item containers are same fixed width as parent */
ul.MenuBarHorizontal ul li
width: 166px;
/* Submenus should appear slightly overlapping to the right (95%) and up (-5%) */
ul.MenuBarHorizontal ul ul
position: absolute;
height: 41px;
margin-top: 0%;
margin-right: 0%;
margin-bottom: 0px;
margin-left: 162px;
float: right;
/* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */
ul.MenuBarHorizontal ul.MenuBarSubmenuVisible ul.MenuBarSubmenuVisible
left: auto;
top: 0;
DESIGN INFORMATION: describes color scheme, borders, fonts
/* Submenu containers have borders on all sides */
ul.MenuBarHorizontal ul
border: 1px solid #666;
background-color: #6C6C6C;
height: 0px;
padding-left: 0em;
/* Menu items are a light gray block with padding and no text decoration */
ul.MenuBarHorizontal a
display: block;
cursor: pointer;
background-color: #6C6C6C;
padding: 0em;
color: #FC0;
text-decoration: none;
font-size: 14px;
margin-left: 0em;
/* Menu items that have mouse over or focus have a blue background and white text */
ul.MenuBarHorizontal a:hover, ul.MenuBarHorizontal a:focus
background-color: #FC0;
color: #FFF;
/* Menu items that are open with submenus are set to MenuBarItemHover with a blue background and white text */
ul.MenuBarHorizontal a.MenuBarItemHover, ul.MenuBarHorizontal a.MenuBarItemSubmenuHover, ul.MenuBarHorizontal a.MenuBarSubmenuVisible
background-color: #FC0;
color: #FFF;
SUBMENU INDICATION: styles if there is a submenu under a given menu item
/* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal a.MenuBarItemSubmenu
background-image: url(SpryMenuBarDown.gif);
background-repeat: no-repeat;
background-position: 98% 50%;
/* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal ul a.MenuBarItemSubmenu
background-image: url(SpryMenuBarRight.gif);
background-repeat: no-repeat;
background-position: 98% 50%;
/* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal a.MenuBarItemSubmenuHover
background-image: url(SpryMenuBarDownHover.gif);
background-repeat: no-repeat;
background-position: 98% 50%;
/* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal ul a.MenuBarItemSubmenuHover
background-image: url(SpryMenuBarRightHover.gif);
background-repeat: no-repeat;
background-position: 98% 50%;
BROWSER HACKS: the hacks below should not be changed unless you are an expert
/* HACK FOR IE: to make sure the sub menus show above form controls, we underlay each submenu with an iframe */
ul.MenuBarHorizontal iframe
position: absolute;
z-index: 1010;
filter:alpha(opacity:0.1);
/* HACK FOR IE: to stabilize appearance of menu items; the slash in float is to keep IE 5.0 from parsing */
@media screen, projection
ul.MenuBarHorizontal li.MenuBarItemIE
display: inline;
f\loat: left;
background: #FFF; -
How can I add more than one same spry menu (eg. collapsible menu) with in different styles (font size, color, background, etc) on current page?
Hi Nancy,
This screenshot was only for imagination. A part of the code (not all) is below. In the code there are some background images but they are not seem in live mode.
<!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></title>
<link href="css/my_site.css" rel="stylesheet" type="text/css" />
<link href="SpryAssets/SpryTabbedPanels.css" rel="stylesheet" type="text/css"/>
<link href="SpryAssets/SpryCollapsiblePanel.css" rel="stylesheet" type="text/css" />
<script src="SpryAssets/SpryTabbedPanels.js" type="text/javascript"></script>
<script src="SpryAssets/SpryCollapsiblePanel.js" type="text/javascript"></script>
<style>
#CollapsiblePanel1 .CollapsiblePanelOpen .CollapsiblePanelTab {
background-color: #003366;
font-size: 18px;
line-height: 52px;
color: #FFF;
#CollapsiblePanel1 .CollapsiblePanelTabHover .CollapsiblePanelTab {
background-color: #003366;
color: #FFF;
text-shadow: 1px 1px #000;
font-weight: bold;
line-height: 52px;
#CollapsiblePanel1 .CollapsiblePanelClosed .CollapsiblePanelTab {
background-color: #C3CFDF;
border-radius: 5px 5px 0px 0px;
color: #999
text-shadow: 1px 1px #000;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 18px;
font-weight: bold;
line-height: 52px;
#CollapsiblePanel2 .CollapsiblePanelOpen .CollapsiblePanelTab {
background-image: url(images/international.jpg);
background-repeat: no-repeat;
font-size: 18px;
line-height: 52px;
color: #FFF;
#CollapsiblePanel2 .CollapsiblePanelTabHover .CollapsiblePanelTab {
background-color: #003366;
color: #FFF;
text-shadow: 1px 1px #000;
font-weight: bold;
background-image: url(images/TR_Col-WEB.png);
background-repeat: no-repeat;
line-height: 52px;
#CollapsiblePanel2 .CollapsiblePanelClosed .CollapsiblePanelTab {
background-color: #C3CFDF;
border-radius: 5px 5px 0px 0px;
color: #999
text-shadow: 1px 1px #000;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 18px;
font-weight: bold;
background-image: url(images/TR_Gray2-WEB.png);
background-repeat: no-repeat;
line-height: 52px;
#CollapsiblePanel2 .CollapsiblePanelContent {
background-color: blue;
#CollapsiblePanel3 .CollapsiblePanelOpen .CollapsiblePanelTab {
background-image: url(images/TR_Col-WEB.png);
background-repeat: no-repeat;
font-size: 18px;
line-height: 52px;
color: #FFF;
#CollapsiblePanel3 .CollapsiblePanelTabHover .CollapsiblePanelTab {
background-color: #003366;
color: #FFF;
text-shadow: 1px 1px #000;
font-weight: bold;
background-image: url(images/TR_Col-WEB.png);
background-repeat: no-repeat;
line-height: 52px;
#CollapsiblePanel3 .CollapsiblePanelClosed .CollapsiblePanelTab {
background-color: #C3CFDF;
border-radius: 5px 5px 0px 0px;
color: #999
text-shadow: 1px 1px #000;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 18px;
font-weight: bold;
background-image: url(images/TR_Gray2-WEB.png);
background-repeat: no-repeat;
line-height: 52px;
#CollapsiblePanel4 .CollapsiblePanelOpen .CollapsiblePanelTab {
background-image: url(images/TR_Col-WEB.png);
background-repeat: no-repeat;
font-size: 18px;
line-height: 52px;
color: #FFF;
#CollapsiblePanel4 .CollapsiblePanelTabHover .CollapsiblePanelTab {
background-color: #003366;
color: #FFF;
text-shadow: 1px 1px #000;
font-weight: bold;
background-image: url(images/TR_Col-WEB.png);
background-repeat: no-repeat;
line-height: 52px;
#CollapsiblePanel4 .CollapsiblePanelClosed .CollapsiblePanelTab {
background-color: #C3CFDF;
border-radius: 5px 5px 0px 0px;
color: #999
text-shadow: 1px 1px #000;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 18px;
font-weight: bold;
background-image: url(images/TR_Gray2-WEB.png);
background-repeat: no-repeat;
line-height: 52px;
#CollapsiblePanel5 .CollapsiblePanelOpen .CollapsiblePanelTab {
background-image: url(images/TR_Col-WEB.png);
background-repeat: no-repeat;
font-size: 18px;
line-height: 52px;
color: #FFF;
#CollapsiblePanel5 .CollapsiblePanelTabHover .CollapsiblePanelTab {
background-color: #003366;
color: #FFF;
text-shadow: 1px 1px #000;
font-weight: bold;
background-image: url(images/TR_Col-WEB.png);
background-repeat: no-repeat;
line-height: 52px;
#CollapsiblePanel5 .CollapsiblePanelClosed .CollapsiblePanelTab {
background-color: #C3CFDF;
border-radius: 5px 5px 0px 0px;
color: #999
text-shadow: 1px 1px #000;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 18px;
font-weight: bold;
background-image: url(images/TR_Gray2-WEB.png);
background-repeat: no-repeat;
line-height: 52px;
</style> -
How can I get a menu link to show active state in Spry?
I want to have my Spry menu bar show the page I am on as a highlighted with background-color and text-color being highlighted and different than the rest of the menu bar. It seems that there are two ways that people talk about doing this.
One is to modify the a:hover and a:focus styles in the Spry assets. If this is the answer, I am missing something. After much experimentation, I actually created a style for a:hover (which is rollover only) and a:focus (which is when you click on the bar). It has no bearing on the state of the menu when it is showing the page as the page the user is on. If someone can give me a clue whether the CSS in Spry assets is the way to go, please provide specific code that would go in a specific place. Generalities are not helping me go to a specific solution.
The other way to go seems to give the body an ID on each page. There is a thread here: <http://www.highdots.com/forums/macromedia-dreamweaver/using-css-highlight-current-page-227 823.html>
It says:
"Example:
<body id="home">
This is because the CSS is:
#home #menu .home a
background-color:#ED2424;
color: #E7E63E;
That means color the <a> tag with the class home, inside the #menu container,
inside the #home container which is the body.
Without giving the body an ID, there is no "home" container so the CSS doesn't
apply to anything."
If this is correct, where do each of these snippets of code actually go? Does this apply to Spry? I would assume that the body id is in Source Code, and the others are in CSS. But where?
There is also another solution posted elsewhere: <http://css-tricks.com/id-your-body-for-greater-css-control-and-specificity/>
What specific advice can you provide to get a web site to do something that is pretty basic from the perspective of the user?
Nv<!DOCTYPE html>
<html>
<head>
<title>Untitled Document</title>
<link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet">
<style>
ul.MenuBarHorizontal li.MenuBarActive a {
background: #F00;
font-weight: bold;
</style>
</head>
<body>
<ul id="MenuBar1" class="MenuBarHorizontal">
<li class="MenuBarActive"><a class="MenuBarItemSubmenu" href="#">Home</a>
<ul>
<li><a href="#">Item 1.1</a></li>
<li><a href="#">Item 1.2</a></li>
<li><a href="#">Item 1.3</a></li>
</ul>
</li>
<li><a href="#">Item 2</a></li>
<li><a class="MenuBarItemSubmenu" href="#">Item 3</a>
<ul>
<li><a class="MenuBarItemSubmenu" href="#">Item 3.1</a>
<ul>
<li><a href="#">Item 3.1.1</a></li>
<li><a href="#">Item 3.1.2</a></li>
</ul>
</li>
<li><a href="#">Item 3.2</a></li>
<li><a href="#">Item 3.3</a></li>
</ul>
</li>
<li><a href="#">Item 4</a></li>
</ul>
<script src="SpryAssets/SpryMenuBar.js"></script>
<script>var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});</script>
</body>
</html>
So that you do not have to repeat the style rules in every document, add the rules to the existing SpryMenuBarHorizontal.css. The class is added to the menu item that has the current document, in our case above it will be index.html or similar. The class will be placed on menu items that correspond to the current page.
Gramps -
Using a variable in Spry conditional tests included in a Spry Tooltip
I have the following code:
<div spry:region="company" id="tooltip">
<div spry:repeat="company" spry:choose="spry:choose">
<div spry:when="'{name}'==memberName">
<table>
<tr>
<td
align="center"><h2>{name}</h2></td>
</tr>
<tr>
<td align="center"><img src="{headshot}"
alt="{name}" width="227" height="350" /></td>
</tr>
<tr>
<td align="center">{description}</td>
</tr>
</table>
</div>
</div>
</div>
<script type="text/javascript">
var tooltip_trigger_one = new
Spry.Widget.Tooltip("tooltip","#trigger", {showDelay: 200,
hideDelay: 200, offsetX: 250, offsetY: 200} );
</script>
where the variable "memberName" is set elsewhere to a value
that matches one of the occurrences in the column "name" in the
dataset "company". I can see, using debugging tools, that the
variable is being set correctly. But.... when the tooltip is
triggered, only a small few-pixel square box opens up.
If, instead of using the variable "memberName" in:
<div spry:when="'{name}'==memberName">
I use a string, as in
<div spry:when="'{name}'=='John Doe'">
then the code works correctly and I get a large tootlip
showing me the correct information for that member of the company.
I have tried different tests (spry:if and spry:test for
instance), tried various combinations of quotes and parenthesis and
tried placing the code at various places both inside and outside of
the <body> -- but always get the same results.
Is it not possible to test against a variable or am I doing
something else incorrectly?
Thanks,
JanetOK.... some progress to report.
I was setting memberName onmouseover-- which is also the
trigger for the tooltip-- thusly:
<p><em onmouseover="memberName='John Doe'"
id="trigger">John Doe</em></p>
It seems that the variable is being set, but too late, as the
trigger has already caused the div... id="tooltip"> to be
evaluated with "memberName" not equal to any of the names in the
dataset. I tried using a function call to set "memberName" and
tried putting the onmouseover in the <p> tag and leaving the
trigger id in the <em> tag. but neither of those appear to
change the outcome. "memberName" still appears to be set to the
value I initialized it to up the the <head> section at the
time the tooltip <div> is evaluated. Although it is set
correctly if I check it's value using Firebug after I have
mouse-overed it.
Incidentally, using a Firebug breakpoint just before the
<div spry:when...> and checking the value of memberName was
how I discovered that "memberName" still seemed to have a value of
"initialized" which is what I set it to up in the <head>
section.
Having written all of this, I am wondering though, shouldn't
the value of "memberName" be equal to "John Doe" the second time I
mouseover it? Or, if there are more than one trigger "names" on the
page, shouldn't "memberName" be equal to the name of the previous
trigger that I moused-over? And with memberName having a legitimate
value at that point, shouldn't the tooltip now show the correct
display information rather than just that little few pixel square
box that I am getting when I mouse-over the trigger name?
Clearly there is something that I just am not understanding.
Janet -
Generate Photo Gallery XML for Spry with Adobe Bridge
Wanted to post a note to what I've discovered/worked out -- a
way to
generate a very useful photos.xml from Adobe Bridge. If you
use Bridge,
it's very easy to add titles, keywords, ratings -- all kinds
of metadata
that one might use in a photo gallery. Here it is in case
anyone wants
to use.
The script is based on one I found at the Adobe User to User
Bridge
Scripting Forum for exporting a CSV file.
Note 1: this particular script doesn't take into account
CDATA that
might exist in your metadata, like ampersands in your title.
I've just
avoided using those, but you could also have the script write
out a
CDATA node for that info instead.
Note 2: this script does not write out a thumbpath,
thumbwidth or
thumbheight attribute. But usually the thumbpath is the exact
same as
the regular "path" attribute, and the thumbwidth and
thumbheight are
just a ratio of the regular "width" and "height" attributes.
I added a
bit of JS to the gallery.js file to calculate those before
growing the
thumbnail on rollover.
Personally I'm using keywords as categories and titles as
captions and
sorting by rating (stars in Bridge), so here's the .jsx file
I created.
The script should be saved to the folder "StartupScripts" in
Program
Files/Common Files/Adobe.
Hope this is useful for others too!
#target bridge
if (BridgeTalk.appName == "bridge" ) {
// create menu
var menu = MenuElement.create( "command", "Export XML File",
"at the end
of Tools");
menu.onSelect = function(m) {
try {
// ask for the name of the output file
var f = File.saveDialog("Export XML file to:", "XML
File:*.XML");
if ( !f ) { return; }
// open filestream and write first line
f.open("w");
f.writeln("\<photos\>\r\r");
// get a list of all the visible thumbnails in Bridge
var items = app.document.visibleThumbnails;
for (var i = 0; i < items.length; ++i) { var item = items
f.writeln("\<photo path = \"" + item.name + "\"" + "\r" +
"width = " +
"\""+ getWidth(item) + "\"" + "\r" + "height = " + "\""+
getHeight(item)
+ "\"" + "\r" + "rating = " + "\""+ getRating(item) + "\"" +
"\r" +
"categories = " + "\""+ listKeywords(item) + "\"" + "\r" +
"caption = "
+ "\""+ getTitle(item) + "\"" + " \>" + "\r" +
"\<\/photo\>\r\r" ); }
f.writeln("\<\/photos\>");
f.close();
} catch(e) {
function getTitle(tn) {
md = tn.metadata;
md.namespace = "
http://purl.org/dc/elements/1.1/";
var varTitle = md.title;
return varTitle;
function getWidth(tn) {
md = tn.metadata;
md.namespace = "
http://ns.adobe.com/tiff/1.0/"
var varWidth = md.ImageWidth;
return varWidth;
function getHeight(tn) {
md = tn.metadata;
md.namespace = "
http://ns.adobe.com/tiff/1.0/"
var varHeight = md.ImageLength;
return varHeight;
function getRating(tn) {
md = tn.metadata;
md.namespace = "
http://ns.adobe.com/xap/1.0/"
var varRating = md.Rating;
return varRating;
function listKeywords(tn) {
md = tn.metadata;
md.namespace = "
http://ns.adobe.com/photoshop/1.0/";
var Keywords = md.Keywords;
var varKeywords = "" ;
for ( var i = 0; i < Keywords.length; ++i ) { varKeywords
= varKeywords
+ Keywords + ","; }
return varKeywords;I updated the script so it exports an XML file from Bridge
with full
compatibility with the Spry Demo Photo Gallery, to use as
photos.xml.
It's at the same address:
http://www.imagicdigital.com/spry/bridge_export_xml.zip
To Use:
The script goes in the folder "StartupScripts" in Program
Files/Common
Files/Adobe.
Launch Bridge and browse to a folder that contains the files
you want in
your gallery -- the "source" folder, as it were.
Choose the menu command "Tools > Export XML for Spry
Gallery".
Type a name for your XML file in the Save dialog box, choose
a location,
and hit "Save".
In the dialog box that pops up, enter a max length/width for
your
thumbnails, in pixels. Some common sizes are "75" , "100" or
"125".
Hit "OK". You should see an alert pop up telling you "XML
file
successfully created!" -
Spry menu bar doesn't appear correctly in IE
Hi guys..
I created a spry menu bar in DW CS4. It looks fine in Firefox but in IE 8, the background image of the navigation bar appears white after allowing activecontrol to run. I didn't include any image for ul.MenuBarHorizontal a because I wanted to use the background image for the div containing the navigation bar.(Hope I didn't confuse you there).. I tried using the search box but couldn't find any solution to my problem. Here are my screen shots.
This is in firefox.
This is in IE 8 before allowing activex.
This is in IE 8 after allowing activex. (Part of the navigation bar is white)
Here's the code.Hope you can help me asap. Thanks!
@charset "UTF-8";
/* SpryMenuBarHorizontal.css - version 0.6 - Spry Pre-Release 1.6.1 */
/* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */
LAYOUT INFORMATION: describes box model, positioning, z-order
/* The outermost container of the Menu Bar, an auto width box with no margin or padding */
ul.MenuBarHorizontal
margin: 0;
padding: 0;
list-style-type: none;
font-size: 100%;
cursor: default;
width: auto;
/* Set the active Menu Bar with this class, currently setting z-index to accomodate IE rendering bug: http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html */
ul.MenuBarActive
z-index: 1000;
/* Menu item containers, position children relative to this container and are a fixed width */
ul.MenuBarHorizontal li
margin: 0;
padding: 0;
list-style-type: none;
font-size: 100%;
position: relative;
text-align: center;
cursor: pointer;
width: 9em;
float: left;
/* Submenus should appear below their parent (top: 0) with a higher z-index, but they are initially off the left side of the screen (-1000em) */
ul.MenuBarHorizontal ul
margin: 0;
padding: 0;
list-style-type: none;
font-size: 100%;
z-index: 1020;
cursor: default;
width: 9em;
position: absolute;
left: -1000em;
/* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to auto so it comes onto the screen below its parent menu item */
ul.MenuBarHorizontal ul.MenuBarSubmenuVisible
left: auto;
/* Menu item containers are same fixed width as parent */
ul.MenuBarHorizontal ul li
width: 9em;
/* Submenus should appear slightly overlapping to the right (95%) and up (-5%) */
ul.MenuBarHorizontal ul ul
position: absolute;
margin: -5% 0 0 95%;
/* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */
ul.MenuBarHorizontal ul.MenuBarSubmenuVisible ul.MenuBarSubmenuVisible
left: auto;
top: 0;
DESIGN INFORMATION: describes color scheme, borders, fonts
/* Submenu containers have borders on all sides */
ul.MenuBarHorizontal ul
border: 1px solid #CCC;
background-image: url(../images/single.jpg);
/* Menu items are a light gray block with padding and no text decoration */
ul.MenuBarHorizontal a
display: block;
cursor: pointer;
color: #000;
text-decoration: none;
padding-top: 1.05em;
padding-right: 0.75em;
padding-bottom: 1.05em;
padding-left: 0.75em;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
/* Menu items that have mouse over or focus have a blue background and white text */
ul.MenuBarHorizontal a:hover, ul.MenuBarHorizontal a:focus
color: #FFF;
background-image: url(../images/single.jpg);
/* Menu items that are open with submenus are set to MenuBarItemHover with a blue background and white text */
ul.MenuBarHorizontal a.MenuBarItemHover, ul.MenuBarHorizontal a.MenuBarItemSubmenuHover, ul.MenuBarHorizontal a.MenuBarSubmenuVisible
color: #FFF;
SUBMENU INDICATION: styles if there is a submenu under a given menu item
/* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal a.MenuBarItemSubmenu
background-repeat: no-repeat;
background-position: 95% 50%;
/* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal ul a.MenuBarItemSubmenu
background-repeat: no-repeat;
background-position: 95% 50%;
/* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal a.MenuBarItemSubmenuHover
background-image: url(../images/single.jpg);
background-repeat: no-repeat;
background-position: 95% 50%;
/* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal ul a.MenuBarItemSubmenuHover
background-repeat: no-repeat;
background-position: 95% 50%;
BROWSER HACKS: the hacks below should not be changed unless you are an expert
/* HACK FOR IE: to make sure the sub menus show above form controls, we underlay each submenu with an iframe */
ul.MenuBarHorizontal iframe
position: absolute;
z-index: 1010;
filter:alpha(opacity:0.1);
/* HACK FOR IE: to stabilize appearance of menu items; the slash in float is to keep IE 5.0 from parsing */
@media screen, projection
ul.MenuBarHorizontal li.MenuBarItemIE
display: inline;
f\loat: left;
background: #FFF;/* HACK FOR IE: to stabilize appearance of menu items; the slash in
float is to keep IE 5.0 from parsing */
@media screen, projection
ul.MenuBarHorizontal li.MenuBarItemIE
display:
inline;
f\loat: left;
background: #FFF;
I hope this helps.
Ben -
Spry Dynamic Tabs - reCAPTCHA is missing when loading external php file
Hello,
I have solved all my problems lately on this forum.
But now im converting my site to use Dynamic tabs, and something goes wrong.
The dynamic tabs load content from external files. It loads html but i think something goes wrong with php and my buttons.
You need to know ALL is working perfect on the old site.
2 problems;
I dont know how to convert my buttons to this new style.
I dont know why the reCAP suddently is missing.
Why is reCAPTCHA missing?
SOURCE HTML (index.html);
<?php include("PHP/form.php"); ?>
<!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" xmlns:spry="http://ns.adobe.com/spry">
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
<title>Wientjes Voegwerk & Renovatie - Home</title>
<meta http-equiv="Content-Language" content="NL" />
<meta http-equiv="imagetoolbar" content="no" />
<meta name="MSSmartTagsPreventParsing" content="true" />
<meta name="description" content="Wientjes Voegwerk en Renovatie is een voeg- en renovatiebedrijf gespecialiseerd in gevelrenovatie. Dagelijkse werkzaamheden zijn het voegen van nieuwbouwwerk, en alle voorkomende vormen van gevelrenovatie. Ik geef uw woning, garage of schoorsteen de aandacht die het verdient en ben trots op het resultaat van mijn werk!"/>
<meta name="keywords" content="Voegwerk, Renovatie, Reinigen, Impregneren, Muur, Voegen, Steen, Woning, Garage, Schoorsteen, Bedrijf, Gevel, Wientjes, Uitslijten, Kappen, Fundering, Vorstschade, Metselen, Metselwerk, Vocht" />
<meta name="author" content="Rob Nijlaan" />
<link href="CSS/Style2.css" rel="stylesheet" type="text/css" />
<script src="JAVASCRIPT/SpryTabbedPanels.js" type="text/javascript"></script>
<script src="JAVASCRIPT/SpryEffects.js" type="text/javascript"></script>
<script src="JAVASCRIPT/SpryData.js" type="text/javascript"></script>
<script src="JAVASCRIPT/xpath.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
function FadeAndUpdateContent(ele, url){
try {
Spry.Effect.DoFade(ele,{
duration: 500, from: 100, to: 0, finish: function() {
Spry.Utils.updateContent(ele, url, function() {
Spry.Effect.DoFade(ele,{ duration: 500, from: 0, to: 100 });
catch(e){ alert(e); }
-->
</script>
</head>
<body>
<div id="WContainer">
<div id="WHeader" align="center"> <img src="Art/VoegenRenLos.png" width="540" height="58" alt="Voeg en Renovatiebedrijf" /><br />
<img src="Art/WientLogo.png" width="600" height="136" alt="Wientjes Voegwerk & Renovatie" /> </div>
<script type="text/javascript">
var dsTabs = new Spry.Data.XMLDataSet("data/data.xml", "tabs/tab");
function loadContent(panel,url){
Spry.Utils.updateContent(panel,url);
Spry.Data.Region.addObserver("example1Region",dateLoadedCallback);
function dateLoadedCallback(notificationType, notifier, data){
if (notificationType =="onPostUpdate"){
row= dsTabs.getRowByRowNumber(0)
if(row){
loadContent('0',row.url)
</script>
<div id="example1Region" spry:region="dsTabs">
<div id="dynamicTabs" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup" >
<li spry:repeat="dsTabs" class="TabbedPanelsTab" onclick="loadContent('{ds_RowID}','{url}');" tabindex="0">{title}</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div spry:repeat="dsTabs" id="{ds_RowID}" class="TabbedPanelsContent"></div>
</div>
</div>
<script type="text/javascript">
var t1 = new Spry.Widget.TabbedPanels("dynamicTabs");
</script>
</div>
<div id="WFooter" align="center">
<p class="footer">Wientjes Voegwerk & Renovatie , 03- '02 » Site by ; <b>Rob Nijlaan</b></p>
</div>
</div>
</body>
</html>
Dont mind the extra javascripts they are not used for now (like SpryEffects.js) its for future use.
SOURCE XML (data.xml);
<?xml version="1.0" encoding="UTF-8"?>
<tabs>
<tab>
<title>
tab 1
</title>
<url>../data/HOME.html</url>
</tab>
<tab>
<title>Tab2</title>
<url>examples/tab2.html</url>
</tab>
<tab>
<title>Tab3</title>
<url>examples/tab2.html</url>
</tab>
<tab>
<title>Tab4</title>
<url>../PHP/form.php</url>
</tab>
</tabs>
The html file loads like it should be, but the php form has problems.
See it yourself: http://www.wientjesvoegwerk.nl/index2.html
The tab 1 displays a html file like it should.
The tab 4 displays the contact form but you will see the reCAPTHCA is missing.
I have really no clue why it happens, exept maybe its a PHP issue.
Maybe the script isnt compatible with non-html documents...
Can someone please tell me whats the problem and if there is a solution????
How do i change this button?
I used this in my previous site:
<table class="Button" >
<tr>
<td style="padding-right:0px" title ="Home">
<a href="#" title="Home" style="background-image:url(/Buttons/Home.png);width:172px;height:75px;display:block;"><br/>
</a></td>
</tr>
</table>
But the dynamic script uses {title} to get the <title> out of the xml.
I tryd to put this straight into the title tags in the xml but obviously it wont work.
And i really dont have a clue how to change this.
My button has a mouseover img. Basicly its 2 buttons in 1 img stacked on top of each other.
Like this: http://www.wientjesvoegwerk.nl/Buttons/contact.png
Because of the CSS script it hovers to the right position.
Part of SOURCE CSS (Style.css)
.Button a{display:block;}
.Button a:hover{background-position:left bottom;}
a.Button {display:none}
How can i change the xml and the script so "title" can be replaced with the button.
Or how can i change the button so the mouseover works and the script still takes the button-img from the xml???
Any help would be nice, because im finnaly in a postition to finish this site, and this is the only blockade left to conquer...Maybe it is not liking that the index page is an HTML page and not a PHP page. Try this way:
In your form.php, remove the following code:
<?php
require_once('recaptchalib.php');
$publickey = "6LfKNwwAAAAAAEdS6PjiDSHRQBDOYrGcM8R1eQQm"; // you got this from the signup page
echo recaptcha_get_html($publickey);
?>
Replace it with:
<script type="text/javascript" src="http://api.recaptcha.net/challenge?k=6LfKNwwAAAAAAEdS6PjiDSHRQBDOYrGcM8R1eQQm"></script>
<noscript>
<iframe src="http://api.recaptcha.net/noscript?k=6LfKNwwAAAAAAEdS6PjiDSHRQBDOYrGcM8R1eQQm" height="300" width="500" frameborder="0"></iframe><br/>
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
</noscript>
The replacement code is the same code that is outputted from the recaptchalib.php file. -
Spry Menu Bar css not compatible with IE7? or compatibility View on IE8?
Well i've made my website
. Swimmerbuddy.com
Problem:I used the spry menu bar on a div tag. I've got it working fine on several browser and so on.. but hmm. i noticed that IE7 and only on compatibility view of IE8 it does not work...
It seems like the drop down menus get cover by the main content underneath it..
I started of with dwt i made my self.This is the DWT and the css that controll the dwt and the spry menu bar.
PLZ HELP ME.. THANKS
THIS IS THE DWT THAT THE PAGE RUNS ON
<!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" />
<!-- TemplateBeginEditable name="doctitle" -->
<title>Untitled Document</title>
<!-- TemplateEndEditable -->
<link href="../CSS/main.css" rel="stylesheet" type="text/css" />
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<style type="text/css">
a:link {
color: #000;
text-decoration: none;
</style>
<script src="../SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<link href="../SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
<style type="text/css">
a:visited {
color: #000;
text-decoration: none;
a:hover {
text-decoration: none;
color: #000;
a:active {
text-decoration: none;
</style>
</head>
<body>
<div id="wrapper">
<div id="header">
<div id="networkicons"><a href="http://www.facebook.com/?ref=logo#!/profile.php?id=100001554936595" target="_blank"><img src="../_images/facebook.png" alt="facebook.com" width="45" height="45" border="0" title="facebook.com"/></a><a href="http://www.myspace.com/swimmerbuddy" TARGET="_blank"> <img src="../_images/myspace.png" alt="myspace.com" width="44" height="45" border="0" title="myspace.com"/></a><a href="http://twitter.com/swimmerbuddy" TARGET="_blank"> <img src="../_images/twitter.png" alt="twitter.com" width="43" height="45" border="0" title="twitter.com"/></a><a href="http://www.youtube.com/swimmerbuddy1" TARGET="_blank"> <img src="../_images/youtube.png" alt="youtube.com" width="44" height="45" border="0" title="youtube.com"/></a></div>
<div id="buyNow1">
<p><a href="../order_now.html"><img src="../buynowbutton.png" alt="bt1" width="130" height="25" border="0" longdesc="Order Your Swimmer Buddy Today!!" /></a></p>
</div>
</div>
<div id="mainNav">
<ul id="mainNavcontent" class="MenuBarHorizontal">
<li><a href="../index.htm">Home</a> </li>
<li><a href="../swimmer.html">Swimmer Buddy</a></li>
<li><a href="../order_now.html">Order Now</a> </li>
<li><a href="#" class="MenuBarItemSubmenu">Gallery</a>
<ul>
<li><a href="../photo_gallery.html">Photos</a></li>
<li><a href="../video_gallery.html">Videos</a></li>
</ul>
</li>
<li><a href="#" class="MenuBarItemSubmenu">Zinger Products</a>
<ul>
<li><a href="http://www.winkyscoop.com/">Winky Scoop</a></li>
<li><a href="http://www.1800succeed.com/">Hypmovation</a></li>
<li><a href="http://www.1800succeed.org/">1800SUCCEED</a></li>
<li><a href="http://www.zingerproducts.com">Zinger Store</a></li>
</ul>
</li>
<li><a href="../about.html">About Us</a></li>
<li><a href="../contact.html">Contact Us</a></li>
</ul>
</div>
<!-- TemplateBeginEditable name="mainContent" -->
<div id="pageInfo">
<div id="info_page">
<p class="regionID">Region ID</p>
<hr class="breaklinePageInfo" />
<p class="breadcrum">> <a href="../index.htm">Breadcrum </a></p>
</div>
<div id="mainContent">
<div id="content">
<p>Main Content Goes her</p>
</div>
</div>
</div>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="buynow2" -->
<div id="buyNow2"><a href="../order_now.html"><img src="../buynowbutton.png" width="130" height="25" /></a></div>
<!-- TemplateEndEditable -->
<div id="footer">
<div id="footertext">
<p class="footertextclass">Copyright © 2010 SwimmerBuddy.com. All rights reserved. SwimmerBuddy.com is part of <a href="http://www.zingerproducts.com" class="footertextclass">Zinger Products</a>. Designated Trademarks and brands are the property of their respective owners. This page was last modified Setember 28,2010. Swimmer Buddy - Pattent Pending 2010</p>
</div>
<div id="footerlinks">
<p classs="footerlinkspacing"> <span class="footerlinkspacing"><a href="../Disclaimer.html">Disclaimer</a><a href="../terms.html"> Term of Service </a><a href="../contact.html">Contact Us</a></span>
</div>
</div>
</div>
<script type="text/javascript">
var MenuBar1 = new Spry.Widget.MenuBar("mainNavcontent", {imgDown:"../SpryAssets/SpryMenuBarDownHover.gif", imgRight:"../SpryAssets/SpryMenuBarRightHover.gif"});
</script>
</body>
</html>
THIS IS THE MAIN.CSS
@charset "utf-8";
#networkicons {
height: 50px;
width: 200px;
margin-top: 160px;
margin-left: 15px;
position: absolute;
#wrapper {
width: 933px;
margin-top: 0px;
margin-right: auto;
margin-bottom: 0px;
margin-left: auto;
text-align: left;
position: relative;
#mainNav {
text-align: center;
position: relative;
margin-right: auto;
margin-left: auto;
width: 934px;
padding-bottom: 15px;
clear: both;
overflow: visible;
#navwrapper {
width: 935px;
margin-right: auto;
margin-left: auto;
#mainContent {
width: 910px;
padding-left: 10px;
padding-right: 10px;
position: relative;
padding-bottom: 20px;
padding-top: 20px;
#content {
width: 910px;
position: relative;
#wrapper #footer #footerlinks p .footerlinkspacing a {
margin-right: 20px;
#footer {
width: 930px;
background-color: #fff;
position: relative;
margin-top: 5px;
text-align: center;
color: #000;
padding-bottom: 10px;
margin-bottom: 15px;
#header {
width: 930px;
height: 209px;
background-image: url(../_images/header.jpg);
background-repeat: no-repeat;
#buyNow1 {
height: 25px;
width: 140px;
float: right;
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
text-align: center;
background-repeat: no-repeat;
color: #666;
padding: 5px;
position: absolute;
top: 160px;
right: 150px;
.buyNow1 {
color: #666;
#wrapper #pageInfo #info_page .breadcrum {
color: #003;
#wrapper #pageInfo #info_page .breadcrum a {
color: #003;
html, body {
margin: 0px;
padding: 0px;
#buyNow2 {
height: 25px;
width: 130px;
float: right;
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
text-align: center;
padding: 5px;
position: relative;
#wrapper #buyNow2 a img {
position: absolute;
top: -30px;
right: 50px;
border-top-width: 0px;
border-right-width: 0px;
border-bottom-width: 0px;
border-left-width: 0px;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
#pageInfo {
width: 930px;
background-image: url(../_images/pageinfobackground.jpg);
background-repeat: repeat-x;
background-color:#FFF;
text-align: left;
padding-bottom: 15px;
margin-top: 18px;
position: relative;
overflow: visible;
visibility: visible;
#wrapper #mainNav #mainNavcontent {
position: absolute;
left: 0px;
width: 930px;
.regionID {
font-size: 2em;
font-weight: bold;
color: #FFC;
margin-top: 1em;
margin-bottom: 0em;
text-align: left;
margin-left: 5px;
.breaklinePageInfo {
margin-top: 0.5em;
color: #FAFEAB;
.breadcrum {
color: #003;
font-size: 1.1em;
font-weight: bold;
text-decoration: underline;
margin-top: -0.2em;
margin-left: 15px;
#breadcrum {
font-weight: bold;
color: #003;
#footertext {
width: 910px;
font-size: 0.6em;
padding-left: 10px;
padding-right: 10px;
margin-top: 10px;
#footerlinks {
width: 930px;
font-size: 0.7em;
font-weight: bold;
font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
color: #000;
position: relative;
margin-top: 10px;
margin-bottom: 5px;
.footertextclass {
color: #000;
.footerlinkspacing {
margin-top: -0.5em;
color: black;
height: 10px;
font-style: normal;
line-height: normal;
font-variant: normal;
letter-spacing: normal;
p {
margin: 0px;
padding: 0px;
body {
text-align: center;
margin-top: 5px;
background-color: #073e78;
background-image: url(../_images/background.jpg);
background-repeat: repeat-x;
background-attachment: scroll;
font-size: 100%;
THIS IS THE dropdown menu.css
@charset "UTF-8";
/* SpryMenuBarHorizontal.css - version 0.6 - Spry Pre-Release 1.6.1 */
/* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */
LAYOUT INFORMATION: describes box model, positioning, z-order
/* The outermost container of the Menu Bar, an auto width box with no margin or padding */
ul.MenuBarHorizontal
margin: 0;
padding: 0;
list-style-type: none;
font-size: 100%;
cursor: default;
width: auto;
/* Set the active Menu Bar with this class, currently setting z-index to accomodate IE rendering bug: http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html */
ul.MenuBarActive
z-index: 1000;
/* Menu item containers, position children relative to this container and are a fixed width */
ul.MenuBarHorizontal li
margin: 0px;
padding: 0;
list-style-type: none;
font-size: 100%;
position: static;
text-align: center;
cursor: pointer;
width: 132.8px;
float: left;
overflow: visible;
visibility: visible;
/* Submenus should appear below their parent (top: 0) with a higher z-index, but they are initially off the left side of the screen (-1000em) */
ul.MenuBarHorizontal ul
margin: 0;
padding: 0;
list-style-type: none;
font-size: 100%;
z-index: 1020;
cursor: default;
width: 132.8px;
position: absolute;
left: -1000em;
/* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to auto so it comes onto the screen below its parent menu item */
ul.MenuBarHorizontal ul.MenuBarSubmenuVisible
left: auto;
/* Menu item containers are same fixed width as parent */
ul.MenuBarHorizontal ul li
width: 8.2em;
/* Submenus should appear slightly overlapping to the right (95%) and up (-5%) */
ul.MenuBarHorizontal ul ul
position: absolute;
margin: -5% 0 0 95%;
/* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */
ul.MenuBarHorizontal ul.MenuBarSubmenuVisible ul.MenuBarSubmenuVisible
left: auto;
top: 0;
DESIGN INFORMATION: describes color scheme, borders, fonts
/* Submenu containers have borders on all sides */
ul.MenuBarHorizontal ul
border: #333;
color: #FFF;
/* Menu items are a light gray block with padding and no text decoration */
ul.MenuBarHorizontal a
display: block;
cursor: pointer;
background-color: #FFF;
padding: 0.5em 0.75em;
color: #333;
text-decoration: none;
background-image: url(../_images/bar-top.png);
background-repeat: no-repeat;
/* Menu items that have mouse over or focus have a blue background and white text */
ul.MenuBarHorizontal a:hover, ul.MenuBarHorizontal a:focus
color: #003;
background-image: url(../_images/bar-Bottom.png);
/* Menu items that are open with submenus are set to MenuBarItemHover with a blue background and white text */
ul.MenuBarHorizontal a.MenuBarItemHover, ul.MenuBarHorizontal a.MenuBarItemSubmenuHover, ul.MenuBarHorizontal a.MenuBarSubmenuVisible
color: #003;
background-image: url(../_images/bar-Bottom.png);
background-position: bottom;
SUBMENU INDICATION: styles if there is a submenu under a given menu item
/* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal a.MenuBarItemSubmenu
background-image: url(../_images/bar-topsub.png);
background-repeat: no-repeat;
background-position: right top;
/* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal ul a.MenuBarItemSubmenu
background-image: url(SpryMenuBarRight.gif);
background-repeat: no-repeat;
background-position: 95% 50%;
/* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal a.MenuBarItemSubmenuHover
background-image: url(../_images/bar-topsubhover.png);
background-repeat: no-repeat;
background-position: right bottom;
/* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal ul a.MenuBarItemSubmenuHover
background-image: url(SpryMenuBarDownHover.gif);
background-repeat: no-repeat;
background-position: 95% 50%;
BROWSER HACKS: the hacks below should not be changed unless you are an expert
/* HACK FOR IE: to make sure the sub menus show above form controls, we underlay each submenu with an iframe */
ul.MenuBarHorizontal iframe
position: absolute;
z-index: 1010;
filter:alpha(opacity:0.1);
/* HACK FOR IE: to stabilize appearance of menu items; the slash in float is to keep IE 5.0 from parsing */
@media screen, projection
ul.MenuBarHorizontal li.MenuBarItemIE
display: inline;
f\loat: left;
background: #FFF;Thanks a lot for that tip. It does improve it by a whole lot.. i c what my mistake was.. however, something is still off
.. The Drop down menu is not behaving well...
As you may c by the picture, the drop down menu now moves to the right. and is not because of the object to its left, i've modified that. Zinger Products Drop Down Menu also does the same.
Maybe you are looking for
-
After upgrading to Mountain Lion, my trackpad is erratic and glitchy
I've gotten the Macbook Pro with Retina Display for about a month now and I immediately upgraded to Mountain Lion. After about a few weeks, Mountain Lion was working well. Nothing was going on. Then about a few days later, my trackpad is possessed. M
-
I am using an apple TV to show a slide show which is sent via WiFi from a mini computer. The slide show repeats for a few hours and then stops and shows "no signal". What's going on- and how do I get the show to cycle indefinitely? (I have set the
-
My computer crashed with all my music on it. All of my cd's that I had uploaded onto my computer were stolen. The only way that I have all my music is on my IPod. However, I am afraid to update it because I don't want to loose all the music that I
-
I have already cleared the content and settings from the phone twice and tried to start completely from scratch. I also already tried backing up the phone onto my computer then restoring then using the computer back up via USB connection. In addition
-
Set_block_property with Like and Between and function
Hellow All I need to find out record where Column Name between :Text_item1 and :Text_item2 with Default_where For example Manu guide me to find out record with SET_BLOCK_PROPERTY('Block53', DEFAULT_WHERE, 'name like ''' || :block70.text || '%'''); go