var menuElems = new Array();
function generateCategoryMenu(response, menuElemId, toggleMenuElemeId,j,fromPage){
    var responseText = response.responseText.trim();
    if(responseText != ""){
        try{
            var parentCategory = YAHOO.lang.JSON.parse(responseText).parentCategory;
            var categories = parentCategory.childCategories;
            var parentCategoryId = parentCategory.categoryId;

            var menuElem = $(menuElemId + parentCategoryId);
            var menuBodyElem = YAHOO.util.Dom.getFirstChild(menuElem);

            for(var i = 0; i < categories.length; i++){
                var cat = categories[i];
                var hrefElem = document.createElement("a");
                hrefElem.setAttribute("href", cat.categoryURL);
                hrefElem.innerHTML = cat.name;
                menuBodyElem.appendChild(hrefElem);
            }

             var oMenu = new YAHOO.widget.ContextMenu(menuElemId + parentCategoryId,
                    { constraintoviewport: false,
                        hidedelay:500,
                        context: [toggleMenuElemeId + parentCategoryId, "tl", "bl"]});
                        oMenu.render();
            YAHOO.util.Dom.setStyle(menuElem, "display", "block");
           
            oMenu.show();
            
            menuElems[parentCategoryId + ""] = oMenu;
            if((YAHOO.util.Dom.getStyle(menuElem, "display")=="block") && fromPage=="category"){
            	if(j%2===0){
            		YAHOO.util.Dom.setStyle(menuElem, "left", "270px");	
              }
            	else{
            		YAHOO.util.Dom.setStyle(menuElem, "left", "550px");	
            	}
            }
            if((YAHOO.util.Dom.getStyle(menuElem, "display")=="block")&& fromPage=="index"){
            	if(j==1 || j==6){
            		YAHOO.util.Dom.setStyle(menuElem, "left", "-60px");
            	}
            	else if(j==2 || j==7){
            		YAHOO.util.Dom.setStyle(menuElem, "left", "92px");
            	}
            	else if(j==3 || j==8){
            		YAHOO.util.Dom.setStyle(menuElem, "left", "244px");
            	}
            	else if(j==4 ||j==9){
            		YAHOO.util.Dom.setStyle(menuElem, "left", "396px");
            	}
            	else if(j==5 || j==10){
            		YAHOO.util.Dom.setStyle(menuElem, "left", "548px");
            	}
            	
            }
        }
            catch(error){}
    }
}


function loadChildCategories(categoryId, menuElemId, toggleMenuElemeId,i,fromPage){
    var menuObj = menuElems[categoryId + ""];
    if(isDefined(menuObj)){
        YAHOO.util.Dom.setStyle(menuElemId + categoryId, "display", "block");
        menuObj.show();
        if((YAHOO.util.Dom.getStyle(menuElemId + categoryId, "display")=="block")&& fromPage=="category"){
        	if(i%2==0){
        		YAHOO.util.Dom.setStyle(menuElemId + categoryId, "left", "270px");
        	}
        	else{
        		YAHOO.util.Dom.setStyle(menuElemId + categoryId, "left", "550px");
        	}
        }
        if((YAHOO.util.Dom.getStyle(menuElemId + categoryId, "display")=="block")&& fromPage=="index"){
        	if(i==1 || i==6){
        		YAHOO.util.Dom.setStyle(menuElemId + categoryId, "left", "-60px");
        	}
        	else if(i==2 || i==7){
        		YAHOO.util.Dom.setStyle(menuElemId + categoryId, "left", "92px");
        	}
        	else if(i==3 || i==8){
        		YAHOO.util.Dom.setStyle(menuElemId + categoryId, "left", "244px");
        	}
        	else if(i==4 || i==9){
        		YAHOO.util.Dom.setStyle(menuElemId + categoryId, "left", "396px");
        	}
        	else if(i==5 || i==10){
        		YAHOO.util.Dom.setStyle(menuElemId + categoryId, "left", "548px");
        	}
        	
        }
    }else{
        YAHOO.util.Connect.asyncRequest("GET",
                "/d/categoriesLookup.jsp?cid=" + categoryId,
                {success:function (data){generateCategoryMenu(data, menuElemId, toggleMenuElemeId,i,fromPage)},cache:true});
    }
}
