﻿var _acclaro_circles;
var _acclaro_circle_timeout = 0;
var _acclaro_circles_start_index = 2;
var _acclaro_circles_frame_count = 9;
var _acclaro_circles_frame_width = 60;
var _acclaro_circle_timeout_delay = 40;
var _acclaro_circles_root = '';

var _bg_click;

var _is_soundManager_init = false;
var _is_soundManager_ready = false;
var _sounds_init = false;

var _sounds_playing = new Object();

function playSound(sound, volume) {
    if (_is_soundManager_init && sound && sound.sID) {
        sound.setVolume(volume);

        sound.play({
            onfinish: function() {
                _sounds_playing[sound.sID] = false;
            }
		, onplay: function() {
		    _sounds_playing[sound.sID] = true;
		}
		, onerror: function() {
		    _sounds_playing[sound.sID] = false;
		}
        });
    }
}

function _soundManager_init() {
    if (soundManager && !_is_soundManager_init) {
        _is_soundManager_init = true;

        _acclaro_circles_root = $('#acclaro_root').val();
        if (!_acclaro_circles_root) _acclaro_circles_root = ''; 

        //soundManager.useFlashBlock = true; // optional - if used, required flashblock.css
        soundManager.url = _acclaro_circles_root + 'assets/swf/'; // required: path to directory containing SM2 SWF files
        soundManager.debugMode = false;

        soundManager.useFastPolling = true;
        soundManager.useHighPerformance = true;
        //soundManager.useHTML5Audio = true;

        soundManager.onready(_soundManager_ready);        
    }
}

function _soundManager_ready() {
    if (_is_soundManager_init && !_is_soundManager_ready) {
        _is_soundManager_ready = true;

        _bg_click = soundManager.createSound({
            id: 'bg_click',
            multiShot: true,
            multiShotEvents: true,
            url: _acclaro_circles_root + 'assets/audio/click.mp3'
        });

        _sounds_playing[_bg_click.sID] = false;
    }
}

function _acclaro_circle_timeout_work() {
    if (_acclaro_circles) {
        var o;
        var index = 3;
        var hover = 0;
        var processing = false;

        for (var i = 0; i < _acclaro_circles.length; i++) {
            o = 0;
            o = $(_acclaro_circles[i]);

            if (o) {
                hover = parseInt(o.data('hover'));
                index = parseInt(o.data('index'));

                if (index != _acclaro_circles_start_index || hover) {
                    index++;

                    if (index >= _acclaro_circles_frame_count) {
                        index = 0;
                    }

                    o.data('index', index);

                    o.css('background-position', '' + -1 * index * _acclaro_circles_frame_width + 'px 0px');

                    processing = true;
                }
            }
        }

        if (processing) {
            _acclaro_circle_timeout = setTimeout('_acclaro_circle_timeout_work()', _acclaro_circle_timeout_delay);
        } else {
            if (_acclaro_circle_timeout) {
                clearTimeout(_acclaro_circle_timeout);
                _acclaro_circle_timeout = 0;
            }
        }
    }
}

function _mouseenter_acclaro_circle() {
    if (this) {
        var t = $(this);

        if (t) {
            t.data('hover', '1');

            if (_acclaro_circle_timeout <= 0) {
                _acclaro_circle_timeout_work();
            }

            playSound(_bg_click, 100);
        }
    }
}

function _mouseleave_acclaro_circle() {
    if (this) {
        var t = $(this);

        if (t) {
            t.data('hover', '0');
        }
    }
}

function _init_acclaro_circles() {
    if (!_acclaro_circles) {
        _acclaro_circles = $('.acclaro_canvas .circle');
        
        if (_acclaro_circles) {
            _acclaro_circles.data('init', '1');
            _acclaro_circles.data('hover', '0');
            _acclaro_circles.data('index', _acclaro_circles_start_index);
            _acclaro_circles.hover(_mouseenter_acclaro_circle, _mouseleave_acclaro_circle);
        }

        _soundManager_init();
    }
}

_soundManager_init();
