﻿
function trace (dataobj) {


  // if (typeof window.console != 'undefined') {
	if (window.console || document.console ) {
		//alert (' console ok');
		console.log(dataobj);
	} else {
	//	alert ('pas de console');
	return false;
	}
}



function in_array(array, p_val) {
    for(var i = 0, l = array.length; i < l; i++) {
        if(array[i] == p_val) {
            rowid = i;
            return true;
        }
    }
    return false;
}

function is_email(email){
	var result = email.search(/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z]{2,3})+$/);
	if(result > -1){ return true; } else { return false; }
}


function endsWith(str, pattern){

	
		 var d = str.length - pattern.length;
		return d >= 0 && str.lastIndexOf(pattern) === d;
		
		
	}

/********  FUNCTION GENERIQUE AJAX   ***********/

//affiche un message html dans une div
//data : un objet contenant une valeur 'msg' au format html
//options de réponse : 
//		msg : Contenu html de la réponse
//		cssclass : nom de la class css à appliquer à la div de réponse. par défaut la class success ou error est appliquée en fonction de data.success. Pour ne rien appliquer retourner la valeur 'none'
//		success : 1 = tout va bien, 0 = il y a eu un erreur
//		prepend : 	undefined ou 0 = remplacer le contenu de la div par la réponse reçue
//					1 = ajouter le contenu de la réponse au debut de la div 
//					2 = ajouter le contenu de la réponse à la fin de la div
//		fade : 		undefined ou 0 : laisser la réponse affichée
//					1 = faire disparaitre la réponse après 3 secondes



function see_response (data, div_response){
//	alert ('see_response'+data.msg+' div_response='+div_response);

	if (data.success == '1') {			
		$(div_response).removeClass();
		if (!data.cssclass)  {			
			$(div_response).addClass('success');
		}		
	} else if (data.success == '0'){		
		$(div_response).removeClass();		
		if (!data.cssclass)  {			
			$(div_response).addClass('error');
		}		
	} 
	
	if ( (data.append == undefined || data.append == 0) && (data.prepend == undefined || data.prepend == 0) ) {	
		$(div_response).html(data.msg);
	} else {
		//on vire les img loader
	//	//trace('append');
		$(div_response).find('img.loaderimg').remove();
		
		if ((data.prepend == undefined || data.prepend == 0) ) {
			$(div_response).html(data.msg);
		} else if (data.prepend == 1) {
			$(div_response).prepend(data.msg);
		} else {
			$(div_response).append(data.msg);
		}
	}
	
	$(div_response).show();
	$(div_response).hide();
	
	
	if (data.fade == undefined || data.fade == 0) {
		$(div_response).fadeIn(500);	
	} else {
		$(div_response).fadeIn(500).delay(2000).fadeOut(500);	
	}
	
	//on set la class forcée
	if (data.cssclass) {			
		if (data.cssclass != 'none') {			
			$(div_response).addClass(data.cssclass);
		}
	} 
		
	/* initialisation des plugins jquery ds le coneneur */
	
	//nb_pages_slider();
	//table_menu_width(div_response);		
}




// url_file : nom du fichier à qui envoyer les variables
// datas : variables encodées en JSON
// div_response : id de l'élément HTML ou doit s'afficher la réponse
// func_after : String ou Array de noms fonction(s) à exécuter en cas de success. 
//              Cette ou ces fonctions reçevront en argument data (la réponse du serveur au format json)
//														     et div_response : ID de la div ou affiher
// prepend : 	0 ou null = l'image loader remplace le contenu de la réponse si elle existe
//				1 = l'image loader le positionnne avant
//				2 = l'image so positionne après

function ajax_send (url_file, datas, div_response, funct_after, prepend) {
	$.ajax({ // fonction permettant de faire de l'ajax
		   type: "POST", // methode de transmission des données au fichier php
		   url: url_file, // url du fichier php
		   data: datas, // données à transmettre	
		   dataType :"json",
		   beforeSend: function () { 
		   		$(div_response).show();
			    $(div_response).removeClass();
				
				//comportement de l'image loader
				if ((prepend == undefined || prepend == 0) ) {
					$(div_response).html('<img src="'+URL_SITE+'images/loading.gif" class="loaderimg">');
				} else if (prepend == 1) {
					$(div_response).prepend('<img src="'+URL_SITE+'images/loading.gif" class="loaderimg">');
				} else {
					$(div_response).append('<img src="'+URL_SITE+'images/loading.gif" class="loaderimg">');
				}
				
				
			},
		   
		   success: function(data){ // si l'appel a bien fonctionné
				//on execute la fonction prévue en success
				
				if (typeof(funct_after)=="object") {
				//	//trace (funct_after);
					for (x in funct_after) {
						//alert (funct_after[x]);
						if (window[funct_after[x]]){
							window[funct_after[x]](data, div_response);
						}	
					}					
				} else {
						//alert ('string : '+funct_after);
						if (window[funct_after]){
							window[funct_after](data, div_response);
						}						
				}
				
				
		   },
			error: function (data) {
			  // alert ('AJAX error');
			 // //trace (data);
			  if (data.readyState != 0) {			  
					// see_response (data, div_response);
					$(div_response).html('<div class="error">AJAX error</div>');
			   } else {
					//changement de page avant la fin de la requete ajax
					//$(div_response).html('<div class="error">Abandon</div>');			  
			   }
		   }
		});
}

$.fn.tagName = function() {
   return this.get(0).tagName.toLowerCase();
}

function r_slider_lines(data, div) {

	var sURL = unescape(window.location);
	sURL = sURL+'#'+data.nomTableau ;
	window.location.href = sURL;
	 window.location.reload( false );
}
function loadDispo (idDispo, div) {
	//on supprime tous les éditeurs
    var allInstances = CKEDITOR.instances;
    for (var i in allInstances) {
        editor = allInstances[i];
        CKEDITOR.remove(editor);
    }
	//chargement du template disposition
	ajax_send (URL_SITE+'zadmin/ajax/loadDispo.php',{"idDispo":""+idDispo+""}, div, new Array( "see_response","activeCKEDITOR"));
}
function loadTemplateOptions (idTemplate, idSite, div) {
	//on supprime tous les éditeurs
    var allInstances = CKEDITOR.instances;
    for (var i in allInstances) {
        editor = allInstances[i];
        CKEDITOR.remove(editor);
    }
	//chargement du template disposition
ajax_send (URL_SITE+'zadmin/ajax/loadTemplateOptions.php',{"idTemplate":""+idTemplate+"","idSite":""+idSite+""}, div, new Array( "see_response","activeCKEDITOR"));
}

function loadModuleOptions (idModule, idPage, div) {
	//on supprime tous les éditeurs
    var allInstances = CKEDITOR.instances;
    for (var i in allInstances) {
        editor = allInstances[i];
        CKEDITOR.remove(editor);
    }
	//chargement du template disposition
ajax_send (URL_SITE+'zadmin/ajax/loadModuleOptions.php',{"idModule":""+idModule+"","idPage":""+idPage+""}, div, new Array( "see_response","activeCKEDITOR"));
}


function loadZone (idDisposition, idPage, div) {
	//on supprime tous les éditeurs
	////trace (CKEDITOR);
    var allInstances = CKEDITOR.instances;
    for (var i in allInstances) {
        editor = allInstances[i];
        CKEDITOR.remove(editor);
    }
	//chargement du template disposition
	ajax_send (URL_SITE+'zadmin/ajax/loadZone.php',{"idDisposition":""+idDisposition+"","idPage":""+idPage+""}, div, new Array( "see_response","activeCKEDITOR"));
}

//remplace tte les instaces de textarea par des ckeditor
function activeCKEDITOR() {
	
	
	
	////trace ('activeCKEDITOR');
	var ckconfig = {
		jqueryOverrideVal:true,
		basePath:URL_SITE+'ckeditor/',
		filebrowserBrowseUrl:URL_SITE+'filemanager/index.php',
		filebrowserImageBrowseUrl:URL_SITE+'filemanager/index.php',
		filebrowserFlashBrowseUrl:URL_SITE+'filemanager/index.php',
		filebrowserUploadUrl:URL_SITE+'filemanager/index.php',
		filebrowserFlashUploadUrl:URL_SITE+'filemanager/index.php',
		filebrowserImageUploadUrl:URL_SITE+'filemanager/index.php',
	};
	$( 'textarea.jsckeditor' ).ckeditor(ckconfig);
	
	
	
	$('textarea.jsckeditor').each(function() {
		var editor = $(this).ckeditorGet();
		//trace( editor );
		//trace( editor.getData() );
		
		////trace ($(this).
		////trace ($(this).attr('name')+' = '+$(this).val()+' '+$(this).attr('class'));
	});
	//trace('-------------------------------------------');
	

}

// Remplace les caractères accentués
function noaccent(chaine) {

  temp = chaine.replace(/[àâä]/gi,"a")
  temp = temp.replace(/[éèêë]/gi,"e")
  temp = temp.replace(/[îï]/gi,"i")
  temp = temp.replace(/[ôö]/gi,"o")
  temp = temp.replace(/[ùûü]/gi,"u")
  temp = temp.replace(/[ç]/gi,"c")
  

  return temp
}

//trace (noaccent('éàç'));
function str_urlSeoPage(url) {
//trace(url);
url = noaccent(url);
 url = url.replace(/ /gi,"_")
 url = url.replace(/-/gi,"_")
return url;

//return escape(url);

	
}

function online(contexte, id, div, e) {
e.preventDefault();
			ajax_send (URL_SITE+'zadmin/ajax/online.php',{"id":""+id+"","contexte":""+contexte+""}, div, new Array( "r_labo_online"));
			return false;
			
}
function r_labo_online (data, div) {
	////trace (data);
	////trace (div);
	$(div).find('img').attr('src',data.image);
}
function r_login (data, div) {
	if (data.success == 1 ) {
		$('#form_login').hide();
	}
}

function suppr(contexte, id, div) {
	
	//$(div).remove();
	if (confirm(CONFIRM_SUPPR)) 
	{
		ajax_send (URL_SITE+'zadmin/ajax/suppr.php',{"id":""+id+"","contexte":""+contexte+""}, div, new Array( "r_suppr"));	
		return false;
	}
	
}
function r_suppr(data, div) {
	if (data.success == 1) {
		$(div).parents('tr').remove();
	} else {
		$(div).html(data.msg);
	}
}

function add_medecin_video(id, nom,e) {
	$('#medecins_video').append('<div><input type="hidden" value="'+id+'" name="medecins[]" />'+nom+'<img align="absmiddle"src="'+URL_SITE+'images/icons/icodelete.gif" onclick="$(this).parent().remove();"/></div>');
	e.preventDefault();
}
function add_produit_video(id, nom,e) {
	$('#produits_video').append('<div><input type="hidden" value="'+id+'" name="produits[]" />'+nom+'<img align="absmiddle"src="'+URL_SITE+'images/icons/icodelete.gif" onclick="$(this).parent().remove();"/></div>');
	e.preventDefault();
}

function load_video_toolbox(idToolbox) {
	ajax_send (URL_SITE+'zadmin/ajax/load_video_toolbox.php',{"idToolbox":""+idToolbox+""}, '#r_search_produits', new Array( "see_response"));	
		
	
}



/*************************************************


DOCUMENT

*******************************************************/
/********************************************************************************************************************************************/

 $(document).ready(function(){
 
 
 
  // pour la soumission des formulaires
 $('form').submit(function(e) {
	
	//on supprime tous les input de traduction masqués avant d'envoyer un form
	$(this).find('input.inputtrad').remove();
	
	myform = $(this);
	
	
	//MAJ des ckeditor ajax	
	$(this).find('textarea.jsckeditor').each(function() {
		$(this).show().css('visibility','visible');
		
		
		var editor = $(this).ckeditorGet();
	//	//trace( editor );
		data = editor.getData();
			
		name = $(this).attr('name');
		$('textarea [name="'+name+'"]').remove();
		$(this).remove();
		$(myform).append('<textarea name="'+name+'" class="hidden">'+data+'</textarea>');
		
	//return false;
	//e.preventDefault();	
		
	});
	
	
	//return false;
	
});
//$('textarea').val('test de data');
  
   
   
   $('div.tabs').tabs();
   
    $('textarea.jsckeditor').livequery(function(){ 
		activeCKEDITOR();
   });
   
   $('.slider').livequery(function(){ 
    
		val = $(this).attr('rel');
		vmax = $(this).find('.slidebar').attr('rel');
		$(this).find(".amount" ).val(val);
		
		$(this).find('.slidebar').slider({
			value:val ,
			min: 0,
			max: vmax,			
			slide: function( event, ui ) {
				$(this).parent().find(".amount" ).val(  ui.value );
			}
		});
	
    }); 
	
		
   
   $( ".slider_nbLines" ).slider({
			
			min: 1,
			max: 500,
			stop: function( event, ui ) {
				ajax_send (URL_SITE+'zadmin/ajax/table_nbLines.php',{"nbLignes":""+ui.value+"","nomTableau":""+$(this).attr('rel')+""}, '#ajax_rep_'+$(this).attr('rel'), new Array("see_response", "r_slider_lines"));
			},
			slide: function( event, ui ) {
				
				$( '#lines_'+$(this).attr('rel') ).val(  ui.value );
			},
			create: function(event, ui) { 
				//on place le curseur
				$(this).slider( "option" , 'value' , $(this).parent().attr('rel') );
			}
		});
   
    $('table.tablesorter').tablesorter({widgets: ['zebra']}); 
	
	$('div.tableau_menu input.search').live('keypress', function(e) {		
            code= (e.keyCode ? e.keyCode : e.which);
            if (code == 13)  {
				//on génère un formulaire avec la recherche et on le poste
				 frm = '<form style="display:none;" id="search_'+$(this).attr('rel')+'" action="" method="post">';
				 frm += '<input type="hidden" name="'+$(this).attr('name')+'" value="'+$(this).val()+'" />';
				 frm += '</form>';
				 $('body').append(frm);
				 $('#search_'+$(this).attr('rel')).submit();
				 e.preventDefault();	
			}  
		
     });
	
	$('#search_medecins').live('keypress', function(e) {		
            code= (e.keyCode ? e.keyCode : e.which);
            if (code == 13)  {
				ajax_send (URL_SITE+'zadmin/ajax/medecin_video.php',{"search":""+$(this).val()+""}, '#r_search_medecins', new Array("see_response") );	
				 e.preventDefault();
			}    
     });
	 $('#search_produits').live('keypress', function(e) {		
            code= (e.keyCode ? e.keyCode : e.which);
            if (code == 13)  {
				ajax_send (URL_SITE+'zadmin/ajax/produits_video.php',{"search":""+$(this).val()+""}, '#r_search_produits', new Array("see_response") );	
				 e.preventDefault();
			}    
     });
	
	
   
   $('span.trad').live('dblclick', function(e) {
		//$(this).css('color','green');
		
		$(this).find('span').show();
		 e.preventDefault();
		 
	}); 
	
	
	$('input.inputtrad').live('keypress', function(e) {		
            code= (e.keyCode ? e.keyCode : e.which);
            if (code == 13)  {
				//la div de retour est un span qui a pour rel le nom du label + l'id langue
				ajax_send (URL_SITE+'zadmin/ajax/label.php',{"label":""+$(this).attr('name')+"","message":""+$(this).val()+"","idLangue":""+$(this).attr('rel')+""}, 'span[rel='+$(this).attr('name')+$(this).attr('rel')+']', new Array("see_response") );	
				
			}
           
     });

		
		
		
 $('#form_login').submit(function(e) {
		ajax_send (URL_SITE+'ajax/login.php',$(this).serialize(), '#r_form_login', new Array("see_response","r_login") );	
		e.preventDefault();
		return false;
});
		
		

   
  // ajax_send ('ajax/del_gest_for_mgr.php',{"uti_gests":""+IdUti+"","idtr":""+idtr+""}, 'span#r_ajax_tab_uti_gest_for_mgr', new Array("see_response", "r_del_gest_for_mgr") );	
//  ajax_send ('ajax/filter_contact.php',$('form#from_new_msg').serialize(), "div#r_filter_contact", new Array("see_response") );
		
		/********** video watch ******/
		
		$('#show_add_comment').live('click', function(e) {		
           $('form#add_comment').show();
		   $(this).hide();
           		e.preventDefault();
			return false;
     });
		
		
	$('input.email').blur(function(){//When they tab/click out of the field...
		if(!is_email($(this).val())){//If the email field's value is NOT a valid email...
			$(this).removeClass('good').addClass('error'); //Remove "good" class if exists, and add error class
		} 	else{
			$(this).removeClass('error').addClass('good'); //If it's a valid email, remove error class and add good class
		}
	});
		
	$('input.password').keyup(function(){//When they tab/click out of the field...
	
	if ( endsWith($(this).attr('name'), '2') ) {
		text = $(this).attr('name').substring(0, ($(this).attr('name').length-1));
		field2 = 'input[name='+text+']' ;
	} else {
		field2 = 'input[name='+$(this).attr('name')+'2'+']' ;
	}
	
		if( $(field2).val() != $(this).val() ){
			$(this).add(field2).removeClass('good').addClass('error');
		} 	else{
			$(this).add(field2).removeClass('error').addClass('good'); 
		}
	});
	
	
	
	/*************** formayulaire regiuster ********/
	$('form#register').submit(function(e) {
		 options = {};
		error = 0;
		if(!is_email($('#email').val())){
			error = 1;		
			$('#email').effect('shake', options, 50);
		}
		
		if ($('#nom').val() == ''  ) {
			error = 1;	
			$('#nom').effect('shake', options, 50);
		}
		if ( $('#prenom').val() == '' ) {
			error = 1;	
			$('#prenom').effect('shake', options, 50);
		}
		
		if ($('#pass').val() != $('#pass2').val() ) {
			error = 1;	
			$('#pass').add('#pass2').effect('shake', options, 50);
		}
		
		

		if ($('#certif:checked').length != 1) {
			error = 1;	
			$('#certif').effect('shake', options, 50);
		}
		
		if (error == 1) {			
			$('#error_register').effect('shake', options, 50).delay(2000).slideUp(200);
			return false;
			 e.preventDefault();
			
		}
		
		
		
	});
	
	
	

	//nivolsider
	 $('#nivoslider').nivoSlider();
	
	 $('.colorSelector').livequery(function(){ 	
	$(this).ColorPicker({
		color: '#333',
		onShow: function (colpkr) {
			$(colpkr).fadeIn(500);
			var elem = ($(this).find('div').attr('rel'));
			$(colpkr).attr('rel', elem);
			
			return false;
		},
		onHide: function (colpkr) {
			$(colpkr).fadeOut(500);
			return false;
		},
		onChange: function (hsb, hex, rgb) {			
			elm = ($(this).attr('rel'));
			////trace(elm);
			$('#'+elm).find('div').css('backgroundColor', '#' + hex);
			
			colrval = $('#'+elm).find('input').val( hex);
			if (colrval.substr(0,1) == '#') { colrval = colrval.substr(1) ;}
			
			$('#'+elm).find('input').val( colrval);
		},
		onSubmit: function(hsb, hex, rgb, el) {
		$(el).val(hex);
		$(el).ColorPickerHide();
		}
	});
	});
	
	if ($(".selectul").length >0) {
	$(".selectul").selectul();
	}
		
 });
