/******************************************************************** ******* dhtmltooltip.js ********************************************************************/ /*********************************************** * Cool DHTML tooltip script- c Dynamic Drive DHTML code library (www.dynamicdrive.com) * This notice MUST stay intact for legal use * Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code ***********************************************/ var offsetxpoint=-60 //Customize x offset of tooltip var offsetypoint=20 //Customize y offset of tooltip var ie=document.all var ns6=document.getElementById && !document.all var enabletip=false if (ie||ns6) var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : "" function ietruebody(){ return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body } function ddrivetip(thetext, thecolor, thewidth){ if (ns6||ie){ if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px" if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor tipobj.innerHTML=thetext enabletip=true return false } } function positiontip(e){ if (enabletip){ var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft; var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop; //Find out how close the mouse is to the corner of the window var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20 var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20 var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000 //if the horizontal distance isn't enough to accomodate the width of the context menu if (rightedge= this.scrollLeft) || (this.direction=='vertical'&&parseInt(this.list.style.top) >= this.scrollLeft)) { this.downButton = false; clearTimeout(this.timer); this.onAfterScroll(); return; } if(this.direction=='horizontal') this.list.style.left = this.inc(this.list.style.left); if(this.direction=='vertical') this.list.style.top = this.inc(this.list.style.top); this.timer = setTimeout( function(){ this.scrollPrev() ; }.bind(this), this.repeatTm) } else clearTimeout(this.timer); }, scrollNext: function() { if(this.downButton) { //если долистали до конца if((this.direction=='horizontal' && ((-1)*parseInt(this.list.offsetLeft) > (parseInt(this.list.offsetWidth) - parseInt(this.cont.offsetWidth) - this.scrollLeft))) || (this.direction=='vertical' && ((-1)*parseInt(this.list.offsetTop) > (parseInt(this.list.offsetHeight) - parseInt(this.cont.offsetHeight))) )) { this.downButton = false; clearTimeout(this.timer); this.fromVal += this.countFetchRows; if(!this.nomoreRows && this.fetching) this.fetchNextBlock(); this.scrollLeft = 0; this.onAfterScroll(); return; } if(this.direction=='horizontal') this.list.style.left = this.dec(this.list.style.left); else this.list.style.top = this.dec(this.list.style.top); this.timer = setTimeout( function(){ this.scrollNext(); }.bind(this), this.repeatTm); } else clearTimeout(this.timer); }, scrollBegin: function() { this.downButton = true; this.scrollPrev(); }, scrollEnd: function() { this.downButton = true; this.scrollNext(); }, fetchNextBlock: function() { this.setGaugeVisible(); var sfparm = ''; for(fparm in this.fetchParams) { sfparm += '&'+fparm+'='+this.fetchParams[fparm] } new Ajax.Updater(this.insertTo.id, this.fromUrl,{ method: "post", parameters:sfparm+"&offset=" + this.fromVal + "&rowcount=" + this.countFetchRows, //&light=1 insertion: Insertion.Bottom, onComplete: this.handleResponse.bind(this), onFailure: this.reportError.bind(this) } ); }, onAfterScroll: function (){ }, handleResponse: function(response) { if(response.responseText.length == 0) this.nomoreRows = true; this.setGaugeHidden(); }, reportError: function(err) { } } /******************************************************************** ******* popup.js ********************************************************************/ /********************************************************* * PopUp control ************************ * by Kozyuck Alexander, c 2008 ************************ * kolexander@gmail.com ************************ *********************************************************/ var Popup = Class.create(); Popup.prototype = { initialize: function(parameters) { this.parameters = parameters; if(!$(this.parameters.id)) { this.popup = document.createElement('div'); this.popup.id = this.parameters.id; document.body.appendChild(this.popup); var hgt = parseInt(this.parameters.style.height)-20; if(typeof this.parameters.contOverflow == 'undefined') { this.parameters.contOverflow = 'none'; } $(this.popup).update('\ \ \
'); // style="padding: 0px 0px 0px 0px" } else { this.popup = $(this.parameters.id); //if(this.popup.style.dislay == 'none') this.popup.toggle(); } this.setProperties(this.parameters.style, this.popup.style); if(typeof this.parameters.content != 'undefined') { this.updateContent(this.parameters.content); } if(typeof this.parameters.ajaxUrl != 'undefined') { this.updateFromUrl(this.parameters.ajaxUrl); } if(typeof this.parameters.className != 'undefined') this.popup.className = this.parameters.className; Event.observe($(this.parameters.id+'_close'), "click", function(event) { var el = Event.findElement(event, 'DIV'); if (el != document) { $(el).hide(); } }); // this.popup.show(); }, setProperties: function(parameters,where) { for(param in parameters) { if(typeof parameters[param] == 'number') eval('where.'+param+' = ' + parameters[param]); else eval('where.'+param+' = "' + parameters[param] + '"'); } }, updateContent: function(cont) { if(cont != null && typeof cont != 'undefined') { $(cont).show(); $(this.parameters.id+'_cont').update($(cont)); } }, updateFromUrl: function(url) { if(url != null && typeof url != 'undefined') { new Ajax.Updater($(this.parameters.id+'_cont'), url,{ method: "get", onComplete: this.ajaxUrlResponse.bind(this), onFailure: this.ajaxUrlReportError.bind(this)() } ); } }, ajaxUrlResponse: function() { }, ajaxUrlReportError: function() { } } /******************************************************************** ******* weather.js ********************************************************************/ initCommon(); var curl = '/'+curlang+'/weather/'; var transparentImage = "/images/transparent.gif"; var needHack = needPNGHack(); var shortWeatherInfo; var canShowInfo = true; var canHideInfo = true; //Делается хак для IE v5.5, 6.0, т.к. они не поддерживают PNG-24,32 alpha-transparency function getFilter(image) { return "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+image+"', sizingMethod='scale')"; } function getDayNum(infodiv) { return infodiv.substr(infodiv.indexOf('_')+1); } function overObject(obj){ with(obj.style) { border = '1px solid'; borderColor = 'yellow'; } } function outObject(obj){ with(obj.style) { border = '0px'; } } //показываем рекламный объект function showAdvObj(infodiv,text){ var infodivobj = $(infodiv+'_obj'); var daynum = getDayNum(infodiv); if(canShowInfo) { infodivobj.innerHTML = unescape(text); eval('scroller_'+daynum+'.scrollBegin();'); } } function hideAdvObjDetail(daynum) { if(canHideInfo) { eval('scroller_'+daynum+'.downButton=true; \ scroller_'+daynum+'.scrollLeft = -180; \ scroller_'+daynum+'.scrollNext(); \ scroller_'+daynum+'.onAfterScroll = function() { \ canShowInfo = true; \ }'); } } //скрываем рекламный объект function hideAdvObj(infodiv){ var daynum = getDayNum(infodiv); canShowInfo = false; setTimeout('hideAdvObjDetail('+daynum+')',1000); } function stopAdvObjHiding() { canHideInfo = false; } function resumeAdvObjHiding(infodiv) { canHideInfo = true; hideAdvObj(infodiv); } //вставляем облако function insertCloud(params,contbkg,ind,images){ var wdtClouds = 94; var hgtClouds = 45; var len = String(eval('legendcloud.cloud'+params.data.clouds[ind])).length; var wdt = (len < 15)?len*10:150; var filter = ''; var imagename = eval('"'+images+'cloud'+params.data.clouds[ind]+'.png"'); if(needHack) { filter = getFilter(imagename); imagename = transparentImage; } else { filter = ''; } new Insertion.Bottom(params.contid,'
'+ '
'); } //вставляем облако function insertPrecipitation(params,contbkg,ind,images) { var wdtPrcpt = 94; var hgtPrcpt = 68; var offsTop = 45; var len = String(eval('legendprcpt.'+params.data.prcpt[ind])).length; var wdt = (len < 15)?len*10:150; var filter = ''; var imagename = eval('"'+images+params.data.prcpt[ind]+'.png"'); if(needHack) { filter = getFilter(imagename); imagename = transparentImage; } else { filter = ''; } new Insertion.Bottom(params.contid,'
'); } //функция для вывода слоев с иконками function showWeatherBlock(params) { var wdt = 376; var hgt = 129; var wdtMoon = 94; var hgtMoon = 45; var wdtTrees = wdt; var hgtTrees = 28; var images = '/images\/'; //filestoredomain+ var imagesao = '/pictures\/advobjs\/'; //filestoredomain+ var imgmoon = images+'moon_new.png'; var wdtHouses = wdt; var hgtHouses = 79; var wdtOneHouse = 37; var hgtIcons = 32; var offsTop = 45; var offsTopIcons = 95; switch(params.data.moon) { case '0': imgmoon = images+'moon_new.png'; break; case '1': imgmoon = images+'moon_first_quater.png'; break; case '2': imgmoon = images+'moon.png'; break; case '3': imgmoon = images+'moon_last_quater.png'; break; } //контейнер для слоев с иконками new Insertion.Top(params.contid,'
'); var contbkg = $(params.contid+'_bkg'); //фазы луны new Insertion.Bottom(params.contid,'
'); for(var i = 0; i < params.data.clouds.length; i++) { insertCloud(params,contbkg,i,images); insertPrecipitation(params,contbkg,i,images); } //рисуем домики var houses = ''; var icons = houses; var imagename = ''; var path = 'params.data.objs.'; var imagehousename = ''; var imageiconame = ''; var filter = ''; var parms = ''; var over; for(var i = 1; i <= 10; i++) { filter = ''; over = ''; imagehousename = images+'house'+i+'.png'; imageiconame = ''; if(needHack) { filter = getFilter(imagehousename); imagehousename = transparentImage; } else { filter = ''; } if(isDefined(params.data.objs)) { var obj = null; var hs = eval(path+'house'+i); if(isDefined(hs)) { if(isDefined(hs.icon)) imageiconame = imagesao + hs.icon; if(isDefined(hs.image) && hs.image.length>0) { imagehousename = imagesao+hs.image; if(needHack) { filter = getFilter(imagehousename); imagehousename = transparentImage; } else { filter = ''; } } if(isDefined(hs.info)) { parms = '\''+hs.infodiv+'\''; over = 'onmouseover="showAdvObj('+parms+',\''+escape( '
\
'+hs.info+'
' )+'\')" onmouseout="hideAdvObj('+parms+')"'; } } } houses += ''; icons += ''+ ((imageiconame.length<=0)?'':''+ '')+''; } houses += ''; icons += ''; new Insertion.Bottom(params.contid,'
'+houses+'
'); //слой с деревьями var imagename = images+'trees_road.png'; if(needHack) { filter = getFilter(imagename); imagename = transparentImage; } else { filter = ''; } new Insertion.Bottom(params.contid,'
'+ '
'); //слой с иконками new Insertion.Bottom(params.contid,'
'+icons+'
'); } //обновляем список городов function refreshCities(){ var region = $('region_id'); var city = $('cont_city_id'); city.firstChild.options.length = 0; $('region_caption').innerHTML = $('region').options[$('region').selectedIndex].text; new Ajax.Updater(city, curl + 'getcities',{ method: "post", parameters:"&ajax=1&light=1&id="+$('region').value, onComplete: handleResponse.bind(this), onFailure: reportError.bind(this)() } ); $('link_wmap').href = $('link_wmap').href.replace(/\/\w*?\/$/,"/"+$('region').value+"/"); } function handleResponse(response) { } function reportError(err) { } function gotoCity(select){ if(select.value != -1) window.location.href = curl + select.value + '/'; } /*function initScrollbox(daynum) { eval('scroller_'+daynum+' = new Scrollbox({contId:"advinfo_'+daynum+'",listId:"advinfo_'+daynum+'_obj",direction:"horizontal"})'); */ //initScrollbox(); function getAllNewsPopupCoord(event,wdt,hgt) { var el = Event.element(event); var offset = Position.cumulativeOffset(el); return {X:offset[0] - Math.round(wdt/2) + 30, Y:offset[1] + 21}; } initPage(); if(!isPagePrint) Event.observe($("btn_all_news"), "mousedown", function(event) { var link = Event.element(event); if(typeof pop_all_news != 'undefined' && pop_all_news != null) { pop_all_news.popup.show(); pop_all_news.updateFromUrl(link.getAttribute('url')); return true; } var wdt = 700; var hgt = 480; popupCoord = getAllNewsPopupCoord(event,wdt,hgt); pop_all_news = new Popup({ id:'win_all_news', content: null, className: 'clrsltbg', title: _strings.all_news+'. '+_strings.region_name, ajaxUrl: link.getAttribute('url'), contOverflow: 'scroll', style:{ position:'absolute', left:popupCoord.X+'px', top:popupCoord.Y+'px', width:wdt+'px', height:hgt+'px', borderTop:'solid 1px #DDDDDD', borderRight:'solid 1px #999999', borderBottom:'solid 1px #999999', borderLeft:'solid 1px #DDDDDD', zIndex:100, MozOpacity: 0.95, opacity: 0.95, filter:'alpha(opacity:95)' }}); //cont_all_news });