// make a global map var
global_google_map = 0;

var home={

    email1:"id",
    email2:"@",
    email3:"mx.kynan.net.au",

    flag:true,

    addEvent:function(elm, evType, fn, useCapture)
    {
        if (elm.addEventListener) 
        {
    	    elm.addEventListener(evType, fn, useCapture);
    		return true;
        }
    	else if(elm.attachEvent)
    	{ 
            var r = elm.attachEvent('on' + evType, fn);
            return r;
        }
    	else
    	{
            elm['on' + evType] = fn;
        }

		return true;
    },

    writeEmail:function(element_id, email1, email2, email3)
    {
        if(element = document.getElementById(element_id))
        {
            element.innerHTML = "<a href=\"mailto:" + email1 + email2 + email3  + "\">" + 'drop me a line' + "</a>";
        }
    },

	generateSyndicate:function(syndicate_size, syndicate_domain, syndicate_code_textarea)
	{
        syndicate_code_textarea.value = '<script id="flickrjson0101" type="text/javascript" src="http://'+syndicate_domain+'/index.php?h=FlickrJsonSlideshow01&key=flickrjson0101&width='+syndicate_size+'&height='+syndicate_size+'"></script><noscript><a href="http://'+syndicate_domain+'"><img src="http://farm4.static.flickr.com/3187/2712766991_365b8c4caf_m.jpg" alt="SeeingSystem slideshow online art project" /></a><p>Visit <a href="http://'+syndicate_domain+'">SeeingSystem</a>, an online art project that uses Flickr and javascript to make a slideshow of beautiful things.</noscript>';
	},

	generateMake:function(make_code_textarea, make_user_id, make_timeout_interval, make_fade_speed, make_width, make_height, make_tags, make_placeholder, make_copy, make_domain)
	{
        make_code_textarea_value = '<script id="flickrjson0102" type="text/javascript" src="http://'+make_domain+'/index.php?h=FlickrJsonSlideshow01&key=flickrjson0102';

        if(make_user_id)
        {
	        make_code_textarea_value = make_code_textarea_value+'&user_id='+make_user_id;
        }

        if(make_timeout_interval)
        {
	        make_code_textarea_value = make_code_textarea_value+'&timeout_interval='+make_timeout_interval;
        }

        if(make_fade_speed)
        {
	        make_code_textarea_value = make_code_textarea_value+'&fade_speed='+make_fade_speed;
        }

        if(make_tags)
        {
	        make_code_textarea_value = make_code_textarea_value+'&tags='+make_tags;
        }

        if(make_width)
        {
	        make_code_textarea_value = make_code_textarea_value+'&width='+make_width;
        }

        if(make_height)
        {
	        make_code_textarea_value = make_code_textarea_value+'&height='+make_height;
        }

	    make_code_textarea_value = make_code_textarea_value+'"></script>';
	    make_code_textarea_value = make_code_textarea_value+'<noscript>';
	
        if(make_placeholder)
        {
	        make_code_textarea_value = make_code_textarea_value+'<a href="http://'+make_domain+'"><img src="'+make_placeholder+'" alt="" /></a>';
        }

        if(make_copy)
        {
	        make_code_textarea_value = make_code_textarea_value+'<p>'+make_copy+'</p>';
        }

	    make_code_textarea_value = make_code_textarea_value+'</noscript>';

        make_code_textarea.value = make_code_textarea_value;
	},

	playPause:function(play_pause_element)
	{
		slideshow_ss_seeingsysteheight.stmpStart();
	
		if(play_pause_element)
		{
			if(home.flag)
			{
				home.flag = false;
				play_pause_element.innerHTML = "&quot;";
			}
			else
			{
				home.flag = true;
				play_pause_element.innerHTML = "&gt;";
			}
		}
		return false;
	},
	
	blind:function(element_id, flags)
	{
        //IE7 = (navigator.appVersion.indexOf("MSIE 7.")==-1) ? false : true;
        IE = (navigator.appName == "Microsoft Internet Explorer") ? true : false;

		if(flags[element_id] != "closed")
		{
            if(element = document.getElementById(element_id))
            {
                if(IE)
                {
                    element.style.display = 'none';
                }
                else
                {
			        Effect.BlindUp(element_id, { duration: .5 });
                }
            }
	
	
			flags[element_id] = "closed";
		}
		else
		{
            if(element = document.getElementById(element_id))
            {
                if(IE)
                {
                    element.style.display = 'block';
                    element.style.height = '100%';
                    //Effect.ScrollTo(element_id+'-h2', {duration: .5});
                }
                else
                {
			        Effect.BlindDown(element_id, {duration: .5, afterFinish: function(element) { Effect.ScrollTo(element_id+'-h2', {duration: .5});}});
                }
            }
	
			flags[element_id] = "open";
		}
	},
	
	windowOnload:function()
	{

        home.writeEmail("kynan-email", home.email1, home.email2, home.email3);

        // Set te googlemap
        if(googlemap_div = document.getElementById("map"))
        {
            global_google_map = new GMap2(googlemap_div);
		    global_google_map.setMapType(G_SATELLITE_MAP);
	        home.googlemap_load();
        }

		var flags = new Array();
	
		home.blind('info-copy',flags);
		home.blind('tag-cloud',flags);
		home.blind('syndicate',flags);
		home.blind('make',flags);
		home.blind('comments',flags);
	
        // Generates the code for the "Share it" feature 
		var syndicate = document.getElementById("syndicate");
		syndicate.onclick = function (evt) {

			// Event tweaks, since IE wants to go its own way...
	 		var event = evt || window.event;
	 		var target = event.target || event.srcElement;

	 		var id = target.getAttribute("id");

            // Is it the syndicate code generation button?
            if(id == 'generate-syndicate-code-button')
            {
                if(syndicate_code_textarea = document.getElementById('syndicate-code-textarea'))
                {
                    if(syndicate_form = document.getElementById('syndicate-form'))
                    {
                        var syndicate_size_input = syndicate_form.syndicate_size;
                        var syndicate_domain_input = syndicate_form.syndicate_domain;
                        var syndicate_size = syndicate_size_input.value; 
                        var syndicate_domain = syndicate_domain_input.value; 

                        home.generateSyndicate(syndicate_size, syndicate_domain, syndicate_code_textarea);
                    }
                }
            }
        }

        // Generates the code for the "Make Your Own" feature 
		var make = document.getElementById("make");
		make.onclick = function (evt) {

			// Event tweaks, since IE wants to go its own way...
	 		var event = evt || window.event;
	 		var target = event.target || event.srcElement;

	 		var id = target.getAttribute("id");

            // Is it the syndicate code generation button?
            if(id == 'generate-make-code-button')
            {
                if(document.getElementById('make-code-textarea'))
                {
                    var make_code_textarea = document.getElementById('make-code-textarea');

                    if(document.getElementById('make-form'))
                    {
                        var make_form = document.getElementById('make-form');
						var make_user_id = make_form.user_id.value;
						var make_timeout_interval = make_form.timeout_interval.value;
						var make_fade_speed = make_form.fade_speed.value;
						var make_width = make_form.width.value;
						var make_height = make_form.height.value;
						var make_tags = make_form.tags.value;
						var make_placeholder = make_form.placeholder.value;
						var make_copy = make_form.copy.value;
						var make_domain = make_form.make_domain.value;

                        home.generateMake(make_code_textarea, make_user_id, make_timeout_interval, make_fade_speed, make_width, make_height, make_tags, make_placeholder, make_copy, make_domain);
                    }
                }
            }
        }

		var wrap = document.getElementById("wrap");
		wrap.onclick = function (evt) {
			// Event tweaks, since IE wants to go its own way...
	 		var event = evt || window.event;
	 		var target = event.target || event.srcElement;
	 		//var href = "Link's href: " + target.getAttribute("href") + "\n\n";
	 		var div_id = target.getAttribute("title");
	 		// Completely simplifying below
	 		//var text = "Link's text: " + target.innerHTML;
			if(div_id)
			{
	 			home.blind(div_id, flags);
			    return false;
			}
		}
	},
	
	googlemap_load:function ()
	{
	    if(GBrowserIsCompatible())
	    {
	        //http://maps.google.com/maps?f=q&hl=en&geocode=&q=95+heath+road+pretty+beach&sll=37.0625,-95.677068&sspn=41.360684,83.320312&ie=UTF8&z=16&iwloc=addr
	        global_google_map.setCenter(new GLatLng(-77.6176986694, 28.476600647), 10);
	        global_google_map.addControl(new GSmallMapControl());
	        global_google_map.addControl(new GMapTypeControl());
	    }
	},

    getBrowserHeight: function(){
        if( window.innerHeight && window.scrollMaxY ){ // Firefox 
            pageHeight = window.innerHeight + window.scrollMaxY;
        }else if( document.body.scrollHeight > document.body.offsetHeight ) // all but Explorer Mac
        {
            pageHeight = document.body.scrollHeight;
        }else{ // works in Explorer 6 Strict, Mozilla (not FF) and Safari 
            pageHeight = document.body.offsetHeight + document.body.offsetTop; 
        }
        return pageHeight;          
    }
}

//Patch for scriptaculous. K
Effect.ScrollTo = function(element) {
  var options = arguments[1] || { },
    scrollOffsets = document.viewport.getScrollOffsets(),
    elementOffsets = $(element).cumulativeOffset(),
    max = home.getBrowserHeight() - document.viewport.getHeight();  

  if (options.offset) elementOffsets[1] += options.offset;
  return new Effect.Tween(null,
    scrollOffsets.top,
    elementOffsets[1] > max ? max : elementOffsets[1],
    options,
    function(p){ scrollTo(scrollOffsets.left, p.round()) }
  );
};

home.addEvent(window, 'load', home.windowOnload, false);
