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 ( '\n" ); this.element = document.getElementById('mi_' + this.container.id + '_' + this.id); } function mitem_visibility(make_visible) { if (make_visible != null) { if (this.visible == make_visible) return; this.visible = make_visible; if (make_visible) this.element.style.visibility = 'visible'; else if (this.depth) this.element.style.visibility = 'hidden'; } return (this.visible); } function mitem_get_x() { var value = 0; for (var i = 0; i <= this.depth; i++) value += this.container.pos['block_left'][i] + this.arrpath[i] * this.container.pos['left'][i]; return (value); } function mitem_get_y() { var value = 0; for (var i = 0; i <= this.depth; i++) value += this.container.pos['block_top'][i] + this.arrpath[i] * this.container.pos['top'][i]; return (value); } function mitem_switch_style(state) { if (this.state == state) return; this.state = state; var style = this.container.styles[state]; for (var i = 0; i < style.length; i += 2) if (style[i] && style[i+1]) eval('this.element.style.' + style[i] + "='" + style[i+1][this.depth] + "';"); } // that's all folks /* --- geometry and timing of the menu --- */ var MENU_POS = new Array(); // item sizes for different levels of menu MENU_POS['height'] = [20, 20]; MENU_POS['width'] = [125, 190]; // menu block offset from the origin: // for root level origin is upper left corner of the page // for other levels origin is upper left corner of parent item MENU_POS['block_top'] = [0, 19]; MENU_POS['block_left'] = [0, 0]; // offsets between items of the same level MENU_POS['top'] = [0, 19]; MENU_POS['left'] = [125, 0]; // time in milliseconds before menu is hidden after cursor has gone out // of any items MENU_POS['hide_delay'] = [200, 200]; /* --- dynamic menu styles --- note: you can add as many style properties as you wish but be not all browsers are able to render them correctly. The only relatively safe properties are 'color' and 'background'. */ var MENU_STYLES = new Array(); // default item state when it is visible but doesn't have mouse over MENU_STYLES['onmouseout'] = [ 'color', ['#ffffff', '#ffffff'], 'background', ['#54618D', '#6699cc'], 'filter', ['', 'alpha(opacity=93)'], ]; // state when item has mouse over it MENU_STYLES['onmouseover'] = [ 'color', ['#ffffff', '#ffffff'], 'background', ['#54618D', '#54618D'], ]; // state when mouse button has been pressed on the item MENU_STYLES['onmousedown'] = [ 'color', ['#ffffff', '#444444'], 'background', ['#54618D', '#ffffff'], ]; // menu_items.js file var MENU_ITEMS =[ ["Customer Service", "http://www.unitedshades.com/en/aboutus.htm", ["How may we help you ?", "http://www.unitedshades.com/en/aboutus.htm"], ["Contact us", "http://www.unitedshades.com/en/contact.htm"], ["Track you order", "http://www.unitedshades.com/en/orderstatus.htm"], ["Return policy", "http://www.unitedshades.com/en/return.htm"], ["Shipping costs", "http://www.unitedshades.com/en/shipcost.htm"], ["Your guarantees", "http://www.unitedshades.com/en/guarantee.htm"] ], ["What's new", "http://www.unitedshades.com/en/whatsnew.htm", ["What's new annoucements", "http://www.unitedshades.com/en/whatsnew.htm"], ["Most recently added products", "http://www.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.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.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.unitedshades.com/en/maillist.htm", ["Subscribe to our mailing list", "http://www.unitedshades.com/en/maillist.htm"], ["See most recent mailings", "http://www.unitedshades.com/viewnews.asp"] ], ["Special offers", "http://www.unitedshades.com/lista.asp?idbrand=99&t_type=ALL&cmd=QRY"], [" Search", "http://www.unitedshades.com/search.asp?cmd=MLP"], [" : 0 items", "http://www.unitedshades.com/calculate.asp?cmd=CLC", ["Explore shopping cart", "http://www.unitedshades.com/calculate.asp?cmd=CLC"], ], ]; new menu (MENU_ITEMS, MENU_POS, MENU_STYLES); document.write(""); document.write(" "); document.write(" "); document.write(" "); document.write(" ");document.write(" ");document.write(" ");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("");document.write("");document.write("");document.write(""); } else if ( !(navigator.appName && navigator.appName.indexOf("Netscape")>=0 && navigator.appVersion.indexOf("2.")>=0) ){ document.write(""); } document.write(" Welcome to the International Website
If you are in Europe or Japan, please click here
 
");document.write("");