var thestring;
function browserInfos() {
	var detect = navigator.userAgent.toLowerCase();
	var OS,browser,version,total;

	if (checkIt('konqueror')) {browser = "Konqueror";OS = "Linux";}
	else if (checkIt('safari')) browser = "Safari"
	else if (checkIt('omniweb')) browser = "OmniWeb"
	else if (checkIt('opera')) browser = "Opera"
	else if (checkIt('webtv')) browser = "WebTV";
	else if (checkIt('icab')) browser = "iCab"
	else if (checkIt('msie')) browser = "Internet Explorer"
	else if (!checkIt('compatible')) {
		browser = "Firefox"
		version = detect.charAt(8);
	}
	else browser = "An unknown browser";

	if (!version) version = detect.charAt(place + thestring.length);

	if (!OS) {
		if (checkIt('linux')) OS = "Linux";
		else if (checkIt('x11')) OS = "Unix";
		else if (checkIt('mac')) OS = "Mac"
		else if (checkIt('win')) OS = "Windows"
		else OS = "an unknown operating system";
	}
	
	var browser_infos = {
		OS : OS,
		browser : browser,
		version : version
	};
	
	return browser_infos;
}

function checkIt(string) {
	var detect = navigator.userAgent.toLowerCase();

	place = detect.indexOf(string) + 1;
	thestring = string;
	
	return place;
}

function print_r(theObj) {
  if(theObj.constructor == Array ||
     theObj.constructor == Object){
    document.write("<ul>")
    for(var p in theObj){
      if(theObj[p].constructor == Array||
         theObj[p].constructor == Object){
			document.write("<li>["+p+"] => "+typeof(theObj)+"</li>");
        document.write("<ul>")
        print_r(theObj[p]);
        document.write("</ul>")
      } else {
		document.write("<li>["+p+"] => "+theObj[p]+"</li>");
      }
    }
    document.write("</ul>")
  }
}

function generalLoad() {
	// Redirige les liens externes sur un autre onglet
	$('a[rel=external]').attr('target', '_blank');
	$('.external').attr('target', '_blank');
	
	// Switch description pour les input text
	$('input.switch_desc[type=text]').each(function() {
		var description = $(this).attr('alt');
		$(this).bind('focus', function() {
				if($(this).val() == description)
					$(this).val('');
			})
			.bind('blur', function() {
				if($(this).val() == '')
					$(this).val(description);
			});
	});
}

jQuery.fn.exists = function() {
    return this.length > 0;
};

function checkMail(email) {
    var re = RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9-_]+([_|\.|-]­{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$');

	if(!re.test(email))
    	return false;
    else
		return true;
}

function loadingMain() {
	// Externaliser les liens dynamiques de WP
	$('#content .style00 a').attr('rel', 'external');

	generalLoad();
	
	// Search
	$('.search_submit').bind('click', function() {
		$(this).parent('.ct_search_submit').parent('fieldset').parent('form').submit();
	});
	
	// Btn rollover
	$('.btn_roll').hover(
		function() {
			var over = $(this).attr('rel');
			$(this).addClass(over + '_over');
		},
		function() {
			var over = $(this).attr('rel');
			$(this).removeClass(over + '_over');
		}
	);
	
	// Menu
	$('ul#nav li:first').addClass('first');
	$('ul#nav li:last').addClass('last');
	$('ul#nav li').hover(
		function() {
			var sub_menu = $(this).find('ul');
			if(sub_menu.exists()) {
				sub_menu.show();
				$(this).find('a:first').addClass('selected');
			}
		},
		function() {
			var sub_menu = $(this).find('ul');
			if(sub_menu.exists()) {
				sub_menu.hide();
				$(this).find('a:first').removeClass('selected');
			}
				
		}
	);
	$('ul#nav li li').each(function() {
		var w_parent = $(this).parent('ul').parent('li').find('a').width();
		$(this).find('a').width(w_parent);
	});
	$('#nav li').each(function() {
		if($(this).filter('.current_page_item').exists())
			$(this).find('a:first').addClass('selected');
	});
	$('#nav li:last').remove();
	
	// Exception CSS
	var browser_infos = browserInfos();
	if(browser_infos.browser == 'Firefox')
		$('.NotIE').addClass('FF');
		
	// Return Top
	$('a.return_top').bind('click', function(e) {
		e.preventDefault();
		
		$('html, body').animate({
			scrollTop : 0
		}, 1000);
	});
	
	// Style 02
	$('.style02 h2:first').css('margin-top', 0);
}

function loadingHome() {
	var dir_coef = '-='; // Par défault la direction du carrousel est la droite
	var w_carr = 980;
	var curr_pos = 0;
	var carr_moving = false;
	var nb_slide = $('#block_carrousel ul.carrousel li').length;
	var time_autoplay = 6000;
	var autoplay = true;
	
	init_carrousel();
	
	function init_carrousel() {
		updateCaroussel(curr_pos, nb_slide); // Arrow move Initialization
		autoplay_start(); // Start autoplay
	}
	
	function updateCaroussel(curr_pos, nb_slide) {
		if(curr_pos > 0)
			$('#block_carrousel .move_carrousel.left').show();
		else
			$('#block_carrousel .move_carrousel.left').hide();
			
		if(curr_pos < nb_slide-1)
			$('#block_carrousel .move_carrousel.right').show();
		else
			$('#block_carrousel .move_carrousel.right').hide();
			
		var li_car = $('#block_carrousel ul.nav_carrousel li');
		li_car.each(function() {
			var index = li_car.index($(this));
			if(index <= curr_pos)
				$(this).addClass('active');
			else
				$(this).removeClass('active');
		});
	}
			
	// Move caroussel functions
	function moveCarousselToDirection(dir) {
		var new_pos = 0;
		
		if(dir == 'right') {
			new_pos = curr_pos+1;
			if(new_pos >= nb_slide) new_pos = 0;
		}
		else {
			new_pos = curr_pos-1;
			if(new_pos < 0) new_pos = nb_slide-1;
		}
		
		moveCarousselTo(new_pos);
	}
		
	function moveCarousselTo(new_pos) {
		if(!carr_moving) {
			carr_moving = true;
			
			var diff_pos = new_pos-curr_pos;
			if(diff_pos >= 0)
				dir_coef = '-=';
			else if(diff_pos < 0)
				dir_coef = '+=';
			
			curr_pos = new_pos;
			
			updateCaroussel(curr_pos, nb_slide);
			$('#block_carrousel ul.carrousel').animate({
				left : dir_coef + (w_carr*Math.abs(diff_pos))
			}, 850, 'linear', function() {
				carr_moving = false;
			});
		}
	}
	
	function autoplay_start() {
		if(autoplay)
			setTimeout(function() { carrousel_autoplay(time_autoplay); }, time_autoplay);
	}
	
	function carrousel_autoplay(time_autoplay) {
		if(autoplay) {
			moveCarousselToDirection('right');
			setTimeout(function() { carrousel_autoplay(time_autoplay); }, time_autoplay);
		}
	}
	
	// Caroussel Arrow Move
	$('#block_carrousel .move_carrousel').bind('click', function(e) {
		e.preventDefault();
		
		autoplay = false;
		var direction = 'right';
		
		if($(this).filter('.left').exists())		
			direction = 'left';

		moveCarousselToDirection(direction);
	});
	
	// Caroussel Nav
	$('#block_carrousel ul.nav_carrousel li').hover(
		function() {
			if(!$(this).attr('class'))
				$(this).addClass('over');
		},
		function() {
			$(this).removeClass('over');
		}
	);
	var li_car = $('#block_carrousel ul.nav_carrousel li');
	li_car.bind('click', function(e) {
		e.preventDefault();
		
		autoplay = false;
		var new_pos = li_car.index($(this));
		moveCarousselTo(new_pos);
	});
	
	// Link caroussel
	$('#block_carrousel ul.carrousel li').bind('click', function(e) {
		e.preventDefault();
		
		location.href = $(this).find('p a').attr('href');
	});
		
	// Date link
	$('.block_actu .date').bind('click', function() {
		location.href = $(this).next('h4').find('a').attr('href');
	});
}

function loadingFaq() {
	// Toggle bulle FAQ lorsqu'on clique sur un lien
	$('.block_faq ul li a:first-child').bind('click', function(e) {
		if(!$(this).parent('p').exists())
			e.preventDefault();
		
		if(!$(this).filter('.selected').exists())
			$(this).addClass('selected');
		else
			$(this).removeClass('selected');
			
		$(this).next('.bulle_faq').toggle(400);
	});
	
	// Idem lorsqu'on clique sur le picto close de la bulle
	$('.bulle_faq .picto_supp').bind('click', function() {	
		$(this).parent('.bulle_faq').prev('a').removeClass('selected');	
		$(this).parent('.bulle_faq').toggle(400);
	});
}

function loadingSingle() {
	// Commentaires
	if(comment_sent) {
		if(!is_user_logged_in)
			popup(e_commentaire_enregistre, e_comm_sauv_valid);
		else
			popup(e_commentaire_enregistre, e_comm_sauv);
	}	
	
	$('a.submit_comment').bind('click', function(e) {
		e.preventDefault();
		
		var form = $('#commentform');
		
		// On test le nom de l'auteur & l'email si celui ci n'est pas loggué
		if(!is_user_logged_in) {
			var author = form.find('input[name=author]');
			if(author.val() == '') {
				popup(e_erreur_de_saisie, e_saisir_nom_comm);
				author.focus();

				return false;
			}
			
			var email = form.find('input[name=email]');
			if(email.val() == '') {
				popup(e_erreur_de_saisie, e_saisir_email_comm);
				email.focus();

				return false;
			}
			
			if(!checkMail(email.val())) {
				popup(e_erreur_de_saisie, e_saisir_email_valid_comm);
				email.focus();

				return false;
			}
		}
		
		var comment = form.find('textarea');
		if(comment.val() == '') {
			popup(e_erreur_de_saisie, e_saisir_comm);
			comment.focus();

			return false;
		}
		
		form.submit();
	});
}

function loadingContact() {
	if(is_post_back_for_contact) {
		if(is_sent_form_contact)
			popup(e_contact_saved, e_contact_saved_body);
		else
			popup(e_error_saved, e_contact_error_body);
	}

	$('a#submit_contact').bind('click', function(e) {
		e.preventDefault();
		
		var form = $(this).parent('fieldset').parent('form');
		var first = false;
		var error = false;
		
		form.find('input').next('span').hide();
		form.find('select').next('span').hide();
		form.find('textarea').next('span').hide();
		
		var author = form.find('input[name=contact_name]');
		if(author.val() == '') {
			author.next('span').show();
			author.focus();
			first = true;
			error = true;
		}
		
		var email = form.find('input[name=contact_email]');
		if(email.val() == '') {
			email.next('span').show();
			if(!first) {
				email.focus();
				first = true;
			}
			error = true;
		}
		
		if(!checkMail(email.val())) {
			email.next('span').show();
			if(!first) {
				email.focus();
				first = true;
			}
			error = true;
		}
		
		var object = form.find('select');
		if(object.val() == 0) {
			object.next('span').show();
			if(!first) {
				object.focus();
				first = true;
			}
			error = true;
		}
		
		var comment = form.find('textarea');
		if(comment.val() == '') {
			comment.next('span').show();
			if(!first) {
				comment.focus();
				first = true;
			}
			error = true;
		}
		
		if(error)
			return false;
		else
			form.submit();
	});
}
