/*
Copyright (c) 2010 STRAIGHTLINE<http://www.straightline.jp/> All rights reserved.
*/

/* 
    Extra Init
*/
var ExtraInit = new Class({
    Implements: Options,
    options: {
    },
    initialize: function(options) {
        this.setOptions(options);
        
        var weekShort = new Array('sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat');
        var date = new Date();
        var week = date.getDay();
        var hour = date.get('hr');
        var minutes = date.get('min');
        var idName = null;

        if (hour >= 9 && hour <= 11 || (hour == 8 && minutes >= 30)) {
            idName = weekShort[week] + '-am';
        }
        if (hour >= 14 && hour <= 16 || (hour == 13 && minutes >= 30) || (hour == 17 && minutes <= 30)) {
            idName = weekShort[week] + '-pm';
        }
        if ($defined($(idName))) {
            $(idName).addClass('active-clinic-hours');
        }
        $$('.en').each(function(en) {
            en.set('text', en.get('text').replace(/\-/, ' '));
        });
        
    }
});

/* 
    Grobal Nav
*/
var GrobalNav = new Class({
	Implements: [Options,Events],
    options: {
		onAnchorClick: $empty,
		onComplete: $empty
    },
    initialize: function(options) {
        this.setOptions(options);
    },
    
    create: function() {
        var header = $('header');
        header.getParent('.grid-item').setStyle('overflow', 'visible');
        
        var ul = new Element('ul');
        var anchors = new Array();
        
        $$('.widget-title').each(function(widgetTitle, i) {
            
            if (widgetTitle.getStyle('display') != 'none') {
                var text = widgetTitle.getElement('.ja').get('text');
                var hash = widgetTitle.getParent('div').get('id');
                var a = new Element('a', {
                    'class': 'attach-tip',
                    href: '#' + hash,
                    html: '&bull; '  + text,
                    title: '[' + text + ']をこのメニューの下に移動します'
                });
                if (i == 0) {
                    a.addClass('global-nav-focused');
                    $(hash).getParent('.grid-item').addClass('grid-item-focused');
                }
                anchors.push(a);
                
                a.addEvents({
                    click: function(event) {
                        event.stop();
                        
                        var id = a.hash.split('#')[1];
                        anchors.each(function(anchor) {
                            anchor.removeClass('global-nav-focused');
                            if (id == anchor.hash.split('#')[1]) {
                                anchor.addClass('global-nav-focused');
                            }
                        });
                        
                        var targetGridItem = $(id).getParent('.grid-item');

                        //if (targetGridItem.hasClass('grid-item-focused') == false && $defined(Browser.Platform.ipod) == false) {
                        if (targetGridItem.hasClass('grid-item-focused') == false) {
                            targetGridItem.addClass('grid-item-rotate');
                        }
                        
                        $$('.grid-item').each(function(gridItem) {
                            gridItem.removeClass('grid-item-focused');
                        });
                        
                        targetGridItem.addClass('grid-item-focused');
                        targetGridItem.setStyle('left', targetGridItem.getCoordinates($('wrapper').getElement('.grid')).left);
                        
                        if ($defined(targetGridItem.getParent('#header-wrapper')) == false) {
                            castGridItem = header.getParent('.grid').getElements('.grid-item').getLast().dispose();
                            if ($('post-wrapper')) {
                                castGridItem.inject($('post-wrapper'), 'after');
                            } else {
                                castGridItem.inject(header.getParent('.grid-item'), 'after');
                            }
                        }
                        
                        targetGridItem = targetGridItem.dispose();
                        targetGridItem.inject(header, 'after');
                        
                        
                        this.fireEvent('anchorClick');
                        /*
                        (function() { 
                            targetGridItem.style.webkitTransform = 'rotateZ(-20deg)';
                        }).delay(1);
                        (function() { 
                            targetGridItem.style.webkitTransform = 'rotateZ(10deg)';
                        }).delay(500);
                        (function() { 
                            targetGridItem.style.webkitTransform = 'rotateZ(-5deg)';
                        }).delay(1000);
                        (function() { 
                            targetGridItem.style.webkitTransform = 'rotateZ(2deg)';
                        }).delay(1500);
                        (function() { 
                            targetGridItem.style.webkitTransform = 'rotateZ(0)';
                        }).delay(2000);
                        */
                        (function() { 
                            targetGridItem.removeClass('grid-item-rotate');
                        }).delay(2500);
                    }.bind(this)
                    
                    /*
                    mouseenter: function() {
                        var id = a.hash.split('#')[1];
                        var targetGridContent = $(id).getParent('.grid-content');
                        targetGridContent.setStyle('background-color', '#F7F4F3');
                    },
                    
                    mouseleave: function() {
                        var id = a.hash.split('#')[1];
                        var targetGridContent = $(id).getParent('.grid-content');
                        targetGridContent.setStyle('background-color', '#fff');
                    }
                    */
                });
                var li = new Element('li');
                li.adopt(a);
                ul.adopt(li);
            }
        }.bind(this));
        
        var globalNav = new Element('div', { id: 'global-nav', 'class': 'clearfix' });
        globalNav.adopt(ul);
        globalNav.inject($('title'), 'after');
        
        this.fireEvent('complete');
    }
});

