﻿
$(document).ready(function(){
	destroyBlk('.noJS');
	checkCreator();
	handleFlashEmbeds();
	initCalendars();
	initNav();
	handleSubNavBars();
	webCampCompatibility();
	$('form#resaForm').attr('target','bookingWindow');

// Débrayage Cabanes :
	$('form#resaForm #heb').each(function(){
		switch(lng){
			case 'fr':
				var allCabanes='Cabanes dans les arbres',
				cabaneCouple='Cabane 2 pers',
				cabaneGrande='Cabane 3/4 pers';
				break;
			case 'en':
				var allCabanes='Tree Houses',
				cabaneCouple='Tree house 2 pers',
				cabaneGrande='Tree house 3/4 pers';
				break;
			case 'nl':
				var allCabanes='Boomhutten',
				cabaneCouple='Boomhut 2 pers',
				cabaneGrande='Boomhut 3/4 pers';
				break;
			default:
				var allCabanes='Tree Houses',
				cabaneCouple='Tree house 2 pers',
				cabaneGrande='Tree house 3/4 pers';
				break;
		}
		var ajoutCabanesAll='<option value="cabanes">'+allCabanes+'</option>',
		ajoutCabanesCouples='<option value="cabanes">'+cabaneCouple+'</option>',
		ajoutCabanesGrandes='<option value="cabanes">'+cabaneGrande+'</option>';
//		$('option[value=0]',this).after(ajoutCabanesAll);
		$(this)
			.append(ajoutCabanesCouples)
			.append(ajoutCabanesGrandes);
	});

});

$(window).load(function(){
	$('.rounded').corner();
	$('.roundedRight').corner({
		tl: false,
		tr: { radius: 8 },
		bl: false,
		br: { radius: 8 },
		antiAlias: true,
		autoPad: true,
		validTags: ["div"]
	});

	moveTrackbusters();

	if($.browser.msie==true&&$.browser.version<7){
		initIE6();
	}
	if($.browser.msie==true&&$.browser.version==7){
		initIE7();
	}

// Débrayage Cabanes :
	$('form#resaForm #heb').change(function(){
		if(($(this).val()=='cabanes')&&!(rubNav==4&&sRubNav==3)){
			$('form#resaForm #heb').unbind('change');
			location.href=urlCabanes+'#iFrameCabanes';
		}
		else if(($(this).val()=='cabanes')&&(rubNav==4&&sRubNav==3)){
			$('form#resaForm #heb').unbind('change');
			location.href='#iFrameCabanes';
		}
	});
	if($('#iFrameCabanes').length>0){
		var server=null;
		if($('#iFrameCabanes').html()==''){
			$('#iFrameCabanes').html('<iframe id="cabaneenlair" src="http://www.lacabaneenlair.com/reservation/cgi/clickbooking.cgi?display=home&iframe=1&webuser=web_part_37&sub_page=search_form_partenaire&partenaire_etab_id=37&use_cache=1" style="margin:46px; border:0; width:312px; height:263px;"><\/iframe>');
		}
	}
	handleMiniGallery();
	handleBasicBehaviours();
	emailBuilder();
});


/* This function adapts things for IE6 */
function initIE6(){
	$('#navCol').css({position:'absolute'});
	$('#photosBlk div').css({zoom:1,'font-size':'1%'});
	$('.withCol #mainCtnt').css({position:'relative'});
	$('.withCol #mainCtnt div').css({zoom:1});
	$('.rounded, .roundedRight').css({zoom:1});
	$('#familyBlk').css({position:'absolute',zoom:1});
//	$("div[@style=*'both']").css({zoom:1,'font-size':'1%',border:'1px solid red'}); /* Fix curvyCorners bug on IE6 */
}

/* This function adapts things for IE7 */
function initIE7(){
	$('#familyBlk').css({position:'absolute'});
	setTimeout("$('#familyBlk').css({zoom:1})",100);
	$('#navCol, #mainCtntBlk').css({zoom:1});
}

/* This function replaces HTML elements by Flash files */
function handleFlashEmbeds(){
	$('.flashCtnt').each(function(){
		var flashURL=$('.flashUrl span',this).html();
		var flashDims=$('.flashUrl span',this).attr('class');
		$('*',this).remove();
		flashDims=flashDims.split('x');
		$(this).media({
			src: flashURL,
			width: flashDims[0],
			height: flashDims[1],
			params: { wmode: 'transparent'},
			attrs: { wmode: 'transparent'}
		},
		{
			update: false
		});
	});
}

/* This function inits the calendars on the pages
   using jQuery UI DatePicker */
var cDate=new Date();
var cY=cDate.getFullYear();
var cM=(cDate.getMonth()+1)<10?'0'+(cDate.getMonth()+1):(cDate.getMonth()+1);
var cD=cDate.getDate()<10?'0'+cDate.getDate():cDate.getDate();
function initCalendars(){
	var maDate=cD+'-'+cM+'-'+cY;
	$("#arrivalDate").datepicker({
		minDate: new Date(cY-1, 12 - cDate.getMonth(), 1),
		maxDate: new Date((cY+1), 12 - 1, 31),
		beforeShow: readLinkedA,
		onSelect: updateLinkedA,
		showOn: "both",
		buttonImage: "http://www.parcdefierbois.co.uk/js/img/calendar4.png",
		buttonImageOnly: true
	}); 
	$("#aD, #aM, #aA").change($.datepicker.checkLinkedDays);
	$("#departureDate").datepicker({
		minDate: new Date(cY-1, 12 - cDate.getMonth(), 1),
		maxDate: new Date((cY+1), 12 - 1, 31),
		beforeShow: readLinkedD,
		onSelect: updateLinkedD,
		showOn: "both",
		buttonImage: "http://www.parcdefierbois.co.uk/js/img/calendar4.png",
		buttonImageOnly: true
	}); 
	$("#dD, #dM, #dA").change($.datepicker.checkLinkedDays);
	updateLinkedA(maDate);
	updateLinkedD(maDate);
}

// Prepare to show a date picker linked to three select controls Arrivals/Departures
function readLinkedA(){
	$('#arrivalDate').val($('#aD').val()+'/'+$('#aM').val()+'/'+$('#aA').val());
	return {};
}
function readLinkedD(){
	$('#departureDate').val($('#dD').val()+'/'+$('#dM').val()+'/'+$('#dA').val());
	return {};
}

// Update three select controls to match a date picker selection Arrivals/Departures
function updateLinkedA(date){
	$('#aD').val(date.substring(0,2));
		$('#SJourArrivee').val(date.substring(0,2));
//		$('#jourArrv').val(date.substring(0,2));
	$('#aM').val(date.substring(3,5));
		$('#SMoisArrivee').val(date.substring(3,5));
	$('#aA').val(date.substring(6,10));
		$('#SAnArrivee').val(date.substring(6,10));
	webCampCompatibility();
}
function updateLinkedD(date){
	$('#dD').val(date.substring(0,2));
		$('#SJourDepart').val(date.substring(0,2));
	$('#dM').val(date.substring(3,5));
		$('#SMoisDepart').val(date.substring(3,5));
	$('#dA').val(date.substring(6,10));
		$('#SAnDepart').val(date.substring(6,10));
	webCampCompatibility();
}

// Prevent selection of invalid dates through the select controls
function checkLinkedDays(){
	var daysInMonth = 32 - new Date($('#aA').val(),
	$('#aD').val() - 1, 32).getDate();
	$('#aM option').attr('disabled', '');
	$('#aM option:gt(' + (daysInMonth - 1) +')').attr('disabled', 'disabled');
	if ($('#aM').val() > daysInMonth) {
		$('#aM').val(daysInMonth);
	}
	var daysInMonth = 32 - new Date($('#dA').val(),
	$('#dD').val() - 1, 32).getDate();
	$('#dM option').attr('disabled', '');
	$('#dM option:gt(' + (daysInMonth - 1) +')').attr('disabled', 'disabled');
	if ($('#dM').val() > daysInMonth) {
		$('#dM').val(daysInMonth);
	}
}

/* This function feeds WebCamp required fields */
function webCampCompatibility(){
	var nbJours=nb_jour([$('#SJourArrivee').val(),$('#SMoisArrivee').val(),$('#SAnArrivee').val()],[$('#SJourDepart').val(),$('#SMoisDepart').val(),$('#SAnDepart').val()])
	$('#Sduree').val(nbJours);
	$('#aD,#aM,#aA,#dD,#dM,#dA').change(function(){
		$('#SJourArrivee').val($('#aD').val());
		$('#SMoisArrivee').val($('#aM').val());
		$('#SAnArrivee').val($('#aA').val());
		$('#SJourDepart').val($('#dD').val());
		$('#SMoisDepart').val($('#dM').val());
		$('#SAnDepart').val($('#dA').val());
		var nbJours=nb_jour([$('#SJourArrivee').val(),$('#SMoisArrivee').val(),$('#SAnArrivee').val()],[$('#SJourDepart').val(),$('#SMoisDepart').val(),$('#SAnDepart').val()])
		$('#Sduree').val(nbJours);
	});
	$('#libdate').val(jour_semaine()+' '+$('#dD').val()+' '+moisTxt[parseInt($('#dM').val())]+' '+$('#dA').val());

	$('#Sadulte').val(parseInt($('#adultes').val())+parseInt($('#ados').val())+parseInt($('#kids').val())+parseInt($('#bb').val()));
	$('#adultes, #ados, #kids, #bb').change(function(){
		$('#Sadulte').val(parseInt($('#adultes').val())+parseInt($('#ados').val())+parseInt($('#kids').val())+parseInt($('#bb').val()));
	});

	$('#heb').change(function(){
		$('#Scato').val($('#heb').val());
		var idCat=$('#heb option:selected').attr('lang');
		var typeLoc=$('#heb option:selected').val();
//		idCat=idCat.replace('-',',');
		typeLoc=$('#Scato').val()==0?'1,2':($('#Scato').val()==1?'2':($('#Scato').val()==2?'1':null));
		$('#Sidcat').val(idCat);
		$('#Stypeloc').val(typeLoc);
	});
}


function bissextile(annee) {
	if (annee%4==0 && annee %100!=0 || annee%400==0) return true; else return false
}
function nb_01_01(date){
	nb_mois=new Array(13);
	nb_mois=[,0,31,59,90,120,151,181,212,243,273,304,334];
	j=eval(date[0]) ; m=eval(date[1]) ; a=eval(date[2]);
	nb=nb_mois[m]+j-1 ;
	if (bissextile(a) && m>2) nb++;
	return nb;
}
function nb_jour_annee(a1,a2){
	n=0;
	if (a1==a2) n=0 ; else
	for (i=a1; i<a2; i++) {n += 365; if (bissextile(i)) n++}
	return n;
}
function nb_jour(date1,date2){
	a1=eval(date1[2]) ; a2=eval(date2[2]) ; 
	nb=nb_jour_annee(date1[2],date2[2]) - nb_01_01(date1) + nb_01_01(date2);
	return nb;
}
mois=new Array(13);
reste=new Array(7);
var moisTxt=new Array('','Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');
mois[1]=0;mois[2]=3;mois[3]=3;mois[4]=6;mois[5]=1;mois[6]=4;mois[7]=6;mois[8]=2;mois[9]=5;mois[10]=0;mois[11]=3;mois[12]=5;
reste[0]="Dimanche";reste[1]='Lundi';reste[2]="Mardi";reste[3]="Mercredi";reste[4]="Jeudi";reste[5]="Vendredi";reste[6]="Samedi";
function jour_semaine() {
	j=$('#dD').val();
	j=eval(j);
	m=$('#dM').val();
	m=eval(m);
	ann=$('#dA').val();
	ann=eval(ann);
	ann=ann-100*Math.floor(ann/100);
	r=eval(ann+Math.floor(ann/4)+j+mois[m]);
	r=r-Math.floor(r/7)*7;
	if ($('#dA').val()<2000) 
		return reste[r];
	else
		{ if (m>2) r+=1; // +1 car 2000 est bissextile
		r=(r+5)-Math.floor((r+5)/7)*7;
		return reste[r];
	}
}






/* This function init all the behaviours of the nav bar */
function initNav(){
	if(rubNav>0){
		$('li:nth-child('+rubNav+')','#mainNav').addClass('current');
	}
	$('li.current','#mainNav').addClass('default');
	$('li','#mainNav').mouseover(function(){
		$(this).addClass('current');
	}).mouseout(function(){
		$(this).removeClass('current');
		$('li.default','#mainNav').addClass('current');
	});
}

/* This function handles subnavbars */
var sRubNav=0;
function handleSubNavBars(){
	if(sRubNav>0){
		$('li:nth-child('+sRubNav+')','#navCol').addClass('over');
		$('li ul li','#navCol').removeClass('over default');
		if(ssRubNav>0){
			$('li:nth-child('+sRubNav+') ul li:nth-child('+ssRubNav+')','#navCol').addClass('over');
		}
	}
	$('li.over','#navCol').addClass('default');
	$('li.expandable ul','#navCol').hide();
	$('#navCol li').mouseover(function(){
		$(this).addClass('over');
// Anti flèche IE6
		if(!$(this).hasClass('expandable')){
			$(this).css({'background-image':'none'});
		}
	}).mouseout(function(){
		$(this).removeClass('over');
		$('li.default','#navCol').addClass('over');
	});
	$('#navCol li.expandable').click(function(){
		$(this).toggleClass('open');
		$('ul',this).toggle();
		return false;
	});
	$('#navCol li a.go').click(function(){
		location.href=$(this).attr('href');
	});
	$('li.expandable.default','#navCol').toggleClass('open').toggleClass('over');
	$('#navCol li.expandable.default ul').toggle();
}

/* This function manages mini-galleries on Parc pages */
function handleMiniGallery(){
	$('#photosBlk #thumbsBlk').cycle({
		fx: 'scrollVert',
		timeout: 0,
		next: '#btnPrev',
		prev: '#btnNext'
	});
	$('#photosBlk a').click(function(){
		var newSrc=$('img',this).attr('src');
		var newAlt=$('img',this).attr('alt');
		var newTitle=$('img',this).attr('title');
		newSrc=newSrc.replace('_small','');
		$('#photosBlk #bigOne').hide().attr({src:newSrc,alt:newAlt,title:newTitle}).fadeIn();
		return false;
	});
}

/* This function moves the TrackbustersBlock on homepage */
function moveTrackbusters(){
	$('#trackbustersBlk #trackbustersCtnt').clone().insertAfter('#beforeTrack');
	$('#trackbustersBlk').unbind().remove();
	
}

/********************************
 *	Generic functions	*
 ********************************/

/* Basic functions and behaviors... */
function handleBasicBehaviours(){

// target="_blank" simulator
	$("a.targBlank").click(function(){
		var lien=$(this).attr("href");
		window.open(lien,'','');
		return false;
	});

// popUp simulator
	$("a.popUp").click(function(){
		var lien=$(this).attr("href");
		var dims=$(this).attr("rel");
		dims=dims.split('x');
		window.open(lien,'','width='+dims[0]+',height='+dims[1]);
		return false;
	});

// closeBtn
	$('a.closeLnk').click(function(){
		window.close();
		return false;
	});
}


// destroy blocks
function destroyBlk(selector){
	$(selector).remove();
}


// catches the value of the "requestedParamName" in the "givenURL"
function getURLParamValue(givenURL,requestedParamName){
	var pos=givenURL.indexOf(requestedParamName);
	if(pos!=-1&&requestedParamName!==""){
		var tmp=givenURL.substr(pos);
		var start=pos+requestedParamName.length;
		var endPos;
		if(tmp.indexOf("&amp;")!=-1){endPos=tmp.indexOf("&amp;");}	// case where there are others params after, separate by "&amp;"
		else if(tmp.indexOf("&")!=-1){endPos=tmp.indexOf("&");}		// case where there are others params after, separate by "&"
		else if(tmp.indexOf("#")!=-1){endPos=tmp.indexOf("#");}		// case where there are others params after, separate by "#"
		else{endPos=tmp.length;}					// case where there are no others params after
		var requestedParamValue=tmp.substring(requestedParamName.length+1,endPos);// truncates the string from 0 to end of the param value
		return requestedParamValue;
	}
	else{return false;}
}


// eMail recompozer
function emailBuilder(){
	var pattern=/^http:\/\/www\.([^\/]+)\/([^\.]+)(\.(html|htm|php|asp))?$/;
	var humanDetected=false;
	var human=function(){
		humanDetected=true;
		$('a.courriel').each(function(){
			if($(this).html().match(pattern)){
				$(this).html($(this).html().replace(pattern,'$2@$1'));
			}
			else{
				if($('span.accessibility',this).html()!=null){
					if($('span.accessibility',this).html().match(pattern)){
						$('span.accessibility',this).html($('span.accessibility',this).html().replace(pattern,'$2@$1'));
					}
				}
			}
		});
	};
	if(!humanDetected){
		$(document).mousemove(human).keypress(human);
	}
	$('a.courriel').click(function(){
		if(!humanDetected){return false;}
		if(this.href.match(pattern)){
			this.href=this.href.replace(pattern,'mailto:$2@$1');
		}
	});
	$('a.courrielSubject').click(function(){
		if(!humanDetected){return false;}
		if(this.href.match(pattern)){
			var subject=$(this).attr('rel');
			this.href=this.href.replace(pattern,'mailto:$2@$1'+'?Subject='+subject);
		}
	});
	return false;
}


// Creator-mention check
var checkCreator = function(){
	if($('div#madeBy').length<1){
		$('<div id="madeBy"></div>')
			.appendTo('div#footer')
			.append('<h3 class="accessibility">Réalisation et aspects techniques - <a href="#siteCtnr">Retour en haut de page</a></h3><div class="orphans"><ul><li class="pipe"><a href="http://www.yacare.fr/" class="targBlank">r&eacute;alis&eacute; par Yacar&eacute;<span class="accessibility">, cr&eacute;ation de sites web</span></a></li><li><a href="http://validator.w3.org/check?uri='+this.location+'" class="targBlank" title="This Page Is Valid XHTML 1.1">xHTML</a> - </li><li><a href="http://jigsaw.w3.org/css-validator/validator?uri='+this.location+'&amp;usermedium=all" class="targBlank" title="Ce document est valide conformément à la recommandation CSS niveau 2.1">CSS</a></li></ul></div>');
	}
}
