// JavaScript Document
var reponse = null;
var first = 0;
var last = 0;
var current = 0;
var nbWeeks = 7;
var ckWeeks = new Array();
var fixedDiscount = 1000;

function getXhr(){
	var xhr = null;
	if(window.XMLHttpRequest){ // Firefox et autres
	   xhr = new XMLHttpRequest(); 
	}
	else if(window.ActiveXObject){ // Internet Explorer 
	   try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
	}
	else { // XMLHttpRequest non supportÃ© par le navigateur 
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
	   xhr = false; 
	} 
	return xhr
}

function go(c){
	if(!c.data.replace(/\s/g,''))
		c.parentNode.removeChild(c);
}

function clean(d){
	var bal=d.getElementsByTagName('*');
	for(i=0;i<bal.length;i++){
		a=bal[i].previousSibling;
		if(a && a.nodeType==3)
			go(a);
		b=bal[i].nextSibling;
		if(b && b.nodeType==3)
			go(b);
	}
	return d;
}

function getFils(xml){
  document.write( " <b>"+xml.nodeName +"</b>");
  for(var i = 0; i<xml.childNodes.length; i++){
    var element = xml.childNodes[i];
    if(element.nodeType==1){
        getFils(element);
    }else if(element.nodeType==3 || element.nodeType==4){
        document.write(" = "+ element.nodeValue);
    }
  }
}

function get_data(){
	var xhr = getXhr();
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			reponse = clean(xhr.responseXML.documentElement);
			//getFils(reponse);
			var first_tag = reponse.getElementsByTagName('first');
			first = parseInt(first_tag[0].getAttribute('id'));
			current = first;
			//current = 688;
			var last_tag = reponse.getElementsByTagName('last');
			last = parseInt(last_tag[0].getAttribute('id'));
			fnDisplayGrid();
		}
	}
	xhr.open("GET","resData.php",true);
	xhr.send(null);
}
function fnDisplayGrid(){
	
	for(var i = 0; i < nbWeeks; i++) {
		//document.getElementById('c'+i).checked = false;
		var index = current + (i * 7);
		var week_tag = reponse.getElementsByTagName('w'+index);
		var element = week_tag.item(0);
		var content = element.firstChild.nodeValue.split("_");
		var begin = content[0].substr(8, 2)+'.'+content[0].substr(5, 2)+'.'+content[0].substr(2, 2);
		var rate = Math.floor(parseFloat(content[1]) + parseFloat(content[2]) + parseFloat(content[3]) + parseFloat(content[4]) + parseFloat(content[5]) + parseFloat(content[6]) + parseFloat(content[7]));
		if(rate > 0) {
			document.getElementById('w'+i).style.backgroundColor = "#8888FF";
			document.getElementById('c'+i).disabled = false;
		} else {
			document.getElementById('w'+i).style.backgroundColor = "#FF8888";
			document.getElementById('c'+i).disabled = "disabled";
		}
		
		if(ckWeeks[index] == true)
			document.getElementById('c'+i).checked = true;
		else
			document.getElementById('c'+i).checked = false;
		
		var end = content[8].substr(8, 2)+'.'+content[8].substr(5, 2)+'.'+content[8].substr(2, 2);
		document.getElementById('d'+i).innerHTML = begin+'&nbsp;to&nbsp;'+end;
		document.getElementById('r'+i).innerHTML = rate;
	}
}

function fnBack(){
	if(current - 7 >= first) {
		current -= nbWeeks * 7;
		current = Math.max( current, first );
		fnDisplayGrid();
	}
}
function fnAhead(){
	if( current <= (last - ( nbWeeks * 7) ) ) {
		current += nbWeeks * 7;
		current = Math.min( current, ( last - ( nbWeeks * 6) ) );
		fnDisplayGrid();
	}
}
function fnCheck(box) {

	if(ckWeeks[current + (box * 7)] == true)
		ckWeeks[current + (box * 7)] = false;
	else
		ckWeeks[current + (box * 7)] = true;
	var rates = 0;
	var discount = 0;
	var weeks = 0;
	for(x in ckWeeks) {
		if(ckWeeks[x] == true) {
			weeks += 1;
			var week_tag = reponse.getElementsByTagName('w'+x);
			var element = week_tag.item(0);
			var content = element.firstChild.nodeValue.split("_");
			var begin = content[0].substr(8, 2)+'.'+content[0].substr(5, 2)+'.'+content[0].substr(2, 2);
			var rate = Math.floor(parseFloat(content[1]) + parseFloat(content[2]) + parseFloat(content[3]) + parseFloat(content[4]) + parseFloat(content[5]) + parseFloat(content[6]) + parseFloat(content[7]));
			rates += rate;
		}
	}
	
	if(weeks > 1)
		discount = fixedDiscount * (weeks - 1);
	else
		discount = 0;
	rates = rates - discount;
	document.getElementById('rate').value = 'Rate: '+rates+' euros';
	document.getElementById('discount').innerHTML = discount;
}
function fnGo(){
	var resa = '';
	for(x in ckWeeks) {
		if(ckWeeks[x] == true) {
			resa += x+'-';
		}
	}
	if(resa.length > 0) {
		resa = resa.substr(0, resa.length - 1);
		window.location.replace("book.php?lang=en&book="+resa);
	}
}
function fnOnLoad(){	
	get_data();
}
