/**Based on AjaxFlagMenu v1.0.2 is a simple vertical menu jQuery plugin (inspired from facebook) 2010/2011 * @author Seddiki Mohammed * * Licence GNU GPL * */ (function($,document){ $.fn.AjaxFlagMenu = function(Options) { var LastSelectedItem = null; function AjaxFlagMenuItem(_Title, _onOutIcon, _onClickIcon, _HtmlStatusContent, _url, _target, _data, _id, _selected) { /**Fields********************************************************************/ //Title var Title = $(""+ _Title+"") ; Title.attr("width","60%"); //Icon if (_onOutIcon!="") { var Icon = $('') ; } else { var Icon = $('') ; } Icon.attr("width","20%"); //HtmlStatusContent var HtmlStatusContent = $("
"+_HtmlStatusContent +"
") ; HtmlStatusContent.attr("width","30%"); //AjaxFlagMenuItem var _AjaxFlagMenuItem = $('
  • '); //setup the AjaxFlagMenuItem _AjaxFlagMenuItem.find("table").attr("border","0"); _AjaxFlagMenuItem.find("table").attr("width","100%"); _AjaxFlagMenuItem.attr("title",Title.text()); //add components to AjaxFlagMenuItem _AjaxFlagMenuItem.find("table").find("tr").append(Icon); _AjaxFlagMenuItem.find("table").find("tr").append(Title); _AjaxFlagMenuItem.find("table").find("tr").append(HtmlStatusContent); //AjaxFlagMenuItem CSS _AjaxFlagMenuItem.css("cursor","pointer"); _AjaxFlagMenuItem.css("padding","1px"); /**Global Functions**************************************/ this.jQueryObject = _AjaxFlagMenuItem; this.setOnOutStatus = function () { setIcon(_onOutIcon); setAjaxFlagMenuItemClass(Options.onOutClass); setHtmlStatusContentClass(Options.hscClickClass); }; this.setOnClickClass = function () { setIcon(_onClickIcon); setAjaxFlagMenuItemClass(Options.onClickClass); setHtmlStatusContentClass(Options.hscOutClass); }; this.isClicked = function() { return _AjaxFlagMenuItem.hasClass(Options.onClickClass); }; this.sethscCorner = function() { }; /**Local Functions**************************************/ function setIcon(img) { if (img!="") { Icon.find("img").attr("src",img); } } function setAjaxFlagMenuItemClass(_class) { _AjaxFlagMenuItem.attr("class",_class); _AjaxFlagMenuItem.find("table").attr("class",_class+"Table"); } function setHtmlStatusContentClass(_class) { if(_HtmlStatusContent != '') { HtmlStatusContent.find("div").attr("class",_class); } } function setHtmlStatusContent(HtmlContent) { HtmlStatusContent.html(HtmlContent); } /**Events*****************************************************************************/ //onMouseOver _AjaxFlagMenuItem.mouseover(function(){ if(!_AjaxFlagMenuItem.hasClass(Options.onClickClass)) { setAjaxFlagMenuItemClass(Options.onOverClass); } }); //onMouseOut _AjaxFlagMenuItem.mouseout(function(){ if(!_AjaxFlagMenuItem.hasClass(Options.onClickClass)) { setAjaxFlagMenuItemClass(Options.onOutClass); } }); //onMouseClick _AjaxFlagMenuItem.click(function(){ if(!_AjaxFlagMenuItem.hasClass(Options.onClickClass)) { setIcon(_onClickIcon); setAjaxFlagMenuItemClass(Options.onClickClass); setHtmlStatusContentClass(Options.hscOutClass); if(LastSelectedItem != null) { LastSelectedItem.setOnOutStatus(); } if (_target!="") { $("[name='"+ _target +"']").attr('src', _url); } else { if (_url!="") { document.location = _url; } else { if (Options.render.OnClick) { Options.render.SelectedItem.Title = _Title; Options.render.SelectedItem.OnOutIcon = _onOutIcon; Options.render.SelectedItem.OnClickIcon = _onClickIcon; Options.render.SelectedItem.SatusContent = _HtmlStatusContent; Options.render.SelectedItem.Link = _url; Options.render.SelectedItem.LinkTarget = _target; Options.render.SelectedItem.Id = _id; Options.render.OnClick(); } } } } }); }; //end AjaxFlagMenuItem Class //Menu Title var Caption = $("
  • "+ Options.Caption +"
  • "); Caption.addClass(Options.CaptionClass); //table to stock items var iTems = new Array(); //Global Menu if ($.browser.msie) { var AjaxFlagMenu = $(""); } else { var AjaxFlagMenu = $(""); } AjaxFlagMenu.css("list-style","none"); //append a title to Menu AjaxFlagMenu.append(Caption); //function to add item to Menu this.unselectItems = function() { //LastSelectedItem.setOnOutStatus(); for(var i=0;i