var menus = [];
// --- menu class ---
function menu (item_struct, pos, styles) {
// browser check
this.item_struct = item_struct;
this.pos = pos;
this.styles = styles;
this.id = menus.length;
this.items = [];
this.children = [];
this.add_item = menu_add_item;
this.hide = menu_hide;
this.onclick = menu_onclick;
this.onmouseout = menu_onmouseout;
this.onmouseover = menu_onmouseover;
this.onmousedown = menu_onmousedown;
var i;
for (i = 0; i < this.item_struct.length; i++)
new menu_item(i, this, this);
for (i = 0; i < this.children.length; i++)
this.children[i].visibility(true);
menus[this.id] = this;
}
function menu_add_item (item) {
var id = this.items.length;
this.items[id] = item;
return (id);
}
function menu_hide () {
for (var i = 0; i < this.items.length; i++) {
this.items[i].visibility(false);
this.items[i].switch_style('onmouseout');
}
}
function menu_onclick (id) {
var item = this.items[id];
return (item.fields[1] ? true : false);
}
function menu_onmouseout (id) {
this.hide_timer = setTimeout('menus['+ this.id +'].hide();',
this.pos['hide_delay'][this.active_item.depth]);
if (this.active_item.id == id)
this.active_item = null;
}
function menu_onmouseover (id) {
this.active_item = this.items[id];
clearTimeout(this.hide_timer);
var curr_item, visib;
for (var i = 0; i < this.items.length; i++) {
curr_item = this.items[i];
visib = (curr_item.arrpath.slice(0, curr_item.depth).join('_') ==
this.active_item.arrpath.slice(0, curr_item.depth).join('_'));
if (visib)
curr_item.switch_style (
curr_item == this.active_item ? 'onmouseover' : 'onmouseout');
curr_item.visibility(visib);
}
}
function menu_onmousedown (id) {
this.items[id].switch_style('onmousedown');
}
// --- menu item Class ---
function menu_item (path, parent, container) {
this.path = new String (path);
this.parent = parent;
this.container = container;
this.arrpath = this.path.split('_');
this.depth = this.arrpath.length - 1;
// get pointer to item's data in the structure
var struct_path = '', i;
for (i = 0; i <= this.depth; i++)
struct_path += '[' + (Number(this.arrpath[i]) + (i ? 2 : 0)) + ']';
eval('this.fields = this.container.item_struct' + struct_path);
if (!this.fields) return;
// assign methods
this.get_x = mitem_get_x;
this.get_y = mitem_get_y;
// these methods may be different for different browsers (i.e. non DOM compatible)
this.init = mitem_init;
this.visibility = mitem_visibility;
this.switch_style = mitem_switch_style;
// register in the collections
this.id = this.container.add_item(this);
parent.children[parent.children.length] = this;
// init recursively
this.init();
this.children = [];
var child_count = this.fields.length - 2;
for (i = 0; i < child_count; i++)
new menu_item (this.path + '_' + i, this, this.container);
this.switch_style('onmouseout');
}
function mitem_init() {
document.write (
'
Customer Service", "http://www.cavalli.unitedshades.com/en/aboutus.htm",
["How may we help you ?", "http://www.cavalli.unitedshades.com/en/aboutus.htm"],
["Contact us", "http://www.cavalli.unitedshades.com/en/contact.htm"],
["Track you order", "http://www.cavalli.unitedshades.com/en/orderstatus.htm"],
["Return policy", "http://www.cavalli.unitedshades.com/en/return.htm"],
["Shipping costs", "http://www.cavalli.unitedshades.com/en/shipcost.htm"],
["Your guarantees", "http://www.cavalli.unitedshades.com/en/guarantee.htm"]
],
["
What's new", "http://www.cavalli.unitedshades.com/en/whatsnew.htm",
["What's new annoucements", "http://www.cavalli.unitedshades.com/en/whatsnew.htm"],
["Most recently added products", "http://www.cavalli.unitedshades.com/lista.asp?T_DESC=&T_gender=ALL&t_shape=ALL&t_lenses=ALL&N_IDBRAND=ALL&T_FRAME=ALL&T_PRICES=-1&T_SIZES=-1&T_PURPOSE=ALL&RECENT=YES&CMD=MLP"],
["Last 30 days best sellers", "http://www.cavalli.unitedshades.com/lista.asp?T_DESC=&T_gender=ALL&t_shape=ALL&t_lenses=ALL&N_IDBRAND=ALL&T_FRAME=ALL&T_PRICES=-1&T_SIZES=-1&T_PURPOSE=ALL&CMD=TOPTEN"],
["Most reviewed products by customers", "http://www.cavalli.unitedshades.com/lista.asp?T_DESC=&T_gender=ALL&t_shape=ALL&t_lenses=ALL&N_IDBRAND=ALL&T_FRAME=ALL&T_PRICES=-1&T_SIZES=-1&T_PURPOSE=ALL&CMD=REVIEWED"]
],
["
Mailing list
", "http://www.cavalli.unitedshades.com/en/maillist.htm",
["Subscribe to our mailing list", "http://www.cavalli.unitedshades.com/en/maillist.htm"],
["See most recent mailings", "http://www.cavalli.unitedshades.com/viewnews.asp"]
],
["
Special offers", "http://www.cavalli.unitedshades.com/lista.asp?idbrand=99&t_type=ALL&cmd=QRY"],
["
Search", "http://www.cavalli.unitedshades.com/search.asp?cmd=MLP"],
["
: 0 items", "http://www.cavalli.unitedshades.com/calculate.asp?cmd=CLC",
["Explore shopping cart", "http://www.cavalli.unitedshades.com/calculate.asp?cmd=CLC"],
],
];
new menu (MENU_ITEMS, MENU_POS, MENU_STYLES);
document.write("
| "); document.write(" | |||||
");
var plugin = 0;
if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] && navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin) {
if (navigator.plugins && navigator.plugins["Shockwave Flash"])
plugin = 1;
}
else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0
&& (navigator.userAgent.indexOf("Windows 95")>=0 || navigator.userAgent.indexOf("Windows 98")>=0 || navigator.userAgent.indexOf("Windows NT")>=0)) {
document.write(' \n');
}
plugin = 0;
if ( plugin && !(navigator.userAgent.indexOf("Firefox")>=0) ) {
document.write("");
} else if ( !(navigator.appName && navigator.appName.indexOf("Netscape")>=0 && navigator.appVersion.indexOf("2.")>=0) ){
document.write(" ");
}
document.write(" | ");document.write(" Welcome to the International Website If you are in Europe or Japan, please click here | ");document.write(" ");document.write(" | |||