
// filename: ajax_layercontrol.js
// belongs to: check.php

// calls check.php every 200ms after 120sec it show the layer from layer.lib.js

// written by martin dot krause at gpm dot de

// version 1.0 - 2006-01-10 - mkr


//config
var httpObject = false;
var myXMLshowLayer = false;
// live
var url = '/de/umfrage/check.html';
// dev:
//var url = 'http://proxy29.gpm.de/umfrage_2009/check.php'; 

var xmlFunctionToCall = parseXML;


// initialize httpObject
function getHttpObject() {

	// moz - native XMLHttpRequest object
	if (window.XMLHttpRequest) {
		httpObject = new XMLHttpRequest();
	}

	// IE/Windows ActiveX version
	else if (window.ActiveXObject) {
		httpObject = new ActiveXObject('Microsoft.XMLHTTP');
	}
	
	// too old
	else {
		// set httpObject to false
		httpObject = false;
	}
}

// load XML file from 'url', if everythings fine, call 'xmlFunction'
function loadXML(url, xmlFunction) {

	// if httpObject exists, create a new one 
	if (httpObject.readyState != 0) {
		http = getHttpObject();
	}
	
	if ( (typeof(window['winpopupvar']) != 'undefined' && winpopupvar && winpopupvar.closed)
		|| (typeof(window['formsubmitted']) != 'undefined' && formsubmitted ) )
		url = url + '?shownow';

	// initalize request
	httpObject.open('GET', url, true);
	
	//trick IE cache
	httpObject.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
	
	// create eventhandler onreadystatechange
	httpObject.onreadystatechange = function() {

		// if request is complete
		if (httpObject.readyState == 4) {

			// and if status code is 200; "OK"
			if (httpObject.status == '200') {
				
				//call the desired xmlFuntion
				xmlFunction();
			}
			
		}
	}
	
	//send request
	httpObject.send(null);
}

// magic ;)
function parseXML() {

		//grab xml response 
		myXMLresponse  = httpObject.responseXML;

		//parse
		myXMLshowLayer = myXMLresponse.getElementsByTagName('showlayer')[0].firstChild.data;
		myXMLshowedLayer = myXMLresponse.getElementsByTagName('showedlayer')[0].firstChild.data;
//		myXMLtime = myXMLresponse.getElementsByTagName('time')[0].firstChild.data;

//		document.getElementById('test').innerHTML = myXMLshowLayer;
//		document.getElementById('test1').innerHTML = myXMLshowedLayer;
//		document.getElementById('test2').innerHTML = myXMLtime;
		
		// if time's not up and no layer has been shown yet - repeat!
		if (myXMLshowLayer != 'true' && myXMLshowedLayer != 'true') {
			setTimeout('loadXML(url, xmlFunctionToCall)',100);
		}
		// if times up and no layer has been shown yet - show!
		else if (myXMLshowLayer == 'true' && myXMLshowedLayer != 'true'){
			show_layer(document.getElementById('survey_layer'));
			hideSelectTags();
			init_layer();
		}
}

window.onload = function() {
	// initialize 
	getHttpObject();

	// if httpObject is available, go!
	if (httpObject) {
		loadXML(url, xmlFunctionToCall);
	}

}