$(document).ready(function () {             
    function Run() {   
        // Инициализация    
        var services            = ['xiro','nogti','haracter'];
        var SERVICE_NOW         = START_SERVICE;
        // Если сервис задан через GET параметр, устанавливаем его
        SetServiceName(GetUrlVars()['service']);          
        var jQ                  = jQuery.noConflict();  
        var href                = 'javascript: void(0);';   
        var CHECK_PASS_URL      = SITE_URL + 'ajax_check_pass.php';
        var SMS_URL             = SITE_URL + 'smsloadinfo.php';
        var SERVICE_URL         = SITE_URL + 'service/';        
        var SERVICE_NOW_URL     = SERVICE_URL + SERVICE_NOW + '/';    
        var AJAX_URL            = SERVICE_NOW_URL + 'ajax.php';   
        var RESULT_URL          = SERVICE_NOW_URL + 'result_build.php';           
        var STEP_COUNT          = 0;
        var STEP_NOW            = 0;
        var ANSWERS_USER        = [];
        var CheckThisStep       = null;
        var data_for_ajax       = null;

        // Подменяем ссылки в меню
        jQ('#menu_service a').attr('href',href);
        // Обработчик выбора сервиса
        jQ('#menu_service a').click(function(){
            var name = jQ(this).attr('name');
            ViewService(name);
        });  
        
        // Настройка всплывающего окна
        hs.graphicsDir = SITE_URL + 'images/highslide/';
        hs.outlineType = 'rounded-white';
        hs.lang = {
            creditsText: ''
        };        

        // Обработчик кнопки "Дальше"
        jQ('#submit_step_next').click(function() {
            // Если задана функция проверки текущего шага, выполняем
            if (typeof(CheckThisStep) == 'function') {
                // Если проверка успешна, переходим к следующему шагу
                if (CheckThisStep()) {
                    // Удаляем текущую функцию проверки
                    CheckThisStep = null;                 
                }
                else
                    return false;
            }      
            // Переходим к следующему шагу
            ViewNextStep();     
        });    
        // Обработчик кнопки "Назад"
        jQ('#submit_step_back').click(function(){         
            // Переходим к предыдущему шагу
            ViewNextStep(null,STEP_NOW-1);     
        });   

        // Функция отрисовки следующего шага
        function ViewNextStep(e,step) {    
            STEP_NOW++;

            if (typeof(step) != 'undefined') STEP_NOW = step;
            var getData = '';
            getData += 'step='+STEP_NOW;
            getData += '&data='+data_for_ajax;            
            getData += '&callback=?';
            // Производим отправку данных, добавляя get запрос и функцию обратного вызова
            jQ.getJSON(AJAX_URL+'?'+getData, function(json) {
                jQ('#loading').hide();                
                // Очищаем низ
                jQ('#footer').empty();
                jQ('#middle').empty();
                jQ('#middle').append(json.html);
                eval(json.js);

                // Выводим заголовок страницы
                jQ('title').text(jQ('#title').text());
                
                // Показываем кнопку "Дальше"
                jQ('#submit_step_next').show(); 
                
                // Показываем кнопку "Назад"                  
                if (STEP_NOW > 1)              
                    jQ('#submit_step_back').show();  
                else
                    jQ('#submit_step_back').hide();  

                // Выводим сколько осталось шагов
                jQ('#step_remain').empty();
                jQ('#step_remain').append('<br>Осталось вопросов: <strong>'+(STEP_COUNT - STEP_NOW)+'</strong>');
                scrollTo('#xiro-container',0);                         
            });
        }
        // Получение СМС данных
        function LoadSMSInfo()
        {
            // Загружаем информацию о смс
            jQ.getJSON(SMS_URL+'?callback=?', function (json)
            {                
                var data = json.code;
                jQ('#user_sms').append(data);
                jQ('#user_sms').show();
                // Скрываем индикатор загрузки
                jQ('#loading').hide();                                 
            });
        }
        // Проверка пароля
        function CheckUserPassword()
        {
            // Формируем GET запрос
            var getData = '';
            getData += 'password=' + encodeURIComponent(jQ('#user_pass').val());
            getData += '&callback=?';
            // Производим отправку данных, добавляя get запрос и функцию обратного вызова
            jQ.getJSON(CHECK_PASS_URL+'?'+getData, function (json)
            {
                if (json.code == 1) 
                    ViewNextStep(); 
                else 
                    alert('Неверный пароль!');
            });
        }    
        // Скрол
        function scrollTo(id, deviation) {
            var offset = jQ(id).offset();
            window.scrollTo(0, offset.top + deviation);
        }    
        // Показываем новый сервис, выбранный в меню
        function ViewService(name) {  
            SetServiceName(name);
            Clear();
            ReInitialization();
            ViewNextStep();   
        }
        // Очистка
        function Clear() {    
            jQ('title').text('Гадание на любовь');
            jQ('#footer').empty();
            jQ('#middle').empty();
            jQ('#step_remain').empty();
            jQ('#submit_step_next').hide(); 
            jQ('#bottom').show();             
            jQ('#loading').show();   
            scrollTo('#xiro-container',0);  
        }     
        // Повторная инициализация        
        function ReInitialization() {                     
            STEP_COUNT          = 0;
            STEP_NOW            = 0;
            ANSWERS_USER        = [];   
            SERVICE_NOW_URL     = SERVICE_URL + SERVICE_NOW + '/';    
            AJAX_URL            = SERVICE_NOW_URL + 'ajax.php'; 
            RESULT_URL          = SERVICE_NOW_URL + 'result_build.php';  
            data_for_ajax       = null;
        }  
        // Возвращает GET параметры URL
        function GetUrlVars() {
            var vars = [];
            var hash = '';            
            var hashes = document.location.href.slice(document.location.href.indexOf('?') + 1).split('&');
            for(var i = 0; i < hashes.length; i++) {
                hash = hashes[i].split('=');
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
            return vars;
        }     
        // Проверяет имя сервиса на допустимость
        // Если разрешено, устанавливает как текущий сервис
        function SetServiceName(service) {
            if (typeof(service) == 'string')
                for(var i=0; i<services.length; i++)
                    if(service == services[i])                         
                        SERVICE_NOW = service; 
        }     
        // Показываем индикатор загрузки
        jQ('#loading').show();           
        // Загружаем первый шаг
        ViewNextStep();
        //ViewNextStep(null,9);
    }          
    // Начальный запуск
    Run();    
});

