addDOMLoadEvent(findActiveLinks);
addDOMLoadEvent(setupMenu);
addDOMLoadEvent(homepageRotator);
addDOMLoadEvent(fontControls);
addDOMLoadEvent(setupLinkDeleteButtons);
addDOMLoadEvent(setupPropertyMap);
addDOMLoadEvent(setupNifty);

function setupNifty()
{
    Nifty("div#hd", "transparent big");
    Nifty("ul.mainnav a", "normal transparent");
    Nifty("div.featured h2", "top normal")
}

function setupPropertyMap()
{
     if ($('propertyMap')) {
        $('propertyMap').setStyle({width: '100%', height: '350px'});
        
        var map = new GMap2($('propertyMap'));
        map.setCenter(new GLatLng(51.35, -0.270990), 8);
        map.setUIToDefault();
        buildMarkersFromXML(map, "includes/propertyExport.php");
     }
}

function buildMarkersFromXML(map, fileName)
{
        var myDarkRedIcon = new GIcon();
        myDarkRedIcon.image = 'icons/darkred/image.png';
        myDarkRedIcon.shadow = 'icons/darkred/shadow.png';
        myDarkRedIcon.iconSize = new GSize(35,35);
        myDarkRedIcon.shadowSize = new GSize(53,35);
        myDarkRedIcon.iconAnchor = new GPoint(18,35);
        myDarkRedIcon.infoWindowAnchor = new GPoint(18,0);
        myDarkRedIcon.printImage = 'icons/darkred/printImage.gif';
        myDarkRedIcon.mozPrintImage = 'icons/darkred/mozPrintImage.gif';
        myDarkRedIcon.printShadow = 'icons/darkred/printShadow.gif';
        myDarkRedIcon.transparent = 'icons/darkred/transparent.png';
        myDarkRedIcon.imageMap = [21,0,24,1,34,2,27,3,30,4,29,5,30,6,34,7,32,8,34,9,32,10,34,11,33,12,33,13,34,14,33,15,34,16,33,17,34,18,33,19,32,20,34,21,31,22,34,23,30,24,34,25,27,26,26,27,34,28,31,29,34,30,20,31,34,32,19,33,31,34,1,34,15,33,0,32,14,31,0,30,3,29,0,28,5,27,7,26,0,25,4,24,0,23,3,22,0,21,2,20,1,19,0,18,1,17,0,16,1,15,0,14,1,13,1,12,1,11,2,10,0,9,2,8,0,7,3,6,5,5,1,4,7,3,0,2,3,1,13,0];

        var myDarkGreenIcon = new GIcon();
        myDarkGreenIcon.image = 'icons/darkgreen/image.png';
        myDarkGreenIcon.shadow = 'icons/darkgreen/shadow.png';
        myDarkGreenIcon.iconSize = new GSize(35,35);
        myDarkGreenIcon.shadowSize = new GSize(53,35);
        myDarkGreenIcon.iconAnchor = new GPoint(18,35);
        myDarkGreenIcon.infoWindowAnchor = new GPoint(18,0);
        myDarkGreenIcon.printImage = 'icons/darkgreen/printImage.gif';
        myDarkGreenIcon.mozPrintImage = 'icons/darkgreen/mozPrintImage.gif';
        myDarkGreenIcon.printShadow = 'icons/darkgreen/printShadow.gif';
        myDarkGreenIcon.transparent = 'icons/darkgreen/transparent.png';
        myDarkGreenIcon.imageMap = [21,0,24,1,34,2,27,3,30,4,29,5,30,6,34,7,32,8,34,9,32,10,34,11,33,12,33,13,34,14,33,15,34,16,33,17,34,18,33,19,32,20,34,21,31,22,34,23,30,24,34,25,27,26,26,27,34,28,31,29,34,30,20,31,34,32,19,33,31,34,1,34,15,33,0,32,14,31,0,30,3,29,0,28,5,27,7,26,0,25,4,24,0,23,3,22,0,21,2,20,1,19,0,18,1,17,0,16,1,15,0,14,1,13,1,12,1,11,2,10,0,9,2,8,0,7,3,6,5,5,1,4,7,3,0,2,3,1,13,0];

        var myGreenIcon = new GIcon();
        myGreenIcon.image = 'icons/green/image.png';
        myGreenIcon.shadow = 'icons/green/shadow.png';
        myGreenIcon.iconSize = new GSize(35,35);
        myGreenIcon.shadowSize = new GSize(53,35);
        myGreenIcon.iconAnchor = new GPoint(18,35);
        myGreenIcon.infoWindowAnchor = new GPoint(18,0);
        myGreenIcon.printImage = 'icons/green/printImage.gif';
        myGreenIcon.mozPrintImage = 'icons/green/mozPrintImage.gif';
        myGreenIcon.printShadow = 'icons/green/printShadow.gif';
        myGreenIcon.transparent = 'icons/green/transparent.png';
        myGreenIcon.imageMap = [21,0,24,1,34,2,27,3,30,4,29,5,30,6,34,7,32,8,34,9,32,10,34,11,33,12,33,13,34,14,33,15,34,16,33,17,34,18,33,19,32,20,34,21,31,22,34,23,30,24,34,25,27,26,26,27,34,28,31,29,34,30,20,31,34,32,19,33,31,34,1,34,15,33,0,32,14,31,0,30,3,29,0,28,5,27,7,26,0,25,4,24,0,23,3,22,0,21,2,20,1,19,0,18,1,17,0,16,1,15,0,14,1,13,1,12,1,11,2,10,0,9,2,8,0,7,3,6,5,5,1,4,7,3,0,2,3,1,13,0];

    GDownloadUrl(fileName, function(data) {
      var xml = GXml.parse(data);
      var markers = xml.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markers.length; i++) {
        var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                parseFloat(markers[i].getAttribute("lng")));
        var infowindow = GXml.value(markers[i].getElementsByTagName("infowindow")[0]);
        var iconName = markers[i].getAttribute("icon");
        if (iconName == "myDarkRedIcon") useIcon = myDarkRedIcon;
        else if (iconName == "myDarkGreenIcon") useIcon = myDarkGreenIcon;
        else useIcon = myGreenIcon;
        var marker = new GMarker(point, {icon:useIcon});
        map.addOverlay(marker);
        marker.bindInfoWindow(infowindow);
      }
    });
}

function fontControls()
{
    if ($('fontControls'))
    {
        $('fontControls').insert({top: "<p>Change Text Size:</p>"});
    }
}
function findActiveLinks()
{
    // this bit searches through all the menu links and changes active colour of active link
    var x = $$('a');
    for(var i=0; i < x.length; i++)
    {
        var currentPath = window.location.pathname;
	var currentPage = currentPath.substring(currentPath.lastIndexOf('/') + 1);
	var linkPath = $(x[i]).href;
	var linkPage = linkPath.substring(linkPath.lastIndexOf('/') + 1);

        //this bit fixes href view
        view = getURLVariable("view");
        if (view != "") currentPage = currentPage + "?view=" + view;
	if (currentPage == linkPage || (linkPage == "index.php" && currentPage == ''))
	{
            $(x[i]).addClassName('active');
	}
    }
}

function homepageRotator () {
    if ($('image_rotator'))
    {
        x = $$('.image_holder');

        for( i=0; i < x.length; i++){
            if(i!=0){
                x[i].style.display = 'none';
	     }
	}
	end_frame = x.length -1;
        slideDuration = 4;
        slideDelay = 5000;
	startSlideshow(0, end_frame, slideDuration, slideDelay);
    }
}

function startSlideshow(start_frame, end_frame, slideDuration, slideDelay) {
	setTimeout(fadeInOut(start_frame,start_frame,end_frame, slideDuration, slideDelay), 1000);
}

function fadeInOut(frame, start_frame, end_frame, slideDuration, slideDelay) {
	return (function() {
		x = $$('.image_holder');
		Effect.Fade(x[frame], {duration: slideDuration});
		if (frame == end_frame) { frame = start_frame; } else { frame++; }
		lisAppear = x[frame];
		setTimeout("Effect.Appear(lisAppear, {duration: " + slideDuration + "});", 0);
		setTimeout(fadeInOut(frame, start_frame, end_frame, slideDuration, slideDelay), slideDelay);
	})

}

function setupMenu () {
    var x = $$('ul.mainnav ul');
    for(var i=0; i < x.length; i++)
    {
        $(x[i]).style.display = "none";
        if ($(x[i]).up("li").down("a")) {
            $(x[i]).up("li").down("a").addClassName('submenu');
            if ($(x[i]).up("li").down("a").hasClassName('active'))
            {
                $(x[i]).up("li").down("a").addClassName('active_submenu');
                $(x[i]).style.display = "block";
            }
        }
    }

    x = $$('ul.mainnav ul a.active');
    for(i=0; i < x.length; i++)
    {
        $(x[i]).up("ul").up("li").down("a").addClassName('active_submenu');
        $(x[i]).up("ul").style.display = "block";
    }

}