var graph = new Image();

function urlParams(g, p, lang, op, d) {
	var sep1 = ((g) && (p)) ? '&':'';
	var sep2 = (((g) || (p)) && lang) ? '&':'';
	var sep3 = (((g) || (p) || (lang)) && op) ? '&':'';
	var sep4 = (((g) || (p) || (lang) || (op)) && d) ? '&':'';
	var params = ((g) ? 'g='+g : '')
	             +sep1+ ((p) ? 'p='+p : '')
	             +sep2+ ((lang) ? 'lang='+lang : '')
	             +sep3+ ((op) ? 'op='+op : '')
	             +sep4+ ((d) ? 'd='+d : '');
	return params;
}
function celineParams(p, lang) {
	var sep1 = ((p) && (lang)) ? '&':'';
	var params = ((p) ? 'pol='+p : '') +sep1+ ((lang) ? 'lan='+lang : '');
	return params;
}
// ajax call to refresh graph view
function setGraph(target, g, p, lang) {
	//alert('setGraph('+target+','+g+','+p+','+lang+')');
	setSelector(target, g, p, lang);
	setContent(target, g, p, lang);
}
function setSelector(target, g, p, lang) {
	var selector = Ext.get('selector');
	selector.load({
		url: '/Pollumetre/Selector.action',
		params: urlParams(g,p,lang),
		text: 'loading...',
		callback: function() { activateTooltip(g,p,lang); }
	});
	selector.show();
}
function setSelectBoxByP(target, g, p, lang) {
	var optP = document.getElementById(p);
	optP.selected = true;
}
function onChangedStation(target, g, p, lang) {
	//alert('onChangedStation('+target+','+g+','+p+','+lang+')');
	var stationSelector = document.getElementById("selectG");
	if (stationSelector) {
		g = stationSelector.options[stationSelector.selectedIndex].value;
		setContent(target, g, p, lang);
	}
}
function onChangedContaminant(target, g, p, lang) {
	//alert('onChangedContaminant('+target+','+g+','+p+','+lang+')');
	var contaminantSelector = document.getElementById("selectP");
	if (contaminantSelector) {
		p = contaminantSelector.options[contaminantSelector.selectedIndex].value;
		setContent(target, g, p, lang);
	}
}
function onLinkClicked(target, g, p, lang) {
	setSelectBoxByP(target, g, p, lang);
	setContent(target, g, p, lang);
}
function setContent(target, g, p, lang) {
	var content = Ext.get('content');
	content.load({
		url: '/Pollumetre/ContentView.action',
		params: urlParams(g,p,lang),
		text: 'loading...',
		callback: function() {
					if ((!g) && (!p)) setWarningText('accueil',lang);
					else if (p && (g != "indice")) buildTabs(g,p,lang);
					else buildStationDescr(g,p,lang);
				  }
	});
	//content.show();
	content.fadeIn();
}
function setGraphPanel(target, g, p, lang, op, d) {
	alert("setGraphPanel("+urlParams(g,p,lang,op,d)+")");
	var gPanel = Ext.get('graphPanel');
	gPanel.load({
		url: '/Pollumetre/GraphPanel.action',
		params: urlParams(g,p,lang,op,d),
		text: 'loading...'
	});
	gPanel.show();
	//gPanel.fadeIn();
}
function shiftGraph(target, g, p, lang, op, d) {
	//alert("shiftGraph("+urlParams(g,p,lang,op,d)+")");
	var navBtns = Ext.get('navBtns');
	navBtns.load({
		url: '/Pollumetre/NavButtons.action',
		params: urlParams(g,p,lang,op,d),
		text: 'loading...',
		callback: function() { setGraphImage('', g, p, document.getElementById('hiddenD').value); }
	});
	navBtns.show();
	//gPanel.fadeIn();
}
function setGraphImage(target, g, p, d) {
	//alert("getGraph("+g+","+p+","+d+")");
	//buffer = new Image();
	graph.src = "/Pollumetre/GraphServlet?g="+g+"&p="+p+"&d="+((!d)?0:d);
	document.getElementById('graphImg').src = graph.src;
}

function buildStationDescr(g,p,lang) {
	var container = Ext.get('container');
	container.load({
		url: '/Pollumetre/GraphView.action',
		params: urlParams(g,p,lang),
		text: 'loading...',
		callback: function() { setWarningText(g,lang); }
	});
	//container.show();
	container.fadeIn();
}
function buildTabs(g,p,lang) {
	//alert('<iframe src="http://deus.irceline.be/~celinair/rbc/pollu_rbc.php?'+celineParams(p,lang)+'&dat=&dsp=0001&col=rbc" style="border: solid 1px #5b89ad; width:745px; height:620px;"/>');
    // tabs built from JS
    var tabs = new Ext.TabPanel({
        renderTo: 'container',
        activeTab: 0,
        width:750,
        height:670,
        plain:true,
        resizeTabs:true,
        defaults:{autoScroll: true},
        items:[{
        		id: 'graph',
                title: (lang=='fr')?'Graphique':'Grafiek',
                autoLoad: {
                	url:'GraphView.action?'+urlParams(g,p,lang),
                	callback: function() { setWarningText(g,lang); }
                },
                listeners: {activate: handleActivate}
            },{
            	id: 'map',
                title: (lang=='fr')?'Carte':'Kaart',
                html: '<iframe src="http://deus.irceline.be/~celinair/rbc/pollu_rbc.php?'+celineParams(p,lang)+'&dat=&dsp=0001&col=rbc" class="celineFrame"/>',
                listeners: {activate: handleActivate}
            },{
            	id: 'table',
                title: (lang=='fr')?'Tableau':'Tabel',
                html: '<iframe src="http://deus.irceline.be/~celinair/rbc/pollu_rbc.php?'+celineParams(p,lang)+'&dat=&dsp=1000&mod=1&col=rbc" class="celineFrame"/>',
                listeners: {activate: handleActivate}
            },{
            	id: 'norm',
                title: (lang=='fr')?'Norme':'Norm',
                html: '<iframe src="http://deus.irceline.be/~celinair/rbc/exceed.php?'+celineParams(p,lang)+'&norm=1&ys=1997" class="celineFrame"/>',
                listeners: {activate: handleActivate}
            }
        ]
    });
}
function handleActivate(tab) {
/*
	var box = Ext.get('box');
	if (tab.id == "graph") box.show();
	else                   box.hide();
*/
}
function setWarningText(g,lang) {
	// Station may be different from the station specified in the original call
	// this happens when there is no average values computed for the selected contaminant
	var stationSelector = document.getElementById("selectG");
	if (stationSelector) {
		g = stationSelector.options[stationSelector.selectedIndex].value;
	}
	// Displaying warning text if activated
	Ext.Ajax.request({
		url: '/Pollumetre/UpdateActiveStatus.action',
		params: {
			location: g,
			version: lang
		},
		success: function(result,request) {
			if (result.responseText.trim() == 'true') {
				Ext.Ajax.request({
					url: '/Pollumetre/UpdateWarning.action',
					params: {
						location: g,
						version: lang
					},
					success: function(result,request) {
						Ext.DomHelper.overwrite(Ext.get('warningText'),result.responseText);
					}
				});
			}
		}
	});
}
function activateTooltip(g,p,lang) {
	Ext.Ajax.request({
		url: '/Pollumetre/Tooltip.action',
		params: urlParams(g,p,lang),
		success: function(result,request) { createTooltip(p,result.responseText); }//,
		//failure: function(result,request) { }
	});
}
function createTooltip(p,tooltipText) {
	Ext.QuickTips.init();
	Ext.QuickTips.register({ target: Ext.get(p), cls: 'tooltip', title: '', text: ''+tooltipText });
}
/*
*/
