$(document).ready(function(){	
	mode();
	if(modeAjax){
		liensAjax($('#b-'+$Group+"-"+$Name))
		liensAjax($('#titres-site'))
	}
	$('#reponse').ajaxStart(function() {
		$(this).addClass('chrg');
	}).ajaxStop(function() {
	  $(this).removeClass('chrg');
	})
	$(window).hashchange(function(){
		ChngNavig();
	})
	$(window).hashchange();
})
function ChngNavig(){
  	if(location.hash&&NavigationAncres){
		a = location.hash;
		a = a.replace(/^.*#/, '');
		Navig(a);  
	}else if(NavigationAncres){
		Navig($Group+"-"+$Name);
	}
}
// diaporama page 
// ================
function navDiap(e,n){
	if(!$(e).hasClass('inactif')){
		var diap = $(e).closest('.diaporama-portfolio').find('.liste-diap');
		var vit = 300, dep = 300;
		diap.closest('.diaporama-portfolio').find('.nav-diap').removeClass('inactif');
		if(n>0){
			diap.animate({marginLeft: '-='+dep}, vit, function(){
				var m = parseInt(diap.css('margin-left'))*-1;
				var l = diap.children('li').size();
				if(m==((l-1)*dep)) $(e).addClass('inactif');
		  	});		
		}else if(n<0){
			diap.animate({marginLeft: '+='+dep}, vit, function() {
				var m = parseInt(diap.css('margin-left'));
				if(m==0) $(e).addClass('inactif');
		  	});		
		}
	}
}

// zoom 
// ================
function bookPlus(b){
	diapPE(b);		
	return false;	
}
function diapPE(b){
	var lst = $(b).closest('.liste-diap');
	var tot = lst.find('li').size();
	var cod = lst.dataset('codeimage');
	var ind = lst.find('li').index($(b).closest('li'))+1;
	var chm = $ScriptUrl+"/"+$UploadDir+"/Portfolio/"+cod+'/1024x768/';
	$('body').append('<div id="d-PE"><div id="im-PE" /><span id="f-PE" /><span id="nv-prc" /><span id="nv-svt" /></div>').css({'overflow':'hidden'});	
	$('#f-PE').click(function(){fermerDiapPE();})		
	chrgImg(ind);
	gereMenu(ind);
	$('#nv-svt, #nv-prc').click(function(){
		var s = ($(this).is('#nv-prc')) ? -1 : 1;
		chrgImg(numCourant()+s);
		synchro(s);
		gereMenu(numCourant()+s);
	})		
	$(document).bind("keyup", function(event){
		if(event.keyCode == '27') fermerDiapPE();
		else if(event.keyCode == '37') $('#nv-prc').click();
		else if(event.keyCode == '39') $('#nv-svt').click();
	});	
	function allongNum(nm){ 
		nm = String(nm); nm = nm.replace(/^(\d{1}$)/,"0$1");return nm;
	}
	function numCourant(){
		var crt = $('#im-crt').attr('src');			
		crt = crt.substring(crt.lastIndexOf('/')+1,crt.lastIndexOf('.'));
		crt = crt.replace(/^[^\d]*/,'');
		if(crt.indexOf('-')) crt = crt.substring(crt.indexOf('-')+1,crt.length);	
		return Number(crt);
	}
	function chrgImg(ind){
		$('#im-PE').addClass('chrg');
		var ext = lst.find('.img-diap').eq(ind-1).dataset('extimage');
		if(ind>tot) ind = "01"; else if(ind<0) ind = allongNum(tot);		
		var im = chm+cod+'-'+allongNum(ind)+'.'+ext;
		$('#im-PE').html('<img src="'+im+'" style="display: none" id="im-crt" alt="" />');				
		$('#im-crt').load(function(){
			$(this).show();
			$('#im-PE').removeClass('chrg');
		});	
	}
	function synchro(s){
		if(s<0) navDiap($('.diaporama .nav-moins'),-1)
		else navDiap($('.diaporama .nav-plus'),1)	
	}
	function gereMenu(n){
		if(n==1) $('#nv-prc').hide();
		else  $('#nv-prc').show();
		if(n==tot) $('#nv-svt').hide();
		else  $('#nv-svt').show();	
	}
	function fermerDiapPE(){
		$('#d-PE').remove();
		$('body').css({'overflow':''});
		$(document).unbind("keyup");
	}
}

// gestion nav Ajax 
// ================
modeAjax = true;
function mode(){
	var re = new RegExp('^http://(www\.)?newsyntax\.com/?(#.*)?$');
	var m = re.exec(window.location);
	var s;
    if(m==null){
    	modeAjax = false;
    }
    else{
    	for (i = 0; i < m.length; i++) {s = s + m[i] + "\n";}		
	}
}
function liensAjax(bl){
	$(bl).find('a').not('.lien-plus').click(function(){
		a = $(this).attr('href');
		var rgx = new RegExp('^'+$ScriptUrl+'(\/)?');
		a = a.replace(rgx,'');
		Navig(a,$(this));
		return false;
	})
}	
var NavigationAncres = false;
function Navig(a,b){
	NavigationAncres = false;
	var n = a.replace(/\//, '-');
	var u = a;
	var prec = $('.contenu').not('.masque');
	prec = $('#'+prec.attr('id'))
	var suiv = $('.contenu#b-'+n);		
	if(suiv.size()==0){
		$.ajax({
			type: 'POST',
			url: u,
			dataType: 'html',
			success: function(data){
				var r = '<div id="b-'+n+'" class="contenu">'+$(data).find('.contenu').html()+'</div>';			
				$('#fin-contenu').before(r);
				suiv = $('.contenu#b-'+n)
				liensAjax(suiv);
				var g = $('#document').width();
				var h = prec.position()['top'];
				var pos = 1;
				if(b) pos = sensPos(b,pos); 				suiv.css({'left':(g*pos)+"px",'width':(g-30)+'px','position':'absolute','top':h+'px'})
				gliss(suiv,'suiv',0,u);
				var h1 = suiv.height()+h;
				var h2 = prec.height()+h;
				var ht = (h1>=h2)? h1: h2;
				$('#document').css({'height':ht+'px'})
				gliss(prec,'prec',(-1*pos),u);
			}
		})	
	}
	else if(suiv.attr('id')!=prec.attr('id')){
		var n1, n2;
		$('.contenu').each(function(i){
			if($(this).attr('id')==prec.attr('id')) n1 = i;
			if($(this).attr('id')==suiv.attr('id')) n2 = i;
		})
		var h = prec.position()['top'];
		var h1 = suiv.height()+h;
		var h2 = prec.height()+h;
		var ht = (h1>=h2)? h1: h2;
		$('#document').css({'height':ht+'px'})
		var g = $('#document').width();		
		var pos = (n1>=n2) ? -1 : 1;
		if(b) pos = sensPos(b,pos); 
		if(n=='Accueil-Accueil') h -= 10;
		suiv.css({'left':(g*pos)+"px",'width':(g-30)+'px','position':'absolute','top':h+'px'});
		suiv.removeClass('masque');
		gliss(suiv,'suiv',0,u);
		gliss(prec,'prec',(-1*pos),u);
	}
	function sensPos(b,pos){
		if(b.is('.chem-prec')) return -1;
		else if(b.is('.chem-suiv')) return 1;
		else return pos;
	}	
}
var apAnim = false;
function gliss(b,role,sens,u){
	var l = $('#document').width();
	l = (role=='suiv') ?  0 : (l*sens)+"px";
	$(b).animate(
		{left : l}
		,700
		,function(){
			if(role=='suiv'){
								
			}
			else{
				$(b).addClass('masque');
			}
			$(b).css({'left':'','width':'','position':'','top':''})
			if(!apAnim) apAnim = window.setTimeout('apresanim()',100);
			var adr = window.location.href;
			adr = adr.replace(/#.*$/,'');
			window.location.href = adr + "#"+u;	
			chngPTitre(u);
	});
	apresanim = function apresAnim(){
		$('#document').css({'height':'auto'});
		NavigationAncres=true;
		apAnim = false;
		pu = $('.contenu').not('.masque').attr('id').replace(/b-/,'').replace(/-/,'/');
		PageUrl = $ScriptUrl+"/"+pu;
	}			
	function chngPTitre(u){
		var n = u;
		n = n.replace(/^[^\/]*\//,'');
		if(n=='') n = u.replace(/\//,'');
		window.document.title = "newsyntax : "+n.toLowerCase();
	}			
}

function boutonRetour(){
	//$('#debogue').text(window.history[0]);
	$('#document').append($('<div class="bt-retour" onclick="actionRetour()" />'))
}

function actionRetour(){
	window.history.go(-1);
}

	
		

(function($,window,undefined){
  '$:nomunge'; 
  var str_hashchange = 'hashchange',
    doc = document,
    fake_onhashchange,
    special = $.event.special,
    doc_mode = doc.documentMode,
    supports_onhashchange = 'on' + str_hashchange in window && ( doc_mode === undefined || doc_mode > 7 );
  function get_fragment( url ) {
    url = url || location.href;
    return '#' + url.replace( /^[^#]*#?(.*)$/, '$1' );
  };
  $.fn[ str_hashchange ] = function( fn ) {
    return fn ? this.bind( str_hashchange, fn ) : this.trigger( str_hashchange );
  };
  $.fn[ str_hashchange ].delay = 50;
  special[ str_hashchange ] = $.extend( special[ str_hashchange ], {
    setup: function() {
      if ( supports_onhashchange ) { return false; }
      $( fake_onhashchange.start );
    },
    teardown: function() {
      if ( supports_onhashchange ) { return false; }
      $( fake_onhashchange.stop );
    }    
  });
  fake_onhashchange = (function(){
    var self = {},
      timeout_id,
      last_hash = get_fragment(),
      fn_retval = function(val){ return val; },
      history_set = fn_retval,
      history_get = fn_retval;
    self.start = function() {
      timeout_id || poll();
    };
    self.stop = function() {
      timeout_id && clearTimeout( timeout_id );
      timeout_id = undefined;
    };
    function poll() {
      var hash = get_fragment(),
        history_hash = history_get( last_hash );      
      if ( hash !== last_hash ) {
        history_set( last_hash = hash, history_hash );        
        $(window).trigger( str_hashchange );        
      } else if ( history_hash !== last_hash ) {
        location.href = location.href.replace( /#.*/, '' ) + history_hash;
      }      
      timeout_id = setTimeout( poll, $.fn[ str_hashchange ].delay );
    };
    $.browser.msie && !supports_onhashchange && (function(){
      var iframe,
        iframe_src;
      self.start = function(){
        if ( !iframe ) {
          iframe_src = $.fn[ str_hashchange ].src;
          iframe_src = iframe_src && iframe_src + get_fragment();
          iframe = $('<iframe tabindex="-1" title="empty"/>').hide()
            .one( 'load', function(){
              iframe_src || history_set( get_fragment() );
              poll();
            })
            .attr( 'src', iframe_src || 'javascript:0' )
            .insertAfter( 'body' )[0].contentWindow;
          doc.onpropertychange = function(){
            try {
              if ( event.propertyName === 'title' ) {
                iframe.document.title = doc.title;
              }
            } catch(e) {}
          };
          
        }
      };
      self.stop = fn_retval;
      history_get = function() {
        return get_fragment( iframe.location.href );
      };
      history_set = function( hash, history_hash ) {
        var iframe_doc = iframe.document,
          domain = $.fn[ str_hashchange ].domain;        
        if ( hash !== history_hash ) {
          iframe_doc.title = doc.title;
          iframe_doc.open();
          domain && iframe_doc.write( '<script>document.domain="' + domain + '"</script>' );          
          iframe_doc.close();          
          iframe.location.hash = hash;
        }
      };      
    })();
    return self;
  })();  
})(jQuery,this);	
		

/* dataset */
(function($) {
	var PREFIX='data-',PATTERN=/^data\-(.*)$/;
	function dataset(name,value){if(value!==undefined){return this.attr(PREFIX+name,value);}
	switch(typeof name){case 'string':return this.attr(PREFIX+name);case 'object':return set_items.call(this,name);case 'undefined':return get_items.call(this);default:throw 'dataset: invalid argument '+name;}}
	function get_items() {return this.foldAttr(function(index,attr,result){var match=PATTERN.exec(this.name);if(match)result[match[1]]=this.value;});}
	function set_items(items){for(var key in items){this.attr(PREFIX+key,items[key]);}return this;}
	function remove(name){if(typeof name=='string'){return this.removeAttr(PREFIX+name);}return remove_names(name);}
	function remove_names(obj){var idx,length=obj&&obj.length;if(length===undefined){for(idx in obj){this.removeAttr(PREFIX+idx);}}else{for (idx=0;idx<length;idx++){this.removeAttr(PREFIX+obj[idx]);}}return this;}
	$.fn.dataset=dataset;$.fn.removeDataset=remove_names;
})(jQuery);
(function($) {
	function each_attr(proc){if(this.length>0){$.each(this[0].attributes, proc);}return this;}
	function fold_attr(proc, acc){return fold((this.length > 0) && this[0].attributes, proc, acc);}
	function fold(object,proc,acc){var length=object&&object.length;if(acc===undefined)acc={};if(!object)return acc;if(length!==undefined){for(var i=0,value=object[i];(i<length)&&(proc.call(value,i,value,acc)!==false);value = object[++i]){}}else{for(var name in object){if(proc.call(object[name],name,object[name],acc)=== false)break;}}return acc;}
	function fold_jquery(proc,acc){if(acc===undefined)acc=[];return fold(this,proc,acc);}
	$.fn.eachAttr=each_attr;$.fn.foldAttr=fold_attr;$.fn.fold=fold_jquery;$.fold=fold;
})(jQuery);
