jQuery.noConflict();

jQuery(document).ready(function($) {

    (function($){
        $.initialHeight = function() {
            if (envDomainRegion != 'mx') {
                $(".landing_page_wrap").css("height",$(".landing_page").outerHeight()-$(".landing_page_header").outerHeight()-$(".landing_page_footer").outerHeight());
                $(".feed_wrap").css("height",$(".landing_page").outerHeight()-$(".landing_page_header").outerHeight()-$(".landing_page_footer").outerHeight()-45);
            }
        };
    })(jQuery);

    $.initialHeight();

    $.oldWindowSize = {
        width: $(window).width(),
        height: $(window).height()
    };

    $(window).resize(function(e){

        if ($(".map_wrap").height() < 225) {
            $("#swissmapSWFObject").addClass('hide')
        } else {
            $("#swissmapSWFObject").removeClass('hide')
        }

	    $.centringLayout();
        $.magicCaption();

		$.initialHeight();

        if (map != null) {
            if ($.oldWindowSize.width != $(window).width()) {
                var newWidth = $("#main_center").width() - $.oldWindowSize.width + $(window).width();
                $("#main_center").width(newWidth);
                google.maps.event.trigger(map, "resize");
                $.oldWindowSize.width = $(window).width();
            }
            if ($.oldWindowSize.height != $(window).height()) {
                google.maps.event.trigger(map, "resize");
                $.oldWindowSize.height = $(window).height();
            }
        }
	});

	/*----Animation for Icon on Toolbar----*/

	$(".icon").css("opacity",0.75).hover(
		function(){
			$(this).stop().fadeTo(600,1);
		},
		function(){
			$(this).stop().fadeTo(600,0.75);
		}
	);
	/*----/Animation for Icon on Toolbar----*/

	/*----Animation for bottom menu----*/
	$(function() {
		$('#menu_bottom').lavaLamp({homeTop:-30, homeLeft:0, homeHeight:20, homeWidth:150, setOnClick:false});
	});
	/*----/Animation for bottom menu----*/

	/*----Animation for top, bottom panels----*/
	var	top_panel_location_enable = false;
	var	top_panel_login_enable = false;
    var advancedSearch_enable = false;

	$("#toolbar_sign_in").click(function() {
		if(top_panel_login_enable)
		{
			$.top_panel_login_push();
		}
		else
		{
			$.top_panel_location_push();
			$.top_panel_login_pop();
		}
	});

    $("#facebook_sign_in,#facebook_sign_in_popup,#facebook_sign_in_make_deal").click(function() {
        var top = ($(window).height() - 400) / 2 + $(window).scrollTop() + "px";
        var left = ($(window).width() - 440) / 2 + $(window).scrollLeft() + "px";

        window.showModalDialog(this.href, null,
                "dialogLeft:" + left +
                        ";dialogTop:" + top +
                        ";dialogWidth:440px" +
                        ";dialogHeight:400px" +
                        ";resizable:no" +
                        ";scroll:yes" +
                        ";status:no");

        return false;
    });

    $("#suisseid_sign_in,#suisseid_sign_in_popup").click(function() {
        var top = ($(window).height() - 600) / 2 + $(window).scrollTop() + "px";
        var left = ($(window).width() - 1000) / 2 + $(window).scrollLeft() + "px";

        window.showModalDialog(this.href, null,
                "dialogLeft:" + left +
                        ";dialogTop:" + top +
                        ";dialogWidth:1000px" +
                        ";dialogHeight:600px" +
                        ";resizable:no" +
                        ";scroll:yes" +
                        ";status:no");

        return false;
    });

    $("#openid_sign_in, #openid_sign_in_popup").click(function() {
        $.closeDOMWindow({
                    functionCallOnClose:true,
                    functionCallAfterClose:openPopup_openIdPopupLogin
                });
        return false;
    });

    /* function is overridden for different behaviour of geoLocation */
    findMeFunction = function() {getGeoLocation(map)};

    $.findMeFunction = function() {
        if (top_panel_location_enable) {
			$.top_panel_location_push();
        } else {
			$.top_panel_login_push();
			$.top_panel_location_pop();
        }
    };

    $("#toolbar_findme").click(function() {
        findMeFunction();
	});

    /*--Animation for Advanced Search Panel--*/
    $('.adv').click(function() {
        $.toggleAdvancedSearchPanel();
    });

    $('#emptyResAdvSearchLink').click(function() {
        $.toggleAdvancedSearchPanel();
    });

    $("#closeAdvSearch").click(function() {
        $.advanced_search_form_push();
    });

(function($){
        /*-- function for centered component in document--*/
		$.fn.centered = function() {
			var componentWidth=$(this).outerWidth(true);
			var windowWidth=parseFloat($(window).width());
			var componentPos=(windowWidth-componentWidth)/2;
			return this.css("left",componentPos);
		};

        $.magicCaption = function() {
			if(parseFloat($(window).width()) < 1200 && !($("#searchInShopBtnBlock").hasClass('hide'))) {
                $(".shop_search").attr("value"," ").css("padding-left","18px");
                $(".magic_search").attr("value"," ").css("padding-left","18px");
			} else {
                $(".shop_search").attr("value","Shop Search").css("padding-left","30px");
                $(".magic_search").attr("value","Magic Search").css("padding-left","30px");
			}
		};

        $.centringLayout = function () {
            $(".menu_bottom").centered();
            $(".copyright").centered();
        };

        $.initialShowing = function() {
            if ($.browser.opera || $.browser.msie) {
                $(".search_counter").hide();
            }
        };

		$.top_panel_login_push=function()
		{
			top_panel_login_enable = false;
			$("#login_form").addClass("hide");
			$("#toolbar_findme a").removeClass("active");
			$.changeTopPanelBackground();
		};

		$.top_panel_login_pop=function()
		{
			top_panel_login_enable = true;
			$("#login_form").removeClass("hide");
			$.changeTopPanelBackground();
		};

		$.top_panel_location_push=function()
		{
			top_panel_location_enable = false;
			$("#manual_location_form").addClass("hide");
			$("#toolbar_findme a").removeClass("active");
			$("#toolbar_sign_in").removeClass("active");
			$.changeTopPanelBackground();
		};

		$.top_panel_location_pop=function()
		{
			top_panel_location_enable = true;
			$("#manual_location_form").removeClass("hide");
			$("#toolbar_findme a").addClass("active");
			$.changeTopPanelBackground();
		};
		$.changeTopPanelBackground = function()
		{
			if (advancedSearch_enable || top_panel_location_enable || top_panel_login_enable) {
				$("#panel_top").css("background","url(/PanoshopEngine/images/backgrounds/panel_top_bg.png) top repeat");
			} else {
				$("#panel_top").css("background","url(/PanoshopEngine/images/backgrounds/panel_top_bg2.gif) repeat-x scroll center top #34424E");
			}
		};
		$.advanced_search_form_push = function()
        {
			advancedSearch_enable = false;
			$("#advancedSearchPanel").addClass("hide");
			$.changeTopPanelBackground();
		};
        $.advanced_search_form_pop = function()
        {
			advancedSearch_enable = true;
			$("#advancedSearchPanel").removeClass("hide");
			$.changeTopPanelBackground();
		};
        $.toggleAdvancedSearchPanel = function() {
            if (advancedSearch_enable) {
                $.advanced_search_form_push();
            } else {
                $.advanced_search_form_pop();
            }
        };
        $.remember_me_click_handler = function(element)
        {
            $("#_spring_security_remember_me_hdn").val(!remember_me_check);
            if(remember_me_check = !remember_me_check) {
                element.style.background = 'url(/PanoshopEngine/images/checkbox_on.png) left no-repeat';
            } else {
                element.style.background = 'url(/PanoshopEngine/images/checkbox_off.png) left no-repeat';
            }
		};
        $.addPositionParamsToLink = function() {
            var position = getGeoLocationCookie($);
            if (position['lat'] != undefined && position['lon'] != undefined) {
                $("a[href^=/PanoshopEngine/flow/search]").each(function() {
                    this.href += "&lat=" + position['lat'] + "&lon=" + position['lon'];
                });
            }
        };
        $.buttonCartClickFunction = function() {
            cartIsActive = true;
            $("#wish_list_block").addClass("hide");
            $("#shopping_cart_block").removeClass("hide");
            $(".but_checkout").removeClass("hide");
            $("#button_wishlist").addClass("hide");
            $("#button_cart").removeClass("hide");
            $(".pr_icon").removeClass("hide");
            $(".pr_price").removeClass("hide");
            $(".pr_items").addClass("hide");
            $(".but_cart").addClass("active");
            $(".but_wish").removeClass("active");
		};
        $.buttonWishlistClickFunction = function() {
            cartIsActive = false;
            $("#shopping_cart_block").addClass("hide");
            $("#wish_list_block").removeClass("hide");
            $(".but_checkout").addClass("hide");
            $("#button_wishlist").removeClass("hide");
            $("#button_cart").addClass("hide");
            $(".pr_icon").addClass("hide");
            $(".pr_price").addClass("hide");
            $(".pr_items").removeClass("hide");
            $(".but_cart").removeClass("active");
            $(".but_wish").addClass("active");
        };
        $.initActiveNotActiveButtons = function() {
            $(".not_active").fadeTo('slow', 0.5);
	        $(".active").fadeTo('slow', 1);
        }
})(jQuery);

    $.initialShowing();
    $.centringLayout();
    $.magicCaption();

    /*--Animation for blue glowing inputs--*/
    if (!window.noInputGlow) {
        $("input[type=text],input[type=password]").addClass("glow");
        $("input[type=text],input[type=password]").parent(".container,div").addClass("glow");
        $("input[type=text],input[type=password]")
            .focus(function() {
                $(this).parent(".container,div").addClass("glow_active");
                $(this).addClass("glow_active");
            }).blur(function() {
                $(this).parent(".container,div").removeClass("glow_active");
                $(this).removeClass("glow_active");
            });
    }
    /*--Animation for not active button--*/
	$.initActiveNotActiveButtons();

    $(".but_cart").click(function(){$.buttonCartClickFunction()});
	$(".but_wish").click(function(){$.buttonWishlistClickFunction()});

    $("#language_wrap").show();
});

function getGeoLocationCookie(jQuery) {
    var result = [];
    result.push('lat');
    result.push('lon');

    if (!jQuery.cookie) {
        jQuery = spareJQueryInstance;
    }
    if (jQuery.cookie) {
        result['lat'] = jQuery.cookie('geoLatitude');
        result['lon'] = jQuery.cookie('geoLongitude');
    }
    return result;
}

function setGeoPositionCookie(jQuery, geoLatitude, geoLongitude) {
    if (!jQuery.cookie) {
        jQuery = spareJQueryInstance;
    }
    if (jQuery.cookie) {
        jQuery.cookie('geoLatitude', geoLatitude, {expires: 730});
        jQuery.cookie('geoLongitude', geoLongitude, {expires: 730});
    }
    jQuery("#lat").val(geoLatitude);
    jQuery("#lon").val(geoLongitude);
}

/**
 * Function to get poiImage by specified shop type
 *
 * @param shopType shop type
 */
function getPoiMarkerByShopType(shopType) {
    switch (shopType) {
        case 'Bank': return PoiMarkerImages.bankMarker;
        case 'Bar': return PoiMarkerImages.barMarker;
        case 'BookStore': return PoiMarkerImages.bookMarker;
        case 'Cafe': return PoiMarkerImages.cafeMarker;
        case 'Cafeteria': return PoiMarkerImages.cafeteriaMarker;
        case 'Cinema': return PoiMarkerImages.cinemaMarker;
        case 'Company': return PoiMarkerImages.companyMarker;
        case 'Exhibition': return PoiMarkerImages.exhibitionMarker;
        case 'FashionStore': return PoiMarkerImages.fashionMarker;
        case 'GasStation': return PoiMarkerImages.gasStationMarker;
        case 'GroceryStore': return PoiMarkerImages.groceryMarker;
        case 'Hotel': return PoiMarkerImages.hotelMarker;
        case 'Institutional': return PoiMarkerImages.institutionalMarker;
        case 'InternetCafe': return PoiMarkerImages.internetCafeMarker;
        case 'NightClub': return PoiMarkerImages.nightClubMarker;
        case 'Pharmacy': return PoiMarkerImages.pharmacyMarker;
        case 'Restaurant': return PoiMarkerImages.restaurantMarker;
        case 'ShoppingCenter': return PoiMarkerImages.shoppingCenterMarker;
        case 'SportCenter': return PoiMarkerImages.sportCenterMarker;
        case 'Tooltip': return PoiMarkerImages.infoMarker;
        case 'ThemePark': return PoiMarkerImages.themeParkMarker;
        case 'Tourism': return PoiMarkerImages.tourismMarker;
        case 'Other': return PoiMarkerImages.cartMarker;
    }
    return PoiMarkerImages.blankMarker;
}

// labels block
panoshopJSLabels.addLabel("yourGeoLocation","Your Geo Location","Ihre Geo Lage","De votre emplacement géographique","La tua Area geografica","Su ubicación geográfica","Sua localização geográfica","あなたの地理的な位置","Ваше Графическое Положение","Ваше Графічне Розташування");
panoshopJSLabels.addLabel("home","Home","Haus","Accueil","Сasa","Casa","Casa","ホーム","Домой","Додому");

(function($) {
    /**
     * Params - object that can have next properties: formId
     * @param params
     */
    $.trackFormChanges = function(params) {
        var formId = params['formId'];
        var form = (formId) ? $("#" + formId) : $("form");
        var submitBtn = form.find(':submit');
        submitBtn.attr("disabled", true);
        submitBtn.css("opacity", "0.5");
        submitBtn.css("cursor", "inherit");
        form.find("input, select, textarea").change(function() {
            if (submitBtn.attr("disabled")) {
                submitBtn.attr("disabled", false);
                submitBtn.css("opacity", "1");
                submitBtn.css("cursor", "pointer");
            }
        });
    }
})(jQuery);
