
var map;
var gc;
var tweetDivChange = 0;
var tweetDivMaxTweets = 20;


function addTweet (marker, img, tweet, type) {

	var table = document.getElementById('tweetDivTable');

	if (table) {

		var tr = document.createElement("tr");

		var td1 = document.createElement("td");
		td1.innerHTML = "<img src=\"" + img + "\" border=0>";
		td1.className = 'td1';

		if(marker)
			td1.style.background = 'url(tweetDivTdBg_blink.png) no-repeat';

		tr.appendChild(td1);

		var td2 = document.createElement("td");
//		td2.innerHTML = tweet + ' (<i>16.06</i>)';
		td2.innerHTML = tweet;
		td2.className = 'td2';

		if(marker)
			td2.style.background = 'url(tweetDivTdBg_blink.png) no-repeat';

		tr.appendChild(td2);

		var td3 = document.createElement("td");
		td3.innerHTML = 'L';
		td3.className = 'td3';

		if(marker)
			td3.style.background = 'url(tweetDivTdBg_blink.png) no-repeat';

		tr.appendChild(td3);

		table.tBodies[0].insertBefore(tr, table.tBodies[0].firstChild);

		if (table.getElementsByTagName('tr').length > tweetDivMaxTweets)
			table.deleteRow(table.getElementsByTagName('tr').length-1);

		if(marker) {

			if (type == 1) {

				marker.setImage("/cube1_blink.png");

				window.setTimeout(function () {
					marker.setImage("/cube1.png");
					td1.style.background = 'url(tweetDivTdBg.png) no-repeat';
					td2.style.background = 'url(tweetDivTdBg.png) no-repeat';
					td3.style.background = 'url(tweetDivTdBg.png) no-repeat';
				}, 250);

			} else if (type == 2) {

				marker.setImage("/maps_icon_blink.png");

				window.setTimeout(function () {
					marker.setImage("/maps_icon.png");
					td1.style.background = 'url(tweetDivTdBg.png) no-repeat';
					td2.style.background = 'url(tweetDivTdBg.png) no-repeat';
					td3.style.background = 'url(tweetDivTdBg.png) no-repeat';
				}, 250);

			}

		}

	}

}


function removeTweet (marker, type) {

	if(marker) {

		if (type == 1) {

			marker.setImage("/cube1_rblink.png");

			window.setTimeout(function () {
				marker.setImage("/cube1.png");
			}, 250);
/*
		} else if (type == 2) {

			marker.setImage("/maps_icon_rblink.png");

			window.setTimeout(function () {
				marker.setImage("/maps_icon.png");
			}, 250);
*/
		}

	}

}


function closeTweetDiv (diff) {

	if (tweetDivChange == 0) {

		tweetDivChange = 1;

		var divx = document.getElementById('tweetDivX');

		divx.style.right = "346px";
		divx.style.right = (parseInt(divx.style.right)+5) + "px";

		document.getElementById('tweetDivXimg').src= "tweetDivX2.png";

	}

	if (tweetDivChange == 1) {

		var div = document.getElementById('tweetDiv');
		var divx = document.getElementById('tweetDivX');

		if(div.style.right == "")
			div.style.right = "7px";

		if(divx.style.right == "")
			divx.style.right = "346px";

		if (parseInt(divx.style.right) > -2) {
			divx.style.right = (parseInt(divx.style.right)-diff/1.14) + "px";
		}

		if (parseInt(div.style.right) > -346) {

			div.style.right = (parseInt(div.style.right)-diff/1.14) + "px";
			setTimeout(function () { closeTweetDiv(diff); }, 1);

		} else {

			tweetDivChange = 0;
			divx.onclick = function () { openTweetDiv(50); };

			div.style.right = "-346px";
			divx.style.right = "3px";

		}

	}

}


function openTweetDiv (diff) {

	if (tweetDivChange == 0) {

		tweetDivChange = 1;

		document.getElementById('tweetDivXimg').src= "tweetDivX.png";

	}

	if (tweetDivChange == 1) {

		var div = document.getElementById('tweetDiv');
		var divx = document.getElementById('tweetDivX');

		if (parseInt(divx.style.right) <= 346) {
			divx.style.right = (parseInt(divx.style.right)+diff/1.14) + "px";
		}

		if (parseInt(div.style.right) <= 0) {

			div.style.right = (parseInt(div.style.right)+diff/1.14) + "px";
			setTimeout(function () { openTweetDiv(diff); }, 1);

		} else {

			tweetDivChange = 0;
			divx.onclick = function () { closeTweetDiv(50); };

			div.style.right = "7px";
			divx.style.right = "346px";

		}

	}

}


function initTweetDiv () {

	var div	= document.createElement("div");
	div.id  = "tweetDiv";

	var divx	= document.createElement("div");
	divx.id  = "tweetDivX";
	divx.innerHTML = '<img id=tweetDivXimg src="tweetDivX.png">';
	divx.onclick = function () { closeTweetDiv(50); };

	var table = document.createElement("table");
	table.id = "tweetDivTable";
	var tableBody = document.createElement("tbody");

	table.appendChild(tableBody);

	div.appendChild(table);

	document.getElementById('map').appendChild(div);
	document.getElementById('map').appendChild(divx);

	addTweet(null, '', '<b>Welcome to twibez.com!</b>');

}


function load() {

	var map;
	var gc;

	if (GBrowserIsCompatible()) {

		map 	 = new GMap2(document.getElementById("map"));
		geocoder = new GClientGeocoder();

		map.addControl(new GSmallMapControl());
//		map.addMapType(G_PHYSICAL_MAP);
//		map.addControl(new GMapTypeControl());
		map.setMapType(G_HYBRID_MAP);

		map.enableContinuousZoom();
		map.enableScrollWheelZoom();

//		map.setCenter(new GLatLng(40.095962936305476, -83.31640625), 4); // USA
		map.setCenter(new GLatLng(51.1242127578, 16.634765625), 5); // GERMANY
//		map.setCenter(new GLatLng(-35.742673631954305, 148.9755859375), 6); // AUSTRALIA

		initTweetDiv();

		gc = new gcGrid(map, "dgTKo1XER2BSGJWhWBoTeNqru7JWTDJxic7NTWSlOV3VdP11ShKxt2edzp1K");

//		gc.setOption(GC_OP_DEBUG, 1);
//		gc.setOption(GC_OP_DEBUGWINDOW, document.getElementById('log'));

		gc.setOption(GC_OP_CLUSTERCOUNT, 1);
		gc.setOption(GC_OP_REALTIME, 1);

//		gc.setVar(GC_VR_COUNTDESCR, "tweets");


                var iconPoint        = new GIcon();
                iconPoint.image      = "/maps_icon.png";
                iconPoint.iconSize    = new GSize(22, 24);
                iconPoint.shadowSize  = new GSize(32, 33);
                iconPoint.iconAnchor  = new GPoint(11, 24);

		gc.setIcon(GC_IC_POINT, iconPoint);

                var iconCluster        = new GIcon();
                iconCluster.image      = "/cube1.png";
                iconCluster.iconSize   = new GSize(64, 64);
                iconCluster.iconAnchor = new GPoint(32, 32);

		gc.setIcon(GC_IC_CLUSTER, iconCluster);

		gc.setCallback(GC_CB_ONCREATECLUSTER, function (cl, latNE, lngNE, latSW, lngSW) {

		        var div = cl.getClusterCountDIV();

			div.style.marginTop = 0;
			div.style.fontSize = "14px";
			div.style.fontWeight = "bold";

		});

		gc.enableRenderGrid();
/*
		window.setInterval(function () {

			for(i = 0; i< GC_Obj.mapsPoints.length; i++) {

				if (GC_Obj.mapsPoints[i].t == 1) {
					addTweet(GC_Obj.mapsPoints[i].marker, "", "dasdasdasd");
					break;
				}

			}

		}, 2000);
*/
	}

}
