PageSourceSearch

https://entrepotarlon.be/js/entrepot2010.js

js entrepotarlon.be collected 2026-10-08 03:26:33 UTC 29,248 bytes, 838 lines download raw bytes

1<!--
2
3var addthis_config = {
4	ui_delay: 2000,
5	ui_hover_direction: 1,
6	ui_language: "fr",
7	ui_offset_top: -10,
8	ui_header_color: "#0b5966",
9	ui_header_background: "#FFF"
10};
11
12function centerbg() {
13	// Centrage du background
14
15	var moon=$("moon").attr("src");
16
17	$('#moon').error(function(){$("moon").attr("src",moon);});
18
19	var b=$("body").offset();
20	var c=$("#content").offset();
21	var e=(c.left-b.left-980) ;
22	$("div#subheader").css('left',e+'px');
23	
24//	e=$("div#promos").height();
25	f=$("body").height();
26	g=$("#moon").height();
27//	f=f-e-275;
28	f=f-579;
29
30	if( f > g && g > 500 ) f = g ;
31
32	$("div#subheader").css('height',f+'px');
33}
34
35var nrectangles = 0;
36
37function drawrectangles() {
38	var con=$("#content").offset();
39
40	if(!nrectangles) {
41		$("div.agendaheader, div.newsheader").each(function(){
42			pos=$(this).offset();
43			$("body").prepend("<div id=\"rect" + nrectangles++ + "\" class=\"rectangle\" style=\"top: " + (pos.top+20) + "px; left: " + (pos.left-con.left-4) + "px;\"></div>\n" );
44		});
45
46		$("div.rngheader").each(function(){
47			pos=$(this).offset();
48			$("body").prepend("<div id=\"rect" + nrectangles++ + "\" class=\"rectangleblack\" style=\"top: " + (pos.top+20) + "px; left: " + (pos.left-con.left-4) + "px;\"></div>\n" );
49		});
50
51		$("div.rect").each(function(){
52			pos=$(this).offset();
53			$("body").prepend("<div id=\"rect" + nrectangles++ + "\" class=\"rectangle2\" style=\"top: " + (pos.top) + "px; left: " + (pos.left-con.left-4) + "px;\"></div>\n" );
54		});
55
56		$("div.rect2").each(function(){
57			pos=$(this).offset();
58			$("body").prepend("<div id=\"rect" + nrectangles++ + "\" class=\"rectangleblack2\" style=\"top: " + (pos.top) + "px; left: " + (pos.left-con.left-4) + "px;\"></div>\n" );
59		});
60	}
61	else {
62		n = 0 ;
63		$("div.agendaheader, div.newsheader").each(function(){
64			pos=$(this).offset();
65			rect="#rect"+n++;
66			$(rect).css("top", (pos.top+20));
67		});
68		$("div.rngheader").each(function(){
69			pos=$(this).offset();
70			rect="#rect"+n++;
71			$(rect).css("top", (pos.top+20));
72		});
73		$("div.rect").each(function(){
74			pos=$(this).offset();
75			rect="#rect"+n++;
76			$(rect).css("top", (pos.top));
77		});
78		$("div.rect2").each(function(){
79			pos=$(this).offset();
80			rect="#rect"+n++;
81			$(rect).css("top", (pos.top));
82		});
83	}
84}
85
86function SideBar() {
87    var $sidebar   = $("#sidebar"),
88				$leftcol   = $("#rightcol"),
89        $window    = $(window),
90        offset     = $sidebar.offset(),
91        topPadding = 15,
92        maxMargin  = 0;
93
94		if( $leftcol.height()>$sidebar.height() && $sidebar.height() >= 0 ) maxMargin = $leftcol.height() - $sidebar.height();
95
96    $window.unbind('scroll');
97    $window.scroll(function() {
98        if ( ($window.scrollTop() > offset.top - topPadding) && $window.scrollTop() < offset.top - topPadding + maxMargin ) {
99            $sidebar.stop().animate({
100                marginTop: $window.scrollTop() - offset.top + topPadding
101            },400,'easeOutQuad',drawrectangles);
102        } else if( $window.scrollTop() <= offset.top ){
103            $sidebar.stop().animate({
104                marginTop: 0
105            },400,'easeOutQuad',drawrectangles);
106        }
107        else {
108            $sidebar.stop().animate({
109                marginTop: maxMargin
110            },400,'easeOutQuad',drawrectangles);
111        }
112        drawrectangles();
113    });
114
115}
116
117
118var msie ;
119var trigger=0;
120
121$(document).ready(function ()
122{
123	msie=$.browser.msie;
124	centerbg();
125	setTimeout('drawrectangles();', 2000);
126
127	// ombres
128
129	jQuery.each(jQuery.browser, function(i, val) {
130		if(i=="mozilla" && jQuery.browser.version.substr(0,5)=="1.9.0") trigger=1;
131		else {
132			if(i=="mozilla" && jQuery.browser.version.substr(0,3)!="1.9") trigger=1;
133		}
134//		$("div#footerlinks").append("<p>Value '"+i+"'='"+val+"' / '"+jQuery.browser.version+"';" + trigger + "</p>");
135	});
136
137	if( trigger ) $("link#fontface").attr("href","styles/entrepot2010-ff.css");
138	
139	// Mouseovers
140
141	$("img.myspace").mouseover(function(){$(this).attr("src","img/icon-myspacehover.png");}).mouseout(function(){$(this).attr("src","img/icon-myspace.png");});
142	$("img.youtube").mouseover(function(){$(this).attr("src","img/icon-youtubehover.png");}).mouseout(function(){$(this).attr("src","img/icon-youtube.png");});
143	$("img.facebook").mouseover(function(){$(this).attr("src","img/icon-facebookhover.png");}).mouseout(function(){$(this).attr("src","img/icon-facebook.png");});
144	$("img.rss").mouseover(function(){$(this).attr("src","img/rss.png");}).mouseout(function(){$(this).attr("src","img/rsso.png");});
145
146	$("img.socmyspace").mouseover(function(){$(this).attr("src","img/soc-myspaceh.png");}).mouseout(function(){$(this).attr("src","img/soc-myspace.png");});
147	$("img.socyoutube").mouseover(function(){$(this).attr("src","img/soc-youtubeh.png");}).mouseout(function(){$(this).attr("src","img/soc-youtube.png");});
148	$("img.socfacebook").mouseover(function(){$(this).attr("src","img/soc-facebookh.png");}).mouseout(function(){$(this).attr("src","img/soc-facebook.png");});
149	$("img.socflickr").mouseover(function(){$(this).attr("src","img/soc-flickrh.png");}).mouseout(function(){$(this).attr("src","img/soc-flickr.png");});
150	$("img.socdailymotion").mouseover(function(){$(this).attr("src","img/soc-dailymotionh.png");}).mouseout(function(){$(this).attr("src","img/soc-dailymotion.png");});
151	$("img.socvimeo").mouseover(function(){$(this).attr("src","img/soc-facebookh.png");}).mouseout(function(){$(this).attr("src","img/soc-facebook.png");});
152	$("img.socentrepot").mouseover(function(){$(this).attr("src","img/soc-entrepoth.png");}).mouseout(function(){$(this).attr("src","img/soc-entrepot.png");});
153	$("img.socofficial").mouseover(function(){$(this).attr("src","img/soc-officialh.png");}).mouseout(function(){$(this).attr("src","img/soc-official.png");});
154	$("img.soctwitter").mouseover(function(){$(this).attr("src","img/soc-twitterh.png");}).mouseout(function(){$(this).attr("src","img/soc-twitter.png");});
155	$("img.soclastfm").mouseover(function(){$(this).attr("src","img/soc-lastfmh.png");}).mouseout(function(){$(this).attr("src","img/soc-lastfm.png");});
156
157	$("img.mocom").mouseover(function(){$(this).attr("src","img/mocomhover.png");}).mouseout(function(){$(this).attr("src","img/mocom.png");});
158	$("img.fnac").mouseover(function(){$(this).attr("src","img/fnachover.png");}).mouseout(function(){$(this).attr("src","img/fnac.png");});
159
160
161	// Remove link on the last item of the Path
162
163	$("#path a").last().wrapInner("<span></span>");
164	$("#path a span").unwrap();
165
166	$("#logo").click(function(){document.location='index.php';return false;});
167
168	$("a[rel='external']").click(function(){window.open(this.href);return false;});
169
170	// Navigation
171
172	var varleft=$("#curnav").position();
173	var varwidth=$("#curnav").width()-4;
174	if (varleft == null) {
175		varleft = 0;
176	}
177	varleft=varleft.left+23;
178
179	$("div#navoverline").animate({width: (varwidth),left: (varleft)}, 500, "easeOutElastic" );
180
181	$("div.snav:not(#scurnav)").fadeOut("0");
182
183	$("div.nav1").hover(function(){
184		varleft=$(this).position();
185		varleft=varleft.left+23;
186		varwidth=$(this).width()-5;
187		snavid=$(this).attr("id");
188		snavid="div#s"+snavid;
189		$("div.snav").fadeOut("50");
190		$(snavid).fadeIn("500");
191		$("div#navoverline").stop().animate({width: (varwidth), left: (varleft)}, 500, "easeOutElastic" );
192	},function(){});
193
194	$("div#nav").mouseleave(function(){
195		varleft=$("#curnav").position();
196		varleft=varleft.left+23;
197		varwidth=$("#curnav").width()-5;
198		$("div.snav:not(#scurnav)").fadeOut("50");
199		$("div#scurnav").fadeIn("500");
200		$("div#navoverline").animate({width: (varwidth),left: (varleft)}, 500, "easeOutElastic" );
201	});
202
203	// animation cadre preview
204
205	var npromos=$(".promo").size();
206
207	if(npromos)
208	{
209		var promoh=$("#promos").css("max-height");
210
211		$("#promos").css("width","940px").css("height",promoh);
212
213		$('#promosin').cycle({
214			fx: 'fade',
215			timeout: 10000,
216			pause: true
217		});
218
219		$('.promosq0').click(function() {$('#promosin').cycle(0);return false;});
220		$('.promosqa0').click(function() {$('#promosin').cycle(0);return false;});
221		$('.promosq1').click(function() {$('#promosin').cycle(1);return false;});
222		$('.promosqa1').click(function() {$('#promosin').cycle(1);return false;});
223		$('.promosq2').click(function() {$('#promosin').cycle(2);return false;});
224		$('.promosqa2').click(function() {$('#promosin').cycle(2);return false;});
225		$('.promosq3').click(function() {$('#promosin').cycle(3);return false;});
226		$('.promosqa3').click(function() {$('#promosin').cycle(3);return false;});
227		$('.promosq4').click(function() {$('#promosin').cycle(4);return false;});
228		$('.promosqa4').click(function() {$('#promosin').cycle(4);return false;});
229
230		centerbg();
231		drawrectangles();
232	}
233
234	// animation cadre preview
235
236	var nyoutube=$("#rngyoutube").size();
237
238	if(nyoutube)
239	{
240		$("img#rngtvprev").mouseover(function(){$(this).attr("src","img/larrhover.png");}).mouseout(function(){$(this).attr("src","img/larr.png");}).click(function() {$('#rngyoutube').cycle("prev");return false;});
241		$("img#rngtvnext").mouseover(function(){$(this).attr("src","img/rarrhover.png");}).mouseout(function(){$(this).attr("src","img/rarr.png");}).click(function() {$('#rngyoutube').cycle("next");return false;});
242
243		$('#rngyoutube').cycle({
244			fx:   'fade', 
245			timeout: 10000,
246			pause: true
247		});
248	}
249
250	// -----------
251	if($("form#artistesearch").length){
252
253		$("form#artistesearch input").click( function(){
254			this.value='';
255			$("form#artistesearch img").click(function(){$("form#artistesearch").trigger("submit");});
256			$(this).unbind('click');}
257		);
258	}
259
260	if($("form#search").length){
261
262		$("form#search input").click( function(){
263			this.value='';
264			$("form#search img").click(function(){$("form#search").trigger("submit");});
265			$(this).unbind('click');}
266		);
267	}
268
269	if($("form#newsletter").length){
270
271		$("form#newsletter input").click( function(){
272			this.value='';
273			$("form#newsletter img").click(function(){$("form#newsletter").trigger("submit");});
274			$(this).unbind('click');}
275		);
276	}
277
278	// -----------
279	var nflickr=$(".flickr").size();
280
281	if(nflickr)
282	{
283		$(".flickr").each(function(){
284			var flickrset=$(this).attr('set');
285			var flickruser=$(this).attr('user');
286			var flickrgalid=$(this).attr('galid');
287			$(this).jflickrfeed({
288				feedapi: 'photoset.gne',
289				limit: 6,
290				qstrings: {
291					set: flickrset,
292					nsid: flickruser,
293					format: 'json',
294					lang: 'fr-fr'
295				},
296				itemTemplate: '<div style="float: left; margin: 0px 6px 4px 0px;"><a href="photos.php?id=' + flickrgalid + '" rel="flickr' + flickrset + '" style=\"\"><img src="{{image_s}}" alt="{{title}}" style="width: 90px; height: 90px;" class="withborderred" /></a></div>'
297			});
298		});
299	}
300
301	// -----------
302	var nflickr2=$(".flickr2").size();
303
304	if(nflickr2)
305	{
306		$(".flickr2").each(function(){
307			var flickrset=$(this).attr('set');
308			var flickruser=$(this).attr('user');
309			var flickrgalid=$(this).attr('galid');
310			$(this).jflickrfeed({
311				feedapi: 'photoset.gne',
312				limit: 1,
313				qstrings: {
314					set: flickrset,
315					nsid: flickruser,
316					format: 'json',
317					lang: 'fr-fr'
318				},
319				itemTemplate: '<a href="photos.php?id=' + flickrgalid + '"><img src="{{image}}" alt="{{title}}" style="margin: -10px; min-width: 210px; min-height: 210px; max-width: 285px; max-height: 285px;"  /></a>'
320			});
321		});
322	}
323
324	// -----------
325	var nflickr3=$(".flickr3").size();
326
327	if(nflickr3)
328	{
329		$(".flickr3").each(function(){
330			var flickrset=$(this).attr('set');
331			var flickruser=$(this).attr('user');
332			$(this).jflickrfeed({
333				feedapi: 'photoset.gne',
334				limit: 12,
335				qstrings: {
336					set: flickrset,
337					nsid: flickruser,
338					format: 'json',
339					lang: 'fr-fr'
340				},
341				itemTemplate: '<div style="float: left; background-color: #000000; margin: 0px 5px 5px 0px;"><div style="margin: 15px; width: 190px; max-width: 190px; height: 190px; max-height: 190px; overflow: hidden;"><a href="{{image}}" class="fancybox' + flickrset + '" rel="flickr' + flickrset + '"><img src="{{image}}" alt="{{title}}" style="margin: -10px; min-width: 210px; min-height: 210px; max-width: 285px; max-height: 285px;"  /></a></div></div>'
342			}, function(data) {
343				$('a.fancybox' + flickrset).fancybox({ 
344					'type'            : 'image',
345					'transitionIn'		: 'elastic',
346					'transitionOut'		: 'elastic',
347					'titlePosition' 	: 'outside',
348					'cyclic'          : 'true',
349					'titleFormat'     : function(title, currentArray, currentIndex, currentOpts) {
350					    return '<span id="fancybox-title-wrap"><span id="fancybox-title-left"></span><span id="fancybox-title-main">' + ( title ) + ' (' + (currentIndex + 1) + ' / ' + currentArray.length + ')</span><span id="fancybox-title-right"></span></span>';
351					}
352				});
353			});
354		});
355	}
356
357	// -----------
358	var nflickr4=$(".flickr4").size();
359
360	if(nflickr4)
361	{
362		$(".flickr4").each(function(){
363			var flickrset=$(this).attr('set');
364			var flickruser=$(this).attr('user');
365			var flickrgalid=$(this).attr('galid');
366			$(this).jflickrfeed({
367				feedapi: 'photoset.gne',
368				limit: 1,
369				qstrings: {
370					set: flickrset,
371					nsid: flickruser,
372					format: 'json',
373					lang: 'fr-fr'
374				},
375				itemTemplate: '<a href="photos.php?id=' + flickrgalid + '"><img src="{{image_s}}" alt="{{title}}" style="min-width: 55px; min-height: 55px; max-width: 55px; max-height: 55px;"  /></a>'
376			});
377		});
378	}
379
380	// -----------
381	$("a[rel=fancybox], a.fancybox").fancybox({
382		'type'            : 'image',
383		'transitionIn'		: 'elastic',
384		'transitionOut'		: 'elastic',
385		'titlePosition' 	: 'outside',
386		'cyclic'          : 'true',
387		'titleFormat'     : function(title, currentArray, currentIndex, currentOpts) {
388		    return '<span id="fancybox-title-wrap"><span id="fancybox-title-left"></span><span id="fancybox-title-main">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + '</span><span id="fancybox-title-right"></span></span>';
389		}
390	});
391
392	$("a.fancytube").fancybox({
393		'type' : 'swf',
394		'swf' : { 'wmode' : 'transparent', 'allowfullscreen' : 'true' },
395//		'padding' : 0,
396		'overlayOpacity' : 0.8,
397		'autoScale' : 'false',
398		'zoomSpeedIn' : 300,
399		'zoomSpeedOut' : 300,
400		'transitionIn' : 'elastic',
401		'transitionOut' : 'elastic',
402		'width' : 680,
403		'height' : 495,
404		'onStart' : function() {if(nyoutube) $('#rngyoutube').cycle('toggle');},
405		'onClosed' : function() {if(nyoutube) $('#rngyoutube').cycle('resume');},
406		'titleShow' : 'false',
407		'showNavArrows' : 'false',
408		'titleFormat' : function(title, currentArray, currentIndex, currentOpts) {
409		    return '<span id="fancybox-title-wrap"><span id="fancybox-title-left"></span><span id="fancybox-title-main">Rock\'n Gaume TV</span><span id="fancybox-title-right"></span></span>';
410		}
411	});
412
413	$("a.fancysoctube").fancybox({
414		'type' : 'swf',
415		'swf' : { 'wmode' : 'transparent', 'allowfullscreen' : 'true' },
416//		'padding' : 0,
417		'overlayOpacity' : 0.8,
418		'autoScale' : 'false',
419		'zoomSpeedIn' : 300,
420		'zoomSpeedOut' : 300,
421		'transitionIn' : 'elastic',
422		'transitionOut' : 'elastic',
423		'width' : 680,
424		'height' : 495,
425		'onStart' : function() {if(nyoutube) $('#rngyoutube').cycle('toggle');},
426		'onClosed' : function() {if(nyoutube) $('#rngyoutube').cycle('resume');},
427		'titleShow' : 'false',
428		'showNavArrows' : 'false',
429		'titleFormat' : function(title, currentArray, currentIndex, currentOpts) {
430		    return '<span id="fancybox-title-wrap"><span id="fancybox-title-left"></span><span id="fancybox-title-main">Youtube</span><span id="fancybox-title-right"></span></span>';
431		}
432	});
433
434	if($(".addthis").length){$.addthis('zapkiller');}
435	
436	//FB.init("7529f04014f9a443c31aeb14880d3854");
437	// -----------
438	if($("#sidebar").length){SideBar() ;setTimeout('SideBar() ;', 2000);}
439
440	setTimeout('drawrectangles();', 2000);
441	setTimeout('drawrectangles();', 10000);
442	
443	window.fbAsyncInit = function() {
444			FB.init({
445				appId      : "160193811057659", // App ID
446				//channelUrl : 'http://entrepot.losange.net/channel.php', // Channel File
447				status     : true, // check login status
448				cookie     : true, // enable cookies to allow the server to access the session
449				xfbml      : true  // parse XFBML
450			});
451
452			// Additional initialization code here
453			
454			$('.see_comments').each(function (i) {
455				var e = $(this);
456				FB.api('/?id=http%3A%2f%2fentrepot.losange.net%2f'+encodeURIComponent(e.attr('href').replace('#comments', '')), function(response) {
457					if (response.hasOwnProperty('comments'))
458					{
459						e.html('voir les commentaires ('+response.comments+')');
460					}
461					else
462					{
463						e.html('voir les commentaires (0)');
464					}
465				});
466			});
467		};
468			
469	// Load the SDK asynchronously
470  (function(d, s, id){
471     var js, fjs = d.getElementsByTagName(s)[0];
472     if (d.getElementById(id)) {return;}
473     js = d.createElement(s); js.id = id;
474     js.src = "//connect.facebook.net/fr_FR/all.js";
475     fjs.parentNode.insertBefore(js, fjs);
476   }(document, 'script', 'facebook-jssdk'));
477		
478	/*
479		// Load the SDK Asynchronously
480		(function(d){
481			 var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
482			 js = d.createElement('script'); js.id = id; js.async = true;
483			 js.src = "//connect.facebook.net/fr_FR/all.js#xfbml=1";
484			 d.getElementsByTagName('head')[0].appendChild(js);
485		 }(document));*/
486});
487
488$(function() {drawrectangles();});
489
490$(window).resize(function() {centerbg();drawrectangles();});
491
492 function openFancybox(url)
493            {    $.fancybox({
494                    'href'              : '' + url + '',
495                    'width'                : 800,
496                    'height'            : 600,
497                    'autoScale'            : false,
498                    'transitionIn'        : 'none',
499                    'transitionOut'        : 'none',
500                    'type'                : 'iframe'
501                });
502            }
503
504(function(global) {
505  function serialize(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=form.elements.length-1;i>=0;i=i-1){if(form.elements[i].name===""){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"text":case"hidden":case"password":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=form.elements[i].options.length-1;j>=0;j=j-1){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")};
506
507
508  function extend(destination, source) {
509    for (var prop in source) {
510      destination[prop] = source[prop];
511    }
512  }
513
514  if (!Mimi) var Mimi = {};
515  if (!Mimi.Signups) Mimi.Signups = {};
516
517  Mimi.Signups.EmbedValidation = function() {
518    this.initialize();
519
520    var _this = this;
521    if (document.addEventListener) {
522      this.form.addEventListener('submit', function(e){
523        _this.onFormSubmit(e);
524      });
525    } else {
526      this.form.attachEvent('onsubmit', function(e){
527        _this.onFormSubmit(e);
528      });
529    }
530  };
531
532  extend(Mimi.Signups.EmbedValidation.prototype, {
533    initialize: function() {
534      this.form         = document.getElementById('ema_signup_form');
535      this.submit       = document.getElementById('webform_submit_button');
536      this.callbackName = 'jsonp_callback_' + Math.round(100000 * Math.random());
537      this.validEmail   = /.+@.+\..+/
538    },
539
540    onFormSubmit: function(e) {
541      e.preventDefault();
542
543      this.validate();
544      if (this.isValid) {
545        this.submitForm();
546      } else {
547        this.revalidateOnChange();
548      }
549    },
550
551    validate: function() {
552      this.isValid = true;
553      this.emailValidation();
554      this.fieldAndListValidation();
555      this.updateFormAfterValidation();
556    },
557
558    emailValidation: function() {
559      var email = document.getElementById('signup_email');
560
561      if (this.validEmail.test(email.value)) {
562        this.removeTextFieldError(email);
563      } else {
564        this.textFieldError(email);
565        this.isValid = false;
566      }
567    },
568
569    fieldAndListValidation: function() {
570      var fields = this.form.querySelectorAll('.mimi_field.required');
571
572      for (var i = 0; i < fields.length; ++i) {
573        var field = fields[i],
574            type  = this.fieldType(field);
575        if (type === 'checkboxes' || type === 'radio_buttons') {
576          this.checkboxAndRadioValidation(field);
577        } else {
578          this.textAndDropdownValidation(field, type);
579        }
580      }
581    },
582
583    fieldType: function(field) {
584      var type = field.querySelectorAll('.field_type');
585
586      if (type.length) {
587        return type[0].getAttribute('data-field-type');
588      } else if (field.className.indexOf('checkgroup') >= 0) {
589        return 'checkboxes';
590      } else {
591        return 'text_field';
592      }
593    },
594
595    checkboxAndRadioValidation: function(field) {
596      var inputs   = field.getElementsByTagName('input'),
597          selected = false;
598
599      for (var i = 0; i < inputs.length; ++i) {
600        var input = inputs[i];
601        if((input.type === 'checkbox' || input.type === 'radio') && input.checked) {
602          selected = true;
603        }
604      }
605
606      if (selected) {
607        field.className = field.className.replace(/ invalid/g, '');
608      } else {
609        if (field.className.indexOf('invalid') === -1) {
610          field.className += ' invalid';
611        }
612
613        this.isValid = false;
614      }
615    },
616
617    textAndDropdownValidation: function(field, type) {
618      var inputs = field.getElementsByTagName('input');
619
620      for (var i = 0; i < inputs.length; ++i) {
621        var input = inputs[i];
622        if (input.name.indexOf('signup') >= 0) {
623          if (type === 'text_field') {
624            this.textValidation(input);
625          } else {
626            this.dropdownValidation(field, input);
627          }
628        }
629      }
630      this.htmlEmbedDropdownValidation(field);
631    },
632
633    textValidation: function(input) {
634      if (input.id === 'signup_email') return;
635
636      if (input.value) {
637        this.removeTextFieldError(input);
638      } else {
639        this.textFieldError(input);
640        this.isValid = false;
641      }
642    },
643
644    dropdownValidation: function(field, input) {
645      if (input.value) {
646        field.className = field.className.replace(/ invalid/g, '');
647      } else {
648        if (field.className.indexOf('invalid') === -1) field.className += ' invalid';
649        this.onSelectCallback(input);
650        this.isValid = false;
651      }
652    },
653
654    htmlEmbedDropdownValidation: function(field) {
655      var dropdowns = field.querySelectorAll('.mimi_html_dropdown');
656      var _this = this;
657
658      for (var i = 0; i < dropdowns.length; ++i) {
659        var dropdown = dropdowns[i];
660
661        if (dropdown.value) {
662          field.className = field.className.replace(/ invalid/g, '');
663        } else {
664          if (field.className.indexOf('invalid') === -1) field.className += ' invalid';
665          this.isValid = false;
666          dropdown.onchange = (function(){ _this.validate(); });
667        }
668      }
669    },
670
671    textFieldError: function(input) {
672      input.className   = 'required invalid';
673      input.placeholder = input.getAttribute('data-required-field');
674    },
675
676    removeTextFieldError: function(input) {
677      input.className   = 'required';
678      input.placeholder = '';
679    },
680
681    onSelectCallback: function(input) {
682      if (typeof Widget === 'undefined' || !Widget.BasicDropdown) return;
683
684      var dropdownEl = input.parentNode,
685          instances  = Widget.BasicDropdown.instances,
686          _this = this;
687
688      for (var i = 0; i < instances.length; ++i) {
689        var instance = instances[i];
690        if (instance.wrapperEl === dropdownEl) {
691          instance.onSelect = function(){ _this.validate() };
692        }
693      }
694    },
695
696    updateFormAfterValidation: function() {
697      this.form.className   = this.setFormClassName();
698      this.submit.value     = this.submitButtonText();
699      this.submit.disabled  = !this.isValid;
700      this.submit.className = this.isValid ? 'submit' : 'disabled';
701    },
702
703    setFormClassName: function() {
704      var name = this.form.className;
705
706      if (this.isValid) {
707        return name.replace(/\s?mimi_invalid/, '');
708      } else {
709        if (name.indexOf('mimi_invalid') === -1) {
710          return name += ' mimi_invalid';
711        } else {
712          return name;
713        }
714      }
715    },
716
717    submitButtonText: function() {
718      var invalidFields = document.querySelectorAll('.invalid'),
719          text;
720
721      if (this.isValid || !invalidFields) {
722        text = this.submit.getAttribute('data-default-text');
723      } else {
724        if (invalidFields.length || invalidFields[0].className.indexOf('checkgroup') === -1) {
725          text = this.submit.getAttribute('data-invalid-text');
726        } else {
727          text = this.submit.getAttribute('data-choose-list');
728        }
729      }
730      return text;
731    },
732
733    submitForm: function() {
734      this.formSubmitting();
735
736      var _this = this;
737      window[this.callbackName] = function(response) {
738        delete window[this.callbackName];
739        document.body.removeChild(script);
740        _this.onSubmitCallback(response);
741      };
742
743      var script = document.createElement('script');
744      script.src = this.formUrl('json');
745      document.body.appendChild(script);
746    },
747
748    formUrl: function(format) {
749      var action  = this.form.action;
750      if (format === 'json') action += '.json';
751      return action + '?callback=' + this.callbackName + '&' + serialize(this.form);
752    },
753
754    formSubmitting: function() {
755      this.form.className  += ' mimi_submitting';
756      this.submit.value     = this.submit.getAttribute('data-submitting-text');
757      this.submit.disabled  = true;
758      this.submit.className = 'disabled';
759    },
760
761    onSubmitCallback: function(response) {
762      if (response.success) {
763        this.onSubmitSuccess(response.result);
764      } else {
765        top.location.href = this.formUrl('html');
766      }
767    },
768
769    onSubmitSuccess: function(result) {
770      if (result.has_redirect) {
771        top.location.href = result.redirect;
772      } else if(result.single_opt_in || !result.confirmation_html) {
773        this.disableForm();
774        this.updateSubmitButtonText(this.submit.getAttribute('data-thanks'));
775      } else {
776        this.showConfirmationText(result.confirmation_html);
777      }
778    },
779
780    showConfirmationText: function(html) {
781      var fields = this.form.querySelectorAll('.mimi_field');
782
783      for (var i = 0; i < fields.length; ++i) {
784        fields[i].style['display'] = 'none';
785      }
786
787      (this.form.querySelectorAll('fieldset')[0] || this.form).innerHTML = html;
788    },
789
790    disableForm: function() {
791      var elements = this.form.elements;
792      for (var i = 0; i < elements.length; ++i) {
793        elements[i].disabled = true;
794      }
795    },
796
797    updateSubmitButtonText: function(text) {
798      this.submit.value = text;
799    },
800
801    revalidateOnChange: function() {
802      var fields = this.form.querySelectorAll(".mimi_field.required"),
803          _this = this;
804
805      for (var i = 0; i < fields.length; ++i) {
806        var inputs = fields[i].getElementsByTagName('input');
807        for (var j = 0; j < inputs.length; ++j) {
808          if (this.fieldType(fields[i]) === 'text_field') {
809            inputs[j].onkeyup = function() {
810              var input = this;
811              if (input.getAttribute('name') === 'signup[email]') {
812                if (_this.validEmail.test(input.value)) _this.validate();
813              } else {
814                if (input.value.length === 1) _this.validate();
815              }
816            }
817          } else {
818            inputs[j].onchange = function(){ _this.validate() };
819          }
820        }
821      }
822    }
823  });
824
825  if (document.addEventListener) {
826    document.addEventListener("DOMContentLoaded", function() {
827      new Mimi.Signups.EmbedValidation();
828    });
829  }
830  else {
831    window.attachEvent('onload', function() {
832      new Mimi.Signups.EmbedValidation();
833    });
834  }
835})(this);
836
837
838-->

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.