/**
 * @author BartekG
 */

loadSubFolder = function(el,url) {
    var parentDiv = el.getParent('div');
    if (!el.getParent('div').getElement('h3')) var parentDiv = el.getParent('div').getParent('div');
    var div = new Element('div');
    var fx = new Fx.Tween(parentDiv);
    var head = parentDiv.getElement('h3');
    var headFx = new Fx.Tween(head);
    var spanDummy = head.getElement('span');
    var loadFx = new Fx.Tween(div,{wait:false});
    parentDiv.getAllNext().each(function(e){e.destroy()});
    parentDiv.setStyle('overflow','hidden');
    parentDiv.store('height',parentDiv.getSize().y);
    fx.start('height','35px');
    headFx.start('color','#969696');
    div.inject($('col-1'));
    div.setStyles({
        'background-color':'#fff',
        'overflow':'hidden',
        'position':'relative'
    });
    head.addClass('active');
    spanDummy.inject(head).setStyle('display','block').fade('hide').fade(1);
    spanDummy.addEvent('mouseenter', function(){this.addClass('hover')});
    spanDummy.addEvent('mouseleave', function(){this.removeClass('hover')});
    var prevHeight = parentDiv.getSize().y + 'px';
    var req = new Request({
        url:url,
        onRequest: function() {
            if(parentDiv.getElement('div#map')) parentDiv.getElement('div#map').fade(0);
            div.addClass('loading');
            loadFx.start('height',['0',prevHeight]);
        },
        onComplete: function(txt) {
            var temp = new Element('div',{'class':'temphide'});
            temp.inject(div,'after').set('html',txt);
            var size = temp.getSize().y;
            temp.destroy();
            loadFx.start('height',size + 'px');
            var tempfx = new Element('div');
            (function() {
                div.removeClass('loading').set('html',txt);
                tempfx.setStyles({
                    'position':'absolute',
                    'height': size + 'px',
                    'width': '791px',
                    'top': 0,
                    'left': 0,
                    'background-color': '#fff'
                }).addClass('loading').inject(div).fade();
                if (!$('schoolsList')) addLoadEvents(div.getElements('li a'));
                else ajaxFilter();
                if($('selLet')) selLet();
             }).delay(500);
             (function(){tempfx.destroy()}).delay(1000);
        }
    }).send();
    if(head.hasClass('active')) {
        head.addEvent('mouseenter', function() {
            head.addClass('hover');
        });
        head.addEvent('mouseleave', function() {
            head.removeClass('hover');
        });
        head.addEvent('click', function() {
            if(parentDiv.getElement('div#map')) parentDiv.getElement('div#map').fade(1);
            head.removeClass('active');
            fx.start('height',parentDiv.retrieve('height') + 'px');
            headFx.start('color','#323232');
            spanDummy.fade(0);
            parentDiv.getAllNext().each(function(e){
                e.fade(0);
                (function(){e.destroy()}).delay(500);
            });
        });
    }
};
ajaxFilter = function() {
    if($('filter')) {
        var form = $('filter');
        form.addEvent('submit', function(e) {
            e.stop();
            var parent = form.getParent();
            parent.setStyle('height', parent.getSize().y).addClass('loading');
            this.set('send', {
                onRequest: function() {
                    parent.getElement('form').setOpacity('0.01');
                },
                onComplete: function(response) { 
                    parent.set('html', response);
                    parent.setStyle('height', 'auto');
                    parent.removeClass('loading');
                    if(parent.getElement('form')) ajaxFilter();
                }
            });
            this.send();
        });
    }
};
selLet = function() {
    $('selLet').getElements('a').each(function(el){
        el.addEvent('click', function(e){
            var e = new Event(e);
            e.preventDefault();
            var myFx = new Fx.Scroll(window).start(null,$(el.get('text')).getPosition().y - 20);
            var yourFx = new Fx.Morph($(el.get('text')));
            (function(){
                yourFx.start({
                    'border-color':'#8fb716',
                    'background-color':'#ecfab6'
                });
             }).delay(300);
            (function(){
                yourFx.start({
                    'border-color':'#fff',
                    'background-color':'#fff'
                });
             }).delay(1000);
        });
    });
};
addLoadEvents = function(sel) {
    sel.each(function(el){
        el.addEvent('click', function(e){
            var e = new Event(e);
            e.preventDefault();
            loadSubFolder(el,el.get('href'));
        });
    });
}
map = function() {
    var layer0 = $('map').getElement('img');
    //var layer1 = layer0.clone().inject(layer0,'before').erase('usemap').erase('id').addClass('layer1');
    if($('map').hasClass('australia')) {
        var bg = new Element('div',{'id':'bg','class':'australia'});
        bg.wraps($('map'));
    }
    $$('#map area').each(function(el){
        el.addEvent('mouseover',function(){
            if(el.get('alt')=='Wales') {
                el.getParent().getParent().setStyle('background-position','0 -1365px');
                layer0.fade(0.01);
            }
            else if (el.get('alt')=='England') {
                el.getParent().getParent().setStyle('background-position','0 0');
                layer0.fade(0.01);
            }
            else if (el.get('alt')=='Scotland') {
                el.getParent().getParent().setStyle('background-position','0 -910px');
                layer0.fade(0.01);
            }
            else if (el.get('alt')=='Northern Ireland') {
                el.getParent().getParent().setStyle('background-position','0 -455px');
                layer0.fade(0.01);
            }
            else if (el.get('alt')=='Western Australia') {
                el.getParent().getParent().setStyle('background-position','0 0');
                layer0.fade(0.01);
            }
            else if (el.get('alt')=='Northern Territory') {
                el.getParent().getParent().setStyle('background-position','0 -395px');
                layer0.fade(0.01);
            }
            else if (el.get('alt')=='Northern Territory') {
                el.getParent().getParent().setStyle('background-position','0 -395px');
                layer0.fade(0.01);
            }
            else if (el.get('alt')=='Queensland') {
                el.getParent().getParent().setStyle('background-position','0 -790px');
                layer0.fade(0.01);
            }
            else if (el.get('alt')=='New South Wales') {
                el.getParent().getParent().setStyle('background-position','0 -1186px');
                layer0.fade(0.01);
            }
            else if (el.get('alt')=='Australian Capital Territory') {
                el.getParent().getParent().setStyle('background-position','0 -1582px');
                layer0.fade(0.01);
            }
            else if (el.get('alt')=='Victoria') {
                el.getParent().getParent().setStyle('background-position','0 -1976px');
                layer0.fade(0.01);
            }
            else if (el.get('alt')=='Tasmania') {
                el.getParent().getParent().setStyle('background-position','0 -2372px');
                layer0.fade(0.01);
            }
            else if (el.get('alt')=='South Australia') {
                el.getParent().getParent().setStyle('background-position','0 -2767px');
                layer0.fade(0.01);
            }
        });
        el.addEvent('mouseleave',function(e){
            layer0.fade(1);
        });
        el.addEvent('click',function(e){
            var e = new Event(e);
            e.preventDefault();
            loadSubFolder($('map'),el.get('href'));
        });
    });
};

window.addEvent('domready',function(){
    if ($('searchSchool')) {
        roundCorn($('searchSchool'), 'rc/blue', 'gif', 7, 7, 2);
        map();
    }
    else if($('map')) {
        map();
    }
    else if($('form')) {
        $$('form dd:last-child').addClass('last');
    }
    else addLoadEvents($$('.ajax li a'));
    $$('label.required').each(function(el){
        if(el.get('html').lastIndexOf('*')>0) {
            el.set('html',el.get('html').substr(0,el.get('html').lastIndexOf('*'))+':<em class="req">&bull;</em>');
        }
    });
});

//MooTools More, <http://mootools.net/more>. Copyright (c) 2006-2008 Valerio Proietti, <http://mad4milk.net>, MIT Style License.

Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);var D=this.cancel.bind(this,false);
if($type(this.element)!="element"){this.element=$(this.element.getDocument().body);}var C=this.element;if(this.options.wheelStops){this.addEvent("start",function(){C.addEvent("mousewheel",D);
},true);this.addEvent("complete",function(){C.removeEvent("mousewheel",D);},true);}},set:function(){var A=Array.flatten(arguments);this.element.scrollTo(A[0],A[1]);
},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B.push(Fx.compute(E[F],D[F],C));});return B;},start:function(C,H){if(!this.check(arguments.callee,C,H)){return this;
}var E=this.element.getSize(),F=this.element.getScrollSize();var B=this.element.getScroll(),D={x:C,y:H};for(var G in D){var A=F[G]-E[G];if($chk(D[G])){D[G]=($type(D[G])=="number")?D[G].limit(0,A):A;
}else{D[G]=B[G];}D[G]+=this.options.offset[G];}return this.parent([B.x,B.y],[D.x,D.y]);},toTop:function(){return this.start(false,0);},toLeft:function(){return this.start(0,false);
},toRight:function(){return this.start("right",false);},toBottom:function(){return this.start(false,"bottom");},toElement:function(B){var A=$(B).getPosition(this.element);
return this.start(A.x,A.y);}});