_time_nav = 800;
_delay_smartmenu_interval = 700;
_delay_smartmenu_timeout = 100;
_delay_contact = 200;
_delay_transi = 80;
_current_sm = null;
_current_arrow = null;
_arrow_pos = '6px 7px';
_arrow_pos_hover = '6px 8px';
_current_page = '#s_individuals';
_size_block_selection = '275px';
_margin_block_selection = '15px';
_nb_elements_visible_block_selection = 3;
_complex_menu_running = false;

    
function buildSmartMenu() {
	$('div#fixed_menu div.second_div > ul > li').each(function(index, element){
		var li = $(this);
		var sm = $(element).find('a').attr('rel');
		var arrow = $(element).find('span.arrow');
		
		var arrow_pos;
		sm = $('#sm'+sm.substr(2, sm.length-1));

		smConfig = {
			sensitivity: 99999999999, // number = sensitivity threshold (must be 1 or higher)
			interval: _delay_smartmenu_interval, // number = milliseconds for onMouseOver polling interval
			timeout: _delay_smartmenu_timeout, // number = milliseconds delay before onMouseOut
			over: function() {
				if ( $.browser.msie && $.browser.version < 9) 
					arrow_pos = arrow.css('background-position-x')+' '+arrow.css('background-position-y');
				else
					arrow_pos = arrow.css('background-position');
				
				
				var split = arrow_pos.split(' ');
				var new_arrow_pos = split[0] + ' ' + (parseInt(split[1])+2) + 'px';
				
				
				
				sm.fadeIn();
				arrow.animate({backgroundColor:'#C6C7C9', backgroundPosition:new_arrow_pos});
			}, 
			out: function() {	
				sm.fadeOut();
				arrow.animate({backgroundColor:'#ffffff', backgroundPosition:arrow_pos});
			}
		}
		$(element).hoverIntent(smConfig);
	});
}
/*function buildContact(){
	$('div#fixed_menu div#fixed_contact_window a#fixed_contact').click(function(){
		var a = $(this);
		var width_max = parseInt($(this).css('width'))+parseInt($(this).parent().children('div.right').css('width'));
		var width_min = parseInt($(this).css('width'));

		$(this).parent().parent().animate({width:width_max}, 800, function(){
			a.unbind();
		
			$(this).mouseleave(function(){
				
				$(this).animate({width:width_min}, 800, function(){
					buildContact();
				});
				return false;
			});
		});
		return false;
	});
}*/
function buildContact(){
	$('div#fixed_menu div#fixed_contact_window a#fixed_contact').click(function(e){
        e.stopPropagation();
        var width_max = parseInt($(this).css('width'))+parseInt($(this).parent().children('div.right').css('width'));
		var width_min = parseInt($(this).css('width'));
        var width_to;
        if(parseInt($('div#fixed_menu div#fixed_contact_window').css('width')) == width_min){
            width_to = width_max;
            $(document).click(function(e){
                if($(e.target).closest("div#fixed_contact_window div.container div.right").length == 0){
                    $('div#fixed_menu div#fixed_contact_window').animate({width:parseInt($('div#fixed_menu div#fixed_contact_window a#fixed_contact').css('width'))}, 800);
                    $(document).unbind('click');
                }
            });
        } else {
            width_to = width_min;
            $(document).unbind('click');
        }
        $(this).parent().parent().animate({width:width_to}, 800);
    });
}

function buildFont(){
	 Cufon.replace('div#fixed_menu div.first_div ul.first > li > a', {hover:true});
	 Cufon.replace('div#fixed_menu div.menus div.second_div ul.second > li > a', {hover:true});
}

function buildSelects(){
	//$('select').sSelect();
}

function buildSimpleSwitchMenu(){
	$('div.subscreen div.title.simple').each(function(){

		// init
		
		$(this).find('a').click(function(){		
			if(!$(this).hasClass('selected')){
				if(_complex_menu_running == false){
					_complex_menu_running == true;
					// infos selected
					var selected = $(this).parent().parent().parent().find('a.selected');
					var target_selected = $(selected.attr('href'));
					var target_selected_delay = target_selected.find('div.delay');
					var nb_target_selected_delay = target_selected_delay.length;
					
					// infos clicked
					var target_click = $($(this).attr('href'));
					var target_click_delay = target_click.find('div.delay');
					var nb_target_click_delay = target_click_delay.length;
					
					// update title
					selected.animate({color:'#707070'}, 800, function(){
						selected.removeClass('selected');
					});
					
					$(this).animate({color:'#CC042D'}, 800, function(){
						$(this).addClass('selected');
					});
					
					target_selected.css('display', 'none');
					target_click.find('div.delay').css('display', 'none');
					target_click.css('display', 'block');
		
					target_selected_delay.each(function(index, element){
						$(element).delay(index*_delay_transi).fadeOut('normal', function(){
				
							// show target click
							if(nb_target_selected_delay == index+1){
								target_selected.css('display', 'none');
								target_click.css('display', 'block');
								
								target_click_delay.each(function(index2, element2){
									$(element2).delay(index2*_delay_transi).fadeIn('normal', function(){
										
										if(nb_target_click_delay == index-1){
											target_selected.find('div.delay').css('display', 'block');
											_complex_menu_running=false;
										}
									});
								});
							}
						});
					});
				}				
			}
			
			return false;
		});
		
	});
	
}

function buildComplexSwitchMenu(){
	$('div.subscreen div.title.complex').each(function(){
		var complex = $(this);
		
		$(this).find('a').click(function(){
			var a_clicked = $(this);
			var title = a_clicked
			if(!a_clicked.hasClass('selected')){
				if(_complex_menu_running == false){
					_complex_menu_running = true;
					var a_selected = complex.find('div.left h1 a');
	
					// format a content
					var split = a_clicked.html().replace('&gt;','').split(' ');
					var a_clicked_new_content = '';
					var i = 0;
					var nb_words_in_first_line = 0;
					
					if(a_clicked.attr('href') == '#c_ind_sell_sell' || 
						a_clicked.attr('href') == '#c_ind_manage_condominium' || 
						a_clicked.attr('href') == '#c_ind_money_purchasing' ||
						a_clicked.attr('href') == '#c_ind_money_credit' ||
						a_clicked.attr('href') == '#c_ind_manage_holding' || 
						a_clicked.attr('href') == '#c_ind_buy_choose' ||
						a_clicked.attr('href') == '#c_ind_invest_simulate')
						nb_words_in_first_line = 1;
					
					while(split[i]){
						if(i == nb_words_in_first_line)
							a_clicked_new_content += split[i]+'<br />';
						else
							a_clicked_new_content += split[i]+' ';
						i++;
					}
					a_selected_new_content = strip_tags(a_selected.html(), ' ');
	
					a_clicked_href = a_clicked.attr('href');
					a_selected_href = a_selected.attr('href');
					
					a_clicked.fadeOut('normal');
					a_selected.fadeOut('normal', function(){
						a_clicked.html(a_selected_new_content);
						a_clicked.attr('href', a_selected_href);
						a_selected.html(a_clicked_new_content);
						a_selected.attr('href', a_clicked_href);
						
						a_clicked.fadeIn('normal');
						a_selected.fadeIn('normal');
						
					});
					
					// infos selected
					var target_selected = $(a_selected.attr('href'));
					var target_selected_delay = target_selected.find('div.delay');
					var nb_target_selected_delay = target_selected_delay.length;
					
					// infos clicked
					var target_click = $(a_clicked.attr('href'));
					var target_click_delay = target_click.find('div.delay');
					var nb_target_click_delay = target_click_delay.length;
					var target_click_height = target_click.height();
					
					target_selected_delay.each(function(index, element){
						$(element).delay(index*_delay_transi).fadeOut('normal', function(){
							// show target click
							if(nb_target_selected_delay == index+1){
								target_selected.css('display', 'none');
								target_click.find('div.delay').css('display', 'none');
								target_click.css('display', 'block');
								
								target_click.parent().animate({height:target_click_height},'normal', function(){
									
						
									target_click_delay.each(function(index2, element2){
										
										$(element2).delay(index2*_delay_transi).fadeIn('normal', function(){
											if(nb_target_click_delay == index2+1){
												target_selected.find('div.delay').css('display', 'block');
												
												_complex_menu_running=false;
												
											}
										});
									});	
								});
							}
						});
					});
				}
			}
			return false;
		});
	});

}

function strip_tags(html, replace){
	if(arguments.length < 3) {
		html=html.replace(/<\/?(?!\!)[^>]*>/gi, replace);
	}
	else {
		var allowed = arguments[1];
		var specified = eval("["+arguments[2]+"]" );
		if(allowed){
			var regex='</?(?!(' + specified.join('|') + '))\b[^>]*>';
			html=html.replace(new RegExp(regex, 'gi'), replace);
		}
		else{
			var regex='</?(' + specified.join('|') + ')\b[^>]*>';
			html=html.replace(new RegExp(regex, 'gi'), replace);
		}
	}
	var clean_string = html;
	return clean_string;
}

function buildSearchOnMap(){
	$('div.screen div.subscreen div.content div.search').click(function(){
		$(this).children('div.map').fadeIn(function(){
			$(this).mouseout(function(){
				$(this).fadeOut();
			});
		});
	});
}

function buildSelectionBlock(){
	buildSelectionSlider();
	buildSelectionHover();
}

function buildSelectionSlider(){
	buildSimpleSelectionSlider();
	buildDoubleSelectionSlider();
}

function buildSimpleSelectionSlider(){
	$('div.selection.simple').each(function(){
		var num_element = 0;
		var wrapper = $(this).find('div.selection_wrapper');
		var items = wrapper.find('div.item');
		var nb_elements = items.length;
		var nb_elements_visible = _nb_elements_visible_block_selection;
		var mbs = 0;
		var sbs = 0;
		if ($(this).parents('div#c_ind_find.subscreen').length > 0){
			sbs = '204px';
			mbs = '12px';
		} else {
			sbs = _size_block_selection;
			mbs = _margin_block_selection;
		}
		
		
		
		var size = parseInt(mbs)+parseInt(sbs);	
		
		var arrow_prev = $(this).find('span.prev');
		var arrow_next = $(this).find('span.next');
		
		// init display arrow
		if(nb_elements <= nb_elements_visible)
			arrow_next.css('display', 'none');
		
		arrow_prev.click(function(){
			if(num_element > 1){
				num_element--;
				wrapper.animate({marginLeft:-size*num_element});
				arrow_next.css('display','block');
			}
			else if(num_element == 1){
				num_element--;
				wrapper.animate({marginLeft:-size*num_element});
				arrow_next.css('display','block');
				arrow_prev.css('display','none');
			}
			else{
				arrow_prev.css('display','none');
			}
		});
		
		arrow_next.click(function(){
			if(num_element < nb_elements-nb_elements_visible-1){
				num_element++;
				wrapper.animate({marginLeft:-size*num_element});
				arrow_prev.css('display','block');
			}
			else if(num_element == nb_elements-nb_elements_visible-1){
				num_element++;
				wrapper.animate({marginLeft:-size*num_element});
				arrow_prev.css('display','block');
				arrow_next.css('display','none');
			}
			else{
				arrow_next.css('display','none');
			}
		});
	});
}
function buildDoubleSelectionSlider(){
	$('div.selection.double').each(function(){
		var num_element = 0;
		var wrapper = $(this).find('div.selection_wrapper');
		var couples = wrapper.find('div.couple');
		var size = parseInt(_margin_block_selection)+parseInt(_size_block_selection);
		
		var nb_elements = couples.length;
		var nb_elements_visible = _nb_elements_visible_block_selection;
		
		var arrow_prev = $(this).find('span.prev');
		var arrow_next = $(this).find('span.next');
		
		// init display arrow
		if(nb_elements <= nb_elements_visible)
			arrow_next.css('display', 'none');
		
		arrow_prev.click(function(){
			if(num_element > 1){
				num_element--;
				wrapper.animate({marginLeft:-size*num_element});
				arrow_next.css('display','block');
			}
			else if(num_element == 1){
				num_element--;
				wrapper.animate({marginLeft:-size*num_element});
				arrow_next.css('display','block');
				arrow_prev.css('display','none');
			}
			else{
				arrow_prev.css('display','none');
			}
		});
		
		arrow_next.click(function(){
			if(num_element < nb_elements-nb_elements_visible-1){
				num_element++;
				wrapper.animate({marginLeft:-size*num_element});
				arrow_prev.css('display','block');
			}
			else if(num_element == nb_elements-nb_elements_visible-1){
				num_element++;
				wrapper.animate({marginLeft:-size*num_element});
				arrow_prev.css('display','block');
				arrow_next.css('display','none');
			}
			else{
				arrow_next.css('display','none');
			}
		});
	});
}

function buildSelectionHover(){
	$('div.selection a').each(function(){
		showSelectionHover($(this));
	});
}

function showSelectionHover(element){
	var event = element.hover(function(){
		$(this).children('span.hover').animate({left:0}, {duration :'normal', queue : false});
	}, function(){
		$(this).children('span.hover').animate({left:'-'+_size_block_selection}, {duration :'normal', queue : false});
	});
}

function buildNews(){
	$('div.band.news').each(function(){
		$(this).find('div.center').delay(2000).fadeOut('normal', function(){
			$(this).fadeIn('normal', function(){
				buildNews();
			});
		});
	});
}

function buildThumbsBlock(){
	$('div.thumbs.round, div.thumbs.square').each(function(){
		var thumbs = $(this);
		var ul = thumbs.find('ul');
		var lis = ul.find('li');
		
		lis.mouseenter(function(){
			var li_hover = $(this);

			lis.each(function(){
				if(li_hover.children('img').attr('src') != $(this).children('img').attr('src')){
					$(this).animate({opacity:0.5}, {duration : 100, queue : false});
				}else{
					$(this).animate({opacity:1}, {duration : 100, queue : false});
				}
			});
		});
		
		ul.mouseleave(function(){
			ul.children('li').animate({opacity:1}, {duration : 100, queue : false} );
		});
	});
	
	var params_square2 = 5;
	
	$('div.thumbs.square2').each(function(){
		var thumbs = $(this);
		var img = thumbs.find('img');
		var width_img = '206';
		var ul = thumbs.find('ul');
		var lis = ul.find('li');
		
		lis.mouseenter(function(){
			var li_hover = $(this);

			lis.each(function(){
				if(li_hover.find('img').attr('src') != $(this).find('img').attr('src')){
					$(this).find('img').animate({width:width_img, left:0, top:0},{duration : 100, queue : false});
				}else{
					$(this).find('img').animate({width:width_img-2*params_square2, left:params_square2, top:params_square2},{duration : 100, queue : false});
				}
			});
		});
		
		ul.mouseleave(function(){
			ul.find('li img').animate({width:width_img, left:0, top:0},{duration : 100, queue : false});
		});
	});
	
	$('div.thumbs.square4').each(function(){
		var thumbs = $(this);
		var img = thumbs.find('img');
		var width_img = '160';
		var ul = thumbs.find('ul');
		var lis = ul.find('li');
		
		lis.mouseenter(function(){
			var li_hover = $(this);

			lis.each(function(){
				if(li_hover.find('img').attr('src') != $(this).find('img').attr('src')){
					$(this).find('img').animate({width:width_img, left:0, top:0},{duration : 100, queue : false});
				}else{
					$(this).find('img').animate({width:width_img-2*params_square2, left:params_square2, top:params_square2+1},{duration : 100, queue : false});
				}
			});
		});
		
		ul.mouseleave(function(){
			ul.find('li img').animate({width:width_img, left:0, top:0},{duration : 100, queue : false});
		});
	});
}



function buildInput(){
	$('input[type=text]').each(function(){
		var init = $(this).attr('value');
		$(this).focus(function(){
			var current = $(this).attr('value');
			if(current == init) {
				$(this).attr('value', '');
			}
		});
		
		$(this).focusout(function(){
			var current = $(this).attr('value');
			if(current == '') {
				$(this).attr('value', init);
			}
		});
	});
}

/* UTILISATION
 * 
 * Création d'un lien
 * <span onclick="link(lien_encodee);" >LINK</span>
 * 
 * Pour obtenir lien_encodee à partir de lien
 * lien_encodee = encode(lien);
 * 
 * EXEMPLE
 * On veut créer un lien sur ce span vers 'ceci/est/le/lien/vers/me_creer_une_alerte.php'
 * console.log(encode('../ceci/est/le/lien/vers/me_creer_une_alerte.php'));
 * -> 112fhfl2hvw2oh2olhq2yhuv2phbfuhhubxqhbdohuwh1sks
 * 
 * Le span devient :
 * <span class="highlight" onclick="link('112fhfl2hvw2oh2olhq2yhuv2phbfuhhubxqhbdohuwh1sks');" >Me créer une alerte</span>
 */

function link(l){
	window.location.href = l;
}

function decode(l){
	var nl = "";
	for(var i = 0; i < l.length; i++){
		nl += String.fromCharCode(l.charCodeAt(i) - 3);
	}
	return nl;
}

function encode(l){
	var nl = "";
	for(var i = 0; i < l.length; i++){
		nl += String.fromCharCode(l.charCodeAt(i) + 3);
	}
	return nl;
}

/* JS for c_ind_buy_choose pannel */
function buidCIndBuyChoose(){
	var nb_lines = $('div#c_ind_buy_choose div.lines div.line').length;
	$('input#nb_lines').attr('value', nb_lines);
	
	//event add
	$('div#c_ind_buy_choose div.add_line').click(function(){
		nb_lines++;
		$('input#nb_lines').attr('value', nb_lines);
		var content_line = '<div class="line">';
		content_line += '<div class="delay">';
		
		content_line += '<span>À</span>';
		
		content_line += '<div class="time">';
		
		var select_name = $('div#c_ind_buy_choose div.time select').attr('name');
		var reg = new RegExp("[0-9]+", "g");
		var select_name = select_name.replace(reg, '')+nb_lines;
			
		content_line += '<select name="'+select_name+'">';
		content_line += $('div#c_ind_buy_choose div.time select').html();
		content_line += '</select>';
		content_line += '</div>';
		
		select_name = $('div#c_ind_buy_choose div.transport select').attr('name');
		select_name = select_name.replace(reg, '')+nb_lines;
		
		content_line += '<div class="transport">';
		content_line += '<select name="'+select_name+'">';
		content_line += $('div#c_ind_buy_choose div.transport select').html();
		content_line += '</select>';
		content_line += '</div>';
		
		content_line += '<span>de</span>';
		
		var input_name = $('div#c_ind_buy_choose div.ad input').attr('name');
		input_name = input_name.replace(reg, '')+nb_lines;
		
		content_line += '<div class="ad">';
		content_line += '<input type="text" value="Adresse" name="'+input_name+'" />';
		content_line += '</div>';
		content_line += '<div class="remove_line"></div>';
		content_line += '<div class="clear"></div>';
		
		content_line += '</div>';
		content_line += '</div>';
		
		$('div#c_ind_buy_choose div.lines').append(content_line);
		var line_created = $('div#c_ind_buy_choose div.lines div.line:last').css('display', 'none');
		line_created.find('select').sSelect();
		
		var width_input = $('div.add_line').width();
		$('div#c_ind_buy_choose div.add_line').animate({opacity:0}, 200);
		
		$('div#c_ind_buy_choose div.lines div.remove_line').click(function(){
			$('div#c_ind_buy_choose div.lines div.line').last().animate({height: 0}, 500, function(){
				$(this).remove();
			});
			$('div#c_ind_buy_choose div.add_line').animate({opacity:1}, 200);
		});
		
		//$('div#c_ind_buy_choose div.line input').animate({width : $('div#c_ind_buy_choose div.line input').width()+width_input}, 200);
		line_created.slideDown();
		
		//event input
		buildInput();
	});
	
	//event scales
	$('div#c_ind_buy_choose div.scales div.scale').each(function(){
		var scale = $(this);
		scale.find('ul li[class!=help]').click(function(){
			var li = $(this);
			var pos_li = li.attr('class').split(' ')[0].split('field')[1];

			scale.find('ul li[class!=help]').each(function(index){
				$(this).removeClass('selected').removeClass('selected_arrow').removeClass('not_selected');
				if(index < pos_li-1){
					$(this).addClass('selected');
				}
				else if(index == pos_li-1){
					$(this).addClass('selected_arrow');
				}
				else{
					$(this).addClass('not_selected');
				}
			});
			
			li.parent().parent().find('input').attr('value', pos_li);
		});
	});
}

function buildCheckBox(){
	$('div.choice span.square').click(function(){
		var group = $(this).parent().parent();
		group.find('input[type=hidden]').attr('value', 'false');
		group.find('span.square.selected').removeClass('selected');
		$(this).addClass('selected');
		$(this).siblings('input').attr('value', 'true');
	});
}

function buildSmallThumbs(){
	$('div.thumb div.img_wrapper img').hover(function(){
		var width = $(this).width();
		var height = $(this).height();
		if ($(this).data('height') == undefined)
			$(this).data('height', height);
		
		$(this).animate({
			height: height-5,
			marginTop: 2.5,
			marginLeft : 5
		}, 200);
	}, function(){
		$(this).animate({
			height: $(this).data('height'),
			marginTop: 0,
			marginLeft : 0
		}, 200);
	});
}

$(document).ready(function(){
	buildSmartMenu();
	buildContact();
	buildSelects();
	buildSimpleSwitchMenu();
	buildComplexSwitchMenu();
	buildSearchOnMap();
	buildSelectionBlock();
	buildNews();
	buildThumbsBlock();
	buildSmallThumbs();
	buildInput();
	buidCIndBuyChoose();
	buildCheckBox();
});
