dojo.registerModulePath("site","/js/v1/site");

dojo.require("generic.img");
dojo.require("site.globalnav");
dojo.require("site.cart");
dojo.require("generic.layout.IFramePane");
dojo.require("generic.checkoutPageHandler");
dojo.require("dojo.cookie");

var global = {
    // cartHandler:
    // handles calls to/from cart
    // handles status of cart (ex: cart popup in global nav)
    cartHandler: new site.cart(),
    checkoutPage: new generic.checkoutPageHandler(),    
    // path to current version
    jsPath: "/js/v1/"    
}

// sign-in popup pre-init prep
var signupPop = {};
function hideSignupPop() {
    signupPop.close();
}

// sign-in auto-popup pre-init prep
var signupAutoPop = {};
function hideSignupAutoPop() {
    signupAutoPop.close();
}

        
// js to run when page elements have loaded
dojo.addOnLoad(
    function() {

        // set up states for globalnav 
        var gnavSection = (typeof SECTION === "undefined" ? "" : SECTION);
        var gnavSubSection = (typeof SUBSECTION === "undefined" ? "" : SUBSECTION);
        var gnavState = new site.globalnav({section:gnavSection, subSection:gnavSubSection});
        gnavState.startup(); 
        
        // adjustments for cms pages
        if (typeof(page_data) !== "undefined") {
            if (page_data.cms_generated == 1) {
                // set height of content_container based on position of cms footer
                var bg_height = 0;
                var cms_footer = dojo.byId('globalFooterContainer');
                var content_container = dojo.byId('content_container');
                if (cms_footer && content_container) {
                    var cc_coords = dojo.coords(content_container, true);
                    var footer_top = parseInt(cms_footer.style.top, 10);
                    content_container.style.height = (footer_top - cc_coords.y) + "px";
                }               

				if (content_container) {
					// hack to move cms content up
					dojo.query("div.cms_layer").forEach(
						function(elem) {
							if ( ! dojo.hasClass(elem, 'cms_wysiwyg') ) {
								var top = elem.style.top.replace(/px$/, '');
								top = parseInt(top) - 8;
								elem.style.top = top + 'px';
							}
						}
					);
                	// shadows
					var light_bg_top_shadow = document.createElement('div');
					light_bg_top_shadow.className = 'light_bg_top_shadow';
					var content_wrapper_pattern = document.createElement('div');
					content_wrapper_pattern.className = 'content_wrapper_pattern';
					content_wrapper_pattern.appendChild( light_bg_top_shadow );
	
					content_container.insertBefore(
						content_wrapper_pattern,
						content_container.firstChild
					);
                }
            }
        }
    
        // Add rollover to every image w/ class "rollover"
        dojo.query("img.rollover").forEach(
            function(elem) {
                var rollover = new generic.rollover(elem, null); // generic.rollover: Rollover class
            }
        );  
        
        // cart status: utility nav count & popup       
        cartStatus.init({
            globalCount: "cart_count",
            globalCartLink: "cart_link",
						cssClassHasItems: "cart_has_items", 
    				cssClassNoItems: "cart_no_items",
    				
            popup: {
                container: "cart_popup", 
                target: "cart_link",  
                count: "cart_popup_count"
            }
        });
        
        // salon professional popup
        var salonProfessional = new generic.menu({
            target: "prof_link",
            menu: "prof_login_popup"
        });
        
 
        // sign-up popup
        var signupPopTarget = dojo.byId("gnav_signup"); // gnav link
        if (signupPopTarget) {
			var signupPopSrcNode = dojo.byId("gnav_signup_popup_container"); // popup content container
			function showSignupPop() {
				if (!signupPop._started) {
					signupPop.startup();
				} else {
					signupPop.show();
				}
			}
			// init floating modal pane
			// container for iframe
			signupPop = new generic.layout.IFramePane({
				id: "gnav_signup_popup",
				position: {top: 40, left: 60},
				iframeHref: "/emailsignup/emailsignup1.tmpl",
				parentNode: dojo.byId("main_container")				
			}, signupPopSrcNode);
	
			// attach event to sign up link
			dojo.connect(signupPopTarget, "onclick", showSignupPop);
		}

        // Sign-up auto-popup. Only shown once when homepage is first visited.
        var popup_cookie = dojo.cookie("homepage");
        console.log(popup_cookie);
        var popped = 0;
        if (popup_cookie) {
            popped = popup_cookie.split("&")[1];
        }

        var re = new RegExp("(bumbleandbumble.com\/$|bumbleandbumble.com\/index\.tmpl)","i");
        if (!popped && re.exec(location.href)) {
        //if (re.exec(location.href)) {
                        dojo.cookie("homepage","popup.popped\&1",{expires: 3650});
			var signupAutoPopSrcNode = dojo.byId("gnav_auto_signup_popup_container");
			function showAutoSignupPop() {
				if (!signupAutoPop._started) {
					signupAutoPop.startup();
				} else {
					signupAutoPop.show();
				}
			}
			// init floating modal pane
			// container for iframe
			signupAutoPop = new generic.layout.IFramePane({
				id: "gnav_auto_signup_popup",
				position: {top: 180, left: 260},
				iframeHref: "/emailsignup/emailpopup.tmpl",
				parentNode: dojo.byId("main_container")				
			}, signupAutoPopSrcNode);
	
			showAutoSignupPop();
		}
        
    }
);
