// функция для вывода мыла на странице function a_email(login,domain,a_content,a_text) { if(a_email.arguments.length < 3) a_content = ""; eml = login + "@" + domain; if(a_email.arguments.length == 4) a_str = ''+ a_text + ''; else a_str = ''+ eml + ''; document.write (a_str); }; // end function a_email(login,domain,a_content) if(typeof(clc)!= "function"){ function clc(){return true;} }; //---------------------------------------------------------- // функция поиска родительского элемента, соответствующего условию // напр. 'className == "btn_order"' // возвращает или ссылку на элемент или false // поиск "наверх", начиная с in_el function find_parent_el(in_el,condition){ var top_el = document; var local_testing_el = in_el.parentNode; var local_condition = 'local_testing_el.' + condition; //alert(local_condition); while(local_testing_el != top_el){ if(eval(local_condition)){ // alert(local_testing_el.tagName); return local_testing_el; } local_testing_el = local_testing_el.parentNode; } // end while(local_testing_el != top_el) return false; }; // end function find_parent_el(in_el,condition) //============================================================ // Создаем функцию (метод) поиска в массиве indexOf if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(elt /*, from*/) { var len = this.length >>> 0; var from = Number(arguments[1]) || 0; from = (from < 0) ? Math.ceil(from) : Math.floor(from); if (from < 0) from += len; for (; from < len; from++) { if (from in this && this[from] === elt) return from; } return -1; }; }; // Создаем для объекта String метод trim if(typeof(String.prototype.trim) != "function"){ String.prototype.trim = function () { var str = this; return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); } }; // Создаем для объекта String метод drop_spaces - очистка всех пробелов и т.п. внутри строки if(typeof(String.prototype.drop_spaces) != "function"){ String.prototype.drop_spaces= function (){ var str = this; return str.replace(/(\s)+/g, ""); } }; // Создаем для объекта String метод strip_tags - очистка строки от тегов if(typeof(String.prototype.strip_tags) != "function"){ String.prototype.strip_tags = function () { var str = this; return str.replace(/\<.+?\>/g, ''); } }; // Создаем для объекта String метод nl2br - Inserts HTML line breaks before all newlines in a string if(typeof(String.prototype.nl2br) != "function"){ String.prototype.nl2br= function (){ // Inserts HTML line breaks before all newlines in a string // // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) var str = this; var expr = new RegExp('([^>])\\n', 'g'); /*return str.replace(/([^>])\n/g, '$1
');*/ return str.replace(expr, '$1
'); } }; // функция проверки строки с e-mail // все преддействия (trim() или иные) проводятся до функции // codeismy.name/bez-rubriki/proverka-emaila-na-php-i-javascript/ if(typeof(isEmailGood) != "function"){ function isEmailGood(email) { var template = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z])+$/; if (template.test(email)) { return true; }; return false; }; // end function isEmailGood }; // тестирование правильности даты. Дата вводится в формате dd.mm.yyyy (разделитель - любой не числовой символ) function test_valid_date(in_date_str){ var regexp = /\d{2}\D\d{2}\D\d{4}$/; if(!regexp.test(in_date_str)) return false; var date_arr = in_date_str.split(/\D/); var day = parseInt(date_arr[0]); var month = parseInt(date_arr[1]); var year = parseInt(date_arr[2]); var d = new Date(year, month-1, day); var rez = ((d.getFullYear() == year) && (d.getMonth() == (month-1)) && (d.getDate() == day)); return rez; }; // end function test_valid_date //---------------------- // поиск и возврат свободного верхнего z-index // Отслеживаются z-индексы прописанные в style у потомков BODY // возвращает или на in_plus больше или на 1 (по умолчанию) get_free_zIndex = function(in_plus){ var in_plus = in_plus || 1; var zmax = 0; var elementCount = $("*").filter(function (index) { var curr_z = parseInt($(this).css('zIndex')); if(curr_z > 0){ zmax = Math.max(zmax, curr_z ); return true; } return false; }); zmax = zmax + in_plus; return (zmax); }; // end get_free_zIndex = function // функция постановки/удаления всеэкранной полупрозрачки // command - что делать (п.у. убрать), z_idx - на какой z-index ставить слой (п.у. наивысший) // т.к. в реале возможен только один такой слой, то ссылку на него храним в place_div_full.jq_div_full function place_div_full(command, z_idx){ var command = command || false; var z_idx = (z_idx)? z_idx : get_free_zIndex(); // ставим настройки полупрозрачки var funcObj = arguments.callee; if(command){ // ставим полупрозрачку var jq_div = $("
").appendTo($('body').eq(0)); jq_div.css({ 'z-index': z_idx }); jq_div.css(funcObj.css_rules); //alert(z_idx); //funcObj.jq_div_full = jq_div; return jq_div; }else if(funcObj.jq_div_full){ // убираем полупрозрачку var jq_div = funcObj.jq_div_full; funcObj.jq_div_full.remove(); funcObj.jq_div_full = null; return jq_div; }else { return false; }; }; // end this.place_div_full = function // настройки полупрозрачки place_div_full.css_rules = {position: "absolute",left: "0px",top: "0px", width : $('body').css('width'), height: $('body').css('height'), 'background-color': "black", 'opacity': 0.75 }; //place_div_full.jq_div_full = null; class_div_full = function(){ var self = this; var jq_div_full; var z_idx; this.css_rules = {position: "absolute",left: "0px",top: "0px", width : $('body').css('width'), height: $('body').css('height'), 'background-color': "black", 'opacity': 0.25 }; // поиск и возврат свободного верхнего z-index // Отслеживаются z-индексы прописанные в style у потомков BODY // возвращает или на in_plus больше или на 1 (по умолчанию) this.get_free_zIndex = function(in_plus){ var in_plus = in_plus || 1; var zmax = 0; var elementCount = $("*").filter(function (index) { var curr_z = parseInt($(this).css('zIndex')); if(curr_z > 0){ zmax = Math.max(zmax, curr_z ); return true; } return false; }); zmax = zmax + in_plus; return (zmax); }; // end this.get_free_zIndex = function // функция постановки/удаления всеэкранной полупрозрачки // command - что делать (п.у. убрать), z_idx - на какой z-index ставить слой (п.у. наивысший) this.place_div_full = function(command){ var command = command || false; var z_idx = (self.z_idx)? self.z_idx : self.get_free_zIndex(); if(command){ // ставим полупрозрачку var jq_div = $("
").appendTo($('body').eq(0)); jq_div.css({ 'z-index': z_idx }); jq_div.css(self.css_rules); //alert(z_idx); self.jq_div_full = jq_div; return jq_div; }else if(self.jq_div_full){ // убираем полупрозрачку var jq_div = self.jq_div_full; self.jq_div_full.remove(); self.jq_div_full = null; return jq_div; }else { return false; }; }; // end this.place_div_full = function }; // end class_div_full = function // постановка слоя по центру экрана jQuery.fn.center = function() { var w = $(window); //alert(w.scrollTop()); this.css("position","absolute"); this.css("top",(w.height()-this.height())/2+w.scrollTop() + "px"); this.css("left",(w.width()-this.width())/2+w.scrollLeft() + "px"); return this; }; // end jQuery.fn.center = function // класс для показа слоя, что данные обрабатываются class_layer_working = function(){ var self = this; this.jq_div_full = null; this.rand = function( min, max ) { // Generate a random integer if( max ) { return Math.floor(Math.random() * (max - min + 1)) + min; } else { return Math.floor(Math.random() * (min + 1)); } }; // end this.rand = function // поиск и возврат свободного верхнего z-index // Отслеживаются z-индексы прописанные в style у потомков BODY // возвращает или на in_plus больше или на 1 (по умолчанию) this.get_free_zIndex = function(in_plus){ var in_plus = in_plus || 1; var zmax = 0; var elementCount = $("*").filter(function (index) { var curr_z = parseInt($(this).css('zIndex')); if(curr_z > 0){ zmax = Math.max(zmax, curr_z ); return true; } return false; }); zmax = zmax + in_plus; return (zmax); }; // end this.get_free_zIndex = function // Генерация свободного ID this.getFreeId = function(in_prefix){ var test_id = in_prefix || "vkid_"; // генерим свободный id do{ var tmp_id = test_id + self.rand(100,10000); } while (document.getElementById(tmp_id)); return tmp_id; }; // end this.getFreeId = function // функция постановки/удаления всеэкранной полупрозрачки this.place_div_full = function(command){ var command = command || false; if(command){ // ставим полупрозрачку var jq_div = $("
",{ id: self.getFreeId() }).appendTo($('body').eq(0)); jq_div.css({ 'z-index': self.get_free_zIndex() }); // ставим настройки полупрозрачки var funcObj = arguments.callee; jq_div.css(funcObj.css_rules); // для случая, когда $('body').css('height') < высоты окна var w = $(window); var w_height = w.height(); var max_height = Math.max($(window).height(), $('body').height() ); jq_div.css({height: (max_height+"px")}); self.jq_div_full = jq_div; return jq_div; }else if(self.jq_div_full){ // убираем полупрозрачку var jq_div = self.jq_div_full; self.jq_div_full.remove(); self.jq_div_full = null; return jq_div; }else { return false; }; }; // end this.place_div_full = function // настройки полупрозрачки this.place_div_full.css_rules = {position: "absolute",left: "0px",top: "0px", width : $('body').css('width'), height: $('body').css('height'), 'background-color': "black", 'opacity': 0.25 }; this.jq_div_info = null; // объект информационного контейнера // размещение информационного контейнера this.place_div_info_container = function(command){ var command = command || false; if(command){ // ставим полупрозрачку var jq_div = $("
",{ id: self.getFreeId() }).appendTo($('body').eq(0)); jq_div.css({ 'position': "absolute", 'z-index': self.get_free_zIndex() }); // ставим настройки полупрозрачки var funcObj = arguments.callee; jq_div.css(funcObj.css_rules); self.jq_div_info = jq_div; // располагаем по центру (используем сконтруированную ф-ю jQuery.fn.center) jq_div.center(); self.place_info_content(); return jq_div; }else if(self.jq_div_info){ // убираем полупрозрачку var jq_div = self.jq_div_info; self.jq_div_info.remove(); self.jq_div_info = null; return jq_div; }else { return false; }; }; // end this.place_div_info_container = function // настройки css информационного контейнера this.place_div_info_container.css_rules = {position: "absolute",left: "50%",top: "50%", width : "350px", height: "200px", border:"1px solid #b4b4b4", 'background-color': "whitesmoke", padding: "5px" }; this.o_info_data = null; // начинка информационного контейнера // возвращает объект o_info_data - ключи ссылки на созданные внутри контейнеры объекты this.place_info_content = function(){ var o_info_data = {}; var jq_div_info = self.jq_div_info; if(!jq_div_info) return false; var funcObj = arguments.callee; // swf-"иллюстрация" процесса обработки данных var jq_div_swf = $("
",{ id: 'div_swf' }).appendTo(jq_div_info); jq_div_swf.css({'text-align':'center'}); jq_div_swf.flash(funcObj['swf']); o_info_data['swf'] = jq_div_swf; // контейнер для инфы о текущем статусе процесса var jq_div_info_status = $("
",{ id: 'div_info_status' }).appendTo(jq_div_info); jq_div_info_status.css({ 'text-align':'center', 'margin': '15px', 'font-size':'14px' }); jq_div_info_status.attr({innerHTML:funcObj['status_text']}); o_info_data['status'] = jq_div_info_status; // контейнер и кнопка Закрыть var jq_div_info_btn = $("
",{ id: 'div_info_ok' }).appendTo(jq_div_info); jq_div_info_btn.css({ 'text-align':'center', 'margin': '10px', 'display':'none' }); o_info_data['div_btn'] = jq_div_info_btn; var jq_btn_close = $("",{ id: 'btn_info_close', type: 'button', value: 'Ок' }).appendTo(jq_div_info_btn); jq_btn_close.click(function(){ self.manage_layer_working("close"); }); o_info_data['btn'] = jq_btn_close; self.o_info_data = o_info_data; return o_info_data; }; // end this.place_info_content = function this.place_info_content.swf = { // swf-"иллюстрация" процесса обработки данных src: '/img_css/spider_web.swf', width: 120, height: 120, wmode: "transparent" }; this.place_info_content.status_text = "Идет обработка информации....."; // управление информационным слоем this.manage_layer_working = function(in_cmd){ var jq_div_info = self.jq_div_info; var o_info_data = self.o_info_data; var funcObj = arguments.callee; switch(in_cmd){ case "init": self.place_div_full(true); self.place_div_info_container(true); break; case "ok": case "alarm": if(!jq_div_info) {return false;} if(!o_info_data) {return false;} jq_div_info.css({'background-color': funcObj[in_cmd]['bgr']}); o_info_data['status'].attr({innerHTML:funcObj[in_cmd]['txt']}); o_info_data['div_btn'].slideDown('fast'); break; case "close": self.place_div_full(false); self.place_div_info_container(false); break; }; // end switch(in_cmd) }; this.manage_layer_working.ok = {'txt':"Обработка завершена!",'bgr':"turquoise"}; this.manage_layer_working.alarm = {'txt':"Ошибка обработки данных!",'bgr':"tomato"}; }; // end class_layer_working var js_include = {}; // включение в документ js-файлов путем document.write(); js_include.incl_write = function(in_fname){ var re_js = /\.js/; for(var i=0;i"; //alert(curr_fname); document.write(write_str); }; }; }; // end js_include.incl_write = function //======================================================================