var ccolors = new Array('660000','aa6600','0066aa','006600','aa0066','a0a0a0','006600');

function applyTimezone(utc) {
	// update display timezone
	utctime = utc; // change global
	document.getElementById('timezone').innerHTML = showTimezone(utc);
	refresh(); //gmap.js::refresh()
}

/**
 * adds missing zeros to integer values
 */
function startZero(val) {
	return (val<10?'0':'')+val;
}

function form_timezone(conf) {
	if(!login)
		return true;

	try {
		var rrequest = window.XMLHttpRequest ? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
	} catch (e) {
		//Kein AJAX Support 
	}
	
	rrequest.onreadystatechange = function() {
		if(rrequest.readyState == 4 && rrequest.status == 200) {
			//pass
		}
	}
	
	rrequest.open('POST', 'json_timezone.php?lang='+lang);
	rrequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	rrequest.send('timezone='+conf+'&user='+user.id+'&pw='+user.pw);
}

function form_maptype(conf) {
	if(!login)
		return true;

	try {
		var rrequest = window.XMLHttpRequest ? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
	} catch (e) {
		//Kein AJAX Support 
	}
	
	rrequest.onreadystatechange = function() {
		if(rrequest.readyState == 4 && rrequest.status == 200) {
			//pass
		}
	}
	
	rrequest.open('POST', 'json_maptype.php?lang='+lang);
	rrequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	rrequest.send('conf='+conf+'&user='+user.id+'&pw='+user.pw);
}

/**
 key: save
*/
function form_key(data,start,end,viewstyle,modus,utc) {
	if(!login)
		return true;
		
	var dat = "";
	for(var i=0; i<data.length; i++)
		dat += data[i].selected ? data[i].value+',' : '';

	var obj = document.getElementById('right');
	obj.innerHTML = '<span class="loading" style="line-height:390px;color:#6c6c6c;">'+LANG_LOADING+'</span>';
	try {
		var rrequest = window.XMLHttpRequest ? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
	} catch (e) {
		//Kein AJAX Support 
	}
	
	form_key = form_key == 0 ? false : form_key;
	rrequest.onreadystatechange = function() {
		if(rrequest.readyState == 4 && rrequest.status == 200) {
			if(rrequest.responseText.substr(0,1) == '0')
				obj.innerHTML = LANG_WRONG_INPUT;
			else {
				var key = rrequest.responseText.substr(1);
				obj.innerHTML = LANG_KEY_SUCCESS+':<br /><b>'+key+'</b><br /><br />'+
							'<a href="/maps/?key='+key+(modus=='default'?'':'&modus='+modus)+'">'+LANG_WEBSITE_URL+'/?key='+key+(modus=='default'?'':'&modus='+modus)+'</a>';
			}
		}
	}
	
	rrequest.open('POST', 'json_key.php?lang='+lang);
	rrequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	rrequest.send('data='+dat+'&start='+start+'&end='+end+'&user='+user.id+'&pw='+user.pw+'&style='+viewstyle+'&utc='+utc);
	return false;
}


/**
 * AJAX Login with key OR user/password
 * @param form_key -> html formular key
 * @param form_name -> html formular input username
 * @param form_pw -> html formular input password
 */
function form_login(form_key, form_name, form_pw, form_modi) {
	if(login)
		return true;

	try {
		var rrequest = window.XMLHttpRequest ? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
	} catch (e) {
		//Kein AJAX Support
	}

	form_key = form_key == 0 ? false : form_key;
	rrequest.onreadystatechange = function() {
		if(rrequest.readyState == 4 && rrequest.status == 200) { 
			var obj = document.getElementById('right');
			if(rrequest.responseText.substr(0,1) != '1') {
				obj.innerHTML = rrequest.responseText;
			} else {
				obj.innerHTML = '<span class="loading" style="line-height:390px;color:#6c6c6c;">'+LANG_LOADING+'</span>';
				var split = rrequest.responseText.split('|');
				firstload = true;
				login = split[1]=='false' ? true : split[1];
				user.id = split[2];
				user.pw = split[3];
				user_map = eval(split[4]);
				travellermodus = form_modi;
				updater = window.setTimeout("startUpdater()", 10);
			}
		}
	}

	rrequest.open('POST', 'json_login.php?lang='+lang);
	rrequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	rrequest.send('submit_login='+(!form_key&&form_name==0&&form_pw==0?0:1)+'&key='+form_key+'&user='+form_name+'&pw='+form_pw+'&modus='+form_modi);
	return false;
}

/**
 * AJAX Request for License Data
 */
function form_license() {
	try {
		var rrequest = window.XMLHttpRequest ? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
	} catch (e) {
		//Kein AJAX Support
	}

	rrequest.onreadystatechange = function() {
		if(rrequest.readyState == 4 && rrequest.status == 200) { 
			var obj = document.getElementById('license');
			obj.innerHTML = rrequest.responseText;
		}
	}

	rrequest.open('POST', '../license.php?lang='+lang);
	rrequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	rrequest.send('id='+user.id+'&password='+user.pw);
	return false;
}

/**
 * Content handler
 * @param id -> main id
 * @param cid -> sub id (which will be summed with id)
 */
function content(id, cid) {
	contentId = id;

	if(id != 6) //Allow Impress for everybody
		if(!form_login(0,0,0)) return;

	var obj = document.getElementById('right');
	obj.style.backgroundColor = '#'+ccolors[id];

	var cards = document.getElementById('indexcards').getElementsByTagName('td');
	for(var i=0; i<cards.length; i++) {
		cards[i].blur();
		if(login.length && i>0) cards[i].style.display = 'none';
		cards[i].style.backgroundColor = i == id ? '#'+ccolors[i] : '';
		cards[i].style.borderLeft = i == id ? '1px solid #ffffff' : '';
		cards[i].style.borderRight = i == id ? '1px solid #ffffff' : '';
		cards[i].style.borderColor = i != id ? '#000000' : '#ffffff';
		cards[i].style.borderBottomColor = i != id ? '#ffffff' : '#'+ccolors[i];
		cards[i].style.color = i == id ? '#ffffff' : '';
	}

	if(id == 3 && cid.length > 5) {
		obj.innerHTML = '<h3>'+LANG_TAB_ADDRESS+'</h3>'+
				'&Auml;ndere: '+ cid +'<br />'+
				'<span class="loading">noLoading details</span>';
		return;
	}

	switch(id+cid) {
	case 0:
		var h = document.getElementById('map').offsetHeight-10;
		obj.innerHTML = '<div id="infobar" style="height:'+h+'px">'+sidebar()+'</div>';
	break;
	case 1:
		obj.innerHTML = '<h3>'+LANG_SEARCH_FOR+'</h3>'+
				'<form onsubmit="searchAddress(); return false"><table>'+
				'<tr><td>'+LANG_STREET+':</td><td><input id="search_street" type="text" /></td></tr>'+
				'<tr><td>'+LANG_CITY+':</td><td><input id="search_city" type="text" /></td></tr>'+
				'<tr><td>'+LANG_COUNTRY+':</td><td><select id="search_country" style="width:100%">'+
					'<option value="'+LANG_WEBSITE_COUNTRY+'">'+LANG_WEBSITE_COUNTRY+'</option>'+
				'</select></td></tr>'+
				'<tr><td colspan="2" align="center"><input type="submit" value="'+LANG_SEARCH+'" /></td></tr>'+
				'</table></form>';
	break;
	case 2:
		obj.innerHTML = '<h3>'+LANG_EXPORT+'</h3>'+
				'<form onsubmit="mach()">'+
				'<input type="radio" name="choice" value="mail">'+LANG_SEND_AS_MAIL+'<br />'+
				'<input type="radio" name="choice" value="download" checked>'+LANG_DOWNLOAD+'<br />'+
				'</form><br />'+
                                '* <a href="#" onclick="content(2,20)">'+LANG_RUNTIME_KEY+'</a><br />'+
				'* <a href="#" onclick="content(2,10)">'+LANG_PDF+'</a><br />'+
				'* '+LANG_PICTURE+'<br />'+
				'* '+LANG_KML+'';
	break;
	case -3:
		obj.innerHTML = '<h3>'+LANG_TAB_ADDRESS+'</h3>'+
				'<span class="loading">Feature n/a</span>';
	break;
	case 3:	
		obj.innerHTML = '<h3>'+LANG_CONFIGURATION+'</h3>'+
				'<ul><li><a href="#" onclick="content(3,30)">'+LANG_UTC_CHANGE+'</a></li>'+
				'<li><a href="#" onclick="content(3,40)">'+LANG_LICENSEDURATION+'</a></li></ul>'+
				'<span class="clickable"><b>'+LANG_MAP_MAIN+':</b><br />'+
				'<img src="iconsets/normal.gif" onclick="setMapType(G_NORMAL_MAP)"/>&nbsp;'+
				'<img src="iconsets/hybrid.gif" onclick="setMapType(G_HYBRID_MAP)"/>&nbsp;'+
				'<img src="iconsets/physical.gif" onclick="setMapType(G_PHYSICAL_MAP)"/><br /><br />'+
				'<b>'+LANG_MAP_SMALL+':</b><br />'+
				'<img src="iconsets/mini-normal.gif" onclick="setMinimapType(G_NORMAL_MAP)"/>&nbsp;'+
				'<img src="iconsets/mini-hybrid.gif" onclick="setMinimapType(G_HYBRID_MAP)"/>&nbsp;'+
				'<img src="iconsets/mini-physical.gif" onclick="setMinimapType(G_PHYSICAL_MAP)"/><br />'+
				'</span><br /><br />'+
				'<b>'+LANG_MODUS_CHOOSE+':</b><ul>'+
				'<li><a href="#" onclick="visibles=new Array(new Array(),new Array());travellermodus=\'default\';refresh()">'+LANG_MODUS_NORMAL+'</a></li>'+
				'<li><a href="#" onclick="visibles=new Array(new Array(),new Array());travellermodus=\'traveller\';refresh()">'+LANG_MODUS_WORLDTOUR+'</a></li>'+
				'<li><a href="#" onclick="visibles=new Array(new Array(),new Array());travellermodus=\'live\';refresh()">'+LANG_MODUS_LIVE+'</a></li>'+
				'</ul>';
	break;
	case 33:	
		obj.innerHTML = '<h3>'+LANG_CONFIGURATION+'</h3>'+
				'<span class="clickable"><b>'+LANG_MAP_TIMEZONE+':</b><br />'+
				'<select name="first_utc" id="first_utc">'+LANG_FIRST_UTC_OPTION+'</select>'+
				'<button onclick="applyTimezone(document.getElementById(\'first_utc\').value)"/> '+LANG_APPLY_MAP_TIMEZONE+'<br /><br />';
	break;
	case 43:	
		obj.innerHTML = '<h3>'+LANG_LICENSEDURATION+'</h3>'+
				'<span id="license"></span>';
		form_license();
	break;
	case 5:
		if(obj.innerHTML.substring(0,19) != '<b>Calculation:</b>')
			obj.innerHTML =	'<span class="loading">Loading Debugger</span>';

		debugging();
	break;
	case 6:
		obj.innerHTML = LANG_IMPRESS_FULL+'<b>'+LANG_REALISATION+'</b><br />Torben Brodt<br />'+
				'<a href="mailto:webmaster@easy-coding.de">webmaster@easy-coding.de</a>';
	break;
	case 12:
		obj.innerHTML = '<h3>'+LANG_PDF+'</h3>';
	break;
	case 22:
		var tmp = "", i=0;
		var T = new Date();
		var M = Date.parse(T.toGMTString())+86400000;
		var T2 = new Date(M);

		for(var group in gmarkers) {
			tmp += '<option value="'+ IMEI[group] +'" '+ (i==0?'selected="selected"':'') +'>'+ group +'</option>';
			i++;
		}
		for(var x in overlayimeis) {
			tmp += '<option value="'+ overlayimeis[x][0] +'" '+ (i==0?'selected="selected"':'') +'>'+ overlayimeis[x][1] +'</option>';
			i++;
		}
 
		tmp = '<select name="data" size="'+ (i<7 ?i:7)+'" multiple="multiple" style="width:100%">'+tmp+'</select>';

		obj.innerHTML = '<h3>'+LANG_GENERATE_KEY+'</h3>'+
                                '<form onsubmit="form_key(this.data,this.s1.value+\' \'+this.s2.value,this.e1.value+\' \'+this.e2.value, this.viewstyle.value, this.modus.value, this.first_utc.value);return false">'+
                                '<b>'+LANG_DEVICES+':</b><br />'+
                                '<div>'+tmp+'</div>'+
				'<br /><b>'+LANG_AVAILABILITY+'</b><br />'+
				'<table style="width:100%">'+
					'<tr><td>'+LANG_BEGIN+':</td><td>'+
						'<input name="s1" type="text" value="'+startZero(T.getDate())+'.'+startZero(T.getMonth()+1)+'.'+T.getFullYear()+'" size="8" /> '+
						'<input name="s2" type="text" value="'+startZero(T.getHours())+':'+startZero(T.getMinutes())+'" size="3" /> Uhr</td></tr>'+
					'<tr><td>'+LANG_END+':</td><td>'+
						'<input name="e1" type="text" value="'+startZero(T2.getDate())+'.'+startZero(T2.getMonth()+1)+'.'+T2.getFullYear()+'" size="8" /> '+
						'<input name="e2" type="text" value="'+startZero(T.getHours())+':'+startZero(T.getMinutes())+'" size="3" /> Uhr</td></tr>'+	
				'<tr><td>'+LANG_VIEW+':</td><td><select name="viewstyle" id="viewstyle" style="width:100%">'+
					'<option value="G_SATELLITE_MAP">'+LANG_SATELLITE_MAP+'</option>'+
					'<option value="G_NORMAL_MAP">'+LANG_NORMAL_MAP+'</option>'+
					'<option value="G_HYBRID_MAP" selected="selected">'+LANG_HYBRID_MAP+'</option>'+
				'</select></td></tr>'+
				'<tr><td>'+LANG_MODUS_CHOOSE+'</td><td><select name="modus">'+
				'<option value="default">'+LANG_MODUS_NORMAL+'</option>'+
				'<option value="w">'+LANG_MODUS_WORLDTOUR+'</option>'+
				'<option value="l">'+LANG_MODUS_LIVE+'</option>'+
				'</select></td></tr></table><br/>'+
			'<span class="clickable"><b>'+LANG_MAP_TIMEZONE+':</b><br />'+
			'<select name="first_utc" id="first_utc">'+LANG_FIRST_UTC_OPTION+'</select>'+
			'<div align="center">&nbsp;<br/><input type="submit" value="'+LANG_GENERATE_KEY+'" /></div>'+
			'</form>';
	break;
	}
}


/**
 * Debugger
 */
function debugging() {
	try {
		var rrequest = GXmlHttp.create();
		rrequest.open("POST", "debug.php", true);
		rrequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		rrequest.onreadystatechange = function() {
	                if ((rrequest.readyState == 4) && (rrequest.status == 200)) {
	                        document.getElementById('right').innerHTML = rrequest.responseText;
	                }
	        }
		rrequest.send("user_id="+user['id']+"&user_pw="+user['pw']+"&size="+map.getSize()+"&bounds="+map.getBounds());

	} catch(e) {
//		alert('ERROR DEBUG');
	}
}

