// JavaScript Document

///////
// Ajax
///////
var receiveReq = setAjaxObject();

function setAjaxObject() {
   var xhr_object = null;
   
   if(window.XMLHttpRequest) // Firefox 
	  xhr_object = new XMLHttpRequest(); 
   else if(window.ActiveXObject) // Internet Explorer 
	  xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
   else { // XMLHttpRequest non supporté par le navigateur 
	  alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
	  xhr_object = null;
   } 
   return xhr_object;
}

//////////////////////
// Evénements Devis
//////////////////////

function onchange_devis_type_etablissement() {
	onchange_devis_select('select_type_etablissement', 1);
}


function onchange_devis_etages() {
	onchange_devis_select('select_etages', 2);
}

function onchange_devis_install_elec() {
	onchange_devis_select('select_install_elec', 3);
}

function onchange_devis_surface() {
	var _text = ((document.getElementById('surface').value != '')?parseFloat(document.getElementById('surface').value):1);
	//alert('Surface: '+ _text);
	 if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {     
	   receiveReq.open("GET", '/ajax/devis.php?step=4&surface='+_text, true);
	   receiveReq.onreadystatechange = devis_standard_Callback;
	   receiveReq.send(null);  			
	}	
}


function onchange_devis_select(select_id, step) {
	var _select = document.getElementById(select_id);
	if(_select.options[_select.selectedIndex].value != 0 ) { // On vérifie qu'on a sélectionné un vrai type d'etablissement
		 if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {     
		   receiveReq.open("GET", '/ajax/devis.php?step='+step+'&id='+_select.options[_select.selectedIndex].value, true);
		   receiveReq.onreadystatechange = devis_standard_Callback;
		   receiveReq.send(null);  			
		}
	}	
}

function devis_standard_Callback() {
 // state == 4 is when the response is complete
 if (receiveReq.readyState == 4) {
	eval(receiveReq.responseText);
 } // end   if (state == 4)	
}

function devis_contact_submit() {
	var _email = document.getElementById('devis_email').value;
	var _tel = document.getElementById('devis_tel').value;

	if ( (_email == '') && (_tel == '')) {
		document.getElementById('devis_resultat_contact').innerHTML = 'Merci de saisir vos coordonn&eacute;es pour &ecirc;tre contact&eacute;(e).';
	} else {	
		var _abo = '';
		if (document.getElementById('devis_sansengagement').checked) _abo='Sans engagement';		
		if (document.getElementById('devis_12mois').checked) _abo='12 mois';
		if (document.getElementById('devis_24mois').checked) _abo='24 mois';
		if (document.getElementById('devis_12mois_hadopi').checked) _abo='12 mois HADOPI+';
		if (document.getElementById('devis_24mois_hadopi').checked) _abo='24 mois HADOPI+';		
			if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
			   receiveReq.open("GET", '/ajax/devis.php?step=5&abo='+_abo+'&email='+escape(_email)+'&tel='+escape(_tel), true);
			   receiveReq.onreadystatechange = devis_contact_submit_Callback;
			   receiveReq.send(null);  			
			}		
	}
	return false;
}	

function devis_contact_submit_Callback() {
 // state == 4 is when the response is complete
 if (receiveReq.readyState == 4) {
	/*var text = receiveReq.responseText;
	document.write(text);*/
	eval(receiveReq.responseText);
 } // end   if (state == 4)	
}

/*function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}*/

/*function devis_final_Callback() {
 // state == 4 is when the response is complete
 if (receiveReq.readyState == 4) {
	var response = $.parseJSON(receiveReq.responseText);
	if (response['result']) {
		alert('Bornes: '+response['nb_bornes']+'  Antennes: '+response['nb_antennes']);
	} else {
		alert('Impossible de calculer');
	}
 } // end   if (state == 4)	
}*/
//////////////////////
// Evénements Intranet
//////////////////////
function onchange_devenir_client() {
	var _select = document.getElementById('select_devenir_client');
	if(_select.options[_select.selectedIndex].value != 0 ) { // On vérifie qu'on a sélectionné un vrai client
		 if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {     
		   receiveReq.open("GET", '/ajax/devenir_client.php?id='+_select.options[_select.selectedIndex].value, true);
		   receiveReq.onreadystatechange = devenir_client_Callback;
		   receiveReq.send(null);       
		 }
	}
}

function devenir_client_Callback() {
 // state == 4 is when the response is complete
 if (receiveReq.readyState == 4) {
	var response = eval(receiveReq.responseText);
	// response[0], response[1], ...

	document.location.href="intranet.php";
 } // end   if (state == 4)	
}

function onchange_nagios_client() {
	var _select = document.getElementById('select_nagios_client');
	if(_select.options[_select.selectedIndex].value != 0 ) { // On vérifie qu'on a sélectionné un vrai client
		 if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {     
		   receiveReq.open("GET", '/ajax/nagios_client.php?id='+_select.options[_select.selectedIndex].value, true);
		   receiveReq.onreadystatechange = nagios_client_Callback;
		   receiveReq.send(null);       
		 }
	} else { // Si aucun client sélectionné
		document.getElementById('select_nagios_equip').options.length = 0;
		document.getElementById('tr_nagios_client').style.visibility = 'hidden';
		document.getElementById('span_nagios_equipement').innerHTML = '';
	}
}

function nagios_client_Callback() {
 // state == 4 is when the response is complete
 if (receiveReq.readyState == 4) {
	// alert(receiveReq.responseText);
	var response = eval(receiveReq.responseText);
	
	//alert(response);
	
	document.getElementById('select_nagios_equip').options.length = 0;
	for(var i=0; i < response.length; i++)
		document.getElementById('select_nagios_equip').options[i] = new Option(response[i][1],response[i][0]);
	
	//alert(response.length);
	if (response.length == 0) { 	// Si aucun équipement, on enleve les boutons
		document.getElementById('tr_nagios_client').style.visibility = 'hidden';
		document.getElementById('span_nagios_equipement').innerHTML = '';
	} else { // Sinon on met à jour les bouton
		onchange_nagios_equip();
		document.getElementById('tr_nagios_client').style.visibility = 'visible';
		document.getElementById('span_nagios_equipement').innerHTML = response.length + ' &eacute;quip.'
	}	
 } // end   if (state == 4)	
}

function onchange_nagios_equip() {
	var _select = document.getElementById('select_nagios_equip');
	if(_select.options[_select.selectedIndex].value != 0 ) { // On vérifie qu'on a sélectionné un vrai equipement
		document.getElementById('table_nagios_client_etat_general').setAttribute('href', '/nagios/cgi-bin/status.cgi?host='+ _select.options[_select.selectedIndex].text +'&style=detail');
		document.getElementById('table_nagios_client_alarmes_en_cours').setAttribute('href', '/nagios/cgi-bin/status.cgi?host=' + _select.options[_select.selectedIndex].text + '&servicestatustypes=28');
		document.getElementById('table_nagios_client_alarmes_passees').setAttribute('href', '/nagios/cgi-bin/history.cgi?host='+ _select.options[_select.selectedIndex].text);
		document.getElementById('tr_nagios_client').style.visibility = 'visible';
	} else { // Si aucun equipement sélectionné
		document.getElementById('tr_nagios_client').style.visibility = 'hidden';
	}
}


/*******************
* POPUP
*******************/
function openPopupURL(winname, r, width, height) {
	objXml = new setAjaxObject();
	objXml.open("GET",r,false);
	objXml.send(null);
	openPopup(winname, objXml.responseText, width, height);
}

function openPopup(winname, r, width, height)
{
	var w=open("",winname,'width='+width+',height='+height+',toolbar=no,scrollbars=no,resizable=yes');
	w.document.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" /><meta http-equiv=\"Content-Script-Type\" content=\"text/javascript\" /><title>Popup</title><link href=\"/main2.css\" rel=\"stylesheet\" type=\"text/css\"></head>\n<body id=\"blanc\">");
	w.document.write(r);
	w.document.write("\n<CENTER><FORM><INPUT TYPE=\"BUTTON\" VALUE=\"Fermer\" ONCLICK=\"window.close()\"></FORM></CENTER></body></html>");	
	w.document.close();
}

/*************
* FACTURES
*************/

function nombre_factures() {
	var debut = document.getElementById('search_facture_date_start').value;
	var fin = document.getElementById('search_facture_date_end').value;
	var _select = document.getElementById('select_facture_client');

	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {     
	receiveReq.open("GET", '/ajax/nombre_factures.php?debut=' + debut + '&fin=' + fin + '&client=' + _select.options[_select.selectedIndex].value, true);
	receiveReq.onreadystatechange = nombre_factures_Callback;
	receiveReq.send(null);  			
	}	
}

function nombre_factures_Callback() {
 // state == 4 is when the response is complete
 if (receiveReq.readyState == 4) {
	//alert(receiveReq.responseText);
	document.getElementById('nombre_factures').innerHTML = receiveReq.responseText;
 } // end   if (state == 4)	
}


/****** DATE PICKER **********/
$.dpText = {
	TEXT_PREV_YEAR		:	'Ann&eacute;e pr&eacute;c&eacute;dente',
	TEXT_PREV_MONTH		:	'Mois pr&eacute;c&eacute;dent',
	TEXT_NEXT_YEAR		:	'Ann&eacute;e suivante',
	TEXT_NEXT_MONTH		:	'Mois suivant',
	TEXT_CLOSE			:	'Fermer',
	TEXT_CHOOSE_DATE	:	'S&eacute;l&eacute;ctionner une date'
}
$(function()
{
	$('.date-pick').datePicker({startDate:'01/01/2008'})
});

/**************** LIMIT TEXT IN TEXTAREA ***************/
function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}



/*********** COUPONS **********/
function getSelected(opt) {
	var selected = new Array();
	var index = 0;
	for (var intLoop = 0; intLoop < opt.length; intLoop++) {
	   if ((opt[intLoop].selected) ||
		   (opt[intLoop].checked)) {
		  index = selected.length;
		  selected[index] = new Object;
		  selected[index].value = opt[intLoop].value;
		  selected[index].index = intLoop;
	   }
	}
	return selected;
}

function submit_coupons_imprim(opt) {
	var sel = getSelected(opt);
	var strSel = "";
	if (sel.length > 0) {
		for (var item in sel)       
		   strSel += sel[item].value + "-";

		var form = document.forms["coupons_list"];
  		form.setAttribute("method", "POST");
    	form.setAttribute("action", "coupon_detail.php");
		form.ids.setAttribute("value", strSel);

		form.submit();
		return true;
	}		
}

/*function submit_coupons_imprim(opt) {
	var sel = getSelected(opt);
	var strSel = "";
	if (sel.length > 0) {
		for (var item in sel)       
		   strSel += sel[item].value + "-";
		
		document.forms["coupons_list"].method='POST';
		document.forms["coupons_list"].ids.value=strSel;
		document.forms["coupons_list"].action='coupon_detail.php';
		document.forms["coupons_list"].submit();
		return true;
	}		
}*/

function submit_coupons_vendus(opt) {
	var sel = getSelected(opt);
	var strSel = "";
	if (sel.length > 0) {
		for (var item in sel)       
		   strSel += sel[item].value + "-";
		
		document.forms["coupons_list"].method='POST';
		document.forms["coupons_list"].ids.value=strSel;
		document.forms["coupons_list"].action.value='vendre';
		document.forms["coupons_list"].submit();
		return true;
	} else {
		return false;
	}	
}

/**********************
* JQUERY PLUGINS
**********************/

/**** JSON **********/
/*(function ($) {
    var m = {
            '\b': '\\b',
            '\t': '\\t',
            '\n': '\\n',
            '\f': '\\f',
            '\r': '\\r',
            '"' : '\\"',
            '\\': '\\\\'
        },
        s = {
            'array': function (x) {
                var a = ['['], b, f, i, l = x.length, v;
                for (i = 0; i < l; i += 1) {
                    v = x[i];
                    f = s[typeof v];
                    if (f) {
                        v = f(v);
                        if (typeof v == 'string') {
                            if (b) {
                                a[a.length] = ',';
                            }
                            a[a.length] = v;
                            b = true;
                        }
                    }
                }
                a[a.length] = ']';
                return a.join('');
            },
            'boolean': function (x) {
                return String(x);
            },
            'null': function (x) {
                return "null";
            },
            'number': function (x) {
                return isFinite(x) ? String(x) : 'null';
            },
            'object': function (x) {
                if (x) {
                    if (x instanceof Array) {
                        return s.array(x);
                    }
                    var a = ['{'], b, f, i, v;
                    for (i in x) {
                        v = x[i];
                        f = s[typeof v];
                        if (f) {
                            v = f(v);
                            if (typeof v == 'string') {
                                if (b) {
                                    a[a.length] = ',';
                                }
                                a.push(s.string(i), ':', v);
                                b = true;
                            }
                        }
                    }
                    a[a.length] = '}';
                    return a.join('');
                }
                return 'null';
            },
            'string': function (x) {
                if (/["\\\x00-\x1f]/.test(x)) {
                    x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
                        var c = m[b];
                        if (c) {
                            return c;
                        }
                        c = b.charCodeAt();
                        return '\\u00' +
                            Math.floor(c / 16).toString(16) +
                            (c % 16).toString(16);
                    });
                }
                return '"' + x + '"';
            }
        };
 
	$.toJSON = function(v) {
		var f = isNaN(v) ? s[typeof v] : s['number'];
		if (f) return f(v);
	};
	
	$.parseJSON = function(v, safe) {
		if (safe === undefined) safe = $.parseJSON.safe;
		if (safe && !/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(v))
			return undefined;
		return eval('('+v+')');
	};
	
	$.parseJSON.safe = false;
 
})(jQuery);

*/

