function $(id) { return document.getElementById(id); } onload = function() { set_scrollers(); preload_images( '/i/icon_portfolio_over.gif', '/i/icon_prices_over.gif' ); } function preload_images() { var img = new Object(); arguments = preload_images.arguments; for( i=0; i < arguments.length; i++) { img[i] = new Image(); img[i].src = arguments[i]; } i = 0; images = document.getElementsByTagName('img') while( image = images[i++] ) { if( image.className.match(/over/, "") ) { image.onmouseover = function() { this.src = get_over_src(this.src); } image.onmouseout = function() { this.src = get_normal_src(this.src); } } /* blur if require */ image.parentNode.onfocus = function() { this.blur() } } } function swap_top_image(src) { if( $('top-image').src != src ) $('top-image').src = src; } function swap_item_image(i,src) { if( i.src != src ) i.src = src; } function set_scrollers() { if( $('scrollLeft') && $('scrollRight') ) { $('scrollLeft').onclick = function() { $('products-items').scrollLeft -= 90 } $('scrollRight').onclick = function() { $('products-items').scrollLeft += 90 } } } function getClientWidth() { return document.documentElement.clientWidth > 0 ? document.documentElement.clientWidth : document.body.clientWidth; } function getClientHeight() { return document.documentElement.clientHeight > 0 ? document.documentElement.clientHeight: document.body.clientHeight; } function get_ScrollOffsetX_ScrollOffsetY() { var scrOfX = 0, scrOfY = 0; if(typeof(window.pageYOffset) == 'number') { scrOfY = window.pageYOffset; scrOfX = window.pageXOffset; } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) { scrOfY = document.body.scrollTop; scrOfX = document.body.scrollLeft; } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) { scrOfY = document.documentElement.scrollTop; scrOfX = document.documentElement.scrollLeft; } return { 'ScrollOffsetX' : scrOfX, 'ScrollOffsetY': scrOfY }; } function spw( pdata ) { if( pdata == undefined || pdata.lenght == 0) return ; var width = 0, height = 0, img_type = '', img_id = -1, img_title = '', lng = '', img_src = ''; var arg_list = ['img_src', 'width', 'height', 'img_title']; for (var i = 1, j=i-1; i < arguments.length; i++, j=i-1) { eval_type_str = arguments[i] if( typeof(arguments[i]) == 'string' ) eval_type_str = '"' + arguments[i] + '"'; eval( arg_list[j] + " = " + eval_type_str + ";"); } // получаем ширину и высоту клиенской области и смещения по осям var cWidth = 0, cHeight = 0, ScrollOffsetX = 0, ScrollOffsetY = 0; cWidth = getClientWidth(); cHeight = getClientHeight(); r = get_ScrollOffsetX_ScrollOffsetY(); ScrollOffsetX = r['ScrollOffsetX']; ScrollOffsetY = r['ScrollOffsetY']; var pid = pdata[0]; // если не найдено и заданное окно, добавляем автоматически if( !$(pid) ) { var dPWindow = document.createElement('div'); dPWindow.id = pid; document.body.appendChild(dPWindow); if (/MSIE (5).+Win/.test(navigator.userAgent)){ width += 5; height += 5; } } $(pid).onclick = function() { cpw(pid); }; $(pid).style.cursor = "pointer"; var left = parseInt((cWidth-width)/2) + ScrollOffsetX ; var top = parseInt((cHeight-height)/2) + ScrollOffsetY ; // pdata - [pid, top_correction, left_corretin, top, left] if( pdata[1] != undefined ) top += parseInt(pdata[1]); if( pdata[2] != undefined ) left += parseInt(pdata[2]); if( pdata[3] != undefined ) top = parseInt(pdata[3]) + ScrollOffsetY; if( pdata[4] != undefined ) left = parseInt(pdata[4]) + ScrollOffsetX; // если overlay не найден, добавляем автоматически if( !$('overlay') ) { var dOverlay = document.createElement('div'); dOverlay.id = 'overlay'; document.body.appendChild(dOverlay); } $('overlay').onclick = function() { cpw(pid); }; $('overlay').title = "Закрыть окно"; $('overlay').style.cursor = "pointer"; if (/MSIE (5|6).+Win/.test(navigator.userAgent)) { $('overlay').style.height = cHeight ; if( document.body.scrollHeight && document.body.scrollHeight > cHeight ) $('overlay').style.height = document.body.scrollHeight ; } $('overlay').style.display = 'block'; // если значение ненулевое, используем, если нулевое - использются стили из css if( top > 0) $(pid).style.top = top + "px"; if( left > 0) $(pid).style.left = left + "px"; if( width > 0) $(pid).style.width = width + "px"; if( height > 0) $(pid).style.height = height + "px"; $(pid).style.display = 'block'; // требуется показать картинку if( img_src != '' ) { // если не найдена картинка if( !$('pimg') ) { var image = document.createElement('img'); image.id = 'pimg'; $(pid).appendChild(image); } $('pimg').style.display = 'none'; hsrc = img_src ; var isrc = 'http://'+window.location.host + img_src ; if( $('pimg').src != isrc ) { $('pimg').onload = function() { this.style.display = 'block' } $('pimg').src = hsrc ; } else { $('pimg').style.display = 'block'; } $('pimg').title = img_title ; } return false ; } function cpw() { // close popup window cpw('wid') if( arguments[0] != undefined && $(arguments[0]) ) $(arguments[0]).style.display = 'none'; $('overlay').style.display = 'none'; $('overlay').style.height = "100%"; return false ; }