Разработка информационной системы "Библиотека СТК"

 

Введение


К настоящему времени компьютеры прочно завоевали одно из первых мест в современной жизни человека, и обойтись без них практически невозможно. С их помощью производятся сложнейшие расчеты в военной и космической промышленности, упрощается ведение экономической деятельности предприятия, облегчаются сбор, обработка, хранение и передача информации и осуществляется огромное число других не менее важных функций. Практически любой процесс, автоматизированный компьютером, становится более эффективным, относительно надежным и наглядным, выполняется за значительно меньшее количество времени и является экономически более выгодным. Роль автоматизации многих процессов, окружающих человека, сегодня настолько велика, что индустрия программного обеспечения не справляется с объемом поставленных перед ней задач.

Тема дипломного проекта - «Разработка информационной системы «Библиотека СТК»».

Программа предназначена для автоматизации обработки информации по библиотеке СТК.

Для реализации дипломного проекта выбран компьютер типа IBM PC, функционирующий под управлением Windows XP Professional, а так же:

Встроенный язык программирования 1С: Предприятие - язык программирования, который используется в семействе программ «1С: Предприятие». Данный язык является предварительно компилируемым предметно-ориентированным языком высокого уровня.


1. Общий раздел


.1 Характеристика ПК


Для выполнения дипломного проекта выбран персональный компьютер типа IBM PC. Компьютеры этого типа являются наиболее распространенными, сравнительно дешевыми, операционные системы и программное обеспечение, которые используются на данном типе компьютеров, легко доступны.

У персональных компьютеров типа IBM PC существуют как недостатки, так и достоинства.

К достоинствам можно отнести такие качества:

невысокая стоимость;

высокая надежность и простота ремонта;

простота модернизации, обслуживания и диагностики;

быстродействие и высокая производительность;

наличие программного обеспечения, охватывающего практически все сферы человеческой деятельности, а также мощных систем для разработки нового программного обеспечения.

К недостаткам можно отнести такие качества:

невозможность поддержки программного обеспечения, написанного для другого типа компьютеров;

при обработке огромных объемов информации или выполнения определенных задач по обработке мультимедийной информации оказывается нецелесообразным использование компьютеров данного типа.

Существует базовая конфигурация компьютера, совокупность устройств, без которых компьютер не сможет функционировать. В нее входят такие элементы:

а) монитор - устройство, предназначенное для отображения текстовой и графической информации;

б) системный блок;

в) клавиатура - устройство, необходимое для ввода информации в компьютер;

г) мышь - это оптикомеханический манипулятор, предназначенный для ввода информации и управлением компьютера.

В состав системного блока входят следующие устройства:

материнская плата;

процессор;

оперативная память;

накопители на жестких дисках;

видеоадаптер;

блок питания.

Материнская плата - это микросхема, обрабатывающая данные с помощью процессора, управляет внутренними связями (коммутацией), с помощью системных прерываний взаимодействует с внешними устройствами. На материнской плате расположены центральный процессор, оперативная память, системная и локальная шины, порты, разъемы, в которые вставляются, выполненные в виде отдельных плат, графический адаптер, звуковая карта, контроллеры жестких и гибких дисков. Существуют материнские платы, в которых графический адаптер, звуковая карта, контроллеры и порты могут быть выполнены как её составные части. Процессор - устройство, которое выполняет поступающие на его вход команды. Его обязательными компонентами являются арифметико-логическое устройство и устройство управления. Оперативная память - это совокупность запоминающих устройств, предназначенных для записи, хранения и выдачи информации, представленной в виде цифровых кодов, а также кодов, выполняемых в данное время программ. Накопители на жестких дисках - постоянно закрепленный в дисководе жесткий магнитный диск или пакет дисков, заключенный вместе с головками записи-чтения в герметически закрытый корпус, предназначенный для хранения данных. Видеоадаптер - устройство, предназначенное для формирования, обработки изображения и выдачи соответствующих сигналов на монитор. Блок питания - это устройство, преобразующее электропитание сети в постоянный ток низкого напряжения, подаваемый на электронные микросхемы компьютера;

Техническая характеристика компьютера, используемого в дипломном проекте, представлена в таблице 1.


Таблица 1 - Техническая характеристика компьютера

ЭлементХарактеристикаМониторSamsung SyncMaster 2343NWМатеринская платаASUS A78 PRO Socket A+ПроцессорIntel Pentium Dual CPU E2140 1.60GHzОперативная памятьDDRII 2 GbHDD250Gb Barracuda 7200.10 ST3250310AS SATA-II 7200rpm 8MbFDDFDD 3.5? NecВидеокартаATI Radeon HD 2400 XTЗвуковая картаRealtek Hight Defination AudioCD/DVD-ROMTEAC DV-W516GBКлавиатураOKLICK HIDМышьGenius, HID-совместимая

1.2 Характеристика ОС ПК


Для реализации данного дипломного проекта выбрана операционная система Windows XP Professional. Windows XP совмещает в себе два семейства ОС. От семейства ОС Windows 2000 она унаследовала надежное и защищенное от сбоев ядро, от настольных ОС 9х Windows XP унаследовала множество дружественных пользователю функций и системных утилит. Windows XP является 64 - разрядной ОС.

Windows ХР содержит средства восстановления ОС, которые следят за состоянием системы благодаря сохраненному состоянию системных файлов и настроек и позволяет выполнять «откат», предшествующей конфигурации ОС, если новое приложение или драйвер вызывает проблемы. ХР следит за тем чтобы драйверы устройств, применяемые в системе, имели цифровую подпись, которая удостоверяет его совместимость с Windows ХР. Windows ХР обладает защитой входа в систему с помощью пароля и возможностью установки разрешений для файлов и папок, что дает возможность совместного использования компьютера другими пользователями. Каждый пользователь получает возможность настраивать интерфейс и ограничивать доступ к важным файлам. В состав ОС входит новая версия браузера IE 6.0, который отличается высокой степенью конфиденциальности. ОС поддерживает беспроводные сетевые подключения. Входят различные средства поддержки Multimedia, утилиты Windows Media Player, Movie Marker Важные свойства, присущие только версии Professional:

поддержка нескольких процессоров;

поддержка 64-х разрядных процессоров;

шифрующая файловая система EFS;

I I S;

создание динамических дисков;

К недостаткам данной ОС можно отнести потребление большого объема оперативной памяти, возникающие ошибки в работе с приложениями, невысокая защита от воздействия вирусов и деятельности хакеров.

Архитектура Windows XP основана на микроядерном подходе. Обладая небольшим ядром, окруженным набором взаимодействующих модулей. ОС изолирует наиболее важные процессы, связанные с работой центрального процессора и обработкой сигналов ввода / вывода от процессов, инициализированных пользовательскими приложениями. Каждое пользовательское приложение работает в своей собственной защищенной области памяти. Система способна обеспечить одновременную работу нескольких программ и обрабатывать большое количество приложений без сбоев. Благодаря этому Windows ХР намного стабильнее в работе.

Все модули ОС работают либо в пользовательском режиме, либо в режиме ядра. В пользовательском режиме работают подсистемы, которые обеспечивают множественность прикладной программной среды, обеспечивают выполнение программ, написанных для соответствующих ОС под управлением Windows ХР без их перекомпиляции. Windows ХР обеспечивает совместимость приложений UNIX и OS/2. Подсистема Win32 отвечает за вывод данных и ввод с клавиатуры, а так же за работу с библиотеками ОС. Каждая подсистема обладает программным интерфейсом API, понятным исполняемым в этой подсистеме приложений.

В режиме ядра работают четыре модуля, отвечающих за работу аппаратных средств и доступ к данным:

исполняющие службы Windows - осуществляют контроль работы системы безопасности, а так же за обработку сигналов ввода-вывода от периферийных устройств;

модули различных диспетчеров - осуществляют контроль работы виртуальной памяти, процессов, межпроцессорного взаимодействия;

микроядро - представляет собой набор команд, исполняемых процессором, производит координацию работы всей исполняемой системы;

уровень аппаратных абстракций (HAL) - обеспечивает взаимодействия различных аппаратных устройств.

Все модули, исполняемые в режиме ядра делятся на две группы:

доступные пользовательским приложениям через уровень исполняющей службы;

недоступные пользовательским приложениям.

При установке на ПК Windows XP генерирует ключ для каждого конкретного компьютера с учетом его конфигурации. Когда Windows XP активизируется, то сгенерированный ключ пересылается на сервер Microsoft.com и производит регистрацию.

При установке Windows XP существует возможность выбора файловой системы, устанавливаемой на диске. Среди возможных вариантов присутствует файловая система NTFS. NTFS - это файловая система, разработанная в качестве основной файловой системы для Windows NT, сейчас она применяется в Windows XP. Основными ее достоинствами являются поддержка больших файлов и дисков, восстанавливаемость после сбоев и отказов программ, обеспечение высокой скорости файловых операций, обеспечение низкой фрагментации файлов, обеспечение контроля доступа пользователей к каталогам и отдельным файлам. Улучшенная файловая система, обеспечивающая уровень быстродействия и безопасности, а также дополнительные возможности, недоступные ни в одной версии файловой системы FAT. Для обеспечения целостности данных тома в файловой системе NTFS используются стандартные технологии записи и восстановления транзакций. В случае сбоя компьютера целостность файловой системы восстанавливается с помощью файла журнала NTFS и данных о контрольных точках. В операционных системах Windows 2000 и Windows ХР файловая система NTFS также обеспечивает такие дополнительные возможности, как разрешения для файлов и папок, шифрование, дисковые квоты и сжатие.

Для нормальной загрузки ОС необходимо, чтобы на загрузочном диске присутствовали файлы NTLDR, BOOT.INI, NTDETECT.COM, NTBOOTDD.SYS, NTOSKRNL.EXE.

Для нормальной работы ОС Windows XP нужна следующая минимальная конфигурация компьютера: Pentium Celeron 233 Мгц, 64 Мб ОЗУ, 1,5 Гб на жестком диске. Рекомендованные требования: Pentium Celeron 300 Мгц, 128 Мб ОЗУ, 2 Гб.


1.3 Характеристика системы программирования


Для реализации дипломного проекта использовались:

С Язык программирования - язык программирования, который используется в семействе программ «1С: Предприятие». Данный язык является интерпретируемым предметно-ориентированным языком высокого уровня.

Средой исполнения языка является программная платформа «1С: Предприятие». Визуальная среда разработки («Конфигуратор») является неотъемлемой частью пакета программ «1С: Предприятие».

Диалекты языка для платформ 1С 6; 7 версий (7.0, 7.5, 7.7) совместимы «снизу вверх» с незначительными исключениями; языки для платформ 1С:6 и 1С:7х и 1С:8.0 несовместимы, хотя и похожи.

Платформой предоставляется фиксированный набор базовых классов, на основании которых можно создавать любое количество порождённых классов, наследующих их свойства и методы. Разработчик имеет возможность определять собственные дополнительные процедуры и функции, а также, с некоторыми ограничениями, свойства порождённых классов. Как правило, объекты порождённых классов представляют собой записи (или некоторые наборы записей) в базе данных. Допускается только одна явная ступень наследования классов. Не допускается переопределение процедур, описанных в базовых классах.

Поддерживаются русский и английский синтаксис команд.

Проекты на встроенном языке 1С: Предприятия называются конфигурациями. Распространение (продажа) и внедрение таких конфигураций это основная коммерческая деятельность фирм-партнеров 1С.

Рабочее название языка - 1Сик (одинэсик) - очень быстро исчезло из официальных источников. Сейчас при упоминании этого языка в письменных документах нужно писать 1С Язык программирования. Сейчас язык не имеет никакого названия, которое можно было бы произнести устно. Впрочем часто этот язык называют «встроенный язык», в контексте обсуждения 1С: Предприятия.

Объектно-ориентированные диалекты. Существует несколько дополнительных компонент, расширяющих основные классы, их свободное добавление и изменение; фирмой - разработчиком они не рекомендованы к использованию. Это означает, что фирма 1С и её франчайзеры отказываются от какой либо технической поддержки конфигураций использующих такие компоненты.

Так компонента 1С++ расширяет язык 1С средствами полноценного объектно-ориентированного программирования. Её использование значительно расширяет возможности конфигурирования 1С. Это открытый программный продукт, распространяемый под лицензией GPL.

Более того - существует полностью открытый проект 2C не использующий каких либо проприетарных модулей фирмы 1С или других производителей. Это переписанное «с нуля» свободно распространяемое под лицензией GPL расширяемое ядро 1С-подобной системы - в котором даже такие «встроенные объекты» 1C как справочники и регистры - переопределяемые прикладным программистом классы.

Язык платформы 2С проектировался с целью максимальной преемственности с существующими для 1С наработками, и является расширением базового языка 1С. Путём написания соответствующих базовых классов язык 2С может быть приближен как к 1С 7.7, так и к 1С 8.0, хотя 2С: Платформа и не может обеспечить 100% автоматическую переносимость конфигураций из той или иной версии 1С: Предприятия.



2. Технологический раздел


.1 Постановка задачи


Организационно - экономическая сущность задачи

Назначение задачи

Программа предназначена для автоматизации обработки информации по библиотеке СТК.

Цель решения задачи

Программа должна обеспечивать возможность выполнения следующих функций:

ведение БД по книжному фонду и читателям;

выдача книг читателю из библиотеки на определенный срок;

возврат книги читателем в библиотеку;

формирование библиотечной выписки и отчета по долгам читателя;.

решения задачи

Задача решается по мере необходимости.

Описательная модель задачи

Описание входной информации

Входная информация представлена в документах и данных.

Описание входных документов

данные из инвентарной книги;

паспортные данные читателей;

справочная информация об организации;

Описание входных данных

Входные данные представлены в таблице 6.


Таблица 2 - Входные данные

НаименованиеИдентификаторТип данныхРазрядностьИсточник данныхГородsltCityЧисловойЦелоеТаблица БД. Выбор из списка формыУлицаsltStreetЧисловойЦелоеТаблица БД. Выбор из списка формыДомsltHouseЧисловойЦелоеТаблица БД. Выбор из списка формы или текстовое поле формыФамилияtxtSurnameТекстовый50Текстовое поле формыИмяtxtNameТекстовый50Текстовое поле формыОтчествоtxtFathernameТекстовый50Текстовое поле формыДень рожденияsltBirthDayЧисловойЦелоеPHP скрипт. Выбор из списка формыМесяц рожденияsltBirthMonthЧисловойЦелоеPHP скрипт. Выбор из списка формыПродолжение таблицы 6 - Входные данныеНаименованиеИдентификаторТип данныхРазрядностьИсточник данныхГод рожденияsltBirthYearЧисловойЦелоеPHP скрипт. Выбор из списка формыСерия паспортаtxtSeriaЧисловой4Текстовое поле формыНомер паспортаtxtNomerЧисловой6Текстовое поле формыДень выдачи паспортаsltWhoDayЧисловойЦелоеPHP скрипт. Выбор из списка формыМесяц выдачи паспортаsltWhoMonthЧисловойЦелоеPHP скрипт. Выбор из списка формыГод выдачи паспортаsltWhoYearЧисловойЦелоеPHP скрипт. Выбор из списка формыАдрес регистрацииtxtAddressТекстовый1000Текстовое поле формыКвартираtxtKvartiraЧисловой4Текстовое поле формыПодъездtxtPodezdЧисловой2Текстовое поле формыЭтажtxtEtazhЧисловой3Текстовое поле формыДомашний телефонtxtPhoneЧисловой18Текстовые поля формыРабочий телефонtxtWorkЧисловой18Текстовые поля формыМобильный телефонtxtMobileЧисловой10Текстовые поля формыICQtxtIcqЧисловой20Текстовое поле формыEmailtxtEmailТекстовый50Текстовое поле формыКомментарийareaCommentТекстовый500Текстовая область формыТарифradTarifЧисловойЦелоеPHP скрипт. Выбор из радиогруппыОткуда узнали о компанииsltKnowFromЧисловойЦелоеТаблица БД. Выбор из списка формыКонтрольный вопросtxtQuestionТекстовый100Текстовое поле формы

Описание выходной информации Выходная информация представлена документами и данными

Описание выходных документов

Выходные документы: отчёт о статусе поданной заявки. Квитанция на оплату.

Описание выходных данных

Выходные данные представлены в таблице 3.


Таблица 3 - Выходные данные

НаименованиеИдентификаторТип данныхРазрядностьИсточник данныхГород$sltCityЧисловойЦелоеHtml формаУлица$sltStreetЧисловойЦелоеHtml формаДом$sltHouseЧисловойЦелоеHtml формаГород$sltCityЧисловойЦелоеHtml формаФамилия$txtSurnameТекстовый50Текстовое поле формыИмя$txtNameТекстовый50Текстовое поле формыОтчество$txtFathernameТекстовый50Текстовое поле формыНомер лицевого счета$nommЧисловой10Текстовое поле формыСумма$summaaЧисловойС плавающей точкойТекстовое поле формы

Логическая модель задачи

Логическая модель задачи представлена на рисунке 1.

Рис. 1


Требования к программе

Функциональные требования

Программа должна выполнять следующие функции:

предоставление наиболее полной информации об услугах;

подача онлайн заявки;

вывод квитанции на оплату;

Требование к надежности

Программа должна удовлетворять следующим требованиям:

- осуществить контроль входных данных как на стороне клиента, так и на стороне сервера;

осуществлять дополнительную проверку на присутствие хакерских инъекций в код;

осуществить перехват ошибок;

Требования к информативности

Данный программный продукт должен иметь:

новостной раздел;

информацию о компании;

информацию о зоне обслуживания;

информацию о тарифах;

контакты компании;

лицензии компании;

раздел помощи;

документы;

информацию об оплате услуг;

систему контекстных подсказок;

Требования к удобству эксплуатации

Требования к интерфейсу:

интуитивно понятный интерфейс;

максимально быстрый доступ к большинству разделов сайта (обеспечивается использованием специально написанных всплывающих окон);

минимальное количество перегружаемых страниц (обеспечивается использованием Ajax технологий);

Использование загрузчиков данных (прелоадеров);

интерфейс должен иметь анимационные элементы, однако не должны быть использованы Flash технологии (замена - Ajax технологии);


2.2 Информационная модель программы


Структура таблиц базы данных

Структура таблицы «cities» представлена в таблице 4.


Таблица 4 - Структура таблицы «cities»

ИдентификаторОписаниеТип данныхРазмерnameНазвание городаТекстовый50id_cityИдентификационный номер городаЧисловой11siteСайтТекстовый50ИдентификаторОписаниеТип данныхРазмерmaster_cityЦентральный офисЧисловой11companyКомпания в городеТекстовый50doctypeТип пакета документовЧисловой11

Структура таблицы «con_cross_pas» представлена в таблице 5.


Таблица 5 - Структура таблицы «con_cross_pas»

ИдентификаторОписаниеТип данныхРазмерidИдентификационный номер паспортных данныхЧисловой11snnСерия паспортаТекстовый50vidanКем выданТекстовый300date_birthДата рожденияТекстовый50propiskaРегистрацияТекстовый300ipIP адресТекстовый50snoНомер паспортаТекстовый50da_vidanДата выдачиТекстовый50l_authПоследний редакторТекстовый50

Структура таблицы «houses» представлена в таблице 6.


Таблица 6 - Структура таблицы «houses»

ИдентификаторОписаниеТип данныхРазмерid_houseИдентификационный номер домаЧисловой11numberНомер домаТекстовый30id_streetИдентификационный номер улицыЧисловой11num_podjНомер подъездаЧисловой11num_etagНомер этажаЧисловой11comment_hКомментарийТекстовый300conn_statusСтатус подключенияЧисловой11l_authПоследний редакторЧисловой11latКоординаты широтыТекстовый50lngКоординаты долготыТекстовый50northПолярный сектор домаТекстовый50southПолярный сектор домаТекстовый50eastПолярный сектор домаТекстовый50westПолярный сектор домаТекстовый50is_deletedАрхивирован ли домЧисловой11Структура таблицы «kil_bots» представлена в таблице 7.


Таблица 7 - Структура таблицы «kil_bots»

ИдентификаторОписаниеТип данныхРазмерidИдентификационный номер контрольного вопросаЧисловой11voprosКонтрольный вопросТекстовый250otvetОтветТекстовый250archievedАрхивирован ли вопросЧисловой1

Структура таблицы «streets» представлена в таблице 8.


Таблица 8 - Структура таблицы «streets»

ИдентификаторОписаниеТип данныхРазмерidИдентификационный номер улицыЧисловой11town_idИдентификационный номер городаЧисловой11street_nameНазвание улицыТекстовый250commentsКомментарийТекстовый250

Структура таблицы «tarifs» представлена в таблице 9.


Таблица 9 - Структура таблицы «tarifs»

ИдентификаторОписаниеТип данныхРазмерidИдентификационный номер тарифаЧисловой11nameНазвание тарифаТекстовый50priceЦенаЧисловой11archievedУдалён ли тарифЧисловой11mbrПревышение (Мб/руб.)Текстовый9trafТрафикЧисловой11ulimitСкорость анлимаЧисловой11town_idИдентификационный номер городаЧисловой11

Структура таблицы «z_connection» представлена в таблице 10.


Таблица 10 - Структура таблицы «z_connection»

Иденти-фикаторОписаниеТип данныхРазмерid Идентификационный номер заявкиЧисловой11imyaИмяТекстовый50familiyaФамилияТекстовый50otchestvoОтчествоТекстовый50gorodГородТекстовый50ulitsaУлицаТекстовый50domДомТекстовый50kvartiraКвартираЧисловой11podjezdПодъездЧисловой11etajЭтажЧисловой11mob_telМобильный телефонТекстовый100dom_telДомашний телефонТекстовый15rab_telРабочийТекстовый15icqicqТекстовый15emailАдрес электронной почтыТекстовый150commentsКомментарийТекстовый255priceЦенаЧисловой11statusСтатусЧисловой11ownerВладелецЧисловой11validtillДо какого времени заявку надо исполнитьДата / ВремяКраткий формат датыdate_of_regДата регистрации заявкиДата / ВремяКраткий формат датыauthorАвтор заявкиЧисловой11priorityПриоритет заявкиЧисловой11Иденти-фикаторОписаниеТип данныхРазмерdate_finishedДата окончания заявкиДата / ВремяКраткий формат датыm_commentsКомментарий монтажниковТекстовый255m_ownerБригадирЧисловой11n_commentsКомментарий настройщиковТекстовый255n_ownerНастройщикЧисловой11dog_existЗаключен ли договор (типадоговоров)Числовой11last_authorПоследний редакторЧисловой11dog_zak_dateДата заключения договораДата / ВремяКраткий формат датыpassportИдентификационный номер паспортных данныхЧисловой11tarifТарифЧисловой11deletedОтказался ли абонентЧисловой1dog_numНомер договораТекстовый30lischНомер лицевого счётаЧисловой11loginЛогинТекстовый30temp_domНомер дома текстом (если выбрали, что дома нет)Текстовый30

2.3 Логическая модель программы


Структурная диаграмма программы

Структурная диаграмма представлена на рисунке 2.


Рис. 2


Главный модуль является стартовым файлом, в зависимости от передаваемых ему параметров, в него загружаются остальные модули.

Модуль «Общий раздел» содержет в себе гиперссылки на внутренние модули.

Модуль «Просмотр информации» позволяет просматривать новости, контакты и другие сведения об оказываемых услугах.

Модуль «Подача онлайн заявки» позволяет подать онлайн заявку на подключение к интернету.

Модуль «Поиск» позволяет осуществлять по всем материалам сайта.

Модуль «Пользовательский раздел» содержет в себе гиперссылки на внутренние модули.

Модуль «Авторизация» запрашивает логин и пароль для идентификации пользователя.

Модуль «Галерея» позволяет пользователям добавлять, удалять, редактировать и комментировать фотографии.

Модуль «Форум» позволяет общаться с другими пользователями.

Модуль «Администраторский раздел» содержет в себе гиперссылки на внутренние модули.

Модуль «Редактирование материалов» позволяет редакитровать новости, контакты и другую информационную базу сайта

Модуль «Настройка дополнений (компонентов, модулей)» позволяет настраивать компоненты, модули и плагины.

Логическая структура программы представлена на рисунке 3.



Блок-схема алгоритма работы программы

Блок-схема алгоритма работы программы представлена на рисунке 4.



2.4 Текст программы


// текст главного шаблона

<? php

/*

* @copyrightCopyright (C) 2008-2009 All rights reserved.

* @license

*/

// no direct access('_JEXEC') or die ('Restricted access');

$cssFolder = «/templates/».$this->template. "/css/other»;

$jsFolder = «/templates/».$this->template. "/js/other»;

?>

<! DOCTYPE html PUBLIC «- //W3C //DTD XHTML 1.0 Transitional //EN» «#"justify"><html xmlns= «#"justify"><head>

<jdoc:include type= «head» />

<link rel= «stylesheet» href=»/templates/system/css/system.css» type= «text/css» />

<link rel= «stylesheet» href=»/templates/system/css/general.css» type= «text/css» />

<link rel= «stylesheet» href=»/templates/<? php echo $this->template;?>/css/template.css» type= «text/css» />

<? php if ($this->direction == 'rtl'):?>

<link href=»/templates/<? php echo $this->template;?>/css/template_rtl.css» rel= «stylesheet» type= «text/css» />

<? php endif;?>

<? php

$view = $_GET[view];($view!= 'frontpage') {'<script type= «text/javascript» src=»/media/system/js/mootools.js»></script>';'<script type= «text/javascript» src=»/media/system/js/caption.js»></script>';

}

?>

<link rel= «stylesheet» href= "<? php echo $cssFolder;?>/mainClasses.css» type= «text/css» />

<link rel= «stylesheet» href= "<? php echo $cssFolder;?>/mainDives.css» type= «text/css» />

<link rel= «stylesheet» href=»/styles/window.css» type= «text/css» />

<link rel= «stylesheet» href= "<? php echo $cssFolder;?>/menu.css» type= «text/css» />

<! - [if IE 6]>

<link rel= «stylesheet» href= "<? php echo $cssFolder;?>/ie6.css» type= «text/css» />

<! [endif]->

<script type= «text/javascript» src=»/scripts/functions.js»></script>

<script type= «text/javascript» src= "<? php echo $jsFolder;?>/mod_rialcom_movie.js»></script>

<script type= «text/javascript» src= "<? php echo $jsFolder;?>/mod_rialcom_menu.js»></script>

<script type= «text/javascript»>optionJoo = <? php echo ' " '.$option.'"';?>;</script>

<script type= «text/javascript» src=»/scripts/loginout.js»></script>

<script type= «text/javascript» src=»/scripts/domready.js»></script>

</head>

<body>

<div id= «wandlWindowUnder»></div>

<div id= «wandlWindow»><! - Блок окна BEGIN->

<jdoc:include type= «modules» name= «window» style= «none» />

</div><! - Блок окна END->

<div id= «all_content»>

<?();($option == 'com_datsogallery') {showGallery();}showWithMovie();();

?>

<? function showGallery() {?><! - проверка на галерею ->

<link rel= «stylesheet» href=»/styles/gallery.css» type= «text/css» />

<div id= «gallery»>

<p>

<jdoc:include type= «component» />

</div>

<?}?>


<? function showMenu() {?>

<! - MIDDLE BEGIN->

<div>

<div>

<table>

<tbody>

<t>

<td>


<td>

<table>

<tbody>

<tr>

<td><a href= "#» onclick= «menuClick (this, this.rev, this.rel)»>

<td><a href= "#» onclick= «menuClick (this, this.rev, this.rel)»>

<td>

<form method= «post» action= «index.php» name='search_form'>

<input type= «text»>

<input type= «hidden» value= «search» name= «task»/>

<input type= «hidden» value= «com_search» name= «option»/>

</form>

</td><td>

</tr>

</tbody>

</table>

</td>

<td>

</tr>

</tbody>

</table>

</div>

<div>

<table>

<tbody>

<tr>

<td>

<td>

<div id= «all_menu_main»>

<div id= «client_menu_main»>

</td>

<td>

</tr>

</tbody>

</table>

</div>

<div id= «new_left_click»>

<!-<div id= «new_left_click»>

<div id= «new_click1»>

</div>

<?}?>

<? function showWithMovie() {?>

<table id= «content»>

<tr>

<! - LEFT BEGIN->

<td id= «leftContent»>

<div id='mainImage'>

<div id= «loader_place_movie»></div>

</div>

<div id= «mainText»>

<jdoc:include type= «component» />

</div>

</td>

<! - LEFT END->

<! - RIGHT BEGIN->

<td id= «rightContent»>

<table id= «rightContentTable» style= «width:100%; text-align:right;»>

<tbody>

<tr>

<td>

<div>

<div style= «padding-right:5.5px; padding-top:4.5px;»>

<jdoc:include type= «modules» name= «banner» style= «none» />

</div>

<div style= «position:relative; float:left; width:272px; height:10px; margin-top: - 84.5px; background:url (images/glossy/banner_under_top.gif) top no-repeat;»></div>

<div style= «position:relative; float:left; width:12px; height:91px; margin-top: - 84.5px; background:url (images/glossy/banner_under_left.gif) top no-repeat;»"></div>

<div style= «position:relative; float:right; width:12px; height:91px; margin-top: - 84.5px; background:url (images/glossy/banner_under_right.gif) top no-repeat;»></div>

<div style= «position:relative; float:left; width:272px; height:13px; margin-top:-13px; background:url (images/glossy/banner_under_bottom.gif) top no-repeat;»></div>

</div>

</td>

</tr>

<tr>

<td>

<div id= «userLogin»>

<div>

<table>

<tr>

<td>

<jdoc:include type= «modules» name= «login» style= «table» />

</td>

</tr>

</table>

</div><! - Блок пользователя END->

</td>

</tr>

<tr>

<td>

<div id= «contacts»>

<div>

<table>

<tr>

<td>

<ul>

<li>

Центральный офис:

<ul>

<li>142100, Россия, Московская обл.</li>

<li>г. Подольск, ул. Свердлова, д. 15</li>

<li>8 (495) 502-79-46</li>

<li>8 (4967) 69-24-01</li>

</ul>

</li>

<li>

<li>Режим работы:</li>

<ul>

<li>Понедельник-Пятница с 9:00 до 17:00</li>

</ul>

</li>

<li>

Круглосуточная техническая поддержка:

<ul>

<li>8 (495) 580-57-77</li>

<li>8 (495) 502-79-49</li>

<li>8 (496) 727-58-75</li>

</ul>

<a href= «javascript:showWindow('contacts');»>Все контакты</a>

</li>

</ul>

</td>

</tr>

</table>

</div><! - Блок контактов END->

</td>

</tr>

</tbody>

</table>

<! - <div>

<jdoc:include type= «modules» name= «banner» style= «none» />

</div>->

</td>

<! - RIGHT END->

</tr>

</table>

<! - MIDDLE END->

<?}?>

<? function showFooter() {?>

<! - FOOTER BEGIN->

<! - [if IE 6]>

<style type= «text/css»>

#footer {display:none;}

#footer_logo {visibility:hidden;}

</style>

<table id= «footer_ie6»>

<tbody>

<tr>

<td>

<td>

2008-2009 © Телекоммуникационная компания <a href= «mailto:[email protected]»> «Риал Ком»</a>

</td>

<td>

</tr>

<tr>

<td>

<td>

</td>

<td>

</tr>

</tbody>

</table>

<! [endif]->

<table id= «footer»>

<tbody>

<tr>

<td>

<td>

2008-2009 © Телекоммуникационная компания <a href= «mailto:[email protected]»> «Риал Ком»</a>

</td>

<td>

</tr>

<tr>

<td>

<td>

</td>

<td>

</tr>

</tbody>

</table>

<div style= «margin-left:650px;» id= «footer_logo»><a href= «javascript:showWindow('about')»><img src= «images/menu2/footer_blue_logo.png» id= «logoImage» /></a></div>

<! - FOOTER END->

<?}?>

</div>

</body>

</html>

// компонент помощи

<?

// no direct access('_JEXEC') or die ('Restricted access');'<script type= «text/javascript» src=» '.$this->baseurl.'/components/com_help/scripts/help.js»></script>'; // подключение скрипта контента'<link rel= «stylesheet» type= «text/css» href= «'.$this->baseurl.'/components/com_help/styles/help.css» />'; // подключение стиля

$idHelp = $_GET['idhelp']; // айдишник текста контента

$comdir = $mosConfig_absolute_path. «/components/com_help»;

// $thumbnailpath = $mosConfig_live_site. $ad_paththumbs. «/»;

//require_once ($gallerydir. «/sub_wm.php»);(!$idHelp) {_once ($comdir. "/sub_menu.php»); // пункты меню помощи

echo '<div id= «helpContent»></div>';

}($idHelp) {_once ($comdir. "/sub_content.php»); // текст помощи

}

?>

<?

// no direct access('_JEXEC') or die ('Restricted access');

// catid = 14 - help catigory id

$db = JFactory:getDBO();

$query = «SELECT title, id, metakey, ordering FROM #__content where state = 1 and catid = 14 order by ordering;»;

$db->setQuery($query);

$i = 1;

$class = «;'<table>

else echo $line['title']; // если нет текста

echo '</td>'. "\n»;'<td>'. "\n»;(preg_match ('/flash/i', $line['metakey'])) echo '<a href= «flash/help/'.$line['id'].'.flv» target= "_blank» onclick= «if (this.href) {getHelpFlash (this.href); return false;}"><img src= «images/icons/flash.gif»></a>'. "\n»; // если есть флэшка, то показываем ссылку

echo '</td>'. "\n»;'<td>'. "\n»;(preg_match ('/file/i', $line['metakey'])) echo '<a href= «video/help/'.$line['id'].'.zip» target= "_blank»><img src= «images/icons/download.gif»></a>'. "\n»; // если есть файл, то показываем ссылку

echo '</td>'. "\n»;'</tr>'. "\n»;

$i++;

}'</table>'. "\n»;'<a name= «lookAtMe»>';

<?

// no direct access('_JEXEC') or die ('Restricted access');

$db = JFactory:getDBO();

$query = «SELECT introtext, title FROM #__content where id =».$_GET['idhelp'].»;»;

$db->setQuery($query);

// catid = 14 - help catigory id($db->loadAssocList() as $line) {«<h2>

}

// JavaScript DocumentgetHelpContent(idhelp) {('helpContent', 1);req = new Request({: «index2.php? option=com_help&idhelp=»+idhelp,:'get',: function(xhr) {el = new Element ('div', {

'html':xhr

});

$('helpContent').innerHTML = «;.inject($('helpContent'));

//alert('lol');.location.href = «#lookAtMe»;

},: function() {

$('helpContent').innerHTML = 'error';

}

});.send();

}getHelpFlash(url) {.setWidth(640);.setHeight(502);.setTitle('Помощь');.setUrl (url, 'flash');.show();

}

// компонент новостей

<? php

// no direct access

// defined ('_JEXEC') or die ('Restricted access');

$comName = «wandlnews»;'<script type= «text/javascript» src=»/components/com_'.$comName.'/scripts/'.$comName.'.js»></script>'; // подключение скрипта контента

$db = JFactory:getDBO();

$cols = 3;

$rows = 2;

$limit = $cols * $rows;

$newLimit = $_GET[firstlimit];($newLimit!= «) {$newLimit = ($newLimit-1)*$limit.»,».$limit;}$newLimit = «0,».$limit;

// -

$justInner = $_GET[justinner];($justInner!= «) {$justInner = true;}$justInner = false;

// -

// $obj->query («SET dateformat dmy;»);

$query = «SELECT title, introtext, created, id, catid, alias FROM #__content#__content_frontpage on #__content_frontpage.content_id = #__content.idstate = 1by jos_content_frontpage.ordering».$newLimit.»;»;

$db->setQuery($query);

$i = -1;($db->loadAssocList() as $line) {

$i++;

$arr[$i] ['title'] = $line['title'];

$arr[$i] ['introtext'] = $line['introtext'];

$arr[$i] ['created'] = $line['created'];

$arr[$i] ['id'] = $line['id'];

$arr[$i] ['catid'] = $line['catid'];

$arr[$i] ['alias'] = $line['alias'];

}

// $newsCount = $i / $limit;

$query = «SELECT count(ordering) as newsCount from #__content_frontpage;»;

$db->setQuery($query);($db->loadAssocList() as $line2) {

$newsCount = $line2 ['newsCount'];

}

$i = 0;($newsCount > 0) {

$newsCount -= $limit;

$i++;

}

$newsCount = $i;(!$justInner) {('

<div id= «newsDiv»>

<div>

<table id= «tbNewsNavigation» style= «display:inline»>

<tr>

<td style= «padding-left:0;»><h2 style= «display:inline»>Новости</h2></td>

<td><a href= «javascript:prevNewsBtnClick(); "><img src= «images/prev.gif» /></a></td>

<td id= «l_btn»></td>

<td id= «c_btn»>

<td id= «r_btn»><a href= «javascript:toNews(2);»>2</a></td>

<td><a href= «javascript:nextNewsBtnClick(); "><img src= «images/next.gif» /></a></td>

<td id= «loaderNews»></td>

</tr>

</table>

</div>

<table>

<script type= «text/javascript»>setNewsCount ('.$newsCount.');</script>

<! - Новости->

<tr><td id= «justinner»>');

}

$j = 0;'<table id= «tbInnerNews»>';($i = 0; $i < $limit; $i++) {

$j++;($j == 1) {echo '<tr>

$href =»? option=com_content&view=article&id=».$arr[$i] ['id'].»:».$arr[$i] ['alias']. «&catid=».$arr[$i] ['catid'];('

<td>

<a href=» '.$href.'"><h4>'.$arr[$i] ['title'].'</h4></a>

<p><a href= «'.$href.'»>

</td>

'); // вывод заголовка и интротекста

if ($j == $cols) {'</tr>';

$j=0;'<tr>

for ($z = $i - $cols + 1; $z < $i + 1; $z++) {

if (count($arr) > $z) {$d = date ('j.m.y', strtotime ($arr[$z] ['created']));} else {$d = «;}'<td>'.$d.'</td>';

}'</tr>';

}

}'</table>';

(!$justInner) {'</td></tr></table></div>';

}

?>

<? php

// no direct access

// defined ('_JEXEC') or die ('Restricted access');

$comName = «wandlnews»;'<script type= «text/javascript» src=»/components/com_'.$comName.'/scripts/'.$comName.'.js»></script>'; // подключение скрипта контента

$db = JFactory:getDBO();

$cols = 3;

$rows = 2;

$limit = $cols * $rows;

$newLimit = $_GET[firstlimit];($newLimit!= «) {$newLimit = ($newLimit-1)*$limit.»,».$limit;}$newLimit = «0,».$limit;

// -

$justInner = $_GET[justinner];($justInner!= «) {$justInner = true;}$justInner = false;

// -

// $obj->query («SET dateformat dmy;»);

$query = «SELECT title, introtext, created, id, catid, alias FROM #__content#__content_frontpage on #__content_frontpage.content_id = #__content.idstate = 1by jos_content_frontpage.ordering».$newLimit.»;»;

$db->setQuery($query);

$i = -1;($db->loadAssocList() as $line) {

$i++;

$arr[$i] ['title'] = $line['title'];

$arr[$i] ['introtext'] = $line['introtext'];

$arr[$i] ['created'] = $line['created'];

$arr[$i] ['id'] = $line['id'];

$arr[$i] ['catid'] = $line['catid'];

$arr[$i] ['alias'] = $line['alias'];

}

// $newsCount = $i / $limit;

$query = «SELECT count(ordering) as newsCount from #__content_frontpage;»;

$db->setQuery($query);($db->loadAssocList() as $line2) {

$newsCount = $line2 ['newsCount'];

}

$i = 0;($newsCount > 0) {

$newsCount -= $limit;

$i++;

}

$newsCount = $i;(!$justInner) {('<table>

<tr>

<th>

<h2 style= «display:inline»>Новости</h2>

<table id= «tbNewsNavigation» style= «display:inline»>

<tr>

<td><a href= «javascript:prevNewsBtnClick(); "><img src= «images/prev.gif» /></a></td>

<td id= «l_btn»></td>

<td id= «c_btn»>

<td id= «r_btn»><a href= «javascript:toNews(2);»>2</a></td>

<td><a href= «javascript:nextNewsBtnClick(); "><img src= «images/next.gif» /></a></td>

<td id= «loaderNews»></td>

</tr>

</table>

<script type= «text/javascript»>setNewsCount ('.$newsCount.');</script>

</th>

</tr><! - Новости->

<tr><td id= «justinner»>');

}

$j = 0;'<table id= «tbInnerNews»>';($i = 0; $i < $limit; $i++) {

$j++;($j == 1) {echo '<tr>

$href =»? option=com_content&view=article&id=».$arr[$i] ['id'].»:».$arr[$i] ['alias']. «&catid=».$arr[$i] ['catid'];('

<td>

<a href=» '.$href.'"><h4>'.$arr[$i] ['title'].'</h4></a>

<p><a href= «'.$href.'»>

</td>

'); // вывод заголовка и интротекста

if ($j == $cols) {'</tr>';

$j=0;'<tr>

for ($z = $i - $cols + 1; $z < $i + 1; $z++) {

if (count($arr) > $z) {$d = date ('j.m.y', strtotime ($arr[$z] ['created']));} else {$d = «;}'<td>'.$d.'</td>';

}'</tr>';

}

}'</table>';(!$justInner) {'</td></tr></table>';

}

?>newsCount = 0;toNews(limit) {(limit);('loaderNews');req = new Request({:'index2.php? option=com_wandlnews',: {firstlimit: limit, justinner:true},:'get',: function(xhr) {('justinner', 0, 1, 250);

$('justinner').innerHTML = xhr.replace ('?', '\r');('loaderNews');

},: function() {

$('justinner').innerHTML = 'error';

}

});.send();

}

// -News ButtonssetNewsCount(c) {= c;

}updateButtons(current) {= current - 1;= current;= current + 1;(lbtn > 0) {$('l_btn').innerHTML = '<a href= «javascript:toNews (' + lbtn + ');»>' + lbtn + '</a>';} else {$('l_btn').innerHTML = ' ';}

$('c_btn').innerHTML = ctxt;(rbtn <= newsCount) {$('r_btn').innerHTML = '<a href= «javascript:toNews (' + rbtn + ');»>' + rbtn + '</a>';} else {$('r_btn').innerHTML = ' ';}

}prevNewsBtnClick() {= Number($('c_btn').innerHTML);= current1 - 1;(newCurrent1 > 0) toNews(newCurrent1);

}nextNewsBtnClick() {= Number($('c_btn').innerHTML);= current2 + 1;(newCurrent2 <= newsCount) toNews(newCurrent2);

}

// -News Buttons

// контакты

<! DOCTYPE html PUBLIC «- //W3C //DTD XHTML 1.0 Transitional //EN» «#"justify"><html xmlns= «#"justify"><head>

<title>Контакты</title>

<link rel= «stylesheet» href=»../styles/mainClasses.css» type= «text/css» />

<link rel= «stylesheet» href=»../styles/main.css» type= «text/css» />

<link rel= «stylesheet» href=»../templates/rialcom/css/components.css» type= «text/css» />

<style type= «text/css»>_table {width:100%; height:100%;}_table td {vertical-align:top;}_table.contacts_itself {padding-right:1em; width:350px;}_table.contact_links {padding-left:1em; padding-right:0; border-left:1px solid #CCC;}{display:none;}

</style>

<script type= «text/javascript»>hideContacts(showMe) {.getElementById ('centr_office').style.display = 'none';.getElementById('klimovsk').style.display = 'none';.getElementById('sherbinka').style.display = 'none';.getElementById('butovo').style.display = 'none';.getElementById('serpuhov').style.display = 'none';.getElementById(showMe).style.display = 'block';

}

</script>

</head>

<body>

<table>

<tbody>

<tr>

<td>

<ul>

<! - Центральный офис BEGIN->

<li>

<b>Центральный офис:</b>

<ul>

<li>142100, Россия, Московская обл.</li>

<li>г. Подольск, ул. Свердлова, д. 15</li>

<li>8 (495) 502-79-46</li>

<li>8 (4967) 69-24-01</li>

<li><a href= «mailto:[email protected]»>[email protected]</a></li>

</ul>

</li>

<li>

<li><i>Режим работы:</i></li>

<ul>

<li>Понедельник-Пятница с 9:00 до 17:00</li>

</ul>

</li>

<li>

<b>Круглосуточная техническая поддержка:</b>

<ul>

<li>8 (495) 580-57-77</li>

<li>8 (495) 502-79-49</li>

<li>8 (496) 727-58-75</li>

</ul>

</li>

<! - Центральный офис END->

</ul>

<ul>

<! - г. Климовск BEGIN->

<li>

<b>г. Климовск:</b>

<ul>

<li>Россия, Московская обл.</li>

<li>г. Климовск, ул. Заводская, д. 2</li>

<li>8 (495) 500-07-89</li>

<li>8 (4967) 58-67-89</li>

<li><a href= «mailto:[email protected]»>[email protected]</a></li>

</ul>

</li>

<li>

<li><i>Режим работы:</i></li>

<ul>

<li>Понедельник-Пятница с 9:00 до 19:00</li>

<li>Суббота с 9:30 до 18:00</li>

</ul>

</li>

<! - г. Климовск END->

</ul>

<ul>

<! - г. Щербинка BEGIN->

<li>

<b>г. Щербинка:</b>

<ul>

<li>Россия, Московская обл.</li>

<li>г. Щербинка, ул. Юбилейная, д. 3а<br><i>(Бизнес-центр «Капитал», 3й этаж)</i></li>

<li>8 (495) 580-27-30</li>

<li>8 (4967) 58-44-88</li>

<li><a href= «mailto:[email protected]»>[email protected]</a></li>

</ul>

</li>

<li>

<li><i>Режим работы:</i></li>

<ul>

<li>Вторник-Суббота с 10:00 до 19:00</li>

<li>Воскресенье, Понедельник выходной</li>

</ul>

</li>

<! - г. Щербинка END->

</ul>

<ul>

<! - г. Москва, Бутово BEGIN->

<li>

<b>г. Москва, Бутово:</b>

<ul>

<li>Россия, г. Москва, ул. Грина, д. 18 <i>(Солярис)</i></li>

<li>8 (499) 500-31-11</li>

<li><a href= «mailto:[email protected]»>[email protected]</a></li>

</ul>

</li>

<li>

<li><i>Режим работы:</i></li>

<ul>

<li>Вторник, Среда, Пятница, Суббота <br>с 10:00 до 20:00</li>

</ul>

</li>

<! - г. Москва, Бутово END->

</ul>

<ul>

<! - г. Серпухов BEGIN->

<li>

<b>г. Серпухов:</b>

<ul>

<li>142200, Россия, Московская обл.</li>

<li>г. Серпухов, ул. Ворошилова, д. 130а</li>

<li><i>(Бизнес-центр «PLAZA», 5й этаж)</i></li>

<li>8 (495) 544-00-04</li>

<li>8 (495) 544-00-05</li>

<li><a href= «mailto:[email protected]»>[email protected]</a></li>

</ul>

</li>

<li>

<li><i>Режим работы:</i></li>

<ul>

<li>Ежедневно с 10:00 до 19:00</li>

</ul>

</li>

<li>

<b>По вопросам о проведении монтажных работ<br> в г. Серпухове звонить по телефону:</b>

<ul>

<li>8 (495) 544-00-06</li>

</ul>

</li>

<! - г. Серпухов END->

</ul>

</td>

<td>

<p><a href= «javascript:hideContacts ('centr_office')»>Центральный офис</a></p>

<p><a href= «javascript:hideContacts('klimovsk')»>г. Климовск</a></p>

<p><a href= «javascript:hideContacts('sherbinka')»>г. Щербинка</a></p>

<p><a href= «javascript:hideContacts('butovo')»>г. Москва, Бутово</a></p>

<p><a href= «javascript:hideContacts('serpuhov')»>г. Серпухов</a></p>

</td>

</tr>

</tbody>

</table>

</body>

</html>

// класс окошка

<? php

// no direct access('_JEXEC') or die ('Restricted access');

?>

<script type= «text/javascript» src= "<? php echo $this->baseurl;?>/scripts/window.js»></script>

<script type= «text/javascript» src= "<? php echo $this->baseurl;?>/scripts/flowplayer-3.1.0.min.js»></script>

<script type= «text/javascript»>.onload= function() {= new WandlWindow ('wandlWindow', {under:.4, title:'RialCom'});

}

</script>

<table id= «tbmain»>

<tr>

<td id= «top_left» rel= «wandl.ru»><div>

<td id= «top_center» rel= «wandl.ru»>

<div>

<div id= «caption»>Caption</div>

</div>

</td>

<td id= «top_right» rel= «wandl.ru»>

<div>

<div id= «close»><div>

</div>

</td>

</tr>

<tr>

<td id= «middle_left»></td>

<td id= «middle_center»>

<div id= «window_text»>

<div id= «wandlWindowLoader»></div>

<div id= «holder»></div>

</div>

</td>

<td id= «middle_right»>&nbsp;</td>

</tr>

<tr>

<td id= «bottom_left» rel= «wandl.ru»><div>

<td id= «bottom_center» rel= «wandl.ru»><div>

<td id= «bottom_right» rel= «wandl.ru»><div>

</tr>

</table>

/*ver 1.0Gennady 2009://www.wandl.ru

*/WandlWindow = new Class({: Request,: [Options, Events],: {: new Array ('top_left', 'top_center', 'top_right', 'bottom_left', 'bottom_center', 'bottom_right', 'close'),: «,: «,: 0,: false,: true,: '#000',: true,: 'Окно',: 'blue',: 300,: 100,: 'auto',: 'auto'

},: function (element, options) {.setOptions(options);.element = $(element);.under = $('wandlWindowUnder');.btnClose = this.element.getElement ('#top_right');.divTitle = this.element.getElement ('#caption');.trTop = this.element.getElement ('#top_right').getParent();.trMiddle = this.element.getElement ('#middle_right').getParent();.trBottom = this.element.getElement ('#bottom_right').getParent();.tdCenter = this.element.getElement ('#middle_center');.windowText = this.element.getElement ('#middle_center').getElement ('#window_text');.frame = this.element.getElement ('#frameText');.object = this.element.getElement ('#objText');.image = this.element.getElement ('#wandlImage');.holder = this.element.getElement ('#holder');.loader = this.element.getElement ('#wandlWindowLoader');.deltaY = this.trTop.getStyle('height').toInt() + this.trBottom.getStyle('height').toInt(); // размер шапки и футера((this.options.url)||(this.options.holder)) this.setUrl (this.options.url, this.options.holder);.setUnder (this.options.under);

//this.setSize (this.options.width, this.options.height);.setWidth (this.options.width);.setHeight (this.options.height);.setStyle (this.options.style);.setTitle (this.options.title);.setEvents();

},: function (what, val) {

//this.setStyle (this.options.style);/*sdfasdfdf*/(what == 'x') {= (getScreenSize('width') - val) / 2 - 20;(leftt <= 0) leftt = 10;.element.setStyle ('left', leftt);

}(what == 'y') {= (getScreenSize('height') - val - this.deltaY) / 2 + window.getScrollTop() - this.deltaY*0.5;(topp <= 0) topp = 10;.element.tween ('top', topp);

//this.element.setStyle ('top', topp);

}

},: function(thisWidth) {= this;.options.width = thisWidth;.setPosition ('x', this.options.width); // установка позиции по XwidthTween = new Fx. Tween (this.tdCenter, {property:'width'});.start (this.options.width);

//this.tdCenter.setStyle ('width', this.options.width);

/*if (pngfadefix) { // for ie7,8 with iepngfix from www.wandl.ru= this.element.getElement ('#top_center').getElement ('.back');.setStyle ('width', 'auto');= this.element.getElement ('#top_center').getElement('div');.setStyle ('width', 'auto');= this.element.getElement ('#bottom_center').getElement ('.back');.setStyle ('width', 'auto');= this.element.getElement ('#bottom_center').getElement('div');.setStyle ('width', 'auto');.under.fade([this.options.under+0.01], [this.options.under-0.01]); // for opera

}*/

},: function(thisHeight) {.options.height = thisHeight;.setPosition ('y', this.options.height); // установка позиции по Y

//this.tdCenter.setStyle ('height', this.options.height);.tdCenter.tween ('height', this.options.height);

},: function(thisStyle) {.options.style = thisStyle;= this.element.getElement ('#middle_left').getStyle ('background-image'); // выбираем картинку бэкграунда, в данном случае гифа левой голонки

bgImageFolder = getFolder(imagee); // получаем папку, где картинка находится

lenLines = this.options.arrOfImages.length;(i = 0; i < lenLines; i++) {= '#' + this.options.arrOfImages[i];= this.element.getElement(tdName);= td.getElement ('.back');= this.options.arrOfImages[i];= bgImageFolder + '/' + this.options.style + '/' + imagee + '.png)';

//alert(i);.setStyle ('background-image', newImage); // устанавливаем новый бэкграунд

}(this.under.getStyle('opacity')!= 0).under.fade([this.options.under+0.01], [this.options.under-0.01]); // for opera

//this.under.setOpacity (this.options.under); // for opera

},: function (thisUrl, thisHolder) {((this.options.url == thisUrl)&&(this.options.holder == thisHolder)) return;.options.url = thisUrl;.options.holder = thisHolder;= this;((this.options.url == «)||(this.options.holder == «)) { //reset.holder.innerHTML = «;

}(this.options.holder == 'frame') { //frame.holder.innerHTML = '<iframe id= «frameText» src= «' + this.options.url + '» frameborder= «no»></iframe>';

}(this.options.holder == 'object') { //object.holder.innerHTML = '<object id= «objText» name= «objText» type= «text/html» data= «' + this.options.url + '»>

}(this.options.holder == 'flash') { //object= this.options.url;aHref = new Element ('a', {'href':hr});.holder.innerHTML = «;.inject (this.holder);(aHref, «scripts/flowplayer-3.1.0.swf»);

}(this.options.holder == 'image') { //image.loader.setStyle ('display', 'block');(this.options.imageAutoSize) {

//this.setSize (300, 300);.holder.innerHTML = '<img id= «wandlImage» src= «' + this.options.url + '» onload= «instance.imageOnLoad (this.width, this.height);» />'; // реальный размер картинки

}this.holder.innerHTML = '<img id= «wandlImage» src= «' + this.options.url + '» onload= "$(\'wandlWindowLoader\').setStyle (\'display\', \'none\');» style= «width:100%; height:100%;» />'; // насильный размер =)

//this.holder.innerHTML = '<img id= «wandlImage» src= «' + this.options.url + '» onload= "$(\'wandlWindowLoader\').setStyle (\'display\', \'none\');» />';

}

},: function(thisImageAutoSize) {.options.imageAutoSize = thisImageAutoSize;

},: function (imageWidth, imageHeight) {.loader.setStyle ('display', 'none');.setWidth(imageWidth);.setHeight(imageHeight);

//this.setSize (imageWidth, imageHeight);

},: function(thisTitle) {.options.title = thisTitle;.divTitle.innerHTML = this.options.title;

},: function() { // установка стандартных событий= this;.btnClose.removeEvents();.btnClose.addEvent ('click', function() { // нажатие кнопки закрыть.hide();

});.under.removeEvents();(this.options.underClose) {.under.addEvent ('click', function() { // нажатие по фону.hide();

});

}

},: function() { // вывод окна(this.options.shown) return; // выведено ли уже окно?.element.setStyle ('display', 'block');.element.setStyle ('visibility', 'visible');

//this.setAlign (this.options.align);

//this.setSize (this.options.width, this.options.height);.showUnder();.options.shown = true; // окно выведено

},: function() { // скрытие окна= this;.setUrl ('', «);.options.shown = false; // окно закрыто.element.setStyle ('visibility', 'hidden');.element.setStyle ('display', 'none');.setHeight(100);.setWidth(300);.hideUnder(); // обязательно последним, иначе в IE не исчезает слой.

},: function(thisUnder) {.options.under = thisUnder;.under.setOpacity(0);

},: function(thisUnderColor) {.options.underColor = thisUnderColor;

},: function(thisUnderClose) {.options.underClose = thisUnderClose;.setEvents();

},: function() {.under.setStyle ('background-color', this.options.underColor);.under.setStyle ('display', 'block');.under.fade (this.options.under);

},: function() {.under.fade(0);

}

});

// онлайн заявка

<! DOCTYPE html PUBLIC «- //W3C //DTD XHTML 1.0 Strict //EN»

«#"justify"><html xmlns= «#"justify"><meta http-equiv= «content-type» content= «text/html; charset=UTF-8» />

<head><title>Онлайн заявка</title>

<link rel= «stylesheet» href=»../styles/main.css» type= «text/css» />

<link rel= «stylesheet» href=»../styles/mainClasses.css» type= «text/css» />

<link rel= «stylesheet» href=»../styles/mainDives.css» type= «text/css» />

<link rel= «stylesheet» href= «scripts/formcheck/theme/classic/formcheck.css» type= «text/css» media= «screen» />

<link rel= «stylesheet» href= «styles/request.css» type= «text/css» />

<script type= «text/javascript» src=»../scripts/mod_rialcom_functions.js»></script>

<script type= «text/javascript» src=»../media/system/js/mootools.js»></script>

<script type= «text/javascript» src= «scripts/formcheck/lang/ru.js»> </script>

<script type= «text/javascript» src= «scripts/formcheck/formcheck.js»> </script>

<script type= «text/javascript» src= «scripts/navigation.js»></script>

<script type= «text/javascript» src= «scripts/request.js»></script>

</head>

<body>

<div id= «step1»><! - 11111111111111111111111111111111111111111111111111111->

<form id= «step1Form» name= «step1Form» method= «post» action= «post.php»>

<div>

<label for= «sltCity»>Город</label>

<div id= «tdCities» name= «tdCities»>

</div>

<div>

<label for= «sltStreet»>Улица</label>

<div id= «tdStreets» name= «tdStreets»>

<div>

</div>

<div>

<label for= «sltHouse»>Дом</label>

<div id= «tdHouses» name= «tdHouses»>

<input type= «text» id= «txtHouse» name= «txtHouse» maxlength= «10» />

<div id= «houseYesNo»>

<input type= «checkbox» id= «chkHouseExist» name= «chkHouseExist» tabindex= «0» />&nbsp;<label for= «chkHouseExist»>Моего дома здесь нет</label>

<input type= «hidden» id= «chkHouseExistValue» name= «chkHouseExistValue» value=»» />

</div>

<div>

Если Вашего дома нет в списке, вы можете оставить заявление самостоятельно, указав его номер. Заявления, поданные по данным домам, будут учитываться при развитии сети. Когда компания ЗАО «Риал Ком» начнет оказывать услуги связи по Вашему адресу, вы получите уведомление на электронную почту, а так же с Вами свяжется оператор и подтвердит заявление на подключение. Всю интересующую вас информацию вы можете узнать, позвонив: <b>8&nbsp; (495)&nbsp; 502-79-46</b>, <b>8&nbsp; (4967)&nbsp; 69-24-01</b>

</div>

</div>

</form>

</div>

<div id= «step2»><! - 22222222222222222222222222222222222222222222222222222->

<form id= «step2Form» name= «step2Form»>

<div id= «agreement»>

<div>

<h3 id='agreementTitle'>Регламент действий Абонента при заключении Договора на оказание услуг связи ЗАО «Риал&nbsp; Ком» в режиме on-line.</h3>

<ol>

<li id='agreementFirst'>Ознакомиться на сайте ЗАО «Риал Ком»: <a>

</li>

<li>Заполнить Анкету.</li>

<li>Наличие технической возможности подтверждается телефонным звонком и уведомлением на указанную в заявке электронную почту.</li>

<li>Согласием на подключение является факт взноса первоначального авансового платежа за услуги (<i>реквизиты направляются на электронную почту</i>).</li>

<li>Время выполнения монтажных работ будет согласовано по телефону.</li>

<li>Предъявить для проверки паспорт, указанный при подаче заявления. Если паспортные данные не совпадают, работы по подключению не производятся.</li>

<li>Предоставить монтажнику конечное оборудование для первоначальной настройки.</li>

<li>Подписать Акт начала предоставления услуг связи и выполненных работ.</li>

<li>По окончании работ подписать Акт выполненных работ.</li>

</ol>

</div>

<p>

<p>

<div>

</div>

</form>

</div>

<div id= «step3»><! - 3333333333333333333333333333333333333333333333333333->

<form id= «step3Form» name= «step3Form» method= «post» action= «post.php»>

<div>

<label for= «txtSurname»>Фамилия</label>

<div>

</div>

<div>

<label for= «txtName»>Имя</label>

<div>

</div>

<div>

<label for= «txtFathername»>Отчество</label>

<div>

</div>

<div>

<label for= «sltBirthDay»>Дата рождения</label>

<div>

</div>

</form>

</div>

<div id= «step4»><! - 4444444444444444444444444444444444444444444444444444->

<form id= «step4Form» name= «step4Form» method= «post» action= «post.php»>

<div>

<label for= «txtSeria»>Серия и номер паспорта</label>

<div>

<input type= «text» id= «txtSeria» name= «txtSeria»>

<input type= «text» id= «txtNomer» name= «txtNomer»>

</div>

</div>

<div>

<label for= «txtWho»>Кем выдан</label>

<div>

</div>

<div>

<label for= «sltWhoDay»>Когда выдан</label>

<div>

</div>

<div>

<label for= «txtAddress»>Адрес регистрации</label>

<div>

</div>

</form>

</div>

<div id= «step5»><! - 55555555555555555555555555555555555555555555555555555->

<form id= «step5Form» name= «step5Form» method= «post» action= «post.php»>

<div>

<label for= «txtCityDis»>Город</label>

<div>

<div>

</div>

<div>

<label for= «txtStreetDis»>Улица</label>

<div>

</div>

<div>

<label for= «txtHouseDis»>Дом</label>

<div>

</div>

<div>

<label for= «txtKvartira»>Квартира</label>

<div>

</div>

<div>

<label for= «txtPodezd»>Подъезд</label>

<div>

</div>

<div>

<label for= «txtEtazh»>Этаж</label>

<div>

</div>

</form>

</div>

<div id= «step6»><! - 6666666666666666666666666666666666666666666666666666->

<form id= «step6Form» name= «step6Form» method= «post» action= «post.php»>

<div>

<label for= «txtPhone2»>Домашний телефон</label>

<div>

<input type= «text» id= «txtPhone2» name= «txtPhone2» maxlength= «5» tabindex= «11» />

<input type= «text» id= «txtPhone3» name= «txtPhone3» maxlength= «13» tabindex= «12» />

</div>

</div>

<div>

<label for= «txtWork2»>Рабочий телефон</label>

<div>

<input type= «text» id= «txtWork2» name= «txtWork2» maxlength= «5» tabindex= «13» />

<input type= «text» id= «txtWork3» name= «txtWork3» maxlength= «13» tabindex= «14» />

</div>

</div>

<div>

<label for= «txtMobile2»>Мобильный телефон</label>

<div>

<input type= «text» id= «txtMobile2» name= «txtMobile2»>

<input type= «text» id= «txtMobile3» name= «txtMobile3»>

<input type= «text» id= «txtMobile4» name= «txtMobile4»>

<input type= «text» id= «txtMobile5» name= «txtMobile5»>

</div>

</div>

<div>

<label for= «txtIcq»>ICQ</label>

<div>

</div>

<div>

<label for= «txtEmail»>Email</label>

<div>

</div>

<div>

<label for= «areaComment»>Комментарий</label>

<div>

</div>

</form>

</div>

<div id= «step7»><! - 77777777777777777777777777777777777777777777777777777->

<form id= «step7Form» name= «step7Form» method= «post» action= «post.php»>

<div>

<label for= «radTarif»>Тариф</label>

<div>

</div>

<div>

<label for= «sltKnowFrom»>Откуда вы узнали о компании?</label>

<div>

<select id= «sltKnowFrom» name= «sltKnowFrom» tabindex= «22»>

<option value= «1»>Реклама в Интернет</option>

<option value= «2»>Реклама в автобусах</option>

<option value= «3»>Рекламный плакат</option>

<option value= «4»>От знакомого(й)</option>

<option value= «5»>Рекламная листовка</option>

<option value= «others»>Другое…</option>

</select>

<input type= «text» id= «txtKnowFrom» name= «txtKnowFrom» tabindex= «23» />

</div>

</div>

<div>

<label for= «txtQuestion» id= «lbQuestion» name= «lbQuestion»>Вопрос</label>

<div>

<input type= «hidden» id= «currQuestionId» name= «currQuestionId» value=»» />

<input type= «button» id= «btnGetQuestion» name= «btnGetQuestion» value= «Следующий вопрос» />

</div>

</form>

</div>

<div id= «step8»><! - 77777777777777777777777777777777777777777777777777777->

<table id= «sending»>

<tbody>

<tr id= «step1Sending»>

<td><div>

</tr>

<tr id= «step3Sending»>

<td><div>

</tr>

<tr id= «step4Sending»>

<td><div>

</tr>

<tr id= «step5Sending»>

<td><div>

</tr>

<tr id= «step6Sending»>

<td><div>

</tr>

<tr id= «step7Sending»>

<td><div>

</tr>

</tbody>

</table>

</div>

<div id= «done»>

<p>Спасибо, заявка на подключение принята. В течении двух дней с Вами свяжется специалист найшей компании и подтвердит техническую возможность подключения, а так же объяснит дальнейшие процедуры для успешного завершения данной заявки.</p>

</div>

<div id= «willBeDone»>

<p>Спасибо, заявка на подключение принята. Ваша заявка будет обязательно учтена при развитии и планировании участком сети. Когда Ваш дом будет подключен вы получите уведомление на электронную почту.</p>

</div>

<div id= «alreadyWas»>

<p>Извините, но вы уже подавали заявку.</p>

</div>

<div id= «nav» style= «bottom:0;»>

<a href= "#» id= «prevRqBtn»>Назад</a>

<a href= "#» id= «nextRqBtn»>Дальше</a>

<a href= "#» id= «sendRqBtn»>Отправить заявку</a>

</div>

</body>

</html>

<?_once (»../classes/dbclass.php»);

$obj = new dbClass();

$obj->connect ('web47_db2');

$street = $_POST[sltStreet];«<select id=\ «sltHouse\» name=\ «sltHouse\» onchange=\ «houseChange();>»;($street<>null) {

$results = $obj->query («SELECT id_house, number FROM houses where id_street=».$street.» and conn_status='5' order by number;»);($line=mysql_fetch_assoc($results)) {«<Option value=\ "».$line ['id_house']. "\ ">».$line['number']. «</Option>\n»;

}

} else {«<Option value=\ "></Option>\n»;

}«</select>»;

$obj->disconnect();

?>

ф<? php

#session_save_path («sessiusdadutnevse»);_start();

$formName = $_POST['formName'];

$strErrors = «;

$arrOfErrors = array(); ('mail.php'); // подгружаем скрипт для отправки email

$required = «/[^.*]/»; // ***

$alpha = «/^[a-zА-Яа-я._-]/»; // ***

$alphanum = «/^[a-z0-9._-]/»;

$digit = «/^[-+]? [0-9]/»; // ***

$nodigit = «/^[^0-9]+$/»;

$number = «/^[-+]?\d*\.?\d+$/»;

$email = «/^[-0-9a-z_\.]+@[-0-9a-z^\.]+\. [a-z] {2,4}$/i»; // ***

$phone = «/^[\d\s ().-]+$/»;

$url = «/^(http|http|ftp)\:\/\/[a-z0-9\-\.]+\. [a-z] {2,3} (:[a-z0-9]*)?\/? ([a-z0-9\-\._\?\,\'\/\\\+&amp;%\$#\=~])*$/»;($formName) {'step1Form':

// {Обнуляем все сессионные переменные

// $_SESSION['sltCity'] = «;

// Обнуляем все сессионные переменные}

$sltCity = controleMe ($_POST['sltCity'], 'sltCity', $digit, 'notNull', '-1'); // id города

$sltStreet = controleMe ($_POST['sltStreet'], 'sltStreet', $digit, 'notNull', '-1'); // id улицы

$chkHouseExist = trim ($_POST['chkHouseExistValue']);($chkHouseExist == 'checked') { // если выбрали, что дома нет

$txtHouse = controleMe ($_POST['txtHouse'], 'txtHouse', $required, 'notNull', '1,10'); // номер дома, введённого пользователем

$_SESSION['finalHouseText'] = $txtHouse;

$_SESSION['finalHouseId'] = false;

} else {

$sltHouse = controleMe ($_POST['sltHouse'], 'sltHouse', $digit, 'notNull', '-1'); // id дома

$_SESSION['finalHouseId'] = $sltHouse;

$_SESSION['finalHouseText'] = false;

}

$_SESSION['finalCity'] = $sltCity;

$_SESSION['finalStreet'] = $sltStreet;();;'step3Form':

$txtSurname = controleMe ($_POST['txtSurname'], 'txtSurname', $alpha, 'notNull', '-1'); // Фамилия

$txtName = controleMe ($_POST['txtName'], 'txtName', $alpha, 'notNull', '-1'); // Имя

$txtFathername = controleMe ($_POST['txtFathername'], 'txtFathername', $alpha, 'notNull', '-1'); // Отчество

$sltBirthDay = controleMe ($_POST['sltBirthDay'], 'sltBirthDay', $digit, 'notNull', '-1'); // День рождения

$sltBirthMonth = controleMe ($_POST['sltBirthMonth'], 'sltBirthMonth', $digit, 'notNull', '-1'); // Месяц рождения

$sltBirthYear = controleMe ($_POST['sltBirthYear'], 'sltBirthYear', $digit, 'notNull', '-1'); // Год рождения

$_SESSION['finalSurname'] = $txtSurname;

$_SESSION['finalName'] = $txtName;

$_SESSION['finalFathername'] = $txtFathername;

$_SESSION['finalBirthDay'] = $sltBirthDay;

$_SESSION['finalBirthMonth'] = $sltBirthMonth;

$_SESSION['finalBirthYear'] = $sltBirthYear;();;'step4Form':

$txtSeria = controleMe ($_POST['txtSeria'], 'txtSeria', $digit, 'notNull', '4'); // серия паспорта

$txtNomer = controleMe ($_POST['txtNomer'], 'txtNomer', $digit, 'notNull', '6'); // номер паспорта

$txtWho = controleMe ($_POST['txtWho'], 'txtWho', $required, 'notNull', '-1'); // Кем выдано

$sltWhoDay = controleMe ($_POST['sltWhoDay'], 'sltWhoDay', $digit, 'notNull', '-1'); // Когда выдано. День

$sltWhoMonth = controleMe ($_POST['sltWhoMonth'], 'sltWhoMonth', $digit, 'notNull', '-1'); // Когда выдано. Месяц

$sltWhoYear = controleMe ($_POST['sltWhoYear'], 'sltWhoYear', $digit, 'notNull', '-1'); // Когда выдано. Год

$txtAddress = controleMe ($_POST['txtAddress'], 'txtAddress', $required, 'notNull', '-1'); // адрес прописки

$_SESSION['finalSeria'] = $txtSeria;

$_SESSION['finalNomer'] = $txtNomer;

$_SESSION['finalWho'] = $txtWho;

$_SESSION['finalWhoDay'] = $sltWhoDay;

$_SESSION['finalWhoMonth'] = $sltWhoMonth;

$_SESSION['finalWhoYear'] = $sltWhoYear;

$_SESSION['finalAddress'] = $txtAddress;();;'step5Form':

// $txtCityDis = controleMe ($_POST['txtCityDis'], 'txtCityDis', $alpha, 'notNull', '-1'); // город

// $txtStreetDis = controleMe ($_POST['txtStreetDis'], 'txtStreetDis', $alpha, 'notNull', '-1'); // улица

// $txtHouseDis = controleMe ($_POST['txtHouseDis'], 'txtHouseDis', $required, 'notNull', '-1'); // дом

$txtKvartira = controleMe ($_POST['txtKvartira'], 'txtKvartira', $digit, 'notNull', '1,4'); // квартира

$txtPodezd = controleMe ($_POST['txtPodezd'], 'txtPodezd', $digit, 'notNull', '1,2'); // подъезд

$txtEtazh = controleMe ($_POST['txtEtazh'], 'txtEtazh', $digit, 'notNull', '1,3'); // этаж

// $_SESSION['finalCityDis'] = $txtCityDis;

// $_SESSION['finalStreetDis'] = $txtStreetDis;

// $_SESSION['finalHouseDis'] = $txtHouseDis;

$_SESSION['finalKvartira'] = $txtKvartira;

$_SESSION['finalPodezd'] = $txtPodezd;

$_SESSION['finalEtazh'] = $txtEtazh;();;'step6Form':

// $txtPhone1 = controleMe ($_POST['txtPhone1'], 'txtPhone1', $digit, 'Null', '1'); // 8

$txtPhone2 = controleMe ($_POST['txtPhone2'], 'txtPhone2', $digit, 'Null', '0,5'); // 84967

$txtPhone3 = controleMe ($_POST['txtPhone3'], 'txtPhone3', $digit, 'Null', '0,13'); // 752472

// $txtWork1 = controleMe ($_POST['txtWork1'], 'txtWork1', $digit, 'Null', '1'); // 8

$txtWork2 = controleMe ($_POST['txtWork2'], 'txtWork2', $digit, 'Null', '0,5'); // 8497

$txtWork3 = controleMe ($_POST['txtWork3'], 'txtWork3', $digit, 'Null', '0,13'); // 752472

// $txtMobile1 = controleMe ($_POST['txtMobile1'], 'txtMobile1', $digit, 'notNull', '1'); // 8

$txtMobile2 = controleMe ($_POST['txtMobile2'], 'txtMobile2', $digit, 'notNull', '3'); // 915

$txtMobile3 = controleMe ($_POST['txtMobile3'], 'txtMobile3', $digit, 'notNull', '3'); // 471

$txtMobile4 = controleMe ($_POST['txtMobile4'], 'txtMobile4', $digit, 'notNull', '2'); // 81

$txtMobile5 = controleMe ($_POST['txtMobile5'], 'txtMobile5', $digit, 'notNull', '2'); // 34

//echo $_POST['txtEmail'];

$txtIcq = controleMe ($_POST['txtIcq'], 'txtIcq', $required, 'Null', '-1'); // ICQ

$txtEmail = controleMe ($_POST['txtEmail'], 'txtEmail', $email, 'Null', '-1'); // email

$areaComment = controleMe ($_POST['areaComment'], 'areaComment', $required, 'Null', '-1'); // комментарий

// $_SESSION['finalPhone1'] = $txtPhone1;

$_SESSION['finalPhone2'] = $txtPhone2;

$_SESSION['finalPhone3'] = $txtPhone3;

// $_SESSION['finalWork1'] = $txtWork1;

$_SESSION['finalWork2'] = $txtWork2;

$_SESSION['finalWork3'] = $txtWork3;

// $_SESSION['finalMobile1'] = $txtMobile1;

$_SESSION['finalMobile2'] = $txtMobile2;

$_SESSION['finalMobile3'] = $txtMobile3;

$_SESSION['finalMobile4'] = $txtMobile4;

$_SESSION['finalMobile5'] = $txtMobile5;

$_SESSION['finalIcq'] = $txtIcq;

$_SESSION['finalEmail'] = $txtEmail;

$_SESSION['finalComment'] = $areaComment;();;'step7Form':

$radTarif = controleMe ($_POST['radTarif'], 'radTarif', $digit, 'notNull', '-1'); // id тарифа

$sltKnowFrom = controleMe ($_POST['sltKnowFrom'], 'sltKnowFrom', $required, 'notNull', '-1'); // откуда узнали

$_SESSION['finalTarif'] = $radTarif;($sltKnowFrom == 'others') { // если выбрали другое

$txtKnowFrom = controleMe ($_POST['txtKnowFrom'], 'txtKnowFrom', $required, 'notNull', '-1'); // введённый текст

$_SESSION['finalKnowFromText'] = $txtKnowFrom;

$_SESSION['finalKnowFromId'] = false;

} else { // если выбрали из списка

$sltKnowFrom = controleMe ($_POST['sltKnowFrom'], 'sltKnowFrom', $digit, 'notNull', '-1'); // ид варианта

$_SESSION['finalKnowFromId'] = $sltKnowFrom;

$_SESSION['finalKnowFromText'] = false;

}

// вопрос_once (»../classes/dbclass.php»);

$obj = new dbClass();

$obj->connect ('web47_db2');

$id = trim (preg_replace ('/\D/', «, $_POST['currQuestionId'])); // ид вопроса

$txtQuestion = strtolower (controleMe($_POST['txtQuestion'], 'txtQuestion', $required, 'notNull', '-1')); // откуда узнали

$str = «SELECT otvet FROM kil_bots WHERE id=».$id;

$resultOtvet = $obj->query($str);

$resultOtvet2 = $resultOtvet;

//echo «SELECT otvet FROM kil_bots where id = '».$id. «';»;

$realAnswer = strtolower (mysql_result ($resultOtvet2, 0, 'otvet')); // правильный ответ

if ($realAnswer == $txtQuestion) $_SESSION['finalQuestionId'] = $id; // если ответили правильно, то записываем в финал ид вопроса{ // если не правильно

$_SESSION['finalQuestionId'] = false; // то записываем фолс

$arrOfErrors[] = 'txtQuestion'; // и пишем ошибку

}

// вопрос();($strErrors == 'noErrors') $formName = 'done';{

$obj->disconnect();;

}'done':

if ($_SESSION['finalHouseId']) { // если выбрали дом из списка

$check_query=«select id from z_connectiongorod='».$_SESSION['finalCity']. "'ulitsa='».$_SESSION['finalStreet']. "'dom='».$_SESSION['finalHouseId']. "'kvartira='».$_SESSION['finalKvartira']. «'»;

$house=mysql_result ($obj->query («select number from houses where id_house=$_SESSION[finalHouseId]»), 0);

} else { // если сами вписали дом

$check_query=«select id from z_connectiongorod='».$_SESSION['finalCity']. "'ulitsa='».$_SESSION['finalStreet']. "'temp_dom='».$_SESSION['finalHouseText']. "'kvartira='».$_SESSION['finalKvartira']. «'»;

$house=$_SESSION['finalHouseText'];

};

$city=mysql_result ($obj->query («select name from cities where id_city=$_SESSION[finalCity]»), 0);

$street=mysql_result ($obj->query («select street_name from streets where id=$_SESSION[finalStreet]»), 0);

#echo $check_query;

$result=$obj->query ($check_query);

if (mysql_num_rows($result) > 0) { // если заявку уже подавали

$strErrors = 'alreadyWas'; // то возвращаем значение, что уже подавали; // вылетаем

} else { // а если заявку не подавали

// id связки паспортных данных и данных о подключении

$id_sv=time();

// сам запрос mysql_escape_string

$imy=mysql_real_escape_string ($_SESSION['finalName']);

$fam=mysql_real_escape_string ($_SESSION['finalSurname']);

$otz=mysql_real_escape_string ($_SESSION['finalFathername']);

$cit=mysql_real_escape_string ($_SESSION['finalCity']);

$str=mysql_real_escape_string ($_SESSION['finalStreet']);

$hss=mysql_real_escape_string ($_SESSION['finalHouseId']);

$kvr=mysql_real_escape_string ($_SESSION['finalKvartira']);

$pod=mysql_real_escape_string ($_SESSION['finalPodezd']);

$etg=mysql_real_escape_string ($_SESSION['finalEtazh']);

$mob=mysql_real_escape_string ('8 ('.$_SESSION['finalMobile2'].')'.$_SESSION['finalMobile3'].'-'.$_SESSION['finalMobile4'].'-'.$_SESSION['finalMobile5']);($_SESSION['finalPhone2']&&$_SESSION['finalPhone3']) {

$domt=mysql_real_escape_string ('8 ('.$_SESSION['finalPhone2'].')'.$_SESSION['finalPhone3']);

} else {

$domt='';

}($_SESSION['finalWork2']&&$_SESSION['finalWork3']) {

$rab=mysql_real_escape_string ('8 ('.$_SESSION['finalWork2'].')'.$_SESSION['finalWork3']);

} else {

$rab='';

}

$icq=mysql_real_escape_string ($_SESSION['finalIcq']);

$mai=mysql_real_escape_string ($_SESSION['finalEmail']);

$com=mysql_real_escape_string ($_SESSION['finalComment']);

$tar=mysql_real_escape_string ($_SESSION['finalTarif']);

$sn0=mysql_real_escape_string ($_SESSION['finalSeria']); // Cерия паспорта

$sn1=mysql_real_escape_string ($_SESSION['finalNomer']); // Номер паспорта

$wd0=mysql_real_escape_string ($_SESSION['finalWho']); // Кем выдан

$wd1=mysql_real_escape_string ($_SESSION['finalWhoDay'].'.'.$_SESSION['finalWhoMonth'].'.'.$_SESSION['finalWhoYear']); // Koгда выдан

$prp=mysql_real_escape_string ($_SESSION['finalAddress']); // Прописка

$bd=mysql_real_escape_string ($_SESSION['finalBirthDay'].'.'.$_SESSION['finalBirthMonth'].'.'.$_SESSION['finalBirthYear']); // Дата рождения

//mysql_query («SET NAMES 'utf8'»);($_SESSION['finalHouseId']) {

$query=«insert into z_connection(null, '$imy', '$fam', '$otz',

'$cit', '$str', '$hss',

'$kvr', '$pod', '$etg',

'$mob', '$domt', '$rab',

'$icq', '$mai', '$com', 0,8,0,

'0000-00-00', NOW(), '29', 1,

'0000-00-00', null, 0, null, 0,'0', '29',

'$data_zak', '$id_sv', '$tar', '1', '-', '0', '-', null)»;

$queryForKnowFrom = «select id from z_connection where gorod=».$cit.» and ulitsa=».$str.» and dom=».$hss.» and kvartira=».$kvr;

} else {

$query=«insert into z_connection(null, '$imy', '$fam', '$otz',

'$cit', '$str', '0',

'$kvr', '$pod', '$etg',

'$mob', '$domt', '$rab',

'$icq', '$mai', '$com', 0,9,0,

'0000-00-00', NOW(), '29', 1,

'0000-00-00', null, 0, null, 0,'0', '29',

'$data_zak', '$id_sv', '$tar', '1', '-', '0', '-', '».$_SESSION['finalHouseText']. «')»;

$queryForKnowFrom = «select id from z_connection where gorod=».$cit.» and ulitsa=».$str.» and temp_dom=».$_SESSION['finalHouseText'].» and kvartira=».$kvr;

};

$query0=«insert into con_cross_pas

(id, snn, vidan, date_birth, propiska, ip, sno, da_vidan, l_auth)('».$id_sv. «', '».$sn0. «', '».$wd0. «', '».$bd. «', '».$prp. «', '».$_SERVER ['REMOTE_ADDR']. «', '».$sn1. «', '».$wd1. «', '29')»;(($obj->query($query)) && ($obj->query($query0))) {

// ************ Откуда узнали о компании ************

$zid=mysql_result ($obj->query($queryForKnowFrom), 0);($_SESSION['finalKnowFromId']) {

$knowStr = mysql_real_escape_string ($_SESSION['finalKnowFromId']);

} else {

$knowStr = mysql_real_escape_string ($_SESSION['finalKnowFromText']);

}

$obj->query («insert into stat (id, know_from) values ('».$zid. «', '».$knowStr. «')»);

// **************************************************($_SESSION['finalHouseId']) {

$strErrors = 'done';

$mailText= «Спасибо, заявка на подключение принята.\n Ваша заявка будет обязательно учтена при развитии и планировании участком сети. Когда Ваш дом будет подключен вы получите уведомление на электронную почту.»;

} else {

$strErrors = 'willBeDone';

$mailText= «Спасибо, заявка на подключение принята.\n В течении двух дней с Вами свяжется специалист нашей компании и подтвердит техническую возможность подключения, а так же объяснит дальнейшие процедуры для успешного завершения данной заявки.»;

}

}

}($zid) {(mysql_result ($obj->query («select conn_status from houses where id_house='».$_SESSION['finalHouseId']. «'»), 0)=='5') { // если дом подключен

$m_c=»

<p>

<table>

<tr><td>Номер заявки</td>

<td>$zid</td>

</tr>

<tr><td>Адрес</td>

<td>$city, ул. $street, д. $house, кв. $kvr</td>

</tr>

<tr><td><nobr>Фамилия, Имя, Отчество<nobr/></td>

<td>».$fam. "».$imy. "».$otz. «</td>

</tr>

<tr><td>Контактный телефон</td>

<td>».$mob. «</td>

</tr>

</table>

</p>»;

} else { // если дом не подключен

$m_c=»

<p>

<table>

<tr><td>Номер заявки</td>

<td>$zid</td>

</tr>

<tr><td>Адрес</td>

<td>$city, ул. $street, д. $house, кв. $kvr</td>

</tr>

<tr><td><nobr>Фамилия, Имя, Отчество<nobr/></td>

<td>».$fam. "».$imy. "».$otz. «</td>

</tr>

<tr><td>Контактный телефон</td>

<td>$mob</td>

</tr>

</table>

</p>»;

}

$m_c = $mailText.$m_c;

$doctype=mysql_result ($obj->query («select doctype from cities where id_city=$cit»), 0);($_SESSION['finalEmail']) mail_them ($_SESSION['finalEmail'],$doctype, '[email protected]',$zid,$m_c);

};

}trim($strErrors);controleMe ($value, $inputName, $template, $null, $strLen) {$arrOfErrors;

$newValue = trim($value);

$newValue = htmlspecialchars ($newValue); // тэги заменяем на текст

$newValue = str_replace («query», "»,$newValue); // MySQL

$newValue = str_replace («select», "»,$newValue);

$newValue = str_replace («from», "»,$newValue);

$newValue = str_replace («delete», "»,$newValue);

$newValue = str_replace («insert», "»,$newValue);

$newValue = str_replace («update», "»,$newValue);

$newValue = str_replace (»;», "»,$newValue);

$newValue = str_replace («'», "»,$newValue);

$newValue = str_replace («», "»,$newValue);

// $newValue = str_replace («@», "»,$newValue);

$newValue = str_replace («$», "»,$newValue);

$newValue = str_replace («^», "»,$newValue);

$newValue = str_replace («=», "»,$newValue);

$final = true;

$arrLen = split (', ', $strLen);(count($arrLen) == 1) { // если задан 1 параметр

if ($arrLen[0] <> -1) { // если этот параметр не равен -1(strlen($newValue) <> $arrLen[0]) { // если длина строки не равна этому параметру

$final = false;

}

// $newValue = substr ($newValue, 0, $len); // длина значения

}

}(count($arrLen) == 2) { // если задано 2 параметра(strlen($newValue) < $arrLen[0]) { // если длина строки меньше минимума

$final = false;

}(strlen($newValue) > $arrLen[1]) { // если длина строки больше максимума

$final = false;

}

}

(($null == 'notNull')&&(!$newValue)) $final = false; // если значение обязательное и пустое(($newValue)&&(! preg_match ($template, $newValue))) $final = false; // если значение обязательное и не правильно заполнено

if (!$final) {

$arrOfErrors[] = $inputName;

//echo $newValue;false;

} else {$newValue;

}

}setErrors() { // функция добавления ошибок в строку вывода

global $arrOfErrors, $strErrors;(count($arrOfErrors) == 0) {

$strErrors = 'noErrors';

} else {

$str = «;

$strErrors = «;($i=0; $i<count($arrOfErrors); $i++) {($i<>0) $str = ', ';

$strErrors.= $str.$arrOfErrors[$i];

}

}

}

?>

<?mail_them ($to,$doctype,$from,$num,$addt) {

$headers= «From: $from\r\n»;

$headers.= «Reply-To: $to\r\n»;

$headers.= «Status: ND\r\n»;

$headers.= «Content-Type: text/html; charset=UTF-8\n»;

$subj='=? UTF-8? B?'.base64_encode («Ваша заявка на подключение принята.»).'?=';

# Методом исключения:) Переписать на прямой метод

if ($doctype==1) {

$cont=»

<p>$addt</p>

По всем интересующим Вас вопросам вы можете обращаться по телефонам в любое представительство ЗАО \ «Риал Ком\», для идентификации вам необходимо указать номер вашей заявки:<br>

<ul>Фактический адрес:

<li> Московская обл., г. Подольск, ул. Свердлова, д. 15 (центральный офис), тел. 8 (495) 502-79-46</li>

</ul>

<ul>Адреса Представительств:

<li>г. Москва, ул. Грина, д. 18, «Солярис», тел. (499) 500-31-11;</li>

<li>г. Щербинка, «Капитал», тел. (495) 580-27-30;</li>

<li>г. Климовск, ул. Заводская, д. 2, тел. (495) 500-07-89;</li>

<li>г. Серпухов, ул. Ворошилова, дом 130а (5й этаж), тел: (495) 544-00-04:</li>

</ul>»;

} else {

$cont=»

<p>$addt</p>

По всем интересующим Вас вопросам вы можете обращаться по телефонам в ООО \ «Абевег\», для идентификации вам необходимо указать номер вашей заявки:<br>

<ul>Фактический адрес:

<li>г. Чехов, ул. Полиграфистов, д. 1, тел. (49672) 75-8-75, (495) 580-57-77.</li>

</ul>»;

};

$ms=mail ($to,$subj,$cont,$headers);

if($ms) {

# echo («Письмо выслано.»);

} else {

# echo(«Письмо не выслано.»);

};false;

};

?>

// JavaScript Document= 1;.addEvent ('domready', function() {();

});getSelectText(id) {= $(id).selectedIndex;(n == -1) return «;= $(id).options[n].text;txt;

}cityChange() { // событие изменения города();

//changeAgreement();

}streetChange() {();

}houseChange() {

// $('txtHousesDisabled').value = getSelectText('sltHouse'); // записываем во второй шаг

}getCities() { // возвращает города('tdCities', 1, 2);req = new Request({: «cities.php» + fuckCash(),:'get',: function(xhr) {

$('tdCities').innerHTML = xhr.replace ('?', '\r');();();

},: function() {

$('tdCities').innerHTML = 'error';

}

});.send();

}getStreets() { // возвращает улицы('tdStreets', 1, 2);city = $('sltCity').value;req = new Request({: «streets.php» + fuckCash(),:'post',: {sltCity:city},: function(xhr) {

$('tdStreets').innerHTML = xhr.replace ('?', '\r');();();();

},: function() {

$('tdStreets').innerHTML = 'error';

}

});.send();

}getHouses() { // возвращает дома('tdHouses', 1, 2);street = $('sltStreet').value;req = new Request({: «houses.php» + fuckCash(),:'post',: {sltStreet:street},: function(xhr) {

$('tdHouses').innerHTML = xhr.replace ('?', '\r');

$('chkHouseExist').checked = «; // отменяем, что нет дома

setHouse($('chkHouseExist').checked); // выводим селект();

},: function() {

$('tdHouses').innerHTML = 'error';

}

});.send();

$('chkHouseExist').checked = false; // изменяем чекбокс('out', 'houseComment', 200, 'vertical'); // убираем комментарий('out', 'houseCommentText', 200, 'vertical'); // убираем комментарий

}getTarifs() { // возвращает тарифы('tdTarifs', 1, 2);city = $('sltCity').value;req = new Request({: «tarifs.php» + fuckCash(),:'post',: {sltCity:city},: function(xhr) {

$('tdTarifs').innerHTML = xhr.replace ('?', '\r');

// $('radTarif').= $('tdTarifs').getElement('input');.setProperty ('class', «validate['radios']»); // задаём классForm.register(radio); // ставим проверку

},: function() {

$('tdTarifs').innerHTML = 'error';

}

});.send();

}postForms(form) { // отправка форм

//javascript:$('txtSurname').setStyle ('background', 'red');= document.getElements ('.statusTitle');

//alert(arrOfStatuses);(i=0; i<arrOfStatuses.length; i++) { // все ссылки превращаем в текст= arrOfStatuses[i];.innerHTML = el.get('text');

}

$('sending').getElements('tr').setStyle ('background', '#FFF'); // фон ставим белым.set ('send', {: function() {= form.get('id').substring (0,5);= step.charAt(4).toInt(); // номер шага

//alert(step);= $(step+'Sending'); // строка в окне проверки= tr.getElement ('.statusTitle'); // блок загрузки= tr.getElement ('.loading'); // блок загрузки= tr.getElement ('.statusError'); // блок ошибки= tr.getElement ('.statusSuccess'); // блок подтверждения.setStyle ('background', '#dfefff'); // выделяем элемент(loading, 2, 2); // ставим загрузчик.setStyle ('display', 'none');.setStyle ('display', 'none');.getElements ('input, select, option').setStyles({ // если раньше были ошибки в форме, то подчищаем следы

'font-weight': 'normal',

'color': '#000'

});

},: function(xhr) {= xhr; // ответ php скрипта.setStyle ('background', '#FFF'); // выделяем элемент(loading); // удаляем загрузчик(str == 'noErrors') { // если пришёл ответ, что нет ошибок.setStyle ('display', 'block');

} else if (str =='done') { // заявка отправлена= 'done';();

} else if (str =='willBeDone') { // заявка учтена

//alert(str);= 'willBeDone';();

} else if (str =='alreadyWas') { // заявка уже есть в базе

//alert(str);= 'alreadyWas';();

} else {

//alert(statusTitle.getElement('a').get('text'));

//alert(str);.innerHTML = '<a href= "#» onclick= «rqStep=' + stepNumber + '; goToRequestStep(); $(\'sendRqBtn\').setStyle (\'display\', \'block\');»>' + statusTitle.innerHTML + '</a>';.setStyle ('display', 'block'); // если ошибка.setStyle ('background', backgrError); // выделяем фон красным цветом

(function() {=stepNumber;();

$('sendRqBtn').setStyle ('display', 'block');

}).delay(2000); // переход на ошибку= str.split (', '); // если есть ошибки, то режем строку с именами полей на массив =))

for (i=0; i<arrOfErrors.length; i++) {= $(arrOfErrors[i]);

//alert (arrOfErrors[i]);.setStyles({ // выделяем ошибки

'font-weight': 'bold',

'color': 'red'

});

};

}(i=0; i<arrForms.length; i++) { // ищем текущую форму и вызываем следующую за ней(arrForms[i] == form) { // нахождение+= 1;(arrForms[i]); // вывод;

}

}

}

});.send();

}getMyDate(arrDate) { // возвращает SELECT с днём / месяцем или числом (может всё сразу)

urlStr = «;(arrDate['dayId']) { // если запросили день

addLoader (arrDate['dayConteiner'], 2, 2);+= '&dayId='+arrDate['dayId'];

}(arrDate['monthId']) { // если запросили месяц

addLoader (arrDate['monthConteiner'], 2, 2);+= '&monthId='+arrDate['monthId'];

}(arrDate['yearId']) { // если запросили год

addLoader (arrDate['yearConteiner'], 2, 2);+= '&yearId='+arrDate['yearId'];

}

//alert («date.php» + fuckCash() + urlStr);req = new Request({: «date.php» + fuckCash() + urlStr,:'get',: function(xhr) {= xhr.replace ('?', '\r'); (arrDate['dayId']) { // если задан день

b = xhrNew.indexOf (' % day % ') + 5; // то ищем начало селекта с днём= xhrNew.indexOf ('%/day % '); // ищем конец селекта с днём= xhrNew.substring (b, e); // записываем в переменную селект

$(arrDate['dayConteiner']).innerHTML = xhrDay; // выводим селект в контеинер

newEl = $(arrDate['dayId']);

//newEl[1].selected = 'selected'; // fuck.setProperty ('class', 'validate [«required»]'); // задаём класс для селекта['form'].register(newEl); // ставим проверку селекта

}(arrDate['monthId']) {= xhrNew.indexOf (' % month % ') + 7;= xhrNew.indexOf ('%/month % ');= xhrNew.substring (b, e);

$(arrDate['monthConteiner']).innerHTML = xhrMonth;= $(arrDate['monthId']);

//newEl[1].selected = 'selected'; // fuck.setProperty ('class', 'validate [«required»]'); // задаём класс для селекта['form'].register(newEl); // ставим проверку селекта

}(arrDate['yearId']) {= xhrNew.indexOf (' % year % ') + 6;= xhrNew.indexOf ('%/year % ');= xhrNew.substring (b, e);

$(arrDate['yearConteiner']).innerHTML = xhrYear;= $(arrDate['yearId']);

//newEl[1].selected = 'selected'; // fuck.setProperty ('class', 'validate [«required»]'); // задаём класс для селекта['form'].register(newEl); // ставим проверку селекта

}

},: function() {('error');

}

});.send();

}getQuestion() { // возвращает тарифы('lbQuestion', 1, 2);currQuestionId = $('currQuestionId').value.toInt();req = new Request({: «question.php» + fuckCash(),:'post',: {id:currQuestionId},: function(xhr) {

//alert(xhr);('lbQuestion');= xhr.replace ('?', '\r');= str.split ('%, %');

$('currQuestionId').value = arrQuestion[0];

$('lbQuestion').innerHTML = arrQuestion[1];

},: function() {

$('currQuestionId').innerHTML = 'error';

}

});.send();

}

// JavaScript Document= 1;= 8;arrFields = new Array();arrInputs = new Array();arrForms = new Array();

backgr = '#dfefff'; // фоновый цвет при наведении= '#c2d7ef'; // цвет границы при наведении= '#ffdfdf'; // фоновый цвет при ошибке= '#efc2c2'; // цвет границы при ошибке= '#f4f9ff'; // фоновый цвет= '#dfefff'; // цвет границы

rialcomFieldError = false;= new Array();Form = null;Form = null;Form = null;Form = null;Form = null;Form = null;Form = null;.addEvent ('domready', function() {();

});initNav() { // инициализация(); // установка обработчиков событий

setFieldsStyles(); // установка стилей полей

}setRqEvents() { // установка обработчиков событий

nextBtn = $('nextRqBtn');

prevBtn = $('prevRqBtn');

sendBtn = $('sendRqBtn');

chkHouseExist = $('chkHouseExist');

sltKnowFrom = $('sltKnowFrom');

getQuestionBtn = $('btnGetQuestion');

prevBtn.addEvent ('click', function() { // нажатие НАЗАД

prevRequestStep();

});

nextBtn.addEvent ('click', function() { // нажатие ВПЕРЁД

nextRequestStep();

});

sendBtn.addEvent ('click', function() { // нажатие ОТПРАВИТЬ ЗАЯВКУ

goToRequestStep('fromSend');

});

chkHouseExist.addEvent ('click', function() { // нажатие МОЕГО ДОМА ЗДЕСЬ НЕТ

this.disabled = 'disabled'; // блокируем чекбокс от двойного нажатия

setHouse (this.checked);

});

sltKnowFrom.addEvent ('change', function() { // выбор из списка ОТКУДА ВЫ УЗНАЛИ О КОМПАНИИ

if (this.get('value') == 'others') { // если выбрали ДРУГОЕ

$('txtKnowFrom').setStyle ('display', 'block');

slideFunc ('in', 'txtKnowFrom', 300, 'vertical'); // слайдим текстовое поле

$('txtKnowFrom').focus();

$('txtKnowFrom').setProperty ('class', «validate['required']»); // задаём класс для текстового поля

step7Form.register($('txtKnowFrom')); // ставим проверку текстового поля

} else { // а если нет

$('txtKnowFrom').setStyle ('display', 'none');

slideFunc ('out', 'txtKnowFrom', 200, 'vertical'); // слайдим текстовое поле

$('txtKnowFrom').setProperty ('class', «); // задаём пустой класс для текстового поля

step7Form.register($('txtKnowFrom')); // убираем проверку текстового поля

}

});

getQuestionBtn.addEvent ('click', function() { // нажатие СЛЕДУЮЩИЙ ВОПРОС

getQuestion(); // смена вопроса

$('txtQuestion').focus();

});Form = new FormCheck('step1Form'); // установка обработчика ошибок ввода формы 1 шагаForm = new FormCheck('step2Form'); // установка обработчика ошибок ввода формы 2 шагаForm = new FormCheck('step3Form'); // установка обработчика ошибок ввода формы 3 шагаForm = new FormCheck('step4Form'); // установка обработчика ошибок ввода формы 4 шагаForm = new FormCheck('step5Form'); // установка обработчика ошибок ввода формы 5 шагаForm = new FormCheck('step6Form'); // установка обработчика ошибок ввода формы 6 шагаForm = new FormCheck('step7Form'); // установка обработчика ошибок ввода формы 6 шага

getMyDate({ // создаём 3 селекта. День, месяц и год

'dayId':'sltBirthDay',

'dayConteiner':'spanDay',

'monthId':'sltBirthMonth',

'monthConteiner':'spanMonth',

'yearId':'sltBirthYear',

'yearConteiner':'spanYear',

'form':step3Form

});({ // создаём 3 селекта. День, месяц и год

'dayId':'sltWhoDay',

'dayConteiner':'spanWhoDay',

'monthId':'sltWhoMonth',

'monthConteiner':'spanWhoMonth',

'yearId':'sltWhoYear',

'yearConteiner':'spanWhoYear',

'form':step4Form

});(); // вывод вопроса

//getTarifs();= window.document.getElements('input'); // выбираем все инпуты.addEvents({

'keyup':function(e) {(this.value.length == this.get('maxlength')) e.key = 'enter'; // если заполнили всё поле, то как бы ЕНТЕР

var e = new Event(e);(e.key == 'enter') { // если нажали ентер

thisTab = this.tabIndex + 1; // то запоминаем, какой следующий табИндекс.getElement ('[tabIndex='+thisTab+']').focus(); // находим его и ставим фокус

}

}

});

arrForms = window.document.getElements ('[action]'); // выбираем все инпуты

//for (var item in arrForms) {.addEvent ('submit', function() {false;

});(i=0; i<arrForms.length; i++) {= arrForms[i];= thisForm.get('name'); // присваиваем имя формыtextField = new Element ('input', {

'type': 'hidden',

'id': 'formName',

'name': 'formName',

'value': formName

});textXssField = new Element ('input', {

'type': 'hidden',

'id': 'session',

'name': 'session',

'value': document.cookie

});.inject(thisForm); // вставляем в форму скрытый инпут

textXssField.inject(thisForm); // вставляем в форму скрытый инпут для защиты от XSS атак;)

// <input type= «hidden» id= «formName» name= «formName» value= «step3Form» />

}

// }

}setFieldsStyles() { // установка стилей полей= window.document.getElements ('.field'); // выборка всех блоков класса.field.setStyles({ // стиль стандарнтый

'background':backgrDef,

'border-color':bordDef

});.addEvents({

'mouseenter':function() {.setStyles({ // стиль стандарнтый

'background':backgrDef,

'border-color':bordDef

});

this.setStyles({ // добавляем стиль текущему полю

'background':backgr,

'border-color':bord

});

}/*,

'click':function() {= this.getElements ('textarea, select, input');(i=0; i<allElems.length; i++) {= allElems[i];(el.get('slideTo') == 'out') el = allElems [i+1]; // если элемент slideOut, то берём следующий(! el.disabled) {.focus();;

}

}

}*/

});

}setHouse(bool) { // ЕСТЬ ДОМ ИЛИ НЕТ?(bool) {('out', 'sltHouse', 300, 'vertical'); // прячем селект

(function() {

$('txtHouse').setStyle ('display', 'block'); // показываем текстовое поле('in', 'txtHouse', 500, 'vertical'); // слайдим текстовое поле

$('txtHouse').setProperty ('class', «validate ['required', 'length [1,10]']»); // задаём класс для текстового поля

step1Form.register($('txtHouse')); // ставим проверку текстового поля

(function() {document.forms.step1Form.txtHouse.focus();}).delay(100); // устанавливаем фокус на текстовое поле

}).delay(300);

$('chkHouseExistValue').value = 'checked';

} else {('out', 'txtHouse', 300, 'vertical'); // прячем текстовое поле

(function() {('in', 'sltHouse', 500, 'vertical'); // слайдим селект

$('txtHouse').setProperty ('class', «); // задаём пустой класс для текстового поляForm.register($('txtHouse')); // отменяем проверку текстового поля

}).delay(300);

$('chkHouseExistValue').value = «;

}

(function() {$('chkHouseExist').disabled = «;}).delay(500); // разблокировывание чекбокса

}setError(el) { // установка ошибки в поле.setStyles({ // стиль стандарнтый

'background':backgrDef,

'border-color':bordDef

});.setStyles({ // добавляем стиль текущему полю

'background':backgrError,

'border-color':bordError

});

}nextRequestStep() { // дальше++;(rqStep > rqStepNums) rqStep = rqStepNums; // шаг не больше всего кол-ва шагов (rqStepNums)('fromNext');

}prevRequestStep() { // назад-;

if (rqStep < 1) rqStep = 1; // шаг не меньше 1('fromPrev');

}showStep(id) { // функция показывает шаг и прячет остальные

for (i=1; i<rqStepNums+1; i++) {

$('step'+i).setStyle ('display', 'none'); // прячем все шаги

}

$(id).setStyle ('display', 'block'); // показываем единстенный

}goToRequestStep(fromm) { // переход на шаг(fromm == undefined) fromm = 'fromNext';

if (fromm == 'fromSend') { // если нажали ОТПРАВИТ ЗАЯВКУ++; // прибавляем шаг, чтобы прошла проверка текущего шага

stepTemp = rqStep; // запоминаем шаг

(function() {(stepTemp <= rqStep) // если проверка прошла, то шаг прибавился= rqStepNums; // присваиваем последний шаг(); // переходим на него

}).delay(1);

}(rqStep) {1:// шаг 1. Координаты('step1');.parent.win.setTitle ('Онлайн заявка. Координаты');.parent.win.setWidth(500);.parent.win.setHeight(450);;

case 2:// шаг 2. Договор- ; // сразу откатываемся(! step1Form.onSubmit()) break; // если есть ошибка, то вылетаем

if ($('sltStreet').innerHTML == «) {($('tdStreets').getParent());

break; // и вылетаем

}(($('sltHouse').innerHTML == «)&&(!$('chkHouseExist').checked)) { // если пустой селект с домом и не выбрано, что нет дома

$('chkHouseExist').checked = 'checked'; // нет дома($('chkHouseExist').checked); // выводим текстовое поле; // и вылетаем

}++; // если не было ошибки, то перекатываемся обратно =)($('chkHouseExist').checked) { // если выбрали, что нет дома

if (fromm == 'fromPrev') rqStep -;(fromm == 'fromNext') rqStep++;();;

}('step2');.parent.win.setTitle ('Онлайн заявка. Договор');.parent.win.setWidth(700);.parent.win.setHeight(470);

//alert($('sltCity').options[1].get («rel»));= 'idCity_' + $('sltCity').value;

//alert(idCity);= $(idCity).innerHTML;

//alert ($chk($(idCity)));= $('siteFromPhp').innerHTML;= $('companyFromPhp').innerHTML;

// $('site').set ('href', sitee);

// $('site').set ('text', sitee);

/*if (rialOrAbev == 2) { // если город - ЧЕХОВ

$('agreementTitle').innerHTML = 'Регламент действий Абонента при заключении Договора на оказание услуг связи '+companyy+' в режиме on-line.';

$('agreementFirst').innerHTML = 'Ознакомиться на сайте '+companyy+': <a>

} else{*/

$('agreementTitle').innerHTML = 'Регламент действий Абонента при заключении Регламента на оказание услуг связи '+companyy+' в режиме on-line.';

$('agreementFirst').innerHTML = 'Ознакомиться на сайте '+companyy+': <a>

// };3:// шаг 3. Инициалы

//alert(rqStep);- ; // сразу откатываемся(!$('chkHouseExist').checked) { // если не пришли со второго шага, то не нужно проверять вторую форму(! step2Form.onSubmit()) break; // если есть ошибка, то вылетаем

}++; // если не было ошибки, то перекатываемся обратно =)

showStep('step3');

// $('step4').setStyle ('display', 'none');.parent.win.setTitle ('Онлайн заявка. Инициалы');.parent.win.setWidth(400);.parent.win.setHeight(300);;

case 4:// шаг 4. Паспортные данные- ; // сразу откатываемся(! step3Form.onSubmit()) break; // если есть ошибка, то вылетаем++; // если не было ошибки, то перекатываемся обратно =)

showStep('step4');.parent.win.setTitle ('Онлайн заявка. Паспортные данные');.parent.win.setWidth(500);.parent.win.setHeight(300);;

case 5:// шаг 5. Адрес установки- ; // сразу откатываемся(! step4Form.onSubmit()) break; // если есть ошибка, то вылетаем++; // если не было ошибки, то перекатываемся обратно =)

showStep('step5');.parent.win.setTitle ('Онлайн заявка. Адрес установки');.parent.win.setWidth(500);.parent.win.setHeight(460);

$('txtCityDis').value = getSelectText('sltCity');

$('txtStreetDis').value = getSelectText('sltStreet');(!$('chkHouseExist').checked) $('txtHouseDis').value = getSelectText('sltHouse'); // если не выбрали, что нет дома$('txtHouseDis').value = $('txtHouse').value; // если выбрали, что нет дома;6:// шаг 6. Связь- ; // сразу откатываемся(! step5Form.onSubmit()) break; // если есть ошибка, то вылетаем

rqStep++; // если не было ошибки, то перекатываемся обратно =)

showStep('step6');.parent.win.setTitle ('Онлайн заявка. Связь');.parent.win.setWidth(500);.parent.win.setHeight(450);;

case 7:// шаг 7. Тариф- ; // сразу откатываемся(! step6Form.onSubmit()) break; // если есть ошибка, то вылетаем++; // если не было ошибки, то перекатываемся обратно =)

showStep('step7');

//getTarifs();.parent.win.setTitle ('Онлайн заявка. Тариф');.parent.win.setWidth(700); // 500.parent.win.setHeight(580); // 540;

case 8:// шаг 8. Проверка- ; // сразу откатываемся(! step7Form.onSubmit()) break; // если есть ошибка, то вылетаем++; // если не было ошибки, то перекатываемся обратно =)

showStep('step8');.parent.win.setTitle ('Онлайн заявка. Проверка');.parent.win.setWidth(220);.parent.win.setHeight(200);

$$('.statusError').setStyle ('display', 'none'); // прячем картинки со статусами проверок

$$('.statusSuccess').setStyle ('display', 'none'); // прячем картинки со статусами проверок

$('prevRqBtn').setStyle ('display', 'none');

$('nextRqBtn').setStyle ('display', 'none');

$('sendRqBtn').setStyle ('display', 'none');(arrForms[0]); // отправка всех форм массива arrForms

$('step5Form').getElement ('.comment').setStyle ('display', 'none'); // прячем текст с ссылкой на изменение координат

/*ii = 0;= (function() {arrForms[ii].fireEvent('submit'); ii++;}).periodical (ii*100+1);(ii == arrForms.length) $clear(index);*/

break;'done':// заявка успешно отправлена

$('step'+rqStepNums).setStyle ('display', 'none');

$('done').setStyle ('display', 'block');.parent.win.setStyle('green');.parent.win.setTitle ('Онлайн заявка успешно отправлена.');.parent.win.setWidth(400);.parent.win.setHeight(100);

break;'willBeDone':// заявка успешно отправлена

$('step'+rqStepNums).setStyle ('display', 'none');

$('willBeDone').setStyle ('display', 'block');.parent.win.setStyle('green');.parent.win.setTitle ('Онлайн заявка успешно отправлена.');.parent.win.setWidth(400);.parent.win.setHeight(100);

break;'alreadyWas':// заявка успешно отправлена

$('step'+rqStepNums).setStyle ('display', 'none');

$('alreadyWas').setStyle ('display', 'block');.parent.win.setStyle('red');

window.parent.win.setTitle ('Извините, но вы уже подавали заявку.');

window.parent.win.setWidth(400);.parent.win.setHeight(100);;

}

//alert(fromm);

}

// тарифы

<! DOCTYPE html PUBLIC «- //W3C //DTD XHTML 1.0 Strict //EN»

«#"justify"><html xmlns= «#"justify"><meta http-equiv= «content-type» content= «text/html; charset=UTF-8» />

<head><title>Тарифы</title>

<link rel= «stylesheet» href=»../styles/main.css» type= «text/css» />

<link rel= «stylesheet» href=»../styles/mainClasses.css» type= «text/css» />

<link rel= «stylesheet» href= «styles/tarifs.css» type= «text/css» />

<link rel= «stylesheet» href=»../styles/mainDives.css» type= «text/css» />

<script type= «text/javascript» src=»../scripts/mod_rialcom_functions.js»></script>

<script type= «text/javascript» src=»../media/system/js/mootools.js»></script>

<script type= «text/javascript» src= «scripts/tarifs.js»></script>

<script type= «text/javascript»>hideTarifs(showMe) {.getElementById('internet').style.display = 'none';.getElementById('phone').style.display = 'none';(showMe == 'phone') {window.parent.win.setHeight('700'); window.parent.win.setTitle ('Тарифы. Телефонная связь');}(showMe == 'internet') {window.parent.win.setHeight('450'); window.parent.win.setTitle ('Тарифы. Интернет');}.getElementById(showMe).style.display = 'block';

}

</script>

<style type= «text/css»>_table {width:98%; margin-left:2px;}

</style>

</head>

<body>

<div style= «margin-bottom:1em;»>

<a href= «javascript:hideTarifs('internet')">Интернет</a><a href= «javascript:hideTarifs('phone')» style= «margin-left:1em;»>Телефонная связь</a><span style= «margin-left:1em»>(<i>Действительно только для физических лиц</i>)</span>

</div>

<div id= «internet»>

<table>

<tr>

<td>Город</td><td id= «tdCities_tarifs»><! - Place for cities -></td>

</tr>

</table>

<div id= «tdTarifs_tarifs»><! - Place for tarifs -></div>

</div>

<div id= «phone» style= «display:none;»>

Тарифы на услуги местной телефонной связи для абонентов, проживающих в <strong>г. Москва, Северное Бутово &quot; Синяя Птица-2&quot;</strong>.

<table>

<tbody>

<tr>

<th rowspan= «2»>Наименование тарифного плана</th>

<th colspan= «4»>Составляющие</center></th>

</tr>

<tr>

<th>Обслуживание абонентской линии, руб.</th>

<th>Плата за базовый объём местных телефонных соединений, руб.</th>

<th>Базовый объем местных телефонных соединений, мин</th>

<th>Стоимость за минуту превышения базового объема, руб.</th>

</tr>

<tr>

<td>Абонентский</td>

<td>100</td>

<td>250</td>

<td>Без ограничения</td>

<td>-</td>

</tr>

<tr>

<td>Повременный</td>

<td>100</td>

<td>-</td>

<td>-</td>

<td>0,50</td>

</tr>

<tr>

<td>Комбинированный</td>

<td>100</td>

<td>100</td>

<td>370</td>

<td>0,40</td>

</tr>

</tbody>

</table>

<br />

Тарифы на услуги местной телефонной связи для абонентов, проживающих в <strong>п. Гавриково, г. Москва</strong>

<table>

<tbody>

<tr>

<th rowspan= «2»>Наименование тарифного плана</th>

<th colspan= «4»>Составляющие</th>

</tr>

<tr>

<th>Обслуживание абонентской линии, руб.</th>

<th>Плата за базовый объём местных телефонных соединений, руб.</th>

<th>Базовый объем местных телефонных соединений, мин</th>

<th>Стоимость за минуту превышения базового объема, руб.</th>

</tr>

<tr>

<td>Абонентский</td>

<td>200</td>

<td>250</td>

<td>Без ограничений</td>

<td>-</td>

</tr>

<tr>

<td>Повременный</td>

<td>200</td>

<td>-</td>

<td>-</td>

<td>0,50</td>

</tr>

<tr>

<td>Комбинированный</td>

<td>200</td>

<td>100</td>

<td>370</td>

<td>0,40</td>

</tr>

</tbody>

</table>

<br />

Тарифы на услуги местной телефонной связи для абонентов, проживающих в <strong>д. Крюково, Чеховский район, Московской области</strong>

<table>

<tbody>

<tr>

<th rowspan= «2»>Наименование тарифного плана</th>

<th colspan= «4»>Составляющие</th>

</tr>

<tr>

<th>Обслуживание абонентской линии, руб.</th>

<th>Плата за базовый объём местных телефонных соединений, руб.</th>

<th>Базовый объем местных телефонных соединений, мин</th>

<th>Стоимость за минуту превышения базового объема, руб.</th>

</tr>

<tr>

<td>Абонентский</td>

<td>150</td>

<td>150</td>

<td>Без ограничений (по г. Чехов, д. Крюково)</td>

<td>-</td>

</tr>

<tr>

<td>Повременный</td>

<td>150</td>

<td>-</td>

<td>-</td>

<td>0,30</td>

</tr>

<tr>

<td>Комбинированный</td>

<td>150</td>

<td>100</td>

<td>375 (по г. Чехов, д. Крюково)</td>

<td>0,20</td>

</tr>

</tbody>

</table>

</div>

</body>

</html>

<?_once (»../classes/dbclass.php»);

$obj = new dbClass();

$obj->connect ('web47_db2');

$results = $obj->query («SELECT id_city, name FROM cities order by name;»);«<select id=\ «sltCity\» name=\ «sltCity\» onchange=\ «cityChange_taris();>»;($line=mysql_fetch_assoc($results)) {«<Option value=\ "».$line ['id_city']. "\ ">».$line['name']. «</Option>\n»;

}«</select>»;

$obj->disconnect();

?>

<?_once (»../classes/dbclass.php»);

$obj = new dbClass();

$obj->connect ('web47_db2');

$city = $_POST[sltCity];

$results = $obj->query («SELECT id, name, price, ulimit, traf, mbr FROM tarifs where price<>1 and town_id =».$city.» ORDER BY ulimit, price;»);

$i = 0;«<table>

$i++;

}«</table>\n»;

$obj->disconnect();

?>

// JavaScript Document.onload = function() {getCities();}cityChange_taris() {();

}getCities() { // возвращает города('tdCities_tarifs', 1, 2);req = new Request({: «cities.php» + fuckCash(),:'get',: function(xhr) {

$('tdCities_tarifs').innerHTML = xhr.replace ('?', '\r');();

},: function() {

$('tdCities_tarifs').innerHTML = 'error';

}

});.send();

}getTarifs() { // возвращает тарифы('tdTarifs_tarifs', 1, 2);city = $('sltCity').value;req = new Request({: «tarifs.php» + fuckCash(),:'post',: {sltCity:city},: function(xhr) {

$('tdTarifs_tarifs').setStyle ('visibility', 'hidden');

$('tdTarifs_tarifs').innerHTML = xhr.replace ('?', '\r');('in', 'tdTarifs_tarifs', 800);

},: function() {

$('tdTarifs_tarifs').innerHTML = 'error';

}

});.send();

}

// зона обслуживания

<?(!$_POST[cities]) {$_POST[cities]='2';};»

<! DOCTYPE html PUBLIC \ "- //W3C //DTD HTML 4.01 //EN\»

\ «#"justify"><head><title>Зона обслуживания</title>

<style type='text/css'>{vertical-align:top;}{width:100%; height:auto; background:#ededed;}td{}{background:#ff0000;}{background:#c1c1c1;}{background:#c1c1c1;}{background:#fcff01;}{background:#FFA500;}{background:#DF8500;}{background:#ADD6FF;}

</style>

<link rel='stylesheet' href='../styles/main.css' type='text/css' />

<link rel='stylesheet' href='../styles/mainClasses.css' type='text/css' />

<link rel='stylesheet' href='styles/zona.css' type='text/css' />

<link rel='stylesheet' href='../styles/mainDives.css' type='text/css' />

«;«includes/pjp_js_lib.php»;»

</head>

<body onload=\ «load();\» onunload=\ «GUnload()>»;«includes/db_funcs.php»;«includes/display_funcs.php»;

_connect();_query («SET NAMES utf8;»);

/*============================================================*/draw_zone ($what, $act) {_query («set names utf8»);($what) {$w=» cities.id_city=$what»;};

// $query= «select * from cities $w order by name»;

$query=«select *, streets.id as iddcities, houses, streets

$wcities.id_city=streets.town_idstreets.id=houses.id_streethouses.conn_status=5by street_name, number asc»;

$m=mysql_query($query);«<table id='tbmain'>

<tr>

<td id='tdCity'>Город:<br/>»;_cities (0,$act,$_POST[cities]);" </td>

<td id='tdPhone'>

Телефоны: <i>».mysql_result (mysql_query («select city_phones from cities where id_city='».$_POST[cities]. «'»), 0). «</i>

</td>

<tr>»;«<td id='tdMap'><div id=\ «map_canvas\» style=\ «width:300px; height:400px></div></td>»;«<td id='tdStreets'><div id='divstreets'><table id='tbstreets'>»;($M=mysql_fetch_assoc($m)) { // установка домиков

$xx=$M[lat];

$yy=$M[lng];($xx!='10.6'&&$xx!='0'&&$xx&&$yy) {

$coords=$coords. "\nmap.addOverlay (new GMarker (new GLatLng ($xx,$yy), {title:\ «$cit, $M [street_name], $M[number]\», icon:icon_g}));»;

};

/*-*/($M[conn_status]==5) {$class= «class='done'»;$active++;

} elseif ($M[conn_status]==4) {$class= «class='week'»;$weeked++;

} elseif ($M[conn_status]==3) {$class= «class='month'»;$monthed++;

} elseif ($M[conn_status]==2) {$class= «class='Tmonth'»;$Tmonthed++;

} elseif ($M[conn_status]==1) {$class= «class='problem'»;$problemed++;

} elseif ($M[conn_status]==6) {unset($class);};

$sts=$M[idd];($sts!=$str) {

$i=0;«<tr>

<td></td>

<td>$M [street_name]</td>

<td $class>$M[number]</td>»;

$i++;

} else {($i==10) {echo «</tr>

<tr>

<td></td>

<td></td>»;

$i=0;

};«<td $class>».$M[number]. «</td>»;

$i++;

$x++;

};

$str=$M[idd];

$cit=$M[name];

/*-*/

};" </table></div></td></table>

<script src=\ «#"justify"><script type=\ «text/javascript\»>

// <! [CDATA [load() {(GBrowserIsCompatible()) {map = new GMap2 (document.getElementById (\ «map_canvas\»));.addControl (new GLargeMapControl());.addControl (new GScaleControl());.addControl (new GMapTypeControl());

/* map.setCenter (new GLatLng (54. 918362,37.413425), 13);*/.setCenter (new GLatLng ($xx,$yy), 13);icon_g = new GIcon();_g.iconSize=new GSize (10,10);_g.iconAnchor=new GPoint (6,12);_g.infoWindowAnchor=new GPoint (12,0);_g.image=\ «#"justify">$coords

}

}

// ]]>

</script>

«;

};


»

</tr>

«;

/*============================================================*/

$act= «index.php»;«<form action=\ «index.php\» method=\ «POST\» name=\ «Just_form>»;_zone ($_POST[cities], $act);«</form>»;

/*echo»

<p>

<a href=\ «#"justify"><img style=\ «border:0; width:88px; height:31px\»

src=\ «#"justify">alt=\ «Valid CSS!\»>

</a>

<a href=\ «#"justify">src=\ «#"justify">alt=\ «Valid HTML 4.01 Strict\» height=\ «31\» width=\ «88\»>

</a>

</p>»;*/«</body>

</html>»;

?>

<?(!$_POST[cities]) {$_POST[cities]='2';};»

<! DOCTYPE html PUBLIC \ "- //W3C //DTD HTML 4.01 //EN\»

\ «#"justify"><head><title>Зона обслуживания</title>

<style type='text/css'>{vertical-align:top;}{width:100%; height:auto; background:#ededed;}td{}{background:#ff0000;}{background:#c1c1c1;}{background:#c1c1c1;}{background:#90ff00;}{background:#fcff01;}{background:#FFA500;}{background:#DF8500;}{background:#ADD6FF;}

</style>»;«includes/pjp_js_lib.php»;«<script type=\ «text/javascript\»>('moveme()', 200);

</script>

</head>

<body onload=\ «load()\» onunload=\ «GUnload()>»;«includes/db_funcs.php»;«includes/display_funcs.php»;_connect();_query («SET NAMES utf8;»);draw_zone($what) {_query («set names utf8»);($what) {$w=» cities.id_city=$what»;};

$query=«select *, streets.id as iddcities, houses, streets

$wcities.id_city=streets.town_idstreets.id=houses.id_streethouses.conn_status=5by street_name, number asc»;

$m=mysql_query($query);«<table>

<tr>

<td>Город:<br/>»;_cities (0,'new_zone.php',$_POST[cities]);" </td>

<td rowspan=\ «2\»>

Телефоны: <i style=\ «font-size:12px>».mysql_result (mysql_query («select city_phones from cities where id_city='».$_POST[cities]. «'»), 0). «</i><hr/>

<table border=\ «0>»;($M=mysql_fetch_assoc($m)) {

$xx=$M[lat];

$yy=$M[lng];

if ($xx!='10.6'&&$xx!='0'&&$xx) {

$coords=$coords. "\nmap.addOverlay (new GMarker (new GLatLng ($xx,$yy), {title:\ «$cit, $M [street_name], $M[number]\», icon:icon_g}));»;

};($M[conn_status]==5) {$class= «class='done'»;$active++;

} elseif ($M[conn_status]==4) {$class= «class='week'»;$weeked++;

} elseif ($M[conn_status]==3) {$class= «class='month'»;$monthed++;

} elseif ($M[conn_status]==2) {$class= «class='Tmonth'»;$Tmonthed++;

} elseif ($M[conn_status]==1) {$class= «class='problem'»;$problemed++;

} elseif ($M[conn_status]==6) {unset($class);};

$sts=$M[idd];($sts!=$str) {

$i=0;«</tr>

<tr>

<td></td>

<td>$M [street_name]</td>

<td $class>$M[number]</td>»;


$i++;

} else {($i==10) {echo «</tr>

<tr>

<td></td>

<td></td>»;

$i=0;

};«<td $class>».$M[number]. «</td>»;

$i++;

$x++;

};

$str=$M[idd];

$cit=$M[name];

};" </table>

</td>

</tr>

<tr>

<td style=\ «border:solid 1px #008000;\»>

<script src=\ «#"justify"><script type=\ «text/javascript\»>

// <! [CDATA [load() {(GBrowserIsCompatible()) {map = new GMap2 (document.getElementById (\ «map_canvas\»));.addControl (new GLargeMapControl());.addControl (new GScaleControl());.addControl (new GMapTypeControl());.setCenter (new GLatLng ($xx,$yy), 13);icon_g = new GIcon();_g.iconSize=new GSize (12,12);_g.iconAnchor=new GPoint (6,12);_g.infoWindowAnchor=new GPoint (12,0);_g.image=\ «#"justify">$coords

}

}

// ]]>

</script>

<div id='map_canvas' style=\ «width:300px; height:400px\»></div>

</td>

</tr>

</table>

«;

};

$act= «zone.php»;«<form action=\ «zone.php\» method=\ «POST\» name=\ «Just_form>»;_zone ($_POST[cities]);«</form>»;

/*»

<p>

<a href=\ «#"justify"><img style=\ «border:0; width:88px; height:31px\»

src=\ «#"justify">alt=\ «Valid CSS!\»>

</a>

<a href=\ «#"justify">src=\ «#"justify">alt=\ «Valid HTML 4.01 Strict\» height=\ «31\» width=\ «88\»>

</a>

</p>»;*/«</body>

</html>»;

?>

// квитанция

<! DOCTYPE html PUBLIC «- //W3C //DTD XHTML 1.0 Transitional //EN» «#"justify"><html xmlns= «#"justify"><head>

<meta http-equiv= «Content-Type» content= «text/html; charset=utf-8» />

<title>Untitled Document</title>

<link rel= «stylesheet» href=»../styles/main.css» type= «text/css» />

<link rel= «stylesheet» href=»../styles/mainClasses.css» type= «text/css» />

<link rel= «stylesheet» href=»../styles/mainDives.css» type= «text/css» />

<link rel= «stylesheet» href= «styles/oplata.css» type= «text/css» />

</head>

<body>

Для пополнения лицевого счета можно перевести деньги через банк, предварительно заполнив квитанцию. Для упрощения предлагаем Вам заполнить поля формы и распечатать уже заполненную квитанцию. (Для просмотра квитанции необходимо, чтобы на компьютере были установлены средства просмотра файлов формата PDF, например Adobe Acrobat или Adobe Reader.)<br />

<br />

<style type= «text/css»>_table {width:auto;}_table td {text-align:left;}_table td select, input {width:95%; *width:400px;}

</style>

<form name= «kvitdata» method= «post» target= "_blank» action= «#"justify"><table>

<tr>

<td><label for= «tp»>Выберите тип платежа:</label></td>

<td>

<select name= «tp»>

<option value= «Обслуживание СКТВ»>Обслуживание СКТВ

<option value= «Услуги доступа к интернет»>Услуги доступа к интернет

<option value= «Абонентская плата за телефон»>Абонентская плата за телефон

<option value= «Оплата связи МТТ М/Г»>Оплата услуг междугородней связи МТТ

<option value= «Оплата связи МТТ М/Н»>Оплата услуг международной связи МТТ

<option value= «Оплата связи МТТ В/З»>Оплата услуг внутризоновой связи МТТ

<option value= «Оплата связи Ростелеком М/Г»>Оплата услуг междугородней связи Ростелеком

<option value= «Оплата связи Ростелеком М/Н»>Оплата услуг международной связи Ростелеком

<option value= «Оплата связи Ростелеком В/З»>Оплата услуг внутризоновой связи Ростелеком

<option value= «Оплата связи Центр. Телеграф В/З»>Оплата услуг внутризоновой связи Центральный телеграф

<option value= «Оплата связи ЦентрТелеком В/З»>Оплата услуг внутризоновой связи ЦентрТелеком

</select>

</td>

</tr>

<tr>

<td><label for= «bank»>Выберите удобный для Вас банк</label></td>

<td>

<select name= «bank»>

<option value= «0»>ЗАО «Промсбербанк» г. Подольск</option>

<option value= «1»>ОАО «МНХБ», Щербинское отделение</option>

<option value= «2»>Сбербанк России ОАО, г. Москва, Подольское ОСБ №2573</option>

</select>

</td>

</tr>

<tr>

<td><label for= «lsch»>Введите номер лицевого счета</label></td>

<td><input type= «text» name= «lsch»></td></tr>

<tr>

<td><label for= «name»>Введите Ф.И.О. плательщика</label></td>

<td><input type= «text» name= «name»></td>

</tr>

<tr>

<td><label for= «addr»>Введите адрeс плательщика</label></td>

<td><input type= «text» name= «addr»></td>

</tr>

<tr>

<td><label for= «summ»>Введите сумму платежа <font size=» - 1»>(можно заполнить позже от руки)</font></label></td>

<td><input type= «text» name= «summ»></td>

</tr>

<tr>

<td></td>

<td><input type= «submit» value= «Показать квитанцию»></td></tr>

</table>

</form>

</body>

</html>

// функции_arr_height = new Array();_arr_fade = new Array();

//global_arr['test'] = false;_fade = false;fadeFunc (id, b, e, duration) {(global_arr_fade[id]) global_arr_fade[id].cancel();myEffect = new Fx. Morph (id, {duration: duration, transition: Fx. Transitions. Sine.easeOut, link:'cancel'});.start({

'opacity': [b, e]

});_arr_fade[id] = myEffect;

}slideFunc (id, slide, duration, mode) {mySlide = new Fx. Slide (id, {mode:mode, duration:duration, transition: Fx. Transitions. Sine.easeIn});(slide == 'in') {.hide();

//alert('lol');.slideIn();

} else {.slideOut();

}

}widthFunc (id, widthStart, widthEnd, duration) {myEffect = new Fx. Morph (id, {duration:duration, transition: Fx. Transitions. Back.easeIn});.start({

'width': [widthStart, widthEnd]

});

}heightFunc (id, heightStart, heightEnd, duration) {myEffect = new Fx. Morph (id, {duration:duration, transition: Fx. Transitions. Quint.easeOut});.start({

'height': [heightStart, heightEnd]

});

}leftFunc (id, leftStart, leftEnd, duration) {myEffect = new Fx. Morph (id, {duration:duration, transition: Fx. Transitions. Quint.easeOut});.start({

'left': [leftStart, leftEnd]

});

}topFunc (id, topStart, topEnd, duration) {myEffect = new Fx. Morph (id, {duration:duration, transition: Fx. Transitions. Quint.easeOut});.start({

'top': [topStart, topEnd]

});

}addLoader (id, type) {($chk($(id))) el = $(id);el = id;(type == undefined) type = 1;.innerHTML = «<img src='/images/loaders/» + type +».gif' />»;

}removeLoader(id) {(id!= null) {($chk($(id))) $(id).innerHTML = «»;

}

}fuckPx(val) {Number (val.replace ('px', «));

}fuckCash() {= '?' + Math.random()*10;(dieCash);

}getScreenSize(what) {myWidth = 0, myHeight = 0;(typeof(window.innerWidth) == 'number') {

//Non-IE= window.innerWidth;= window.innerHeight;

} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {

//IE 6+ in 'standards compliant mode'= document.documentElement.clientWidth;= document.documentElement.clientHeight;

} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {

//IE 4 compatible= document.body.clientWidth;= document.body.clientHeight;

}(what=='height') {return myHeight;}{return myWidth};

}getFolder(str) {= «;= str.replace ('"', «);= str.replace («'», «);= 0;= str.replace ('"', «);= str.replace («'», «);= str.length - 1;(i = len; i > 0; i-) { //works with 'url (wandru/images/img.png)' and 'url («wandru/images/img.png»)' not works with with 'url (wandru/images/img.png/)'(str.charAt(i) == '/') { // 47 is slash '/'= i;;

}

}= str.slice (0, too);folder;

}

// менюinitMenuData() {

//fadeFunc ('div_c_menu', 0, 1, 1500);();();

}setMenuEvents() {

$('footer_logo').getElement('img').addEvents({

'mouseenter':function() {(this, 50, 55, 200);

//heightFunc (this, 94, 103, 200);

},

'mouseleave':function() {(this, this.getStyle('width'), 50, 200);

//heightFunc (this, this.getStyle('height'), 94, 200);

}

});

}getCurrentMenu() {(!$chk($('current'))) {= 'all_menu_main';

} else {= $('current').getParent().getParent().id;

}

//alert(namee);= document.getElement ('a[rel='+menuDiv+']');= el.rev;(el, clickImage, menuDiv, 'fromInit');

//return name.replace ('_main', «);

//document

}menuClick (el, clickImage, menuDiv, fromm) {(fromm == undefined) fromm = null;.getElements ('.new_click').setStyle ('display', 'none'); // скрываем все картинки

$(clickImage).setStyle ('visibility', 'hidden'); // прячем одну

$(clickImage).setStyle ('display', 'block'); // показываем одну

$(clickImage).fade (0, 1); // показываем одну.getElements ('.new_menuDiv').setStyle ('display', 'none'); // скрываем все картинки

// $(menuDiv).setStyle ('visibility', 'hidden'); // прячем одну

$(menuDiv).setStyle ('display', 'block'); // показываем одну

// $(menuDiv).fade (0, 1); // показываем одну.getElements (».new_menuLink»).setStyle ('color', '#000'); // все ссылки делаем чёрными.setStyle ('color', '#FFF'); // делаем текущую белой(!$chk($('userLogin'))) return;(menuDiv == 'client_menu_main') {

$('userLogin').setStyle ('display', 'block');('userLogin', 0, 1, 800);(fromm!= 'fromInit') slideFunc ('userLogin', 'in', 500, 'vertical');

} else {($('userLogin').getStyle('display')!= 'none')('userLogin', 1, 0, 700);('userLogin', 'out', 500, 'vertical');

}

}searchFocus(el) {(el.value == 'Поиск') el.value = «;

}searchBlure(el) {(el.value == «) el.value = 'Поиск';

}searchgo() {= document.forms.search_form.searchword.value;(searchStr.indexOf('Поиск')!=-1) {(searchStr);

} else document.forms.search_form.submit();

}startPashalEgg(searchStr) {req = new Request({: «scripts/egg.php? searchStr=» + searchStr,:'get',: function(xhr) {(xhr.indexOf('true')!=-1) {

$('mainImage').setStyle ('background-image', 'url (images/a5_copy.gif)');

} else {.forms.search_form.submit();

}

},: function() {.forms.search_form.submit();

}

});.send();

}

//window showshowWindow(what) {.setStyle('blue');.setUnderClose(true);(what == 'about') {.setTitle ('О компании');.setWidth(880);.setHeight(460);.setUrl ('about', 'frame');.show();

}(what == 'tarifs') {.setTitle ('Тарифы. Интернет');.setWidth(880);.setHeight(450);.setUrl ('tarifs', 'frame');.show();

}(what == 'speedtest') {.setTitle ('Проверка скорости. <i>Beta</i>');

win.setWidth(500);.setHeight(120);.setUrl ('speedtest', 'frame');.show();

}(what == 'speedtestFlash') {

win.setTitle ('Проверка скорости. Флэш версия');

win.setWidth(500);.setHeight(300);.setUrl ('#"justify">}(what == 'request') {.setUnderClose(false);.setTitle ('Онлайн заявка. Координаты');.setWidth(500);.setHeight(450);.setUrl ('request', 'frame');.show();

}(what == 'zona') {.setTitle ('Зона обслуживания');.setWidth(850);.setHeight(460);.setUrl ('zona', 'frame');.show();

}(what == 'contacts') {.setTitle('Контакты');.setWidth(550);.setHeight(300);.setUrl ('contacts', 'frame');.show();

}(what == 'oplata') {.setTitle ('Способы оплаты');.setWidth(400);.setHeight(110);.setUrl ('oplata', 'frame');.show();

}(what == 'oplata_kvit') {

win.setTitle ('Квитанция на оплату');

win.setWidth(700);

win.setHeight(400);

win.setUrl ('oplata/kvit.php', 'frame');

//win.setUrl ('index2.php? option=com_content&view=article&id=53&catid=23', 'frame');.show();

}(what == 'oplata_phone') {

win.setTitle ('Оплата услуг с помощью мобильного телефона');

win.setWidth(400);

win.setHeight(300);

win.setUrl ('oplata/phone.php', 'frame');

//win.setUrl ('index2.php? option=com_content&view=article&id=52&catid=24', 'frame');.show();

}(what == 'oplata_momentalno') {.setTitle ('Интернет-сервис momentalno.ru');.setWidth(400);.setHeight(200);.setUrl ('oplata/momentalno.php', 'frame');

//win.setUrl ('index2.php? option=com_content&view=article&id=51&catid=24', 'frame');.show();

}

}showImage (url, title) {(title == 'undefined') title = 'RialCom';.setUnderClose(true);.setTitle(title);.setUrl (url, 'image');.show();

}bannerClick(idBanner) {req = new Request({: "/index.php? option=com_banners&task=click&bid=» + idBanner,:'get',: function() {

//alert('clicked');

}

});.send();

}

// анимация

//window.addEvent ('domready', initData.create({delay:0}));

//window.onload = ('load', function() {removeLoader ('loader_place_movie'); startAnimation();});= 0;= 0;= 0;

//leftStartTitle = 480;= 1500;= 300;= 2500;= 300;= 5000;

//delayAgane = 300;initMovie() {(!$chk($('mainImage'))) return;

$('mainImage').innerHTML = «;= $('mainImage').getCoordinates().right - 150;('loader_place_movie');= «;(!$chk($('mainImage'))) return;(optionJoo) {'com_help':+= '<div id= «fall_help_mov»>

$('mainImage').innerHTML = str;('fall_help_mov', 'fall_help_title');;'com_search':+= '<div id= «search_help_mov»>

$('mainImage').innerHTML = str;('search_help_mov', 'search_help_title');;:+= '<div id= «work»>

$('mainImage').innerHTML = str;();;

}

}initMovieData() {('loader_place_movie', 2);

}startAnimation() {f = new Array;x = new Chain();[1] = function() {titleAnimation (true, 'workTitle'); imageAnimation (true, 'work');}[2] = function() {titleAnimation (false, 'workTitle'); imageAnimation (false, 'work');}[3] = function() {titleAnimation (true, 'talkTitle'); imageAnimation (true, 'talk');}[4] = function() {titleAnimation (false, 'talkTitle'); imageAnimation (false, 'talk');}[5] = function() {titleAnimation (true, 'playTitle'); imageAnimation (true, 'play');}[6] = function() {titleAnimation (false, 'playTitle'); imageAnimation (false, 'play');}[7] = function() {titleAnimation (true, 'conTitle'); imageAnimation (true, 'with');}[8] = function() {titleAnimation (false, 'conTitle'); imageAnimation (false, 'with');}= function() {startAnimation();}= f.length - 1;

for (i = 1; i<=framess; i++) { // добавление кадров в цепочку анимации

x.chain (f[i]);

}.chain(floop);= 0;(i = 1; i<=framess; i++) { // анимирование(i == 1) x.callChain();x.callChain.delay (delay, x);+= delayBetween;(i % 2) delay += delay1;(i == framess-1) delay += durationForEnd;

//if (i == framess) delay += delayBetween/2;

}+= delayBetween/2;.callChain.delay (delay, x);

//imageAnimation();

}startSimpleAnimation (strImage, strTitle) {= $(strImage);= $(strTitle);x = new Chain();= function() {imageAnimation (true, elImage); titleAnimation (true, elTitle);}.chain(f);.callChain.delay (1, x);

}

titleAnimation (bool, id) {

//leftStart = 485;myEffect = new Fx. Morph (id, {duration: duration1, transition: Fx. Transitions. Back.easeOut});(bool) {

// $(id).setStyle ('display', 'block');.start({

'opacity': [0, 1],

'left': [leftStartTitle + 60, leftStartTitle]

});

} else {.start({

'opacity': [1, 0]

});

}.addEvent ('resize', function() { // позиционируем надпись при изменении размеров экрана= $('mainImage').getCoordinates().right - 150;

//arrOfTitles = document.getElements ('.absTitle');myEffect = new Fx. Morph (id, {duration: duration1, transition: Fx. Transitions. Back.easeOut});.start({

'left': [leftStartTitle + 60, leftStartTitle]

});

// $(id).setStyle ('left', leftStartTitle);

//currLeft = document.getElement ('.absTitle').getStyle('left').toInt();

});

}imageAnimation (bool, id) {(bool) dur = duration1; else dur = duration2;myEffect = new Fx. Morph (id, {duration: dur, transition: Fx. Transitions. Circ.easeOut});(bool) {

// $(id).setStyle ('display', 'block');.start({

'opacity': [0, 1]

});

} else {

//myEffect.transition = Fx. Transitions. Circ.easeIn;.start({

'opacity': [1, 0]

});

}

}

// логин_logged = false;_formLogin = null;log_initLoginEvents() {(!$chk($('form-login'))) return;_formLogin = $('form-login');($chk (log_formLogin.getElement ('#modlgn_passwd'))) {_formLogin.addEvent ('submit', function(e) {(! log_logged) {= new Event(e); e.preventDefault();_login = log_formLogin.getElement ('#modlgn_username').value;_passw = log_formLogin.getElement ('#modlgn_passwd').value;(! log_login) {alert ('Введите логин'); return false;}(! log_passw) {alert ('Введите пароль'); return false;}_startLogin (log_login, log_passw);false;

}

});

}

}

log_startLogin (log_login, log_passw) {di = new Element ('div', {

'display': 'none',

'width': '1px',

'height': '1px'

}).inject (document.body);.innerHTML = '<iframe id= «log_iframeLogin» style= «display:none; width:1px; height:1px;» onload= «log_iframeLoaded();»></iframe>';_src = '#"justify">//alert (log_src);

$('log_iframeLogin').set ('src', log_src);

$('menu_loader').setStyle ('display', 'block');

/*log_src = '#"justify">'src': log_src,

'display': 'none'

});di = new Element ('div', {

'display': 'none'

}).inject (document.body);.inject(di);(di.innerHTML);

$('menu_loader').setStyle ('display', 'block');('login_loader', 1);.addEvent ('load',() {

//alert ('Frame loaded');= true;.submit();

}

)*/

}log_iframeLoaded() {_logged = true;_formLogin.submit();

}


2.5 Тестовые данные


Тестовые данные представлены в таблице 11.


Таблица 11 - Тестовые данные

Тестовый набор данныхРеакция программыВыбор города в онлайн заявкеВыбирается город, меняются улицы и домаВыбор улицы в онлайн заявкеМеняются дома в спискеПопытка нажатия кнопки «Далее» в первом шаге онлайн заявки при пустом спике «Улица»Сообщение об ошибкеПопытка нажатия кнопки «Далее» в первом шаге онлайн заявки при пустом спике «Дом»Список домов заменяется на текстовое поле для ввода номера дома вручнуюПустое значение поля «Дом»Сообщение об ошибкеПопытка нажатия кнопки «Далее» во втором шаге онлайн заявки при не отмеченном согласии с договоромСообщение об ошибкеВвод в поле «Фамилия» цифрыСообщение об ошибкеПопытка нажатия кнопки «Далее» в третьем шаге онлайн заявки при не выбранном дне/годе / месяце рожденияСообщение об ошибкеВвод в поле «Серия паспорта» любого целого числаВвод данныхВвод в поле «Email» значения testSabaka.ruСообщение об ошибкеВвод в поле «Email» значения [email protected]Сообщение об ошибкеВвод в поле «Email» значения [email protected]Ввод данныхВвод в поле «Комментарий» пустого значенияВвод данныхВвод в поле «Комментарий» пустого значенияВвод данныхВвод в поле «Вопрос» неправильного ответаСообщение об ошибке


3. Руководство по использованию программы


.1 Руководство системного программиста


Общие сведения о программе

Функции, выполняемые программой

Программа выполняет следующие функции:

предоставление наиболее полной информации об услугах;

подача онлайн заявки;

вывод квитанции на оплату;

Файлы программы

Основными файлами программы являются:

стандартный набор файлов Joomla 1.5.10;

файл функций mod_rialcom_functions.js;

файл анимированных заставок mod_rialcom_movie.js;

файл класса окна window.js;

файл авторизации на форуме loginout.js;

файл меню mod_rialcom_menu.js;

файл библиотеки функций Ajax mootools.js;

файлы компонента новостей components/com_wandlnews;

файлы модуля окна modules/mod_rialcom_window;

- файлы стилей templates\rialcom_blue\css;

Системные требования

Системными требованиями являются:

процессор Intel Pentium III;

256 мб ОЗУ;

мышь;

клавиатура;

доступ в Интернет;

Программные требования

Программными требованиями являются:

любая операционная система;

большинство браузеров, в том числе Internet Explorer 6-8, Mozilla Firefox 3, Opera 9+, Google Chrome и т.д.;

для распечатки квитанции потребуется встроенный в браузер pdf-reader;

Установка программы

Для установки сайта необходимо:

Joomla 1.5.10;

Скопировать директорию templates в корневой каталог сайта;

В случае применения домена, отличного от rialcom.ru сменить ключ авторизации для Google Maps;

Сменить пароли доступа к базе данных и фтп серверу;

Перед закачкой Joomla! необходимо удостовериться, что веб сервер или сервис, предоставленный веб хостом, отвечает минимальным требованиям. А именно:

PHP 4.2.x или выше: #"justify">MySQL 3.23.x или выше: #"justify">Apache 1.13.19 или выше: #"justify">В PHP должна быть встроена поддержка MySQL, XML и Zlib.! Можно использовать с большинством известных обозревателей:

- Firefox;

Internet Explorer 5.5 или выше;

Netscape.


3.2 Руководство программиста


Общие сведения о реализации программы

Для реализации дипломного проекта использовались:

язык гипертекстовой разметки HTML 4.01;

каскадные таблицы стилей CSS 2.0 - технология описания внешнего вида документа, написанного языком разметки. Преимущественно используется как средство оформления веб-страниц в формате HTML и XHTML;

скриптовый язык JavaScript, чаще всего использующийся при создании сценариев поведения браузера, встраиваемых в веб-страницы. Является одной из реализаций языка ECMAScript. Одна из популярных технологий, позволившая сделать страницы более динамичными и обеспечить новые возможности - это динамическая загрузка и вставка данных в документ, получившая название AJAX.

язык программирования PHP, созданный для генерирования HTML-страниц на веб-сервере и работы с базами данных.

Joomla! - (читается «Джу?мла») система управления содержимым, написанная на языках PHP и JavaScript, использующая в качестве хранилища содержания базу данных MySQL. Joomla! является свободным программным обеспечением, защищённым лицензией GPL. Использовалась версия 1.5.10.

Структура программы

Структура программы представлена в таблицах 12-16.


Таблица 12 - Модуль «Меню»

ФункцияДействиеinitMenuData()Инициализация данныхsetMenuEvents()Инициализация событийgetCurrentMenu()Получений текщего менюmenuClick (el, clickImage, menuDiv, fromm)Выбор разделаsearchgo()Запуск поискаshowWindow(what)Вывод окна со страничкойshowImage (url, title)Вывод окна с картинкойbannerClick(idBanner)Клик баннера

Таблица 13 - Модуль «Анимация»

ФункцияДействиеinitMovie()Инициализация анимацииinitMovieData()Инициализация данных анимацииstartAnimation()Старт анимацииstartSimpleAnimation (strImage, strTitle)Старт простой однокадровой анимацииtitleAnimation (bool, id)Анимация правого текстаimageAnimation (bool, id)Анимация левых картинок и текста

Таблица 14 - Класс «Window»

ФункцияДействиеinitialize (element, options)Инициализация классаsetPosition (what, val)Установка позицииsetWidth(thisWidth)Установка длиныsetHeight (thisHeight)Установка высотыsetStyle(thisStyle)Установка стиля (синий, зелёный, красный)setUrl (thisUrl, thisHolder)Установка контента окнаsetImageAutoSize(thisImageAutoSize)Установка размеров картинкиimageOnLoad (imageWidth, imageHeight)Событие загрузки картинкиsetTitle(thisTitle)Установка заголовкаsetEvents()Инициализация событийshow()Вывод окнаhide()Закрытие окнаsetUnder(thisUnder)Установка подложкиsetUnderColor (thisUnderColor)Установка цвета подложкиsetUnderClose (thisUnderClose)Установка события нажатия подложкиshowUnder()Вывод подложкиhideUnder()Закрытие подложки

Таблица 15 - Модуль «Авторизация»

ФункцияДействиеlog_initLoginEvents()Инициализация событийlog_startLogin (log_login, log_passw)Старт авторизацииlog_iframeLoaded()Событие загрузки фрэйма

Таблица 16 - Модуль «Онлайн заявки»

ФункцияДействиеcityChange()Событие изменения городаstreetChange()Событие изменения улицыhouseChange()Событие изменения домаgetCities()Загрузка городовgetStreets()Загрузка улицgetHouses()Загрузка домовgetTarifs()Загрузка тарифовpostForms(form)Отправка форм на запись серверному скриптуgetMyDate(arrDate)Загрузка датыgetQuestion()Загрузка вопроса

Связи между файлами проекта

Связи между файлами проекта представлены на рисунке 5.


Рис. 5


3.3 Руководство оператора


Для запуска сайта необходимо открыть интернет браузер и в адресную строку вписать #"justify">После загрузки сайта откроется главная страница, представленная на рисунке 28.

На главной странице сайта представлены последние новости компании. Для их просмотра необходимо щёлкнуть на одну из ссылок раздела «Новости».

Загрузочная линия справа показывает процесс передачи данных.

На сайте существует разгроничение пользователей:

Все. Этот раздел предназначен для потенциальных пользователей. В нём можно найти любую информацию об оказываемых услугах, а так же подать заявку на подключение.

Клиенты. Этот раздел предназначен для пользователей, которые уже являются клиентами компании «Риал Ком».

В раздел «Всем» пользователь может:

Получить информацию о компании. Для этого необходимо щёлкнуть ссылку «О компании» и в появившемся окне навести курсор мыши на интересующую информацию.

Получить информацию о зоне обслуживания. Для этого необходимо щёлкнуть ссылку «Зона обслуживания» и в появившемся окне выбрать нужный город. На карте зелёными точками отмечены дома абонентов, а в правом столбике дома и улицы представлены в виде списка.

Получить информацию о тарифах на Интернет и телефонную связь. Для этого необходимо щёлкнуть ссылку «Тарифы» и выбрать интересующий город.

Для получения информации о тарифах на телефонную связь в этом же окне необходимо щёлкнуть ссылку «Телефонная связь».

Подать онлайн заявку на подключение. Для этого необходимо щёлкнуть ссылку «Онлайн заявка». В открывшемся окне выбрать нужный город, улицу и дом.

Если нужной улицы нет в списке, необходимо связаться с оператором и сообщить название улицы.

Если нужного дома нет в списке, необходимо выбрать «Моего дома здесь нет» и в появившемся текстовом поле вписать номер дома.

Далее нужно следовать всем указаниям и обращать внимание на всплывающие предупреждения. Если во время подачи заявки указана электронная почта, то сообщение с подтверждением прийдёт на этот адрес.

Получить информацию о контактах. Для этого необходимо щёлкнуть ссылку «Контакты» и выбрать интересующий город.

Получить информацию о лицензиях. Для этого необходимо щёлкнуть ссылку «Лицензии» и выбрать интересующее изображение.

Для перехода в клиентский раздел необходимо щёлкнуть ссылку «Клиентам». Чтобы иметь возможность редактировать галерею, необходимо авторизироваться в появившейся вкладке «Пользователь». Для этого нужно ввести «логин» и «пароль» в соответсвующие поля и нажать кнопку войти.

В раздел «Клиентам» пользователь может:

Перейти в разделы «Форум», «IRC - Чат» и «Статистика», которые являются отдельными ресурсами.

Получить информацию о скорости своего Интернет подключения. Для этого необходимо щёлкнуть ссылку «Проверить скорость» и в появившемся окне нажать кнопку «Begin Test».

Получить помощь по настройке сети. Для этого необходимо щёлкнуть ссылку «Помощь» и на появившейся странице выбрать интересующий раздел. Так же для некоторых пунктов помощи доступна видео-инструкция.

Просмотреть галерею или добавить в неё фотографию. Для этого необходимо авторизироваться. Чтобы добавить фоторафию, нужно войти в галерею, выбрать раздел «Пользователь» и в нём нажать кнопку «Добавить».

Получить информацию о документах и способах оплаты. Чтобы выписать квитанцию на оплату, необходимо нажать ссылку «Оплата», а в открывшемся окне «Квитанция на оплату». После ввода нужных данных нажать кнопку «Показать квитанцию». Для корректного вывода квитанции браузер должен поддерживать отбражение файлов pdf формата.


4. Экономический раздел


.1 Расчет полной себестоимости дипломного проекта «Создание сайта телекоммуникационной компании «Rialcom» на основе CMS Joomla»

программа оператор модуль сайт

Данные для расчета стоимости материалов представлены в таблице 17.


Таблица 17 - Данные для расчета стоимости материалов

Наименование материаловЕдиница измеренияКоличествоЦена за единицу измерения, руб.Диск CD-RWшт.115,00

Данные для расчета заработной платы представлены в таблице 18.


Таблица 18 - Данные для расчета заработной платы

Вид работОклад, руб.Стоимость 1 часа работы, руб.Время работы, часРазработка программы15000,0085,23120Отладка программы15000,0085,2355

Данные для расчета расходов на содержание и эксплуатацию оборудования и нематериальных активов представлены в таблице 19.


Таблица 19 - Данные для расчета расходов на содержание и эксплуатацию оборудования и нематериальных активов

Наименование оборудованияСтоимость, руб.Срок службы, часСтоимость эксплуатации оборудования за 1 час, руб.Время работы, часСистемный блок IBM PC13200,0052802,50175Монитор1200052802,27175ОС Microsoft Windows ХР Professional SP3545052801,03175Пакет прикладных программ Microsoft Office 2003350052800,66110Adobe Dreamweaver CS41967352803,73175

Данные для расчета стоимости расхода электроэнергии представлены в таблице 20.


Таблица 20 - Данные для расчета стоимости расхода электроэнергии

Наименование оборудованияМощность, кВтВремя работы, часСистемный блок IBM PC0,250175Монитор0,085175

Транспортно-заготовительные расходы на материалы10%Дополнительная заработная плата15%Отчисления на социальные нужды26,3%Стоимость 1 кВт*час3,18 руб.Накладные расходы140%

Полная себестоимость рассчитывается по формуле (1).


(1)


где - полная (коммерческая) себестоимость изделия, руб.;

- стоимость сырья и материалов, руб.;

- заработная плата основная, руб.;

- заработная плата дополнительная, руб.;

- отчисления на социальные нужды, руб.;

- расходы на содержание и эксплуатацию технологического оборудования, руб.;

- расход энергии на технологические нужды, руб.;

- накладные расходы, руб.

Расчет стоимости материалов представлен в таблице 21.

Таблица 21 - Расчет стоимости материалов

Наименование материаловЕдиница измеренияКоличествоЦена за единицу измерения, руб.Стоимость, руб.Диск CD-RWшт.115,0015,00Итого:15,00

Стоимость материалов рассчитывается по формуле (2).


, (2)


где - количество i-го изделия, шт.;

- цена i-го изделия, руб.;

- транспортно-заготовительные расходы на материалы, %.

;

(руб.)

Расчёт заработной платы представлен в таблице 22.


Таблица 22 - Расчет заработной платы

Вид работОклад, руб.Стоимость 1 часа работ, руб.Время работы, часЗаработная плата по видам работ, руб.Разработка программы15000,0085,23120,0010227,27Отладка программы15000,0085,2355,004687,50Итого:14914,77

Заработная плата основная (руб.)

Заработная плата дополнительная рассчитывается по формуле (3).


, (3)

где - заработная плата дополнительная, руб.;

- процент заработной платы дополнительной, %;

- заработная плата основная, руб.

;

(руб.)

Отчисления на социальные нужды рассчитываются по формуле (4).


, (4)


где - отчисления на социальные нужды, руб.;

- процент отчислений на социальные нужды, %;

- заработная плата основная, руб.;

- заработная плата дополнительная, руб.;

;

(руб.)

Расчет расходов на содержание и эксплуатацию оборудования и нематериальных активов представлены в таблице 23.


Таблица 23 - Расчет расходов на содержание и эксплуатацию оборудования и нематериальных активов

Наименование оборудованияСтоимость, руб.Срок службы, часСтоимость эксплуатации оборудования за 1 час, руб.Время работы, часИзнос за время работы, руб.Системный блок IBM PC1320052802,50175437,50Монитор1200052802,27175397,73ОС Microsoft Windows ХР Professional SP3545052801,03175180,63Пакет прикладных программ Microsoft Office 2003350052800,6611072,92Adobe Dreamweaver CS41967352803,73175652,04Итого:1740,82

Расходы на содержание и эксплуатацию оборудования (руб.)

Расчет стоимости расхода электроэнергии представлен в таблице 24.


Таблица 24 - Расчет стоимости расхода электроэнергии

Наименование оборудованияМощность, кВтВремя работы, часПотребляемая мощность, кВт*чСистемный блок IBM PC0,2517543,75Монитор0,08517514,87Итого:58,63

Расходы на электроэнергию:

Э = 58,63 * 3,18;

Э = 186,43 (руб.)

Накладные расходы рассчитываются по формуле (5).


, (5)


где - накладные расходы, руб.;

- процент накладных расходов, %;

- расходы на содержание и эксплуатацию технологического оборудования, руб.;

- заработная плата основная, руб.

;

(руб.)

Полная себестоимость:

ПС = 16,50+14914,77+2237,22+4510,97+1740,82+186,43+24012,78;

ПС = 47619,49 (руб.)

Калькуляция полной себестоимости представлена в таблице 29.


Таблица 25 - Калькуляция полной себестоимости

Статьи затратЗатраты, руб.Стоимость материалов16,50Основная заработная плата14914,77Дополнительная заработная плата2237,22Отчисления на социальные нужды4510,97Расходы на оборудование1740,82Расходы на электроэнергию186,43Накладные расходы24012,78Полная (коммерческая) себестоимость47619,49

Заключение


В результате реализации дипломного проекта был создан интернет-сайт телекоммуникационной компании «Rialcom» на основе CMS Joomla.

Приложение обладает рядом достоинств:

быстрая загрузка данных, а так же отображение процесса их загрузки;

обладает оригинальным интуитивно-понятным интерфейсом;

предоставляет возможность редактировать материалы сайта людям, не имеющим навыков программирования;

Недостатки приложения:

реализованный механизм авторизации на сайте не позволяет авторизироваться некоторым пользователям сразу и на форуме;

Сайт может использоваться как удобный инструмент быстрого получения нужной информации о предоставляемых услугах, а так же для подачи онлайн заявки или выписки квитанций.


Список литературы


1. Чебыкин Р.А., Самоучитель HTML и CSS, Санкт-Петербург, БХВ-Петербург, 2008

. Дейв Крейн, Ajax на практике, Вильямс, 2008

. ГОСТ 19.003-77 Обозначение программ и программных документов

. ГОСТ 19.104-78 Основные надписи

. ГОСТ 19.105-78 Общие требования к программным документам

. ГОСТ 19.106-78 Требования к программным документам выполненные печатным способом


Введение К настоящему времени компьютеры прочно завоевали одно из первых мест в современной жизни человека, и обойтись без них практически невозможно. С

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ