/*
Copyright (c) 2009, Swati Raju. All rights reserved.
Author: Swati Raju
version: 1.0.0
*/
var Y = YAHOO;
var yud = YAHOO.util.Dom;
var yue = YAHOO.util.Event;
var yua = YAHOO.util.Anim;
Y.namespace("LBF");
/**
    * LBF
    *
    * @module LBF
    * @title LBF
    * @namespace YAHOO.LBF
    * @requires YAHOO, dom, event
    */
Y.LBF = function() {
    var _catId  = -1;
    var wait    = null;
    var open    = false;
    
    var removeHint = function(ev){
        if (yud.get("inp").value == ""){ yud.addClass("inp", "hint"); }
        else { yud.removeClass("inp", "hint"); }
    }
    var checkHint = function(ev){ yud.removeClass("inp", "hint"); }
    /**
    * Show menu
    *
    * @method showMenu
    * @param {e} event
    * @returns
    */
    var showMenu = function(e, oSelf) {
        var popup = 's' + this.id;
        yud.removeClass(popup, 'hide');
        yud.setStyle('hd-nav', 'height', '200px');
        open = true;
        var myAnim = new yua(popup, { 
            top: { to: 33 }  
        }, .30, YAHOO.util.Easing.easeOut);
        var done = function(){
            if (yud.getStyle(popup, "top") == "33px"){ yud.setStyle(popup, "z-index", 1); }
            yud.setStyle('hd-nav', 'height', '200px');
        }
        myAnim.onComplete.subscribe(done); 
        myAnim.animate();
        yud.addClass(this.id, "menu-hover");
        yue.purgeElement(popup);
        yue.on(popup, "mouseout", hideMenu, this);
    };
    /**
    * Hide menu
    *
    * @method hideMenu
    * @param {e} event
    * @returns
    */
    var hideMenu = function(e, oSelf){
        var menu = yud.get('s' + oSelf.id);
        var oRelatedTarget = yue.getRelatedTarget(e);
        open = false;
        if (oRelatedTarget == menu || !yud.isAncestor(menu, oRelatedTarget)){
            var myAnim = new yua(menu, { 
                top: { to: -96 }  
            }, .30, YAHOO.util.Easing.easeOut);
            yud.setStyle(menu, 'z-index', -1);
            var done = function(){
                yud.addClass(menu, 'hide');
                if (!open){ yud.setStyle('hd-nav', 'height', '50px'); }
            } 
            myAnim.onComplete.subscribe(done); 
            myAnim.animate();
            yud.removeClass(oSelf.id, "menu-hover");
            yue.removeListener(menu, "mouseout", oSelf.handleMenuMouseOut);
        }
    };
    /**
    * Close Twitter
    *
    * @method closeTwitter
    * @param {e} event
    * @param {object} oSelf
    * @returns
    */
    var closeTwitter = function(e){
        wait.hide();
    };
    return{
        /**
        * init page
        *
        * @method init
        * @param
        * @returns
        */
        init: function() {
            var bClass = "";
            if (Y.env.ua.gecko > 0) { bClass="ff"; }  // e.g. Firefox 
            if (Y.env.ua.ie > 0) { bClass="ie"; }     // Microsoft Internet Explorer 
            if (Y.env.ua.ie > 5 && Y.env.ua.ie < 7) { bClass="ie6"; }     // Microsoft Internet Explorer 
            if (Y.env.ua.opera) { bClass="opera"; }  // Opera 
            if (Y.env.ua.webkit) { bClass="safari"; } // Safari, Webkit            
            //yud.addClass(document.body, bClass);
            var products = yud.get("nav-products");
            yue.on(products, "mouseover", showMenu, products, true);
            yue.on(products, "mouseout", hideMenu, products, true);
            var locations = yud.get("nav-locations");
            yue.on(locations, "mouseover", showMenu, locations, true);
            yue.on(locations, "mouseout", hideMenu, locations, true);
            var food = yud.get("nav-food");
            yue.on(food, "mouseover", showMenu, food, true);
            yue.on(food, "mouseout", hideMenu, food, true);
            var about = yud.get("nav-about");
            yue.on(about, "mouseover", showMenu, about, true);
            yue.on(about, "mouseout", hideMenu, about, true);
            yue.on("window", "load", removeHint);
            yue.on("inp", "focus", checkHint);
            yue.on("inp", "blur", removeHint);
            if (yud.get("tw")){ yue.on("tw", "click", this.showTwitter); }
        },
        /**
        * show twitter
        *
        * @method showTwitter
        * @param
        * @returns
        */
        showTwitter: function(e) {
            var content        = yud.get("lb-content");
             content.innerHTML  = "";
             wait = new YAHOO.widget.Panel("wait",  
                        { width: "609px", 
                          fixedcenter: true, 
                          close: true, 
                          draggable: false, 
                          zindex:4,
                          modal: true,
                          visible: true
                         } 
                     );
            wait.setHeader("<h2><span><span>FOLLOW US ON TWITTER</span></span></h2><a href='#' id='lb-close' class='close'></a>");
            var html = "<div class='lb-bd'><a href='http://twitter.com/letsbefranksf' target='_blank' class='lb-button' id='tw-sf'><span>Let's Be Frank SF</span></a><a class='lb-button' href='http://twitter.com/letsbefrank' target='_blank' id='tw-la'><span>Let's Be Frank LA</span></a></div>";
            wait.setBody(html);
            wait.render(document.body);
            wait.show();
            yue.on('lb-close', "click", function(e){
                closeTwitter();
                yue.preventDefault(e);
            });
            yue.on("wait_mask", "click", function(e){
                closeTwitter();
                yue.preventDefault(e);
            });
            yue.on('tw-sf', "click", closeTwitter);
            yue.on("tw-la", "click", closeTwitter);
            yue.preventDefault(e);
        }
    };
}();
Y.LBF.init();
