/* http://keith-wood.name/backgroundPos.html
   Background position animation for jQuery v1.0.1.
   Written by Keith Wood (kbwood{at}iinet.com.au) November 2010.
   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
   Please attribute the author if you use it. */
(function($){var g='bgPos';$.fx.step['backgroundPosition']=$.fx.step['background-position']=function(a){if(!a.set){var b=$(a.elem);var c=b.data(g);b.css('backgroundPosition',c);a.start=parseBackgroundPosition(c);a.end=parseBackgroundPosition($.fn.jquery>='1.6'?a.end:a.options.curAnim['backgroundPosition']||a.options.curAnim['background-position']);for(var i=0;i<a.end.length;i++){if(a.end[i][0]){a.end[i][1]=a.start[i][1]+(a.end[i][0]=='-='?-1:+1)*a.end[i][1]}}a.set=true}$(a.elem).css('background-position',((a.pos*(a.end[0][1]-a.start[0][1])+a.start[0][1])+a.end[0][2])+' '+((a.pos*(a.end[1][1]-a.start[1][1])+a.start[1][1])+a.end[1][2]))};function parseBackgroundPosition(c){var d={center:'50%',left:'0%',right:'100%',top:'0%',bottom:'100%'};var e=c.split(/ /);var f=function(a){var b=(d[e[a]]||e[a]||'50%').match(/^([+-]=)?([+-]?\d+(\.\d*)?)(.*)$/);e[a]=[b[1],parseFloat(b[2]),b[4]||'px']};if(e.length==1&&$.inArray(e[0],['top','bottom'])>-1){e[1]=e[0];e[0]='50%'}f(0);f(1);return e}$.fn.animate=function(e){return function(a,b,c,d){if(a['backgroundPosition']||a['background-position']){this.data(g,this.css('backgroundPosition')||'center')}return e.apply(this,[a,b,c,d])}}($.fn.animate)})(jQuery);

var _switchTimeout;
var _defaultTitle;

var _pages = {
    "homepage": {
        "html": '<div class="actualContent" id="slideWrapper"><div style="left: 0px;" id="slideLine"><div class="slide"><img src="http://www.mustangshoes.cz/user/public/default/images/slider1.jpg" alt=""></div><div class="slide"><img src="http://www.mustangshoes.cz/user/public/default/images/slider2.jpg" alt=""></div><div class="slide"><img src="http://www.mustangshoes.cz/user/public/default/images/slider3.jpg" alt=""></div><div class="slide"><img src="http://www.mustangshoes.cz/user/public/default/images/slider4.jpg" alt=""></div><div class="slide"><img src="http://www.mustangshoes.cz/user/public/default/images/slider5.jpg" alt=""></div></div><div id="controlls"><ul><li class="active"><a href="#"><span></span></a></li><li><a href="#" class=""><span></span></a></li><li><a href="#" class=""><span></span></a></li><li><a href="#" class=""><span></span></a></li><li><a href="#" class=""><span></span></a></li></ul></div></div>',
        "headingClass": 'map',
        "rightMap": true,
        "map": false,
        "title": ""
        
    },
    "map": {
        "html": '<div id="map" class="actualContent"></div>',
        "headingClass": 'homepage',
        "rightMap": false,
        "map": true,
        "rightHtml": '<img src="http://www.mustangshoes.cz/user/public/default/images/testImgSmall.jpg" />',
        "title": "Mapa prodejních míst"
    }    

};

function emailValidity(element) {
    return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(element.val());

}

function markerClick(marker, content) {
    google.maps.event.addListener(marker, 'click', function() {
        
        if (!$("#popup").length) {
            $('body').append('<div id="popup" class="shadow"><div class="content"></div><a href="#" id="closePopup"></a></div>');
        
            $("#popup").css("left", $("#content").offset().left+7+(($("#content").width()-$("#popup").width())/2));
        
        } else {
            $("#popup").show();
            
        }
        
        $("#popup .content").html(content);
    });
    
}

function markerClickSmall(marker) {
    google.maps.event.addListener(marker, 'click', function() {
        $(".heading.map").click();
        
    });
    
}

function setMarkers(map, locations, type) {

    var image = new google.maps.MarkerImage(
        'http://www.mustangshoes.cz/user/public/default/images/flag.png',
        new google.maps.Size(31,41),
        new google.maps.Point(0,0),
        new google.maps.Point(16,41)
    );
    
    var shadow = new google.maps.MarkerImage(
        'http://www.mustangshoes.cz/user/public/default/images/flagShadow.png',
        new google.maps.Size(55,41),
        new google.maps.Point(0,0),
        new google.maps.Point(16,41)
    );
    
    var shape = {
        coord: [30,0,30,1,30,2,30,3,30,4,30,5,30,6,30,7,30,8,30,9,30,10,30,11,30,12,30,13,30,14,30,15,30,16,30,17,30,18,30,19,30,20,30,21,30,22,30,23,30,24,30,25,30,26,30,27,30,28,30,29,21,30,20,31,20,32,19,33,18,34,17,35,16,36,15,37,14,38,13,39,12,40,12,40,12,39,12,38,12,37,12,36,12,35,12,34,12,33,12,32,12,31,12,30,0,29,0,28,0,27,0,26,0,25,0,24,0,23,0,22,0,21,0,20,0,19,0,18,0,17,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,7,0,6,0,5,0,4,0,3,0,2,0,1,0,0,30,0],
        type: 'poly'
    };
    
    
    for (var i = 0; i < locations.length; i++) {
        var location = locations[i];
        var mLatLng = new google.maps.LatLng(location.lat, location.lng);
        
        
        var marker = new google.maps.Marker({
            icon: image,
            shadow: shadow,
            shape: shape,
            map: map,
            position: mLatLng,
            title: location.name
        });
        
        if (type == 'big') {
            markerClick(marker, location.html);
        } else {
            markerClickSmall(marker);
            
        }

    }
}


function switchTimeOut() {
    clearTimeout(_switchTimeout);
    
    _switchTimeout = setTimeout(function() {
        var next = $("#controlls .active").next('li').find('a');
        
        if (!next.length) {
            next = $("#controlls a:first");
            
        }
        
        next.click();
        switchTimeOut();
        
    }, 4000);
    
}


function initMap(element, type) {
    var latlng = new google.maps.LatLng(49.79545, 15.62256); // 49
    var praha = new google.maps.LatLng(50.07653, 14.41956);

    var myOptions = {
        "small": {
            zoom: 10,
            center: praha,
            scrollwheel: false,
            disableDefaultUI: true,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        },
        "big": {
            zoom: 7,
            center: latlng,
            scrollwheel: true,
            mapTypeId: google.maps.MapTypeId.ROADMAP
            
        }
    };
        
        
    var map = new google.maps.Map(element[0], myOptions[type]);
    
    
    var styles = [
        { featureType: "all", elementType: "all", stylers: [ { saturation: -100 } ] }
    ];
    
    var styledMapOptions = { name: "Grayscale" };
    
    var gsMapType = new google.maps.StyledMapType(styles, styledMapOptions);
    
    map.mapTypes.set('grayscale', gsMapType);
    map.setMapTypeId('grayscale');
    

    setMarkers(map, locations, type);
}

$(document).ready(function() {

	// $(window).resize(function() {
	//    $("body").css("backgroundSize", $(window).width());
	// });
	
	$(window).resize(function() {         
	    $("body").css("backgroundSize", $(window).width()+' '+$(window).height());     
	});       
	$("body").css("backgroundSize", $(window).width()+' '+$(window).height());

	// $("body").css("backgroundSize", $(window).width());
    
    _defaultTitle = document.title;
    
    $(".heading.map").click(function(e) {
        e.preventDefault();
        var element = $(this); 
        
        $("#popup").fadeOut();
        
        var page = element.attr("rel");
        var data = _pages[page];
        
        var copy = element.clone();
        var offset = element.offset();
        
        var elementWidth = element.width();
        var elementHeight = element.height();
        
        var target = $("#content");
        var targetOffset = target.offset();
        
        var taOffsetLeft = targetOffset.left;
        var taOffsetTop = targetOffset.top;
        
        var targetWidth = target.width();
        var targetHeight = target.height();
         
        copy.css({position: 'absolute', top: offset.top, left: offset.left});
        copy.appendTo($("body"));
        
        var newLeft = targetOffset.left+((targetWidth/2)-(elementWidth/2));
        var newTop = targetOffset.top+((targetHeight/2)-(elementHeight/2));
        
        copy.animate({left: newLeft, top: newTop}, function() {
            $('<div id="replacer"></div>').insertBefore(copy);
            var replacer =  $("#replacer").css({left: newLeft, top: newTop, width: elementWidth, height: elementHeight});
            
            if (!target.hasClass('noBg')) {
                taOffsetLeft = taOffsetLeft+7;
                taOffsetTop = taOffsetTop+7;
                
            } /*else {
                target.removeAttr("style");
                
            }*/
            
            copy.fadeOut("fast", function() {
               replacer.animate({width: targetWidth, height: targetHeight, left: taOffsetLeft, top: taOffsetTop}, function() {
                   
                   if (data.html) {
                        $("#content").html(data.html);
                   }
                   
                   if (data.map) {
                        initMap($("#map"), 'big');  
                   }
                   
                   replacer.fadeOut(function() {
                        $(this).remove();
                        copy.remove();
                    
                   });
                   
                   if (data.title) {
                        document.title = data.title+' | '+_defaultTitle;
                   } else {
                        document.title = _defaultTitle;
                    
                   }
                   
                   $("#head a.active").removeClass("active");
                   
                   if (page == 'map') {     
                        $("#places").addClass("active");
                    
                   } else {
						switchTimeOut();
				   }
                
                   if ($("#content").hasClass('noBg')) {
                        $("#content").removeClass('noBg').addClass('shadow');
                    
                   }
               });
               
               
               element.animate({backgroundPosition: '-196px 0px'}, function() {
                    element.removeAttr("class").addClass("heading "+data.headingClass).attr("rel", data.headingClass).animate({backgroundPosition: '0px 0px'});
                
                    
               });
               
               if (data.rightHtml) {
                    $("#contentBox .content").html(data.rightHtml);
                
               }
               
               if (data.rightMap) {
                    initMap($("#contentMap"), 'small');
                    
               }
               
               
            })
               
        });
        
    });
    
    
    $("#slideWrapper").live("mouseenter", function() {
        clearTimeout(_switchTimeout);    
    });
		
    $("#slideWrapper").live("mouseenter", function() {
        switchTimeOut();
    });
    
    switchTimeOut();
    
    if ($("#contentMap").length) {
        initMap($("#contentMap"), 'small');
        
    }
    
    $("#controlls a").live("click", function(e) {
        e.preventDefault();   
         
        var element = $(this);
        
        $("#controlls .active").removeClass('active');
        
        $("#slideLine").animate({left:-627*element.parent().index()}, "slow", function() {
            element.parent().addClass("active");
            
			switchTimeOut();
			
        });
        
    });
    
    $("#places:not(active)").click(function(e) {
        e.preventDefault();
        
        $(".heading.map").click();
        
    });
    
    $("#closePopup").live("click", function(e) {
        e.preventDefault();
        
        $("#popup").fadeOut(function() {
            // $(this).remove(); 
        });
    });
    
    
    $("#contact").click(function(e) {
        e.preventDefault();
        var element = $(this);
        
        $("#head a.active").removeClass("active");
        
        element.addClass("active");
        
        
        if (!$("#contentBox .heading").hasClass('map')) {
            
           $("#contentBox .heading").animate({backgroundPosition: '-196px 0px'}, function() {
                $(this).removeAttr("class").addClass("heading map").attr("rel", 'map').animate({backgroundPosition: '0px 0px'});
            
                 $("#contentBox .content").html(_pages.map.rightHtml);
                initMap($("#contentMap"), 'small');
                
           });
           
        }

        //$('').insertBefore("#content");
        
        document.title = "Kontakt | "+_defaultTitle;
                
        
        $("#content").fadeTo("fast", 0, function(e) {
            $(this).removeClass("shadow").addClass("noBg")
            .html('<div id="kontakt"><h1>Kontaktní formulář</h1><form method="post" action=""><dl><dt><label for="name">Jméno</label></dt><dd><input type="text" name="name" id="name"></dd><dt><label for="mail">E-mail</label></dt><dd><input type="text" name="mail" id="mail"></dd><dt><label for="message">Zpráva</label></dt><dd><textarea name="message" id="message"></textarea></dd><dd><a id="sendContact" class="contact" href="#">Odeslat</a></dd></dl></form></div>')
            .animate({opacity: 1, filter: ''}, "fast", function() {
                
                
            });
            
        });
        
        
        
    });
    
    
    $("#sendContact").live("click", function(e) {
        e.preventDefault();
        
        var error = false;
        $.each($("#kontakt input, #kontakt textarea"), function() {
           if (!$(this).val()) {
            $(this).addClass("error");
            error = true;
            
           }
            
        });
        
        if (!error) {
            $.post("send.php", $("#kontakt form").serialize(), function() {
                $("#kontakt input, #kontakt textarea").val("");
                
                alert("Vaše zpráva byla úspěšně odeslána.")
                
            });
            
        }
        
    });
    
    $("#kontakt input.error, #kontakt textarea.error, #email.error").live("focus", function() {
       $(this).removeClass("error"); 
        
    });
    
    $("#send").click(function(e) {
       e.preventDefault(); 
        var email = $("#email");
        
        if (emailValidity(email)) {
		
			if ($("#confirm").is(":checked")) {
    		$.post("save.php", {mail_mnw: email.val()}, 
    				function(msg) {
						alert("Úspěšně přidáno");
						email.val("");
    				}
    			);
				
            } else {
				$("dd.confirm").addClass("error");
				
			}
			
        } else {
            email.addClass("error");
            
        }
    });
	
	$("#confirm").click(function() {
		$("dd.confirm.error").removeClass("error");
	});
    
    
});
	
