

/*
The code in this file or document and its designs, methods, data, know-how and all other related elements are the property of LUXSON ltd © Copyright 2009-2010 and/or may contain code operated under third party licence(s); unauthorised use is therefore prohibited, including (without limitation) copying, editing, adapting, reverse engineering or any other similar or related action, in part or in full. Separate rights may also exist for LUXSON and/or client and/or third party content and/or services. For licensing information please contact LUXSON ltd.
*/

var mItems = new Array();
	var geocoder;
	var map;
	var chk = 0;
	var chkt = 3;
	var mapReady = false;

	function initializeMap() {
	  if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("mapHolder"));
		map.setCenter(new GLatLng(0.94546, 33.118123), 17);
		map.setMapType(G_SATELLITE_MAP);
		map.addControl(new GLargeMapControl())
		var mapControl = new GMapTypeControl();
		map.addControl(mapControl);
		
		mapReady = true;
		if(chk == chkt){
			buildMap();
		}
		//buildMap();
		
	  }
	}
	
	function addItems(a, icon){
		chk++;
		
		mItems.push({data:new Array() ,icon:icon})
		
		for(var i=0; i < a.length; i++){
			mItems[mItems.length-1].data.push({thumb:a[i].thumb, target:a[i].target, title:a[i].title, desc:a[i].desc, lat:a[i].lat, lng:a[i].lng, type:a[i].type, html:''});
			mItems[mItems.length-1].data[mItems[mItems.length-1].data.length-1].html = createHtml(mItems.length-1, mItems[mItems.length-1].data.length-1);
		}
		
		if(chk == chkt && mapReady == true){
			buildMap();
		}
			
	}
	
	function buildMap(){
		for(var i = 0; i < mItems.length; i++){
			for(var j = 0; j < mItems[i].data.length; j++){
				if(mItems[i].data[j].lng || mItems[i].data[j].lat){
					var point = new GLatLng(mItems[i].data[j].lat, mItems[i].data[j].lng);
					var marker = createMarker(point, mItems[i].icon, i, j);
					mItems[i].data[j].marker = marker;
					map.addOverlay(marker);
				}else{
					//document.write("data leak");
				}
			}
		}
	}
	
	function getIcon(url) {
		var icon = new GIcon();
		icon.image = url;
		icon.iconAnchor = new GPoint(16, 16);
		icon.infoWindowAnchor = new GPoint(16, 0);
		icon.iconSize = new GSize(82, 44);
		return icon;
	}
	
	function createMarker(point,icon,i,j) {
		var marker;
		if(icon != "" && icon != null){
			marker = new GMarker(point, { icon: getIcon('images/icons/'+icon+'.png')});
		}else{
			marker = new GMarker(point);
		}
		GEvent.addListener(marker, "click", function() {
		  marker.openInfoWindowHtml(mItems[i].data[j].html);
		  map.setCenter(marker.getLatLng(), map.getZoom());
		});
		return marker;
	}
	
	function callLink(mg,mi){
		var i = mItems[mg].data[mi].thumb;
		var t = mItems[mg].data[mi].target;
		var x = mItems[mg].data[mi].title;
		var type = '';
		var amdt = '';
		
		if(t.indexOf('youtube') > 0){
			//alert('edit');
			amdt = t.substr(t.lastIndexOf("/")+1, t.indexOf("?")-(t.lastIndexOf("/")+1));
			type = "youtube";
		}
		
		switch(t.substr(t.length-3,3)){
			case "jpg" :
				luxBox.liteW(t, {title: x});
			break;
			case "gif" :
				luxBox.liteW(t, {title: x});
			break;
			case "png" :
				luxBox.liteW(t, {title: x});
			break;
			case "mp4" :
				luxBox.liteW(t, {title: x});
			break;
			case "flv" :
				luxBox.liteW(t, {title: x});
			break;
			default :
				if(type == "youtube"){
					luxBox.liteW(amdt, {title: x, type:'youtube'});
				}else{
					location.href = t;
				}
			break;
		}
	}
	
	function createHtml(mg,mi){
		var str = '';
		var lnk = '<a onclick="callLink('+mg+','+mi+'); return false">';
		
		str += '<div style="width:280px;" class="mapPopup">';
						
		str += '<h2>'+lnk+mItems[mg].data[mi].title+'</a></h2>';
		
		if(mItems[mg].data[mi].thumb != null){
			
			if(mItems[mg].data[mi].target.indexOf('youtube') > 0){
				str+= '<div class="galVideoHol">';
			}
			
			str += lnk+'<img src="'+mItems[mg].data[mi].thumb+'" class="maps" />';
			
			if(mItems[mg].data[mi].target.indexOf('youtube') > 0){
				str+= '<img src="images/content/galleryOverlay.gif" height="91" width="120" alt="" />';
			}
			
			str+= '</a>';
			
			if(mItems[mg].data[mi].target.indexOf('youtube') > 0){
				str+= '</div>';	
			}
			
			preLoadImage(mItems[mg].data[mi].thumb);
		}
		
		str += '<p class="maps">'+mItems[mg].data[mi].desc;
		if(mItems[mg].data[mi].type == 'wordpress'){
			str += '<br /><br />'+lnk+'<span class="purple">Read More&hellip;</span></a>'	
		}
		str += '</p>';
		str += '<div style="clear:both">&nbsp;</div>';
		str += '</div>';
		
		return str;
	}

	function preLoadImage(url){
		preImage = new Image(); 
		preImage.src = url;
	}
	
var flickrCount = 0;
var flickrA = new Array();

function resultsFlickrFeed(o){
  	
	var ta = new Array();
  
  	for(var i=0; i < o.photos.photo.length; i++){
		
		flickrCount++;
		
		var id = o.photos.photo[i].id;
	
		var si = "http://farm"+o.photos.photo[i].farm+".static.flickr.com/"+o.photos.photo[i].server+"/"+o.photos.photo[i].id+"_"+o.photos.photo[i].secret+"_m.jpg";
		var ti = "http://farm"+o.photos.photo[i].farm+".static.flickr.com/"+o.photos.photo[i].server+"/"+o.photos.photo[i].id+"_"+o.photos.photo[i].secret+".jpg";
	
		var title = o.photos.photo[i].title;
		var lat = o.photos.photo[i].latitude;
		var lng = o.photos.photo[i].longitude;
		
		var desc = "LOADING";
		
		flickrA.push({id:id, thumb:si, target:ti, title:title, desc:desc, lat:lat, lng:lng, type:'flickr'});
		
		var newScript = document.createElement('script');
		newScript.type = 'text/javascript';
		newScript.src = 'http://api.flickr.com/services/rest/?api_key=cd85d84f7833b666ef2458ffb0d74240&method=flickr.photos.getInfo&photo_id='+id+'&format=json&jsoncallback=addFlickrDescription';
		document.getElementsByTagName("head")[0].appendChild(newScript);
		
	}
	
	if(o.photos.photo.length == 0){
		chk++;
	}
	
}

function addFlickrDescription(o){
	
	for(var i = 0; i < flickrA.length; i++){
		if(flickrA[i].id == o.photo.id){
			flickrA[i].desc = o.photo.description._content;
		}
	}
	
	flickrCount--;
	
	if(flickrCount == 0){
		addItems(flickrA, "photo");
	}
	
}

function resultsYoutubeFeed(o){
	
	var ta = new Array();
	
	var feed = o.feed;
    var entries = feed.entry || [];

    for (var i = 0; i < entries.length; ++i) {
      	var entry = entries[i];
		
		var id = entry.id.$t;
		
		var si = entry.media$group.media$thumbnail[0].url;
		
		var ti = entry.content.src;
		
		var pos = entry.georss$where.gml$Point.gml$pos.$t;
	
		var title = entry.title.$t;
						
		var lat = pos.substr(0, pos.indexOf(" "));
		var lng = pos.substr(pos.indexOf(" ")+1);
		
		var desc = entry.media$group.media$description.$t;
				
		ta.push({id:id, thumb:si, target:ti, title:title, desc:desc, lat:lat, lng:lng, type:'youtube'});
		
	}
	
	if(entries.length > 0){
		addItems(ta, "video");
	}else{
		chk++;
	}
	 
}

function getWordpressFeed(){
	var newScript = document.createElement('script');
	newScript.type = 'text/javascript';
	newScript.src = 'http://pipes.yahoo.com/pipes/pipe.run?_id=ac7e1eaa27d6b5cacf7dab4c732b1081&_render=json&_callback=resultsWordpressFeed&feed=feed://blog.christianreliefuganda.org/&type=rss2&cat=3';
	document.getElementsByTagName("head")[0].appendChild(newScript);
}
function resultsWordpressFeed(feed) {
   	var ta = new Array();
  
	for (var i=0; i<feed.value.items.length; i++) {
	   	
		var entry = feed.value.items[i];
		
		if(entry["georss:point"] != undefined){
		
			var id = entry.guid;
			
			var si = null;
			
			var ti = entry.link;
			
			var pos = entry["georss:point"];
			
			var title = entry.title;
			
			var lat = pos.substr(0, pos.indexOf(" "));
			var lng = pos.substr(pos.indexOf(" ")+1);
			
			var desc = entry.description;
					
			ta.push({id:id, thumb:si, target:ti, title:title, desc:desc, lat:lat, lng:lng, type:'wordpress'});
			
		}
		
	}
	
	if(feed.value.items.length > 0){
		addItems(ta, "blog");
	}else{
		chk++;	
	}
}

function addLoadEvent(func) { 
  var oldonload = window.onload; 
  if (typeof window.onload != 'function') { 
	window.onload = func; 
  } else { 
	window.onload = function() { 
	  if (oldonload) { 
		oldonload(); 
	  } 
	  func(); 
	} 
  } 
} 

addLoadEvent(initializeMap);
addLoadEvent(getWordpressFeed);
window.onunload=GUnload;