var contentURL = location.href+"php/getContent.php";
var currentSiteDomainName = 'ovcoc.org';
var currentRegistrant = 1;
var contentObject = "";
//var menuObject = "";
var currentAlternate = 0;
var registrationOn = 0;
var imageIncremental = 0;
var imageArray = new Array(
                "/images/bibleimage600x450.jpg",
                "/images/donandesther600x450.jpg",
                "/images/covershot_600x450.jpg",
		"/images/ocean_view_background600x450.jpg"
            );
var atHome = true;

// Map stuff
var map;
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var destinationResults;
var geocoder = new google.maps.Geocoder();
var destinationAddress = "223 Clarendon Rd., Pacifica, CA, 94066";
var iwOptions = {
			content: "<div id=\"marker_info_container\">" +
			 	 "<p class=\"marker_address\">223 Clarendon Rd. Pacifica, CA 94044</p>" +
			 	 "<div class=\"marker_image\"></div>" +
			 	 "</div>"
};

var PrivateMain = function(){
    return {
               menuStuff: {
                            isDisplayed: [
                                         ],
                            eObjects: [
                                      ],
                            remElements: [
                                        ],
                            menuObjects: [
                                         ]
                          }
           };
};

function initialize() 
{	
	directionsDisplay = new google.maps.DirectionsRenderer();
	infoWindow = new google.maps.InfoWindow(this.iwOptions);
	var address = this.destinationAddress;
	var myOptions = {
      		zoom: 16,
      		mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	this.map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	geocoder.geocode({'address': address},
					 function (results, status)
					 {
						if(status == google.maps.GeocoderStatus.OK)
						{
							var latitude = results[0].geometry.location.lat() + 0.0020000000000;
							var longitude = results[0].geometry.location.lng() - 0.0010000000000;
							var offSetLocation = new google.maps.LatLng(latitude,longitude);

							map.setCenter(offSetLocation);
							this.destinationResults = results[0].geometry.location;
							
							var marker = new google.maps.Marker({
													map: map,
													position: results[0].geometry.location
											    });
							infoWindow.open(this.map,marker);
						} 
						else 
						{
							alert("Geocode was not successful for the following reason: " + status);
						}
					 }
			);
    
	directionsDisplay.setMap(map);
	directionsDisplay.setPanel(document.getElementById("direction_text"));
}

function calcRoute() 
{
   var formContainer = document.getElementById("where_from");
   var startAddress = document.getElementById("where_from_value").value;
   var endAddress = this.destinationAddress;
   var request = {
					origin:startAddress,
					destination:endAddress,
					travelMode: google.maps.TravelMode.DRIVING
				 };
   formContainer.style.display = "none";	
   directionsService.route(request,
						   function(result, status)
						   {
							 if (status == google.maps.DirectionsStatus.OK) 
							 {
								directionsDisplay.setDirections(result);
							 }
						   }
						  );
   
}

function get_content(url)
{
	var XMLHttpRequestObject = getJSON(url);
	XMLHttpRequestObject.onreadystatechange = function () {
		if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
			JSONText = XMLHttpRequestObject.responseText;
			
			if(navigator.appName != "Microsoft Internet Explorer") {
				contentObject = JSON.parse(JSONText);
			}
			else {
				contentObject = eval("(" + JSONText + ")");
			}
			
		}
	}	
}

function getHttpReqObj()
{
        var retObj = false;
        if (window.XMLHttpRequest)
        {
                retObj = new XMLHttpRequest();
        }
        else if (window.ActiveXObject)
        {
                retObj = new ActiveXObject("Microsoft.XMLHTTP");
        }
        return retObj;
}

function display_php_data(targetDivId, url)
{
        var XMLHttpRequestObject = false;

        XMLHttpRequestObject = getHttpReqObj();
    if (registrationOn == 1)
    {
        alert('You must submit the registration form before continuing.');
        return;
    }

        if(XMLHttpRequestObject)
    {
                var obj = document.getElementById(targetDivId);
                XMLHttpRequestObject.open("GET", url, "true");
                XMLHttpRequestObject.setRequestHeader('Referer','');

                XMLHttpRequestObject.onreadystatechange = function()
                {
                        if (XMLHttpRequestObject.readyState == 4)
            {
                                obj.innerHTML = XMLHttpRequestObject.responseText;
                        }
                };
                XMLHttpRequestObject.send(null);
        }


}

function display_content(targetDivId, fileName)
{
    var url = "../php/content.php?filename="+fileName;
        var XMLHttpRequestObject = false;
        XMLHttpRequestObject = getHttpReqObj();
    if (registrationOn == 1)
    {
        alert('You must close the registration form before continuing.');
        return;
    }

    if (fileName == 'registration')
    {
        clear_content('display_center');
        registrationOn = 1;
    }

        if(XMLHttpRequestObject)
    {
                var obj = document.getElementById(targetDivId);
                XMLHttpRequestObject.open("GET", url, "true");
                XMLHttpRequestObject.setRequestHeader('Referer','');

                XMLHttpRequestObject.onreadystatechange = function()
        {
            if (XMLHttpRequestObject.readyState == 4)
            {
                obj.innerHTML = XMLHttpRequestObject.responseText;
            }
        };
                XMLHttpRequestObject.send(null);
        }
}

function display_map(targetDivId, fileName)
{
    var url = "../php/content.php?filename="+fileName;
        var XMLHttpRequestObject = false;
        XMLHttpRequestObject = getHttpReqObj();
    if (registrationOn == 1)
    {
        alert('You must close the registration form before continuing.');
        return;
    }

    if (fileName == 'registration')
    {
        clear_content('display_center');
        registrationOn = 1;
    }

        if(XMLHttpRequestObject)
    {
                var obj = document.getElementById(targetDivId);
                XMLHttpRequestObject.open("GET", url, "true");
                XMLHttpRequestObject.setRequestHeader('Referer','');

                XMLHttpRequestObject.onreadystatechange = function()
        {
            if (XMLHttpRequestObject.readyState == 4)
            {
                obj.innerHTML = XMLHttpRequestObject.responseText;
		initialize();
            }
        };
                XMLHttpRequestObject.send(null);
        }
}

function generateContentElement(cobject, displayid)
{
	var displayContainer = document.getElementById(displayid);
	var DIVElement = document.createElement('div');
	var ThrowAwayDIVElement = document.createElement('div');
	
	DIVElement.id = 'media'

	if (cobject)
	{
		for (var key in cobject)
		{
			if (key)
			{
				var EventDIVElement = document.createElement('div');
				var EventTitleContainer = document.createElement('div');
				var EventTitlePElement = document.createElement('p');
				var EventDescContainer = document.createElement('div');
				var EventDescPElement = document.createElement('p');
				var EventNameContainer = document.createElement('div');
				var EventNamePElement = document.createElement('p');
				var EventDateContainer = document.createElement('div');
				var EventDatePElement = document.createElement('p');
				var EventAuthorContainer = document.createElement('div');
				var EventAuthorPElement = document.createElement('p');
				var MediaInfoContainer = document.createElement('div');
				var MediaTextInfoContainer = document.createElement('div');
				var MediaGraphicInfoContainer = document.createElement('div');
				var EventGraphicDIVElement = document.createElement('div');

				EventDIVElement.id = key;
				EventDIVElement.setAttribute("class", 'event_container');
				MediaInfoContainer.setAttribute("class", 'media_info');
				MediaTextInfoContainer.setAttribute("class", 'media_text_info');
				MediaGraphicInfoContainer.setAttribute("class", 'media_graphic_info');
				EventGraphicDIVElement.setAttribute("class", 'event_graphic');
				EventTitleContainer.setAttribute("class", 'event_title');
				EventDescContainer.setAttribute("class", 'event_desc');
				EventNameContainer.setAttribute("class", 'event_name');
				EventDateContainer.setAttribute("class", 'event_date');
				EventAuthorContainer.setAttribute("class", 'event_author');
				EventTitlePElement.innerHTML = cobject[key].event_title;
				EventDatePElement.innerHTML = cobject[key].event_date;
				EventAuthorPElement.innerHTML = 'with, '+cobject[key].event_author;
				EventNamePElement.innerHTML = cobject[key].event_name;
				EventDescPElement.innerHTML = cobject[key].event_description;
				EventGraphicDIVElement.style.backgroundImage = "url(" + cobject[key].event_image + ")";

				EventDateContainer.appendChild(EventDatePElement);
				EventTitleContainer.appendChild(EventTitlePElement);
				EventAuthorContainer.appendChild(EventAuthorPElement);
				EventNameContainer.appendChild(EventNamePElement);
				EventDescContainer.appendChild(EventDescPElement);
				MediaTextInfoContainer.appendChild(EventNameContainer);
				MediaTextInfoContainer.appendChild(EventAuthorContainer);
				MediaTextInfoContainer.appendChild(EventDateContainer);
				MediaTextInfoContainer.appendChild(EventTitleContainer);
				MediaTextInfoContainer.appendChild(EventDescContainer);
				MediaGraphicInfoContainer.appendChild(EventGraphicDIVElement);
				MediaInfoContainer.appendChild(MediaTextInfoContainer);
				MediaInfoContainer.appendChild(MediaGraphicInfoContainer);
				EventDIVElement.appendChild(MediaInfoContainer);

				for (var ekey in cobject[key].content_list)
				{
					var contentList = cobject[key].content_list[ekey];
					var MediaDIVElement = document.createElement('div');
					var MediaContentInfoDIVElement = document.createElement('div');
					var MediaContentTitleDIVElement = document.createElement('div');
					var MediaContentSubTitleDIVElement = document.createElement('div');
					var MediaDownloadDIVElement = document.createElement('div');
					var MediaDurationDIVElement = document.createElement('div');
					var MediaDownloadAElement = document.createElement('a');

					MediaDIVElement.setAttribute("class", 'media_element');
					MediaContentInfoDIVElement.setAttribute("class", 'content_info');
					MediaContentTitleDIVElement.setAttribute("class", 'content_title');
					MediaDurationDIVElement.setAttribute("class", 'content_duration');
					MediaContentSubTitleDIVElement.setAttribute("class", 'content_subtitle');
					MediaDownloadDIVElement.setAttribute("class", 'content_download');
					MediaDownloadAElement.href = 'http://' + location.hostname + '/php/download.php?contentid=' + contentList.fileid;

					MediaContentTitleDIVElement.innerHTML = contentList.title;
					MediaContentSubTitleDIVElement.innerHTML = contentList.subtitle;
					MediaDurationDIVElement.innerHTML = contentList.duration;
					MediaDownloadAElement.innerHTML = contentList.contenttype.toUpperCase();

					MediaContentInfoDIVElement.appendChild(MediaContentTitleDIVElement);
					MediaContentInfoDIVElement.appendChild(MediaContentSubTitleDIVElement);
					MediaDownloadDIVElement.appendChild(MediaDownloadAElement);
					MediaDIVElement.appendChild(MediaContentInfoDIVElement);
					MediaDIVElement.appendChild(MediaDurationDIVElement);
					MediaDIVElement.appendChild(MediaDownloadDIVElement);
					EventDIVElement.appendChild(MediaDIVElement);
				}

				DIVElement.appendChild(EventDIVElement);
			}
		}
	}
	else
	{
		alert("hmmm, The contentObject variable seems not to be populated.");
	}

	ThrowAwayDIVElement.appendChild(DIVElement);
	displayContainer.innerHTML = ThrowAwayDIVElement.innerHTML;
}

function getJSON(url)
{
    var XMLHttpRequestObject = false;

    XMLHttpRequestObject = getHttpReqObj();

    if(XMLHttpRequestObject)
    {
        XMLHttpRequestObject.open("GET", url, "true");
        XMLHttpRequestObject.setRequestHeader('Referer','');
        XMLHttpRequestObject.send(null);
        return XMLHttpRequestObject;
    }

    return false;
}

function getJSONSync(url)
{
	var XMLHttpRequestObject = false;
	
	XMLHttpRequestObject = getHttpReqObj();
	if(XMLHttpRequestObject)
	{
		XMLHttpRequestObject.open("GET",url,"false");
		XMLHttpRequestObject.setRequestHeader('Referer','');
		XMLHttpRequestObject.send(null);
		return XMLHttpRequestObject;
	}
	
	return false;
}

