// je dois pouvoir faire arreter la fonction refresh_div si le script PHP s'arrete...!
// avec l'équivalent d'un "on_error" ????
function sender(cid,timestamp,majax_type) {
// alert("hello");
	if(cid>0) {
		// Si majax_id est null on relance la fonction
		if(document.majax_form.total_categories.value != "") {
			if(document.majax_form.comments.value.length<50) {
				alert('Message min lenght is 50 characters');
				}
			else {
// alert(cid+'+'+timestamp+'+'+majax_type);
				majax_init(cid,timestamp,majax_type);
				document.getElementById('white_wait').innerHTML = 'Initializing...';
				document.getElementById('pourcentage').innerHTML = '<img src="setup/majax/loading.gif" width="30px" height="30px"/>';
				ShowDiv('pourcentage');
				ShowDiv('progrbar');
				ShowDiv('hidden_div');
				ShowDiv('white_wait');
				}
			}
		else {
			alert('Please select at least one company.');
			}
		}
	else { alert('You must be connected to use this functionality. Please log in or create an account.'); }
	}

function majax_init(cid,timestamp,majax_type) {
// alert(cid+'+'+timestamp+'+'+majax_type);
	var xhr_object = null;
	if(window.XMLHttpRequest) { // Firefox
		xhr_object = new XMLHttpRequest();
		}
	else if(window.ActiveXObject) { // Internet Explorer
		xhr_object = new ActiveXObject('Microsoft.XMLHTTP');
		}
// alert(xhr_object);
	var method = 'GET';
	var filename = 'setup/majax/mailer.php?majax_id=get_majax_id&cid='+cid+'&tmstp='+timestamp+'&mtype='+majax_type;
	xhr_object.open(method, filename, true);
	xhr_object.onreadystatechange = function() {
		if(xhr_object.readyState == 4) {
			var tmp = xhr_object.responseText;
			document.getElementById('majax_id').value = tmp;
			if(tmp == "") {
				document.getElementById('idcompleted').innerHTML = "Error occured while sending emails";
				reset();
				return;
				}
			else {
// alert("tiptop");
				// product_id|categories|sender_mail|Subject|comments|tmp|complementary_info|sender_name|country|company_name
				document.getElementById('white_wait').innerHTML = 'Please wait...';
// alert(document.majax_form.pid.value+document.majax_form.categories.value+document.majax_form.majaxemail.value+document.majax_form.Subject.value+document.majax_form.comments.value+tmp+document.majax_form.complementary_info.value+document.majax_form.MemberName.value+document.majax_form.country.value+document.majax_form.CompanyName.value+majax_type+document.majax_form.template_id.value);
				
					var pid = document.majax_form.pid.value;
					var categories = document.majax_form.categories.value;
					var majaxemail = document.majax_form.majaxemail.value;
					var Subject = document.majax_form.Subject.value;
					var comments = document.majax_form.comments.value;
					var complementary_info = document.majax_form.complementary_info.value;
					var MemberName = document.majax_form.MemberName.value;
					var country = document.majax_form.country.value;
					var CompanyName = document.majax_form.CompanyName.value;
					var template_id = document.majax_form.template_id.value;
				sendquery(pid,categories,majaxemail,Subject,comments,tmp,complementary_info,MemberName,country,CompanyName,majax_type,template_id);
				// alert("->"+pid+categories+majaxemail+Subject+comments+tmp+complementary_info+MemberName+country+CompanyName+majax_type+template_id+"<-");
				
				refresh_div(document.majax_form.total_categories.value,-20,tmp,0,0);
				}
			}
		}
	xhr_object.send(null);
	}

function refresh_div(total,tmp2,majax_id,count,cpt) {
	// alert(majax_id);
	var xhr_object = null;
	if(window.XMLHttpRequest) { // Firefox
		xhr_object = new XMLHttpRequest();
		}
	else if(window.ActiveXObject) { // Internet Explorer
		xhr_object = new ActiveXObject('Microsoft.XMLHTTP');
		}
	// Pour eviter de mettre en cache la page par IE: - --------------------------------------------------->
	// on incremente de 1 la valeur de cpt pour avoir chaque fois une url de GET différente
	cpt = cpt + 1;
// alert(majax_id+"-"+cpt);

	var method = 'GET';
	var filename = 'setup/majax/mailer.php?refresh_id='+majax_id+'&cpt='+cpt;
	xhr_object.open(method, filename, true);
	xhr_object.onreadystatechange = function() {
		if(xhr_object.readyState == 4) {
			var tmp = xhr_object.responseText;
	// alert(tmp);
			var percentage = parseInt(tmp/total*100);
				
			if(tmp<0) { tmp=0; }	
			if(tmp<100 || tmp=="") {
// alert(tmp);
// alert(count);
	// boucle ici, la fonction ne s'arrete jamais quand tmp=""
				if(tmp2==tmp || tmp=="") {
					if(count>10) {
						clearTimeout(refresh_timeout);
						document.getElementById('idcompleted').innerHTML = "Error occured while sending emails";
						HideDiv("pourcentage");
						HideDiv("progrbar");
						HideDiv('hidden_div');
						HideDiv('white_wait');
						HideDiv('mon_div');
						reset();
						}
					count = count + 1;
					if(tmp=="") {
						refresh_timeout = setTimeout('refresh_div('+total+',-20,'+majax_id+','+count+','+cpt+')', 600);
						}
					else {
						refresh_timeout = setTimeout('refresh_div('+total+','+tmp+','+majax_id+','+count+','+cpt+')', 600);
						}
					}
				else {
					if(count>0) { count = 0; }
					refresh_timeout = setTimeout('refresh_div('+total+','+tmp+','+majax_id+','+count+','+cpt+')', 600);
					document.getElementById('idcompleted').innerHTML = "";
					document.getElementById('mon_div').innerHTML = tmp+"%";
					document.getElementById('pourcentage').innerHTML = tmp+"%";
					var widthprogr = (document.getElementById('pourcentage').offsetWidth)*tmp/100;
					document.getElementById('progrbar').style.width = widthprogr+"px";
					}
				}
			else {
				document.getElementById('idcompleted').innerHTML = "Email sent";
				HideDiv("pourcentage");
				HideDiv("progrbar");
				HideDiv('hidden_div');
				HideDiv('white_wait');
				HideDiv('mon_div');
				reset();
				}
			}
		}
	xhr_object.send(null);
	}


function sendquery(productid,key,email,subject,message,majax_id,complement,sendername,country,company_name,majax_type,template_id)
	{
	var xhr_object = null;
	if(window.XMLHttpRequest) { // Firefox
		xhr_object = new XMLHttpRequest();
		}
	else if(window.ActiveXObject) { // Internet Explorer
		xhr_object = new ActiveXObject('Microsoft.XMLHTTP');
		}
// alert("setup/majax/mailer.php?mtype="+majax_type+"&tid="+template_id+"&s="+key+"&email="+email+"&subject="+subject+"&refresh_id="+majax_id+"&message="+message+"&productid="+productid+"&complement="+complement+"&sendername="+sendername+"&country="+country+"&company_name="+company_name);
	var method = 'GET';
	var filename = "setup/majax/mailer.php?mtype="+majax_type+"&tid="+template_id+"&s="+key+"&email="+email+"&subject="+subject+"&refresh_id="+majax_id+"&message="+message+"&productid="+productid+"&complement="+complement+"&sendername="+sendername+"&country="+country+"&company_name="+company_name;
	xhr_object.open(method, filename, true);
	xhr_object.onreadystatechange = function() {
		if(xhr_object.readyState == 4) {
			var tmp = xhr_object.responseText;
			document.getElementById('total_categories').value = tmp;
			}
		}
	xhr_object.send(null);
	}


	

var browserType;

if (document.layers) {browserType = "nn4"}
if (document.all) {browserType = "ie"}
if (window.navigator.userAgent.toLowerCase().match("gecko")) {
	browserType= "gecko"
	}


function HideDiv(divid) {
  if (browserType == "gecko" )
     document.poppedLayer = 
         eval('document.getElementById(divid)');
  else if (browserType == "ie")
     document.poppedLayer = 
        eval('document.getElementById(divid)');
  else
     document.poppedLayer =   
        eval('document.layers[divid]');
  document.poppedLayer.style.visibility = "hidden";
  document.getElementById(divid).style.display="none";
}

function ShowDiv(divid) {
  if (browserType == "gecko" )
     document.poppedLayer = 
         eval('document.getElementById(divid)');
  else if (browserType == "ie")
     document.poppedLayer = 
        eval('document.getElementById(divid)');
  else
     document.poppedLayer = 
         eval('document.layers[divid]');
  document.poppedLayer.style.visibility = "visible";
  document.getElementById(divid).style.display="block";
}


function checkLength(objChecked, maxlength) {
	var obj = objChecked;
	// alert(obj);
	if(obj.value.length > maxlength) {
		alert(maxlength + ' characters limit. \r Excessive data will be truncated.');
		obj.value=obj.value.substring(0,maxlength);
	}
	document.majax_form.num.value = obj.value.length;
	return obj.value.length;
}

function complementaryinfo(id,data) {
	
	if(document.getElementById(id).checked==true) {
		// Cela veut dire qu'il faut ajouter la valeur dans complementary info
		var iWhere = document.getElementById('complementary_info').value.toLowerCase().indexOf(data.toLowerCase()); 
		if( iWhere > -1) { } 
		else {
			document.getElementById('complementary_info').value = document.getElementById('complementary_info').value+"~"+data;
			}
		}
	else { // cela veut dire que la checkbox est décochée et que si la valeure est dans l'input, il faut la supprimer
		var iWhere = document.getElementById('complementary_info').value.toLowerCase().indexOf(data.toLowerCase()); 
		if( iWhere > -1) {
			var LaChaine = document.getElementById('complementary_info').value;
			document.getElementById('complementary_info').value = LaChaine.replace("~"+data, "")
			} 
		else { }		
		
		}
	}


function reset() {
 document.getElementById('Subject').value = "";
 document.getElementById('comments').value = "";
 document.getElementById('categories').value = "";
 document.getElementById('total_categories').value = "";
 document.getElementById('majax_id').value = "";
 document.getElementById('majax_status').value = "";
 document.getElementById('CompanyName').value = "";
 }