// birdseye

function initBirdsEye () {

    map = new VEMap('birdseye-container');
    map.LoadMap(point, 18);

    map.AttachEvent("onobliqueenter", OnObliqueEnterHandler);

    AddMarker(point);

    //map.SetMapMode(VEMapMode.Mode3D);
    //map.Show3DBirdseye(true);

}

function AddMarker(point) {
    var marker = new VEShape(VEShapeType.Pushpin, point);
    marker.SetCustomIcon('http://www.discoversacramentohomes.com/idx/img/map-icons/house-icon.png');
    //marker.SetTitle('');
    //marker.SetDescription('');
    map.AddShape(marker);
}

function OnObliqueEnterHandler() {
     if (map.IsBirdseyeAvailable()) {
          map.SetMapStyle(VEMapStyle.BirdseyeHybrid);
          map.DetachEvent("onobliqueenter", OnObliqueEnterHandler);
     }
}

// streetview

function initStreetView () {

    var container = document.getElementById("streetview-container");

    if (container)  {

        var svp = new GStreetviewPanorama(container);

        var lngv = latlng.lng();
        var latv = latlng.lat();

        var svc = new GStreetviewClient();
        svc.getNearestPanorama(latlng, function (data) {

            if (document.getElementById("streetview-tab")) {
                document.getElementById("streetview-tab").style.display = 'block';
            }

            if (!data.Location) return handleNoFlash(600);

            if (typeof(data.Location.lng) != 'undefined') lngv = data.Location.lng;
            if (typeof(data.Location.lat) != 'undefined') latv = data.Location.lat;

            gob = new GLatLng(latv, lngv);
            yaw = computeAngle(gob, latlng);
            pov = {'yaw': yaw, 'pitch': -10};

            svp.setLocationAndPOV(gob, pov);

        });

        GEvent.addListener(svp, "error", handleNoFlash);

    }

}

function handleNoFlash (errorCode) {
    if (errorCode == 600) {
        if (document.getElementById("streetview-container")) {
            document.getElementById("streetview-container").innerHTML = "<p>Sorry, but Google Streetview data is not available for this property.</p>";
        }
        if (document.getElementById("streetview-tab")) {
            document.getElementById("streetview-tab").style.display = 'none';
        }
        return;
    }
    if (errorCode == 603) {
        if (document.getElementById("streetview-container")) {
            document.getElementById("streetview-container").innerHTML = "<p>Flash doesn't appear to be supported by your browser.</p>";
        }
        if (document.getElementById("streetview-tab")) {
            document.getElementById("streetview-tab").style.display = 'none';
        }
        return;
    }
}

function computeAngle (t, o) {
    var k = o.lat() - t.lat();
    var m = o.lng() - t.lng();
    var yaw = Math.atan2(m * Math.cos(o.lat() * (Math.PI / 180)), k) * (180 / Math.PI);
    return wrapAngle(yaw);
}

function wrapAngle (a) {
    if (a >= 360) {
        a -= 360;
    } else if (a < 0) {
        a += 360;
    }
    return a;
}

function addOnLoadEvent (func) {
   var oldonload = window.onload;
   if (typeof window.onload != 'function') {
       window.onload = func;
   } else {
       window.onload = function() {
           oldonload();
           func();
       }
   }
}

function getElementByClass(rootobj, classname){
	var temparray=new Array()
	var inc=0
	var rootlength=rootobj.length
	for (i=0; i<rootlength; i++){
	if (rootobj[i].className==classname)
		temparray[inc++]=rootobj[i]
	}
	return temparray
}

// This function inserts newNode after referenceNode
function insertAfter( referenceNode, newNode )
{
    referenceNode.parentNode.insertBefore( newNode, referenceNode.nextSibling );
}

function replaceContact() {
	var html = '';
	html += "<form action='/contact.php' method='post'>";
	html += "<input type=hidden name='email'>";
	html += "<input type=hidden name='first_name'>";
	html += "<input type=hidden name='last_name'>";
	html += "<input type=hidden name='form_type' value='contact_form' />";
	html += "<table width='570' border='0'>";
	html += "      <tr>";
	html += "        <td>First Name*</td>";
	html += "        <td><input type='text' name='onc5khko' id='onc5khko'></td>";
	html += "      </tr>";
	html += "      <tr>";
	html += "        <td>Last Name*</td>";
	html += "        <td><input type='text' name='sk5tyelo' id='sk5tyelo'></td>";
	html += "      </tr>";
	html += "      <tr>";
	html += "        <td>Email*</td>";
	html += "        <td><input type='text' name='mi0moecs' id='mi0moecs'></td>";
	html += "      </tr>";
	html += "      <tr>";
	html += "        <td>Phone*</td>";
	html += "        <td><input type='text' name='telephone' id='telephone'></td>";
	html += "      </tr>";
	html += "      <tr>";
	html += "        <td>Comment:</td>";
	html += "        <td><textarea cols=78 rows=8 name='comments'></textarea></td>";
	html += "      </tr>";
	html += "    </table>";
	html += "    <button name='contact' value='Send' type='submit'>Send</button>";
	html += "  </form>";
	var contact = document.getElementById("contact-form");
	var contactDiv = document.createElement('div');
	contactDiv.id = 'contact';
	contactDiv.innerHTML = html;
	contact.parentNode.replaceChild(contactDiv,contact);
}

function activateStreetViewDiv() {
	var headID = document.getElementById("text");  
	var hr = headID.getElementsByTagName("hr")[2];
	var cssNode = document.createElement('div');
	cssNode.id = 'streetview-container';
	cssNode.name = 'streetview-container';
	cssNode.style.height = 260 + 'px';
	cssNode.style.width = 100 +"%";
	
	hr.parentNode.insertBefore(cssNode,hr);
	
	var header = document.createElement('div');
	header.id = 'streetviewHeader';
	hr.parentNode.insertBefore(header,cssNode);
	
	var adrDiv = getElementByClass(document, "adr");
	var locality = getElementByClass(adrDiv, "locality");
	var address = locality[0];
	var city = locality[1];
	//var street = getElementByClass(address, "value").innerHTML;
	//var cityStr = getElementByClass(city, "value").innerHTML;
	//var htm = "Street View of " +street+ " "+cityStr;
	var htm = "<hr><h3>Street View</h3>";
	header.innerHTML = htm;
}

function activateBirdsEyeDiv() {

	var birdseye = document.createElement('div');
	birdseye.id = 'birdseye-container';
	birdseye.name = 'birdseye-container';
	birdseye.style.height = 260 + 'px';
	birdseye.style.width = 100 +"%";
	birdseye.style.position = "relative";

	insertAfter(document.getElementById("text").childNodes[0], birdseye);
	
	/*
	var birdseyeheader = document.createElement('div');
	birdseyeheader.id = 'birdseyeheader';
	birdseye.parentNode.insertBefore(birdseyeheader,birdseye);
	var htm = "<h3>Birds Eye View</h3>";
	birdseyeheader.innerHTML = htm;
	*/
}

function colorInquire() {
	var inquire = document.getElementById("nav-idx").getElementsByTagName("ul")[0].getElementsByTagName("li")[1];
	inquire.style.backgroundColor = "#312052";
}

// do this onload, since part of the page isn't rendered till then
function onloadHandler() {

	activateStreetViewDiv();
	activateBirdsEyeDiv();
	
	initBirdsEye();
	initStreetView();
	replaceContact();
	
	//var similar = $("#similarProperties").text();
	//$("#birdseye-container").after(similar);
	//var similar = $("#similarProperties");
	//$("#similarProperties").remove();
	$("#streetview-container").after(html);
	//colorInquire();
}



var map;
var debug;
var gob = null;
var yaw = null;
var pov = null;

var latitude = document.getElementById('latitude').value;
var longitude = document.getElementById('longitude').value;
var test = document.getElementById('testing').value;
	
var latlng = new GLatLng(latitude,longitude);
var point = new VELatLong(latitude, longitude);

var div = document.getElementById("similarProperties");

window.onload   = onloadHandler;
window.onunload = GUnload;
