var opts_full = new Array(); opts_full[1] = [[14,'CIGAR'],[1,'WHITE WINE'],[2,'RED WINE'],[9,'ROSE'],[10,'FORTIFIED WINE'],[7,'CHAMPAGNE/FIZZ'],[4,'WHISKY'],[11,'VODKA'],[13,'GIN']]; opts_full[2] = [[11,'ARGENTINA'],[2,'AUSTRALIA'],[12,'AUSTRIA'],[6,'CHILE'],[14,'FRANCE'],[5,'ITALY'],[7,'NEW ZEALAND'],[9,'PORTUGAL'],[8,'SOUTH AFRICA'],[10,'SPAIN'],[13,'USA']]; opts_full[3] = [[10,'Central Otago'],[28,'Gisborne'],[30,'Hawke\'s Bay'],[27,'Marlborough'],[82,'Martinborough'],[87,'Waiheki Island'],[83,'Waipara']]; var expanded_nodes_ids = new Array(); expanded_nodes_ids[1] = '1'; expanded_nodes_ids[2] = '7'; expanded_nodes_ids[3] = '10'; //create namespace for tree menu YAHOO.namespace("treespace"); YAHOO.treespace.treeMenu = function() { var tree, currentIconMode; function changeIconMode() { var newVal = parseInt(this.value); if (newVal != currentIconMode) { currentIconMode = newVal; } buildTree(); } function loadNodeData(node, fnLoadComplete) { //We'll randomize our loader with stock data; in many implementations, //this step would be replaced with an XMLHttpRequest call to the server //for more data. var st = node.data.st + 1; var st_old = node.data.st; if (opts_full[st] != null && expanded_nodes_ids[st_old] == node.data.nid) { var opts = opts_full[st]; var dinamic = false; //alert(expanded_nodes_ids[st_old]+'-'+node.data.nid); } else { var opts = getTreeData(node); var dinamic = true; } expanded_nodes_ids[st_old] = null; delete expanded_nodes_ids[st_old]; for (var i=0; i= 0; i--) params_str += '/' + (params[i] != null ? params[i] : '0'); for (i = params.length; i < 3; i++) params_str += '/0'; } else { for (i = params.length - 1; i >= 0; i--) params_str += (params[i] != null ? '/' + params[i] : ''); } return params_str; } function getTreeData(node) { var dateObj = new Date(); var data = []; if (typeof Ajax != 'undefined') new Ajax.Request(webRoot + 'products/getXml' + getTreeDataParams(node, null, true) + '/' + dateObj.getTime(), {onComplete:function(request){ data = getCallback(request) }, asynchronous:false, evalScripts:true}); return data; } function getCallback(request) { if (request.readyState == 4 && request.status == 200) { var xml = request.responseXML.XMLDocument ? request.responseXML.XMLDocument : request.responseXML; return xml.getElementsByTagName('item'); } } return { init: function() { YAHOO.util.Event.on(["mode0", "mode1"], "click", changeIconMode); var el = document.getElementById("mode1"); if (el && el.checked) currentIconMode = parseInt(el.value); else currentIconMode = 0; buildTree(); } } } (); //YAHOO.util.Event.addListener(window, "load", YAHOO.treespace.treeMenu.init, YAHOO.treespace.treeMenu,true);