function filter(form) { var postData = new Hash(); postData.set('action', 'traffic'); form.getElements('select,input').each(function(input) { if(input.name) { postData.set(input.name, input.value); } }); content('statistic', 'contents', postData); } function titles(div) { if($(div)) { $(div).getElements('textarea[title],input[title]').each(function(input) { if(input.value == '') { input.set('value', input.title); input.addClass("null"); } input.addEvents({ focus: function() { if(this.value == this.title) { this.removeClass("null"); this.set("value", ""); } }, blur: function() { if(this.value.trim() == '') { this.addClass("null"); this.set("value", this.title); } } }); }); } } function waiter(div, padding) { var layer = $(div).getCoordinates(); if(!padding) padding = 0; var loader = new Element("div", { 'class': 'loader', 'styles': { position: 'absolute', top: layer.top - padding, left: layer.left - padding, opacity: 0.4, width: layer.width - padding*2, height: layer.height + padding*2 } }); return loader; } function login(module) { var postData = new Hash(); postData.set("action", "login"); postData.set("username", $('login').getElement("input[name=username]").value); postData.set("password", $('login').getElement("input[name=password]").value); content(module, 'contents', postData); } function content(module, div, data) { var postData = new Hash(); if(data) postData.extend(data); postData.include("module", module); div = $(div)?$(div):$('contents'); var loader = waiter(div, 5); $('content').grab(loader); var jsonRequest = new Request.JSON({url: 'index.php', onComplete: function(response) { loader.dispose(); if(response && response.message && $('messages')) { $('messages').set('html', response.message); } if(response && response.content && $(div)) { $(div).set('html', response.content); } titles.attempt('login'); } }).POST(postData); } function contact() { var postData = new Hash(); postData.include("module", "contacts"); $("messages").empty(); $("contacts").getElements("input,textarea").each(function(input) { $("contacts").getElements("label[for=" + input.id + "]").removeClass("error"); if(input.type!=='submit') { postData.set(input.id, input.value); } }); var loader = waiter($('contacts')); $('contacts').grab(loader); var jsonRequest = new Request.JSON({url: 'index.php', onComplete: function(response) { loader.dispose(); if(response.message) { var ul = new Element('ul'); var li = new Element('li'); response.message.each(function(input) { $("contacts").getElement("label[for=contact" + input.id + "]").addClass("error"); $("contact" + input.id).addEvent("focus", function() { $("contacts").getElement("label[for=" + this.id + "]").removeClass("error"); }); ul.grab(li.clone().set("text", "Введите правильные значения: " + input.title)); if(input.message) { alert(input.message); } }); $("messages").grab(ul); } else if(response.content) { $("contents").set("html", response.content); } } }).POST(postData); }