/******* CONTACT FORM *******/

function clearInput(field){
    if (field.defaultValue == field.value) field.value = '';
    else if (field.value == '') field.value = field.defaultValue;
}


function submitContact(event) {
    dojo.stopEvent(event);
    var params = new Object();
    params['useAjax'] = 'true';
    dojo.xhrPost({
      form: 'contact',
      content: params,
      handleAs: 'json',
      load: function(data) {
        console.log(data);
        var msg = data.message;
        dojo.byId('contactResponse').innerHTML = msg;
      },
      error: function(error) {
        console.log(error);
      }
    }) // xhrPost()
}

function submitNewsletter(event) {
    dojo.stopEvent(event);
    var params = new Object();
    params['useAjax'] = 'true';
    dojo.xhrPost({
      form: 'newsletter',
      content: params,
      handleAs: 'json',
      load: function(data) {
        console.log(data);
        var msg = data.message;
        dojo.byId('newsletterResponse').innerHTML = msg;
      },
      error: function(error) {
        console.log(error);
      }
    }) // xhrPost()
}


/********* PAGE ANIMATIONS **********/

function animPage(oldselected, name) {
    dojo.style(name, {
            'visibility': 'visible',
            'opacity': 0
            });
    if (oldselected!="") {
        var textfadeout = dojo.query(".textbox"+oldselected).fadeOut({
                duration:400
            });
        var backfadeout = dojo.query(".background"+oldselected).fadeOut({
                duration:400
            });
        var fadeout = dojo.fadeOut({
                node:oldselected,
                duration:800,
                onEnd:function(){
                    dojo.style(oldselected, {'visibility':'hidden' });
                }
            });
    }
    var fadein = dojo.fadeIn({
            node:name,
            duration:800
        });
    var backfadein = dojo.query(".background"+name).animateProperty({
            duration:800,
            delay:700,
            properties:{ opacity:0.8 }
        });
    var textfadein = dojo.query(".textbox"+name).fadeIn({
            duration:800,
            delay:700,
            onEnd: function() { animRunning = false; }
        });
    
    if (oldselected=="") dojo.fx.combine([fadein,backfadein,textfadein]).play();
    else dojo.fx.combine([textfadeout,backfadeout,fadeout,fadein,textfadein,backfadein]).play();
}

function animNavi(id, name) {
    var i;
    for (i=0; i<numMenuItems; i++) {
        var linkid = "link_" + i;
        var itemTop = i*menuOffset;
        if (i >= id) itemTop += selectedSpace;
        if (i >  id) itemTop += selectedSpace;
        if (menuAnimHandlers[i]) menuAnimHandlers[i].stop(true);

        if (i == id) {
            menuAnimHandlers[i] = dojo.animateProperty({
                    node:linkid,
                    properties: {
                        top: { end: itemTop, units:"px" },
                        color: '#FF0000',
                            fontSize: { end:42, units:"px" }
                    },
                        duration:500
                        }).play();
        } else {
            menuAnimHandlers[i] = dojo.animateProperty({
                    node:linkid,
                    properties: {
                        top: { end: itemTop, units:"px" },
                        color: '#FFFFFF',
                            fontSize: { end:34, units:"px" }
                    },
                        duration:500
                        }).play();
        }
    }
    for (i=numMenuItems; i<pages.length; i++) {
        var linkid = "link_" + i;
        if (menuAnimHandlers[i]) menuAnimHandlers[i].stop(true);
        if (i == id) {
            menuAnimHandlers[i] = dojo.animateProperty({
                    node:linkid,
                    properties: { color: '#FF0000' },
                        duration:500
                        }).play();
        } else {
            menuAnimHandlers[i] = dojo.animateProperty({
                    node:linkid,
                    properties: { color: '#FFFFFF' },
                        duration:500
                        }).play();
        }
    }
}

function initHandlers() {
    if (!Array.prototype.indexOf)
	{
	    Array.prototype.indexOf = function(elt /*, from*/)
	    {
		var len = this.length;

		var from = Number(arguments[1]) || 0;
		from = (from < 0)
		? Math.ceil(from)
		: Math.floor(from);
		if (from < 0)
		    from += len;

		for (; from < len; from++)
		    {
			if (from in this &&
			    this[from] === elt)
			    return from;
		    }
		return -1;
	    };
	}


    dojo.connect(dojo.byId('contactsubmit'), 'onclick', submitContact);
    dojo.connect(dojo.byId('newslettersubmit'), 'onclick', submitNewsletter);

    /*    dojo.query(".gallerylink").onclick(function(event){
            openGallery(event);
            event.preventDefault();
            }); */

    dojo.query(".pagelink").onclick(function(event){
            this.blur();
            var id = this.id.substr(5);
            var name = pages[id];
	    event.preventDefault();
            if (animRunning || selected==name) {
                return;
            }

      	    dojo.hash(name);

            if (this.id.substr(0,4)=="bott") {
                dojo.animateProperty({
                    node:this,
                        properties: { color: '#FFFFFF' }, 
                        duration:200
                        }).play();
            }

	});


    dojo.subscribe("/dojo/hashchange", function(name) {
	    var id = pages.indexOf(name);
	    if (id==-1) {
		dojo.hash("home");
		return;		
	    }
            /*            if (galleryOpen) {
                closeGallery();
                event.preventDefault();
                } */
            animRunning = true;
            animNavi(id, name);
            animPage(selected,name);
            selectedId = id;
            selected = name;
        });

    dojo.query(".menulink").onmouseover(function(){
            var id = this.id.substr(5,1);
            if (id != selectedId) menuAnimHandlers[id] = dojo.animateProperty({
                    node:this,
                        properties: { color: '#FF8888' }, 
                        duration:200
                        }).play();
    });
    dojo.query(".menulink").onmouseout(function(){
            var id = this.id.substr(5,1);
            if (id != selectedId) menuAnimHandlers[id] = dojo.animateProperty({
                    node:this,
                        properties: { color: '#FFFFFF' }, 
                        duration:200
                        }).play();
    });
}

