tar_dmenu={init:function(cust){acton=(cust)?cust:".tar_dmenu";$(acton).each(function(){tar_dmenu.getvars(this)})},getvars:function(elem){if($(elem).children("var").length>0){vars=tar_dmenu.buildobject($(elem),"var","title","text")}else{vars={}};if($(elem).children("var").length>0&&$(elem).children(":not(var)").length==1){elem=$(elem).children(vars["listtype"])}tar_dmenu.setup(elem,vars)},setup:function(elem,vars){if("actioner"in vars&&"submenu"in vars&&"relationship"in vars){var submenu=vars.submenu;var actioner=vars.actioner;var relationship=vars.relationship}else{thisnode=("listtype"in vars)?vars["listtype"]:elem.nodeName.toLowerCase();if(thisnode=="ul"||thisnode=="ol"){var relationship="child";var actioner="li";if($(elem).children("li").children(".dmc_sub").length>0){var submenu=".dmc_sub"}else if($(elem).children("li").children("ul").length>0){var submenu="ul"}else if($(elem).children("li").children("ol").length>0){var submenu="ol"}else if($(elem).children("li").children("div").length>0){var submenu="div"}}else if(thisnode=="dl"){var relationship="sibling";var submenu="dd";var actioner="dt"}else{if($(elem).find(".dmc_act").length>0&&$(elem).find(".dmc_sub").length>0){var actioner=".dmc_act";var submenu=".dmc_sub";var relationship=($(elem).find(".dmc_act").children(".dmc_sub").length>0)?"child":"sibling"}else{var guessresults=tar_dmenu.takeawildguess(elem);var actioner=guessresults[0];var submenu=guessresults[1];var relationship="sibling"}}}var event=("event"in vars)?vars.event:"hover";var effect=("effect"in vars)?vars.effect:"basic";var duration=("duration"in vars)?vars.duration:"300";var orientation=("orientation"in vars)?vars.orientation:"horizontal";if(relationship=="sibling"){$(elem).find(submenu).hide();$(elem).find(actioner).children("a").addClass("parentlink")}else{$(elem).find(actioner).children(submenu).hide();$(elem).find(actioner).children(submenu).parent().children("a").addClass("parentlink")}tar_dmenu.setupjsevent(elem,actioner,submenu,relationship,event,effect,orientation,duration);$(elem).find("a.open").parents(actioner).each(function(){if(relationship=="child"){$(this).children("a").addClass("expanded");$(this).addClass("expanded").children(submenu).addClass("open").show()}else{$(this).children("a").addClass("expanded");$(this).addClass("expanded").next(submenu).addClass("open").show()}})},setupjsevent:function(elem,actioner,submenu,relationship,event,effect,orientation,duration){if(event=="hover"){tar_dmenu.setupjshoverevent(elem,actioner,submenu,relationship,event,effect,orientation,duration)}else{tar_dmenu.setupjsclickevent(elem,actioner,submenu,relationship,event,effect,orientation,duration)}},setupjsclickevent:function(elem,actioner,submenu,relationship,event,effect,orientation,duration){if($(elem).find(actioner).children("a").length>0){$(elem).find(actioner).children("a").click(function(){$(this).blur();return tar_dmenu.performeffect[relationship]($(this).parent(),actioner,submenu,event,effect,orientation,duration,"open")})}else{$(elem).find(actioner).click(function(){$(this).blur();return tar_dmenu.performeffect[relationship](this,actioner,submenu,event,effect,orientation,duration,"close")})}},setupjshoverevent:function(elem,actioner,submenu,relationship,event,effect,orientation,duration){$(elem).find(actioner).hover(function(){tar_dmenu.performeffect[relationship](this,actioner,submenu,event,effect,orientation,duration,"open")},function(){tar_dmenu.performeffect[relationship](this,actioner,submenu,event,effect,orientation,duration,"close")})},performeffect:{child:function(elem,actioner,submenu,event,effect,orientation,duration,direction){if($(elem).children(submenu).length>0){if(direction=="close"){if(event=="hover"){$(elem).children("a").removeClass("expanded");$(elem).removeClass("expanded").removeAttr("style").children(submenu).removeClass("open").removeAttr("style").hide()}else{$(elem).children("a").removeClass("expanded");$(elem).removeClass("expanded").removeAttr("style").children(submenu).removeClass("open").removeAttr("style");tar_dmenu.animations[effect]["hide"]($(elem).children(submenu),actioner,submenu,orientation,duration)}}else{$(elem).children("a").addClass("expanded");$(elem).addClass("expanded").children(submenu).addClass("open");tar_dmenu.animations[effect]["show"]($(elem).children(submenu),actioner,submenu,orientation,duration)}return(event=="hover")}},sibling:function(elem,actioner,submenu,event,effect,orientation,duration,direction){if(direction=="close"){if(event=="hover"){$(elem).next(submenu).removeClass("open").hide()}else{$(elem).next(submenu).removeClass("open");tar_dmenu.animations[effect]["hide"]($(elem).next(submenu),actioner,submenu,orientation,duration)}}else{$(elem).next(submenu).addClass("open");tar_dmenu.animations[effect]["show"]($(elem).next(submenu),actioner,submenu,orientation,duration)}return(event=="hover")}},checkstillopen:function(elem){if(!($(elem).hasClass("open"))){$(elem).hide()}},animations:{basic:{show:function(elem,actioner,submenu,orientation,duration){$(elem).show(parseInt(duration),function(){tar_dmenu.checkstillopen(elem)})},hide:function(elem,actioner,submenu,orientation,duration){$(elem).hide(parseInt(duration),function(){tar_dmenu.checkstillopen(elem)})}},fade:{show:function(elem,actioner,submenu,orientation,duration){$(elem).fadeIn(parseInt(duration),function(){tar_dmenu.checkstillopen(elem)})},hide:function(elem,actioner,submenu,orientation,duration){$(elem).fadeOut(parseInt(duration),function(){tar_dmenu.checkstillopen(elem)})}},slidedown:{show:function(elem,actioner,submenu,orientation,duration){$(elem).slideDown(parseInt(duration),function(){tar_dmenu.checkstillopen(elem)})},hide:function(elem,actioner,submenu,orientation,duration){$(elem).slideUp(parseInt(duration),function(){tar_dmenu.checkstillopen(elem)})}}},getmyeffect:function(elem){if($(elem).attr("class").indexOf("dme_")>0){var fullclassstring=$(elem).attr("class");var getindex=fullclassstring.indexOf("dme_");var geteffect=(fullclassstring.substr(getindex+4).indexOf(" ")>0)?fullclassstring.substr(getindex+4).substring(0,fullclassstring.substr(getindex+4).indexOf(" ")):fullclassstring.substr(getindex+4)}else{var geteffect="none"}return geteffect},takeawildguess:function(elem){var childnodes=tar_dmenu.getmychildren(elem);var parseresults=tar_dmenu.parsenodes(childnodes);var hasheading=false;var hassub=false;var smallestheadingval=1;var commonsubval=0;var smallestheading="h1";var commonsub="div";for(var key in parseresults){if(key=="h1"||key=="h2"||key=="h3"||key=="h4"||key=="h5"||key=="h6"){hasheading=true;if(parseInt(key.substr(1))>smallestheadingval){smallestheadingval=parseInt(key.substr(1));smallestheading=key}}if(key=="ul"||key=="ol"||key=="dl"||key=="div"){hassub==true;if(parseresults[key]>commonsubval){commonsubval=parseresults[key];commonsub=key}}}return[smallestheading,commonsub]},getmychildren:function(elem){var childnodes=[];$(elem).children().each(function(){childnodes.push(this.nodeName.toLowerCase())});return childnodes},parsenodes:function(nodelist){var parseresults={};for(i=0;i<nodelist.length;i++){if(nodelist[i]in parseresults){parseresults[nodelist[i]]++}else{parseresults[nodelist[i]]=1}}return parseresults},buildobject:function(elem,node,k,v){varlist={};for(i=0;i<$(elem).children(node).length;i++){var key=$(elem).children(node+":eq("+i+")").attr(k);var val=(v=="text")?$(elem).children(node+":eq("+i+")").text():$(elem).children(node+":eq("+i+")").attr(v);varlist[key]=val}return varlist}}
