var shops={
	init:function() {

        //tell css that JS is enabled
		$(document.body).addClass("js");

        //index.jsp: if there are other photos to show, set up the gallery
		if ($("gallery_scroller")) this.setupGallery();


        //results.jsp
		$$("#enter_keyword input").addEvent("focus",function(event) {
			if (this.value=="KEYWORD") this.value="";
		}).addEvent("blur",function(event) {
			if (this.value=="") this.value="KEYWORD";
		});

        //results.jsp: provide functionality for "more in store" slider
		$$(".more-in-store-btn").addEvent('click',function(event) {
            event.stop();
			var self=event.target;
			$$(".item").each(function(item) {
				 item.removeClass("on").erase("style");
			});
			var item=$(self).getParent(".item").toggleClass("on");
			new Fx.Morph(item).start({
				"background-position":[[-1000,0],[-5,0]]
			});
			var top=($$("#results .item").indexOf(item)*item.getCoordinates().height)+55;
			var bottom=$("results").getCoordinates().bottom;
			if (top+880>bottom) top=bottom-767;
			$("more_in_store").setStyles({"display":"block"}).tween("top",top).empty().grab(new Element("div",{"class":"loader"}))

			new Request({
				url:"/play/shopping/includes/more-in-store.jsp",
				method:"get",
				onComplete:function(rt) {
					$("more_in_store").empty().grab(new Element("div",{html:rt}).setStyle("opacity",0).tween("opacity",1))
				}
			}).send("companyId="+self.get("id"))
		});


		//index.jsp: functionality for featured "more in store" button
		$$(".more-in-store-btn2").addEvent('click',function(event) {
            event.stop();
			var self=event.target;
			if (self.hasClass("showing")) return;
			self.addClass("showing");
			new Fx.Morph(self.getParent()).start({
				"background-position":[[-400,0],[-4,0]],
				"padding-top":20,
				"padding-bottom":20,
				"height":45
			}).chain(function() {
				$$("#more_in_store").setStyles({"width":0,"display":"block","left":664}).tween("width",240)
			})
		});


        //remove "more in store" slider if the close button was clicked
		$$("#more_in_store").addEvent("click",function(event) {
			if ($(event.target).hasClass("close-btn")) {
				event.stop();
				$$(".item.on").removeClass("on");
				if (!$("mis_btn")) $("more_in_store").empty().setStyles({"display":"none"});
				else {
					$("more_in_store").setStyles({"display":"none"});
					$("mis_btn").erase("style").getElement("img").removeClass("showing");

					//this causes a repaint it IE6/7, only way to fix disappearing button.
					if (Browser.Engine.trident) setTimeout(function(){$("mis_btn").setStyle("opacity",1)},1)
				}
			}
		});


        //details.jsp: add ShareThis mouseover
        $$("#accordion .share-this").each(function(item) {
            SHARETHIS.addEntry({
                    title:item.getProperty("title"),
                    url:item.getProperty("href"),
                    content:item.getNext(".share-this-description").get('text')
                },{
                    button:false,
                    embeds:true
            }).attachButton(item)
            item.removeEvents().addEvent("click",function(event) {event.stop()})
        });

        //add to favorites
        $.Require(["/js/mootools.modal.js"],function() {
            this.modal = new Modal();
            $(document.body).addEvent("click",this.clickHandlerForFavorites.bindWithEvent(this));
        }.bind(this))

	},
	setupGallery:function() {
		var length=$("gallery_scroller").getElements("img").length;
		$("gallery_scroller").setStyle("width",390*length);
		this.tween=new Fx.Tween($("gallery_scroller"));

		$$("#gallery_indicators a").addEvent("click",function(event) {
			event.stop();
			var self=event.target;
			if (self.hasClass("on")) return;
			var target=0;
			$$("#gallery_indicators a").each(function(item,index) {
				if (item==self) target=index;
			});

			$$("#gallery_indicators a.on").removeClass("on");
			self.addClass("on");

			$$("#gallery_scroller img")[target].setStyle("opacity",0);
			(function() {$$("#gallery_scroller img")[target].tween("opacity",1)}).delay(200);

			this.tween.start("left",(target*-375))

		}.bind(this))
	},
	toggleAccordion:function(id) {//not used
        $$("#accordion .toggler").each(function(item,index) {
            if (item.get("id")==id) {
                shops.accordion.display(index);
            }
        })
	},
    showLogin:function(text,target,event) {
        // test response for login window
        if(text&&text.contains('login-form-window')){
            // strip the html we need from the response
            var responseText = text.split('<body>')[1].split('</body>')[0];
            var responseElement = new Element('div',{html:responseText});
            var form = responseElement.getElement('form');
            if(form != null){
                form.addEvent('submit', function(e){
                    e.stop();
                    if ($("email") && $("password")) {//really basic validation-->make sure not empty
                        if ($("email").get("value")=="") $("email").setStyle("border","1px solid red");
                        else $("email").erase("style");
                        if ($("password").get("value")=="") $("password").setStyle("border","1px solid red");
                        else $("password").erase("style");
                        if ($("email").get("value")=="" || $("password").get("value")=="") return
                    }
                    this.addClass("working");
                    this.set('send', {
                        url: "/myvegas-user-profile",
                        method: 'get',
                        onComplete: function(text) {
                            shops.showLogin(text,target,event)
                        }
                    });
                    this.send();
                });
            }
            this.modal.show(responseElement);
        }else{// if the response does not contain the login form login must have been sucessfull
            if (target) {// refresh the page because if we don't causes weird issues --> (new) try to add favorite first
                window.isLoggedIn=true;
                this.modal.hide();
                new Request({
                    url:"/myvegas-user-profile",
                    method:"get",
                    onComplete:function() {
                        var element = new Element('a',{
                            "class":"vegas-favorites-saved",
                            "href":"http://visitlasvegas.com/vegas/my-vegas/index.jsp",
                            "html":"saved to my vegas favorites"
                        });
                        var id=target.get("id");
                        element.clone().replaces(target);
                        if ($(id)) element.clone().replaces($(id))
                    }
                }).send(target.getParent("form").toQueryString())
            }
        }
    },
    clickHandlerForFavorites:function(event) {
		if (!$(event.target).hasClass("add-favorites-button")) return;
		var e=event;
		event.stop();
		var target = $(event.target);
		if(!isLoggedIn){// user is not logged in yet so do it
			new Request({
				url:'/play/shopping/includes/login.jsp',
				method: 'get',
				onComplete: function(text) {
					this.showLogin(text,target,e)
				}.bind(this)
			}).send();
		}else{
			var form = target.getParent('#login-form-er');
			form.set('send', {
				url: "/myvegas-user-profile",
				method: 'get',
				onComplete: function(response){
					var element = new Element('a',{
						"class":"vegas-favorites-saved",
						"href":"http://visitlasvegas.com/vegas/my-vegas/index.jsp",
						"html":"saved to my vegas favorites"
					})
					var id=target.get("id");
					element.clone().replaces(target);
					if ($(id)) element.clone().replaces($(id))
				}.bind(this)
			});
			form.send();
		}
    }
}
window.addEvent("domready",shops.init.bind(shops));


//SIFR Declaration
var futuralight = {
  src: '/swf/sifr/FuturaLight.swf'
};
sIFR.activate(futuralight);
sIFR.replace(futuralight, {
	selector: '#accordion h3.toggler',
	css: [
		'.sIFR-root {color: #d1d3d4; font-size:9px; text-transform:uppercase}',
		'a { color: #d1d3d4; text-decoration:none; text-transform:uppercase }',
		'a:hover { color: #d1d3d4; text-decoration:none; text-transform:uppercase}'
	],
	wmode:'transparent',
	preventWrap: true,
	selectable:false,
	fitExactly:true,
	tuneWidth:10
});
var futura = {
  src: '/swf/sifr/Futura.swf'
};
sIFR.activate(futura);
sIFR.replace(futura, {
	selector: '.featured-sub-nav li',
	css: [
		'.sIFR-root {color: #d1d3d4; font-size:9px; text-transform:uppercase}' ,
		'a { color: #d1d3d4; text-decoration:none; }',
		'a:hover { color: #d1d3d4; text-decoration:none;}'
	],
	wmode:'transparent',
	preventWrap: true,
	fitExactly:true,
	tuneWidth:15,
	offsetTop:(Browser.Engine.trident4?8:5),
	offsetLeft:(Browser.Engine.trident4?10:0)
});

var futuraGradientMask = {
  src: '/swf/sifr/FuturaGradientMask.swf'
};
sIFR.activate(futuraGradientMask);
sIFR.replace(futuraGradientMask, {
	selector: '.gradient-sifr',
	css: [
		'.sIFR-root {color: #d1d3d4; font-size:22px;}',
		'a { color: #d1d3d4; text-decoration:none; }',
		'a:hover { color: #d1d3d4; text-decoration:none;}'
	],
	wmode:'transparent',
	preventWrap:true
});


sIFR.replace(futuraGradientMask, {
	selector: '.gradient-sifr2',
	css: [
		'.sIFR-root {color: #d1d3d4; font-size:18px;}',
		'a { color: #d1d3d4; text-decoration:none; }',
		'a:hover { color: #d1d3d4; text-decoration:none;}'
	],
	wmode:'transparent',
	preventWrap:true,
	fitExactly:true,
	tuneWidth:6
});
function lateSifr() {
sIFR.replace(futura, {
	selector: '#update-bucket .event-title',
	css: [
		'.sIFR-root {color: #d1d3d4; font-size:12px;}'
	],
	wmode:'transparent',
	preventWrap: true,
	fitExactly:true,
	tuneWidth:6
});
}
lateSifr();