function trim(str, charlist) {

	var whitespace, l = 0,

    i = 0;

    str += '';

 

    if (!charlist) {        // default list

        whitespace = " \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000";

    } 

	else{

        charlist += '';        

		whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1');

    }

    l = str.length;

    for (i = 0; i < l; i++) {

		if (whitespace.indexOf(str.charAt(i)) === -1) {

            str = str.substring(i);

            break;

        }

    } 

    l = str.length;

    for (i = l - 1; i >= 0; i--) {

        if (whitespace.indexOf(str.charAt(i)) === -1) {

            str = str.substring(0, i + 1);            

			break;

        }

    }

    return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';

}







function explode (delimiter, string, limit) {



    var emptyArray = {

        0: ''

    };

 

    // third argument is not required

    if (arguments.length < 2 || typeof arguments[0] == 'undefined' || typeof arguments[1] == 'undefined') {

        return null;

    }

 

    if (delimiter === '' || delimiter === false || delimiter === null) {

        return false;

    }

 

    if (typeof delimiter == 'function' || typeof delimiter == 'object' || typeof string == 'function' || typeof string == 'object') {

        return emptyArray;

    }

 

    if (delimiter === true) {

        delimiter = '1';

    }

 

    if (!limit) {

        return string.toString().split(delimiter.toString());

    } else {

        // support for limit argument

        var splitted = string.toString().split(delimiter.toString());

        var partA = splitted.splice(0, limit - 1);

        var partB = splitted.join(delimiter.toString());

        partA.push(partB);

        return partA;

    }

}



function is_mail(email) {

   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

   if(reg.test(email) == false) {return false;}

   else {return true;}

}





function ajaxFileUpload()

	{

		$.ajaxFileUpload

		(

			{

				url:'./includes/ajaxfileupload.php',

				secureuri:false,

				fileElementId:'fichier',

				dataType: 'json',

				beforeSend:function()

				{

					$("#loading").show();

				},

				complete:function()

				{

					$("#loading").hide();

				},				

				success: function (data, status)

				{

					if(typeof(data.error) != 'undefined')

					{

						if(data.error != '')

						{

							alert("error1:"+data.error);

						}else

						{

							//alert(data.msg);

						}

					}

				},

				error: function (data, status, e)

				{

					alert("error2:"+e);

				}

			}

		)

		

		return false;



	}





function verifier_formulaire_contact(){

	var res = 1;

	var objet = $("#objetMes").val();

	var nom = $("#nom").val();

	var mail = $("#email").val(); 

	var mssg = $("#message").val(); 

	//alert(mail);

	//objet

	if(objet!='0'){res = res*1;$("#objetMes").css({border:"1px solid #cccccc"});}

	else{res = res*0;$("#objetMes").css({border:"2px solid red"});}	

	//nom

	if(trim(nom)!='' && trim(nom)!=''){res = res*1;$("#nom").css({border:"1px solid #cccccc"});}

	else{res = res*0;$("#nom").css({border:"2px solid red"});}	

	//mail

	if(mail!='' && is_mail(mail)){res = res*1;$("#email").css({border:"1px solid #cccccc"});}

	else{res = res*0;$("#email").css({border:"2px solid red"});}


		

	if(res==1){
         //dd
		//alert(true);

		$.ajax({

				type: "POST",

				url: 'includes/send.php',

				data: "test_js=ok&type=contact&objet="+objet+"&nom="+nom+"&email="+mail+"&message="+mssg,

				success: function(msg){											

					if(parseInt(msg)==1){

						$("#filtre").css({'display' : 'block'});

						$("#success_envoi").css({'display' : 'block'});

						$("#formulaire_contact").each(function(){this.reset();});

					}

					else if(parseInt(msg)==0){					

						return false;

					}

				},

				error: function(msg){				

					//alert("Une erreur s'est produite lors de l'envoi du mail.");	

					return false;

				}					

			});					

	}

	else{return false;}

}



function basename (path, suffix) {

    var b = path.replace(/^.*[\/\\]/g, '');

    if (typeof(suffix) == 'string' && b.substr(b.length - suffix.length) == suffix) {

        b = b.substr(0, b.length - suffix.length);

    }

    return b;

}



function verifier_formulaire_devis(){

	var res = 1;

	/********detail projet**********/

	var titre_projet = $("#titre_projet").val();

	var desc_projet = $("#desc_projet").val();

	var type_contrat = $("#type_contrat").val();

	var url = $("#url").val();

	var budget = $("#budget").val();

	var date = $("#datepicker").val();

	/******detail coordonnee*******/

	var nom = $("#nom").val();

	var prenom = $("#prenom").val();

	var societe = $("#societe").val();

	var fonction = $("#fonction").val();

	var tel = $("#tel").val();

	var email = $("#email").val();

	var checkedService = [];

	/*

	$('input[type=checkbox]:checked').each(function() {

       checkedService.push($(this).val());

     });

	*/

	

	$('[name="services"][type=checkbox]:checked').each(function() {

       checkedService.push($(this).val());

     });



	var fichier = basename($('#input_text').val());

	var provenance = $("#provenance").val();

	var news;

	if($("#newsletter").is(":checked")==false){news = '0';}

	else if($("#newsletter").is(":checked")==true){news = '1';}

	

	/******tests des valeurs*******/

	//titre

	if(trim(titre_projet)!='' && trim(titre_projet)!=''){res = res*1;$("#titre_projet").css({border:"1px solid #cccccc"});}

	else{res = res*0;$("#titre_projet").css({border:"2px solid red"});}

	//desc

	if(trim(desc_projet)!='' && trim(desc_projet)!=''){res = res*1;$("#desc_projet").css({border:"1px solid #cccccc"});}

	else{res = res*0;$("#desc_projet").css({border:"2px solid red"});}

	//nom

	if(trim(nom)!='' && trim(nom)!=''){res = res*1;$("#nom").css({border:"1px solid #cccccc"});}

	else{res = res*0;$("#nom").css({border:"2px solid red"});}

	

	//prenom

	/*if(trim(prenom)!='' && trim(prenom)!=''){res = res*1;$("#prenom").css({border:"1px solid #EAEAEA"});}

	else{res = res*0;$("#prenom").css({border:"2px solid red"});}*/

	//mail

	if(email!='' && is_mail(email)){res = res*1;$("#email").css({border:"1px solid #cccccc"});}

	else{res = res*0;$("#email").css({border:"2px solid red"});}

	//services

	if(checkedService.length>0){res = res*1;}

	else{res = res*0;alert("Veuillez indiquer le(s) service(s) demandé(s)");}

	/******fis des tests*******/

	

	var tab_service = checkedService.join(",");

	//alert(tab_service);

	if(res==0){return false;}

	else

	{

		$.ajax({

				type: "POST",

				url: 'includes/send.php',

				data: "test_js=ok&type=devis&titre="+titre_projet+"&desc="+desc_projet+"&contrat="+type_contrat+"&url="+url+"&budget="+budget+"&date="+date+"&service="+tab_service+"&nom="+nom+"&prenom="+prenom+"&societe="+societe+"&fonction="+fonction+"&tel="+tel+"&email="+email+"&fichier="+fichier+"&provenance="+provenance+"&newsletter="+news,

				success: function(msg){											

					if(parseInt(msg)==1){

						$("#filtre").css({'display' : 'block'});

						$("#success_envoi").css({'display' : 'block'});

						$("#formulaire_devis").each(function(){this.reset();});

						$("#liste_selections").empty();

						$("#liste_selections").attr('style','display:none');

						/*********************************************************

						*********** mail de confirmation client ******************

						**********************************************************/						

						$.ajax({

								type: "POST",

								url: 'includes/confirmation.php',

								data: "email="+email+"&titre="+titre_projet,

								success: function(msg){

									//alert(msg);

								},

								error: function(msg){	

									//alert(msg);

								}					

							});						

						/********************************************************

						*********************************************************/						

					}

					else if(parseInt(msg)==0){					

						return false;

					}

				},

				error: function(msg){				

					//alert("Une erreur s'est produite lors de l'envoi du mail.");	

					return false;

				}					

			});

	}

}



function creerCookie(name,value,days) {

	if (days) {

		var date = new Date(); //on instancie un objet Date

		date.setTime(date.getTime()+(days*24*60*60*1000)); //on recupère la date

		var expires = "; expires="+date.toGMTString(); //on fixe la date d'expiration

	}

	else expires = ""; //si la date n'est pas précisée on fixe la valeur par défaut

	document.cookie = name + "=" + value + expires + "; path=/"; //on crée le cookie

	//document.cookie = name + "=" + value + expires + "; path=/"; //on crée le cookie

}



function lireCookie(name) {

	var nameEQ = name + "=";

	var ca = document.cookie.split(';');

	for(var i=0;i < ca.length;i++) {

		var c = ca[i];

		while (c.charAt(0)==' ') c = c.substring(1,c.length);

		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);

	}

	return null;		

}



function effaceCookie(nom){

	date = -1;

	creerCookie(nom,null,date);

}



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 suppDoublons(TabInit){

	NvTab= new Array();

	var q=0;

	var LnChaine= TabInit.length;

	 for(x=0;x<LnChaine;x++)

		{dejamis=0;

		for(i=0;i<q;i++)

			{if(TabInit[x]==TabInit){dejamis=1;}}

		if(dejamis==0){ NvTab[q] = TabInit[x]; q++}

		}

	return NvTab;

}





function save_state(inp,id){

	/*

	$('[name="services"][type=checkbox]:checked').each(function() {

       checkedService.push($(this).val());

     });

	

	var count = $("input:checkbox:checked").length;

	var tab_val = $('input:checkbox:checked').serializeArray();

	$('input[name=foo]').attr('checked', true);

	*/

	/*

	var tab_ids = explode(',',$("#lid").val());

	if(tab_ids.length>0){

		for(p=0;p<tab_ids.length;p++){	

			//alert($("#service"+tab_ids[p]).is(':checked'));

			if($("#service"+tab_ids[p]).is(':checked')==true){$("#service"+tab_ids[p]).attr('checked', 'true');}

			if($("#service"+tab_ids[p]).is(':checked')==false)

			{

				

				$("#service"+tab_ids[p]).attr('checked', 'false');

			}

		}		

	}

	*/

	
	/*
	var state = document.getElementById("service"+id).checked;

	if(state==true){$("#service"+id).attr('checked', 'false');}

	if(state==false){$("#service"+id).attr('checked', 'true');}*/

	

	var count = $('[name="services"][type=checkbox]:checked').length;

	var tab_val = $('[name="services"][type=checkbox]:checked').serializeArray();

	tab_val = suppDoublons(tab_val);

	var val = '';

	

	if(inp==0){		

		for(i=0;i<count;i++){

			if(i!=count-1){sep=',';}else{sep='';}			

			val=val+''+tab_val[i].value+sep;

		}	

		 $("#servicePlus").attr("href", 'autres-services.html?ck='+val);

	//alert(state+" - "+val+" - "+tab_val.length);	 

	$.ajax({

				type: "POST",

				url: 'includes/selection_services.php',

				data: "listeck="+val,

				success: function(msg){											

					//alert(msg);

					if(parseInt(msg)==0){$("#liste_selections").empty();$("#liste_selections").attr('style','display:none');}

					else

					{

						 $("#liste_selections").attr('style','display:block');

						 $("#liste_selections").empty();

						 $("#liste_selections").append(msg);							

					}

				},

				error: function(msg){				

					$("#liste_selections").empty();

					$("#liste_selections").attr('style','display:none');	

					return false;

				}					

			});	 

		 

	}

}
