//	(c) 2010-2011 Gitz
/* SITE
		+---------------------------------+
		¦  fonctions JavaScript globales  ¦
		+---------------------------------+
*/

// appel des fonctions apres chargement du DOM (Document Object Model)
$(document).ready(function () {
	$(document).unload(function(){	$.clearQueue(); });

	if ($("div#skin span").html()) {
		$("div#skin").click(function(){	window.open($("span", this).html());	});
	}

	$("div#header_top a#btn_login").click(function(){ $("div#header_top div#login_block").slideToggle(); return false });

	menuHover();
	if ($("#slider").is('div')) {
		slider();	// modif 30/01/2012
	}else{
		if ($("#flash").is('div')) {
			$("body#b_index a").click(function(){ if ($(this).attr("id") != "btn_login") { var movie = getFlashMovieObject("flashMovie"); movie.stopAnim();} });
		}else{
			function rideTheLightning() {
				$('div#lightning_box').css({'margin-left':0,'background-position':'-9px -5px'}).animate({'margin-left':896,backgroundPosition:'-905px -5px'},((l=Math.floor(Math.random()*8)/2*1000)<1500 ? 1500 : l),'linear');
				setTimeout(rideTheLightning, ((l=Math.floor(Math.random()*10)*1000)<5000 ? 5000 : l));
			}
			setTimeout(rideTheLightning,1500);
		}
	}

	if ($("#b_index").is('body')) scrollBar();

	if ($("#b_shop").is('body')) shop(); 	// désactivé pour paypal 30/06/2011
	
	if ($("#b_item").is('body')) item();		// désactivé pour paypal 30/06/2011

	if ($("#b_mycart").is('body')) mycart();

	if ($("#gallery_box").is('div')) gallery();

	if ($("#my_account").is('div'))
		$("input#user_new_pass").keyup(function(){ if ($(this).val().length > 0) { $("sup#user_new_pass_confirm_required").show(); }else{ $("sup#user_new_pass_confirm_required").hide(); } });

	if ($("#quick_mail").is('div'))
		checkFormSendMail();

	$("a#toggle_code").click(function(){ $("textarea#banner_code").slideToggle(900); setTimeout('if ($("textarea#banner_code").css("display")!="none") $("html").stop().animate({scrollTop:($("html").height()-$(window).height())},1000);',950); return false; });

	if ($("#ggmap_canvas").is('div'))
		googleMapInitialize();
});


function scrollBar() {
	$("div#actuality div.case_inner").height("auto");
	newsTitlesH = $("div#actuality div.case_inner").height();
	$("div#actuality div.case_inner").height(200);
	if (newsTitlesH > 200) {
		$("div#actuality div.case_body").css("position","relative");
		$("div#actuality div.case_inner").css({"overflow":"hidden","float":"left","width":494});
		$("div#actuality div.case_inner").after('<div style="position:absolute; right:12px; width:13px; height:210px; background-color:#151917;">'
		+ '<div style="width:5px; height:200px; background-color:#333333; margin:6px auto 0;">'
		+ '<div id="scroll_bar_handler" style="cursor:pointer; position: relative; top:0; left:-4px; color:#888888; text-align:center; line-height:2px;'
		+ 'width:11px; height:20px; background-color:black; border:solid #555555 1px; -moz-border-radius:4px; -moz-user-select:none; -webkit-user-select:none; user-select:none;">_<br />_<br />_</div>'
		+ '</div></div>');

		function barScroll(handler, ratio) {
			var posY = 0;
			var nPosY = 0;
			var actu = $("div#actuality div.case_inner");
			var dimY = $(handler).scrollTop();
			var maxY = 180;
			var t1 = t2 = 1;

			document.onmousemove = function (evenement) {
				if(t1) {
					if (document.all) {posY = event.clientY;
					}else{posY = evenement.pageY;}

					if (t2) {
						dimY = posY-dimY-(parseInt(handler.css("top")));
						t2=0;
					}
					nPosY = posY-dimY;
					if (nPosY<0) nPosY = 0;
					if (nPosY>maxY) nPosY = maxY;
					handler.css("top",nPosY);
					$(actu).scrollTop(nPosY*ratio);
				}
			}
			document.onmouseup = function() { t1=0; }
			return false;
		}
		$("div#scroll_bar_handler").mousedown(function(){ barScroll($(this), (newsTitlesH-200)/200); });
	}
}


// effets de survol des menus
function menuHover() {
	$("div#header_top").removeClass("noscript");
	$("div#header_top a").hover(function(){ $("div.htl_hovers",this).fadeTo(200,1); },function(){ $("div.htl_hovers",this).stop().hide(); });
	$("ul#menu span.hover_links").css("background","none");
	$("ul#menu span.hover_links").css("background-image","url(http://www.tsume-art.com/img/bg/menu_hover.png)");
	$("ul#menu a").hover(function(){
		menuAnim($(this).attr("id"));
	},function(){
		$("span.hover_links",this).stop().css("opacity",1);
	});
}


function menuAnim(id) {
	var duration = 450;
	$("ul#menu a#"+id+" span.hover_links").animate({opacity:.2},duration,function(){ $(this).animate({opacity:1},duration,function(){ menuAnim(id); }); });
}


// definir l'objet flash
function getFlashMovieObject(movieName) {
	if (window.document[movieName]) {
		return window.document[movieName];
	}
	if (navigator.appName.indexOf("Microsoft Internet")==-1) {
		if (document.embeds && document.embeds[movieName])
			return document.embeds[movieName];
	}else{	// if (navigator.appName.indexOf("Microsoft Internet")!=-1)
		return document.getElementById(movieName);
	}
}


// modif 30/01/2012
function slider(){
	$("div#slider a.slides").hide();
	$("div#slider a.slides").first().show().addClass("show");

	slideshow = function(duration){
		if (! $("div#slider a.show").prev().hasClass('next')) {
			if ($("div#slider a.show").next().is('a')) {
				$("div#slider a.show").next().addClass('next');
			}else{
				$("div#slider a").first().addClass('next');
			}
		}
		$("div#slider a.next").show();
		$("div#slider a.show").fadeOut(duration, function(){
			$("div#slider a.next").toggleClass('next').addClass('show');
			$(this).removeClass('show');
		});
	}

	sliderGoRight = function() {
		clearInterval(sliderSlideshow);
		slideshow(1000);
		sliderSlideshow = setInterval(slideshow, 10000, 2000);
	}

	sliderGoLeft = function() {
		clearInterval(sliderSlideshow);
		if ($("div#slider a.show").prev().is('a')) {
			$("div#slider a.show").prev().addClass('next');
		}else{
			$("div#slider a").last().addClass('next');
		}
		slideshow(1000);
		sliderSlideshow = setInterval(slideshow, 10000, 2000);
	}

	sliderSlideshow = setInterval(slideshow, 10000, 2000);
};


// ajout au panier page boutique
function shop() {
	$("a.items_buy_btn").click(function(){
		if (!$(this).hasClass("off")) {
			if (!($("#my_cart_loading").is("img")))
				$("div#shopping_cart div.TC_borders").append('<img id="my_cart_loading" src="../img/default/my_cart_loading.gif" alt="loading" />');
			var ajax_url = $(this).attr("href") + "&ajax";
			var my_cart_update = function() { $.ajax({ url: ajax_url, async: false , success: function(memberCart){ $("div#shopping_cart div.case_inner").html(memberCart); $("img#my_cart_loading").remove(); } }); };
			setTimeout(my_cart_update, 1500);
		}

		return false;
	});
}


function item() {
	$("a#btn_buy").click(function(){
		that = $("span", this);
		that.show();
		that.fadeOut(3000);
	});

	$("a[rel='cBox']").colorbox({href:"http://www.commonbox.net"});
}


// fx mon panier
function mycart() {
	if ($('input[name=step]').val()==3) {
		setTimeout('$("html").stop().animate({scrollTop:315},500);',500);
	}
	var deliveryAdrFields = ["firstname","name","address","zip_code","city","country"];
	$("input#da_mydata").change(function(){
		if ($(this).attr("checked")) {
			for (n in deliveryAdrFields) {
				$("#da_"+deliveryAdrFields[n]).val($("#member_"+deliveryAdrFields[n]).val());
			}
			$("div#delivery_address_error").hide("slow");
			if ($("input#ba_idem").attr("checked")) {
				$("div#billing_address_error").hide("slow");
				for (n in deliveryAdrFields) {
					if (deliveryAdrFields[n] == "country") {
						$("#ba_country").val($("#da_"+deliveryAdrFields[n]).html());
					}else{
						$("#ba_"+deliveryAdrFields[n]).val($("#da_"+deliveryAdrFields[n]).val());
					}
				}
			}
		}else{
			for (n in deliveryAdrFields) {
				$("#da_"+deliveryAdrFields[n]).val("");
			}
			if ($("input#ba_idem").attr("checked")) {
				for (n in deliveryAdrFields) {
					$("#ba_"+deliveryAdrFields[n]).val("");
				}
			}
		}
	});
	$("fieldset#delivery_address *").change(function(){
		if ($("input#ba_idem").attr("checked")) {
			var id=$(this).attr("id");
			if (id == "da_country") {
				$("#ba_country").val($("option:selected",this).html());
			}else{
				$("#"+$(this).attr("id").replace("da","ba")).val($(this).val());
			}
		}
	});

	$("select#da_country").change(function(){
		var all_shippings = $.parseJSON($("div#all_shippings").html());
		var countries_codes = $.parseJSON($("div#countries_codes").html());
		var zone = countries_codes[$(this).val()];
		$("span#shipping").html(all_shippings[zone]);
		$("span#total").html(all_shippings["total_cart_" + zone]);
		// alert(printObj(all_shippings) + "\n" + printObj(countries_codes));
	});
	$("input#cgv").change(function(){
		if ($(this).attr("checked")) { $("div#accept_cgv_error").hide("slow"); }
	});
	$("input#ba_idem").change(function(){
		// var deliveryAdrFields = ["firstname","name","address","zip_code","city","country"];
		if ($(this).attr("checked")) {
			$("div#billing_address_error").hide("slow");
			$("fieldset#billing_address label").css("color","#888888");
			$("fieldset#billing_address .ba_fields").attr("disabled","disabled").css({"color":"#888888","background-color":"#222222"});
			for (n in deliveryAdrFields) {
				if (deliveryAdrFields[n] == "country") {
					$("#ba_country").val($("#da_"+deliveryAdrFields[n]+" option:selected").html());
				}else{
					$("#ba_"+deliveryAdrFields[n]).val($("#da_"+deliveryAdrFields[n]).val());
				}
			}
		}else{
			$("fieldset#billing_address label").css("color","white");
			$("fieldset#billing_address .ba_fields").removeAttr("disabled").css({"color":"white","background-color":"#555555"});
			for (n in deliveryAdrFields) {
				$("#ba_"+deliveryAdrFields[n]).val("");
			}
		}
	});
	if ($("input#ba_idem").attr("checked")) {
		$("input#ba_idem").change();
	}
}


// Vérification du formulaire des données personnelles pour l'achat d'un produit
function checkFormPersonalData() {
	/**/
	var deliveryAdrFields = ["firstname","name","address","zip_code","city","country"];
	var billingAdrFields = ["firstname","name","address","zip_code","city","country"];
	var deliveryAdrError = false;
	if ($("#da_email").is("input")) {
		deliveryAdrFields.push("email");
		if (/^([a-zA-Z0-9._-])+\@(([\w])+\.)[a-zA-Z0-9]{2,}/.test($("input#da_email").val()) == false) {
			$("div#delivery_address_email_error").show("slow");
			deliveryAdrError = true;
		}
	}
	for (n in deliveryAdrFields) {
		if (!$("#da_"+deliveryAdrFields[n]).val())
			deliveryAdrError = true;
	}
	if ($("input#ba_idem").attr("checked") && !deliveryAdrError) {
		billingAdrError = false;
	}else{
		if (!$("input#ba_idem").attr("checked")) {
			billingAdrError = false;
			for (n in billingAdrFields) {
				if (!$("#ba_"+billingAdrFields[n]).val()) {
					billingAdrError = true;
				}
			}
		}
	}

	if (deliveryAdrError) {
		$("div#billing_address_error").hide("slow");
		$("div#delivery_address_error").show("slow");
		return false;
	}else{
		$("div#delivery_address_email_error").hide("slow");
		$("div#delivery_address_error").hide("slow");
	}
	if (billingAdrError) {
		$("div#billing_address_error").show("slow");
		return false;
	}else{
		$("div#billing_address_error").hide("slow");
	}
	/**/

	// terms of sales
	if (!$("input#cgv").attr("checked")) {
		$("div#accept_cgv_error").show("slow");
		return false;
	}else{
		$("div#accept_cgv_error").hide("slow");
	}

	return true;
}


// selection des series dans la page galerie
var stop = false, slideshowTimer, blinksInterval;
function gallery() {
	$(window).load(function(){
		var total=0;
		$("div#series_inner a img").each(function(){ total+=$(this).width(); });
		$("div#series_inner").width(total);

		$("button#go_right_series").mousedown(function(){ $("div#series_inner").animate({left:($("div#series_container").width()-total)},(total-$("div#series_container").width())); });
		$("button#go_left_series").mousedown(function(){ $("div#series_inner").animate({left:0},Math.abs($("div#series_inner").position().left)); });

		$(window).mouseup(function(){ $("div#series_inner").stop(1); });
	});

	$("div#statues_list_box ul#statues_names").css("height",(310-$("ul#statues_names").position().top));

	$("div#gallery_box button#go_left_series").mousedown(function(){ $(this).css("background-position","left bottom"); });
	$("div#gallery_box button#go_right_series").mousedown(function(){ $(this).css("background-position","right bottom"); });
	$(document).mouseup(function(){ $("button").removeAttr("style"); });

	// selection de la statue
	$("div#statues_list_box li.statues_names").click(function(){
		that = $(this);
		if (!that.hasClass("active")) {
			$("div#item_actions div.TC_borders").append('<img id="my_cart_loading" src="../img/default/my_cart_loading.gif" alt="loading" />');
			$("div#statues_list_box li.active").removeClass("active");
			$("div#statues_list_box img#item_selector").stop().animate({top:Math.ceil($(this).position().top)},1000,'easeOutQuad',function(){
				that.addClass("active");
				$("div#actions_buttons button.item_actions_btns").removeClass("on").unbind();
				$("span.iab_blinks").remove();
				$("a[rel='cBox']").stop(1).remove();
				clearTimeout(slideshowTimer);
				clearInterval(blinksInterval);
				var itemId = that.attr("id").replace("item_", "");
				$("a#buy_item_link").attr("href","item.php?id=" + itemId);
				var ajax_url = '../__switch_gallery.php?id=' + itemId;
				$.ajax({ url: ajax_url, async: false, success: function(responseText){
						var newGalleryVars = eval('(' + responseText + ')');
						$("div#diaporama").html(newGalleryVars.diapo);
						$("img#real_size_img").attr("src",newGalleryVars.real_size);
						for(var key in newGalleryVars) {
							if ($("#btn_" + key).is("button") && newGalleryVars[key] != "") {
								$("#btn_" + key).addClass("on");
							}else{
								newGalleryVars[key] = galleryVars[key];
							}
						}
						$("a#buy_item_link").href = "item.php?id="+itemId;
						itemActions(newGalleryVars);
						buttonBlink();
						$("img#my_cart_loading").remove();
					}
				});
			});
		}
	});

	var galleryVars = eval('(' + $("div#gallery_vars").html() + ')');
	itemActions(galleryVars);
	buttonBlink();

	return false;
}


// effet clignotant
buttonBlink = function() {
	$("div#actions_buttons button.item_actions_btns").each(function(){
		if ($(this).hasClass("on")) {
			$(this).prepend('<span class="iab_blinks"/>');
			$(this).mousedown(function(){ $("span.iab_blinks",this).hide(); }).mouseup(function(){ $("span.iab_blinks",this).show(); });
		}
	});
	blinksInterval = setInterval("if (!stop){ $('span.iab_blinks').animate({opacity:0},600,function(){ $(this).animate({opacity:.8},600); }); }",1200);
}


function itemActions(galleryVars) {
	// slideshow
	if (galleryVars.current) {
		$("a[rel='cBox']").colorbox({current:galleryVars.current, slideshowSpeed:5000, slideshowStart:galleryVars.start, slideshowStop:galleryVars.stop, height:"100%", slideshow:true});
	}else{
		$("a[rel='cBox']").colorbox();
	}
	slideshow = function(){
		slideshowTimer = setTimeout(slideshow, 10000);
		if (stop) return;
		var current = $("a.current");
		// $("div#item_actions div.TC_borders").html(current.attr("id")); // debug
		var next = (current.next().is("a") ? current.next() : $("a.diaporama_links").first()).addClass("next").show();
		var nextImg = $("img",next).css("top",0);
		var nextImgOverflowHeight = (nextImg.height() - 260);
		if (nextImgOverflowHeight > 50) {
			setTimeout(function(){ nextImg.animate({top:-(nextImgOverflowHeight)},8000); }, 2000);
		}
		current.fadeOut(3000, function(){ next.removeClass("next").addClass("current"); current.removeClass("current"); });
	}
	if ($("a.diaporama_links").first().next().is("a"))
		setTimeout(slideshow, 4000);


	// fonctions des boutons
	$("button#btn_diapo").click(function(){ $("div#diaporama a.current").click(); });

	if (galleryVars.real_size) {
		$("button#btn_real_size").click(function(){
			var imgW = document.getElementById("real_size_img").width;
			var imgH = document.getElementById("real_size_img").height;

			var cBoxW = (($(window).width()*.9)<imgW) ? ($(window).width()*.9) : imgW;
			var cBoxH = (($(window).height()*.9)<imgH) ? ($(window).height()*.9) : imgH;

			var zoomW = 100;
			var zoomH = Math.floor((zoomW/imgW)*imgH);

			var zoomZoneW = Math.floor(zoomW*(cBoxW-35)/imgW)-2;
			var zoomZoneH = Math.floor(zoomH*(cBoxH-60)/imgH)-2;

			var ratioRSContWImgW = imgW/zoomW*-1;

			$("a#cBoxContent").colorbox({width: cBoxW, height: cBoxH, inline:true, title: galleryVars.real_size_infos, href:"#cBox_real_size",
				onOpen:function(){
					$("div#cBox_rs_zoom").css({"width":zoomW, height:zoomH });
					$("div#zoom_zone").css({"width":zoomZoneW, height:zoomZoneH });
				},
				onComplete:function(){ $("div#zoom_zone").mousedown(function(){ zoomDraging($(this), ratioRSContWImgW); }); }
			}).click();
		});
	}

	if (galleryVars.view360) {
		$("button#btn_view360").click(function(){
			$("a#cBoxContent").colorbox({height:"90%",
				href:galleryVars.view360
				// onCleanup:function(){ alert('onCleanup: colorbox has completely closed'); }
			}).click();
		});
	}

	if (galleryVars.movie) {
		$("button#btn_movie").click(function(){
			stop = true;
			$("a#cBoxContent").colorbox({inline:false, title: false, iframe:true, width: false, height: false, innerWidth:640, innerHeight:360,
				href:galleryVars.movie + "?autoplay=1&autohide=1&hd=1",
				onCleanup: function(){ stop = false; }
			}).click();
		});
	}

	if (galleryVars.making_of) {
		$("button#btn_making_of").click(function(){
			stop = true;
			$("a#cBoxContent").colorbox({inline:false, title: false, iframe:true, width: false, height: false, innerWidth:640, innerHeight:360,
				href:galleryVars.making_of + "?autoplay=1&autohide=1&hd=1",
				onCleanup: function(){ stop = false; }
			}).click();
		});
	}

	return false;
}


function zoomDraging(item, ratio) {
	var posX = posY = 0;
	var nPosX = nPosY = 0;
	var dim = item.offset();
	var img = $("img#real_size_img");
	var zoom = $("div#cBox_rs_zoom");
	var dimX = dim.left - zoom.offset().left;
	var dimY = dim.top - zoom.offset().top;
	var maxX = zoom.width()-item.width()-2;
	var maxY = zoom.height()-item.height()-2;
	var t1 = t2 = 1;
	// alert(zoom.width() + " | " + item.width() + " | " + maxX + "\n" + zoom.height() + " | " + item.height() + " | " + maxY);

	document.onmousemove = function (evenement) {
		if(t1) {
			if (document.all) {
				posX = event.clientX;
				posY = event.clientY;
			}else{
				posX = evenement.pageX;
				posY = evenement.pageY;
			}

			if (t2) {
				dimX = posX-dimX;
				dimY = posY-dimY;
				t2=0;
			}
			nPosX = posX-dimX;
			nPosY = posY-dimY;
			if (nPosX<0) nPosX = 0;
			if (nPosY<0) nPosY = 0;
			if (nPosX>maxX) nPosX = maxX;
			if (nPosY>maxY) nPosY = maxY;
			item.css({"left": nPosX});
			item.css({"top": nPosY});
			$(img).css({"left": nPosX*ratio});
			$(img).css({"top": nPosY*ratio});
		}
	}

	document.onmouseup = function() { t1=0; }

	return false;
}


function checkFormSendMail() {
	$("div#quick_mail textarea").blur(function(){
		if ($(this).val()=='')
			$(this).val($("div#quick_mail input#ta_default_text").val());
		}).focus(function(){
			if ($(this).val()==$("div#quick_mail input#ta_default_text").val())
				$(this).val('');
	});
}

var setMarkers;
function googleMapInitialize() {
	// désactivation du scroll molette pour le canvas
	function onMouseWheel(e){
		if (e != null && e.preventDefault != null) {	e.preventDefault();	}
		return false;
	}
	$("div#ggmap_canvas").mouseenter(function(){
		if (document.getElementById("ggmap_canvas").addEventListener == null) {
			document.getElementById("ggmap_canvas").onmousewheel = onMouseWheel;
		}else{
			document.getElementById("ggmap_canvas").addEventListener('DOMMouseScroll', onMouseWheel, false);
		}
	});

	var resellers_data = 0;
	if ($("#resellers_data").is("div")) {
		resellers_data = eval('(' + $("div#resellers_data").html() + ')');
	}
	var france = new google.maps.LatLng(46.227638,2.213749);
	// var tsume = new google.maps.LatLng(49.577106,6.13014);

	var myOptions = {
		center: france,
		zoom: 5,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};

	if (resellers_data) {
		var map = new google.maps.Map(document.getElementById("ggmap_canvas"), myOptions);
		var bounds = new google.maps.LatLngBounds();

		var image = new google.maps.MarkerImage('../img/default/gmap_tsume_marker.png',
			new google.maps.Size(25, 38),
			new google.maps.Point(0,0),
			new google.maps.Point(13, 38)
		);
		var shadow = new google.maps.MarkerImage('../img/default/gmap_tsume_marker_shadow.png',
			new google.maps.Size(50, 38),
			new google.maps.Point(0,0),
			new google.maps.Point(13, 38)
		);

		setMarkers = function (n) {
			var latLng = new google.maps.LatLng(resellers_data[n].lat, resellers_data[n].lng);
			bounds.extend(latLng);
			var marker = new google.maps.Marker({
				icon: image,
				animation: google.maps.Animation.DROP,
				shadow: shadow,
				position: latLng,
				title: resellers_data[n].name
			});
			marker.setMap(map);
			google.maps.event.addListener(marker, 'click', function(event){	map.setCenter(event.latLng); });
			if (resellers_data[n+1]) {
				setTimeout("setMarkers("+(n+1)+");", (1000-(n*100)));
			}else{
				setTimeout(function(){	map.fitBounds(bounds);	}, 1500);
			}
		}

		$(document).scroll(function(){
			var ggmap_canvas_scrollBottom = ($(window).height()+$(window).scrollTop())-$("div#ggmap_canvas").offset().top;
			if (ggmap_canvas_scrollBottom > 300) {
				setTimeout("setMarkers(0);", 500);
				$(document).unbind('scroll');
			}
		});
	}
}


// Fx de debugage
var printObj = function(obj) {
  var arr = [];
  $.each(obj, function(key, val) {
    var next = key + ": ";
    next += $.isPlainObject(val) ? printObj(val) : val;
    arr.push( next );
  });
  return "{ " +  arr.join(", ") + " }";
};
