////////////////////////////////////////////////// // // // JS-модуль для работы со ссылками // // // ////////////////////////////////////////////////// // Нарисовать ссылку function a_draw(hr,tx){ document.write(''+tx+''); } // Функция процессит авторизацию function auth_process(){ var oAuthForm=document.getElementById('oAuthForm'); if(!oAuthForm)return; oAuthForm.style.visibility='hidden'; oAuthForm.p.value=md5(oAuthForm.psw.value+':'+oAuthForm.t.value); oAuthForm.psw.disabled=true; oAuthForm.submit(); }// JS-функции для корзины товаров // Массив корзины window.basket_ar=new Array(); // Обработчик удаления товара из корзины function basket_del(ix){ basket_do(ix,true); var o = document.getElementById('cr_form'); document.getElementById('cr_form').submit(); o.parentNode.innerHTML = '
Удаление товара...
'; } // Обработчик изменения определенной позиции function basket_do(ix,del){ // Функции работы с деньгами var m2n = function(v){ return Number(String(v).replace(',','.')); } var n2m = function(v){ var a = String(v).split('.'); a[1] = (a[1] == undefined ? '00' : a[1]+'0'); a[1]=a[1].substr(0,2); return a.join(',','.'); } // Изменить стоимость текущего товара if(!del){ var m_=document.getElementById('cr_'+ix+'m'); var c_=document.getElementById('cr_'+ix+'c'); var s_=document.getElementById('cr_'+ix+'s'); var n_=document.getElementById('cr_'+ix+'n'); var nm_=document.getElementById('cr_'+ix+'nm'); var ns_=document.getElementById('cr_'+ix+'ns'); if(m_ && c_ && s_ && n_ && nm_ && ns_){ s_.innerHTML = n2m( m2n(m_.innerHTML)*Number(c_.value) ); nm_.innerHTML = n2m( m2n(m_.innerHTML)*Number(c_.value)*(m2n(n_.innerHTML)/100) ); ns_.innerHTML = n2m( m2n(m_.innerHTML)*Number(c_.value)*(1+m2n(n_.innerHTML)/100) ); } } // Корзина и итого var cr_b='', cr_sumtopay=0; // Пробежаться по всем товарам и вычислить итого (а также корзину) for(var i=0; i'+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '; }else if(b[2]){ // Прорисовать графическую версию o.innerHTML=''; } } }// Функция добавления в избранное function bookmark_getbrowser() { var t,v = undefined; if (window.opera) t = 'Opera'; else if (document.all) { t = 'IE'; var nv = navigator.appVersion; var s = nv.indexOf('MSIE')+5; v = nv.substring(s,s+1); } else if (navigator.appName) t = 'Netscape'; return {type:t,version:v}; } function bookmark_add(a){ var url = window.document.location; var title = window.document.title; var b = bookmark_getbrowser(); if (b.type == 'IE' && 7 > b.version && b.version >= 4) window.external.AddFavorite(url,title); else if (b.type == 'Opera') { a.href = url; a.rel = "sidebar"; a.title = url+','+title; return true; } else if (b.type == "Netscape") window.sidebar.addPanel(title,url,""); else alert("Нажмите CTRL-D, чтобы добавить страницу в закладки."); return false; } // Функция сохранения числового значения элемента // Устанвливается на "onpropertychange" function digital_do(o){ if(o.value==''){ o.value='0'; }else if(!o.value.match(/^\d+$/)){ o.value=o.value.replace(/[^\d]+/,''); }else if(o.value.match(/^0\d+$/)){ o.value=o.value.substr(1); } } ////////////////////////////////////////////////// // // // Функции работы с Flash // // // ////////////////////////////////////////////////// // Вставить флэшку с заданным адресом в контейнер function flash_draw(fl_obj, fl_url){ fl_obj.innerHTML=''+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '; } ////////////////////////////////////////////////// // // // Индексные вещи // // // ////////////////////////////////////////////////// // Установлен ли Flash flash_version=0; // Функция инициализации страницы для тех сайтов, где она нужна function index_pageinit(){ var o=document.getElementById('id_flash'); if(!o)return; if(flash_version>=9){ flash_draw(o,'/'+d_pro+'/page.swf'); }else{ o.innerHTML=index_nofla; } } // Функция инициализации входной страницы для тех сайтов, где она нужна function index_homeinit(){ var o=document.getElementById('id_flash'); if(!o)return; if(flash_version>=9){ flash_draw(o,'/'+d_pro+'/home.swf'); }else{ o.innerHTML=index_nofla; } } // Массив элементов с абсолютным выравниванием posalign_page=new Array( ); ////////////////////////////////////////////////// // // // Функции выпадающего главного меню // // // ////////////////////////////////////////////////// // Произведено ли выравнивание меню var m_posaligned=false; // Массив для абсолютного выравнивания меню m_posalign = new Array(); // Массив соответствий потомков предков m_parents = new Array(); // Запомненные позиции m_posalign_x = 0; m_posalign_y = 0; // Мажорная функция выравнивания для выпадающего меню function m_posalign_mj(arr){ for(var i in arr){ if(arr[i]=='')break; var src=arr[i][1]; var dst=arr[i][0]; var dx=arr[i][2]; var dy=arr[i][3]; var x,y; if(src!='#'){ x=0; y=0; var s=document.getElementById(src); if(!s)return; for(var o=document.getElementById(src); o!=document.body && o!=null;o=o.offsetParent){ y=y+o.offsetTop; x=x+o.offsetLeft; } }else{ x=m_posalign_x; y=m_posalign_y; } o=document.getElementById(dst); if(o);else continue; o.style.left=x+dx-35+'px'; // o.style.top=y+dy; o.style.top=0+dy+'px'; m_posalign_x=x; m_posalign_y=y; } m_posaligned=true; } // Минорная функция абсолютного выравнивания var m_posalign_mn_dy=0; function m_posalign_mn(arr){ for(var i in arr){ if(arr[i]=='')break; var src=arr[i][1]; var dst=arr[i][0]; var dx=arr[i][2]; var dy=arr[i][3]; var x,y; if(src!='#'){ x=0; y=0; var s=document.getElementById(src); if(!s)return; posalign_mn_dy=s.offsetHeight; for(var o=s; o!=document.body;o=o.offsetParent){ y=y+o.offsetTop; x=x+o.offsetLeft; } }else{ x=m_posalign_x; y=m_posalign_y; } o=document.getElementById(dst); if(o);else continue; o.style.display='block'; o.style.left=x+dx-0+'px'; o.style.top=y-dy+1-o.offsetHeight+posalign_mn_dy+'px'; m_posalign_x=x; m_posalign_y=y; } m_posaligned=true; } // Миксованная функция выравнивания function m_posalign_mx(arr){ for(var i in arr){ if(arr[i]=='')break; var src=arr[i][1]; var dst=arr[i][0]; var dx=arr[i][2]; var dy=arr[i][3]; var tp=arr[i][4]; var x,y; if(src!='#'){ x=0; y=0; var s=document.getElementById(src); if(!s)return; posalign_mn_dy=s.offsetHeight; for(var o=s; o!=document.body;o=o.offsetParent){ y=y+o.offsetTop; x=x+o.offsetLeft; } }else{ x=m_posalign_x; y=m_posalign_y; } o=document.getElementById(dst); if(o);else continue; o.style.display='block'; o.style.left=x+dx-1+'px'; if(tp=='minor'){ o.style.top=y-dy-0-o.offsetHeight+posalign_mn_dy+'px'; }else if(tp=='major'){ o.style.top=y+dy; } m_posalign_x=x; m_posalign_y=y; } m_posaligned=true; } // Массив пунктов меню (разбитый по уровням) m_array=new Array(); // Массив текущих пунктов, которые находится в процессе раскрытия, или уже раскрыты, по уровням m_current=new Array(); // Функция помечает все пункты меню данного уровня как закрытые function m_unset(lev){ if(m_array[lev]){ for(var i in m_array[lev]){ m_array[lev][i]=false; } } } // Функция закрывает все пункты данного уровня, помеченные как закрытые function m_close(){ for(var l in m_array){ for(var i in m_array[l]){ if(m_array[l][i])continue; var o=document.getElementById('m_d'+String(i).substr(1)); if(!o)continue; o.style.visibility='hidden'; if(i==m_current[l])m_current[l]=''; } } } // Ссылка на текущий открываемый пункт, по уровням m_object=new Array(); // Функция mouseover, с учетом уровня function m_i(mi,lev){ if(!m_posaligned)return; // Алфавитный ключ пункта меню var m='m'+mi; // Пометить все пункты данного уровня закрытыми m_unset(lev); // Пометить открытым текущий пункт и всех его родителей var l=lev; for(var i=m;i;i=m_parents[i]){ if(!m_array[l])m_array[l]=new Array(); m_array[l][i]=true; l--; } // Если этот пункт в процессе или уже открыт, дальше ничего делать не надо if( (m_current[lev]==m) && m_array[lev][m] )return; // Закрыть все пункты данного уровня, помеченные как закрытые m_close(lev); // Пометить этот пункт как в процессе m_current[lev]=m; // Найти его див o=document.getElementById('m_d'+mi); if(!o)return; // Прописать ссылку на него вне функции m_object[lev]=o; // Сделать альфу нулевой m_opa(o,0); // Установить CLIP в 0 0 0 0 o.style.clip='rect(0 0 auto 0)'; // Сделать видимым o.style.visibility='visible'; // Запомнить ширину и высоту, только для данного уровня m_width[lev]=o.style.pixelWidth; m_height[lev]=o.style.pixelHeight; // Установить стадию в начало, только для данного уровня m_procents[lev]=0; // Запустить процесс отрытия на данном уровне m_process(lev); } // Ключ таймера тотального закрытия, по уровням m_idcls=''; // Функция mouseout function m_o(mi,lev){ // Алфавитный ключ пункта var m='m'+mi; // Пометить закрытым текущий пункт и всех его родителей var l=lev; for(var i=m;i;i=m_parents[i]){ if(!m_array[l])m_array[l]=new Array(); m_array[l][i]=false; l--; } // Перезапустить тотальное закрытие через 330 мс if(m_idcls)clearTimeout(m_idcls); m_idcls=setTimeout('m_close()',330); } // Состояние открытия пункта в процентах, для уровней m_procents=new Array(); // Запомненная ширина высота пункта, для уровней m_width=new Array(); m_height=new Array(); // Функция процессит прозрачность, зависящую от браузера function m_opa(o,p){ p=p*18/20; if(o.filters){ o.filters[0].opacity=p; }else{ if(undefined!=o.style.mozOpacity){ o.style.mozOpacity=p/100; }else if(undefined!=o.style.opacity){ o.style.opacity=p/100; } } } // Функция процессит обработку открытия на заданном уровне function m_process(lev){ // Если уже 100%, то выходим if(m_procents[lev]==100)return; // Если пункт помечен как закрытый, то реально закрываем его выходим if(!m_array[lev][m_current[lev]]){ m_object[lev].style.visibility='hidden'; m_current[lev]=''; return; } // Увеличиваем прогресс m_procents[lev]+=10; // Меняем ему альфу m_opa(m_object[lev],Math.sqrt(m_procents[lev]*100)); // Переустанавливаем ему клип // m_object[lev].style.clip='rect(0 '+Math.sqrt(m_procents[lev])*20+' auto 0)'; m_object[lev].style.clip='rect(0 auto auto 0)'; // Продолжаем процесс setTimeout('m_process('+lev+')',10); } function md5(p){ var str=String(p); var nlen=((((str.length+8)/64)|0)+1)*64-8; var nblock=(nlen/4+2)|0; var ncircle=(nblock/16)|0; var hex=new Function("num","var dig=\"0123456789abcdef\";var tmp=new String;for(var i=3;i>=0;i--){var nn1=(num>>>(i*8))&0xf;var nn2=(num>>>(i*8+4))&0xf;tmp=\"\"+dig.substr(nn2,1)+dig.substr(nn1,1)+tmp;}return tmp;"); var FN=new Array( new Function("fa","fb","fc","fd","fm","fs","ft","var sa=fa + ((fb&fc)|((~fb)&fd)) + fm + ft;var sr=(sa<>>(32-fs));return (fb+sr)|0;"), new Function("fa","fb","fc","fd","fm","fs","ft","var sa=fa + ((fb&fd)|(fc&(~fd))) + fm + ft;var sr=(sa<>>(32-fs));return (fb+sr)|0;"), new Function("fa","fb","fc","fd","fm","fs","ft","var sa=fa + (fb^fc^fd) + fm + ft;var sr=(sa<>>(32-fs));return (fb+sr)|0;"), new Function("fa","fb","fc","fd","fm","fs","ft","var sa=fa + (fc^(fb|(~fd))) + fm + ft;var sr=(sa<>>(32-fs));return (fb+sr)|0;") ); var aarr=new Array( 0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501, 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be, 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821, 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa, 0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8, 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed, 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a, 0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c, 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70, 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05, 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665, 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039, 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1, 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391 ); var ind=new Array( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1, 6, 11, 0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12, 5, 8, 11, 14, 1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15, 2, 0, 7, 14, 5, 12, 3, 10, 1, 8, 15, 6, 13, 4, 11, 2, 9 ); var sarr=new Array( 7, 12, 17, 22, 5, 9, 14, 20, 4, 11, 16, 23, 6, 10, 15, 21); var A=new Array( 0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476); var a=new Array(); var len=str.length; str=str+"\x80"; for(var i=0;i>4])( a[(64-i)%4], a[(65-i)%4], a[(66-i)%4], a[(67-i)%4], m[n*16+ind[i]], sarr[(i%4)+(i>>>4)*4], aarr[i] ); } for(var i=0;i<4;i++)A[i]=(A[i]+a[i])|0; } return ( "" + hex(A[0]) + hex(A[1]) + hex(A[2]) + hex(A[3]) ); } // Для работы с PNG-шками под IE function pngbg_set(a){ for(var i in a){ var o=document.getElementById(a[i]); if(!o)continue; if(/MSIE (5\.5|6|7).+Win/.test(navigator.userAgent)){ var src = o.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i); if(src){ src = src[1]; o.runtimeStyle.backgroundImage="none"; o.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')"; } } o.style.visibility="visible"; } } // Функция абсолютного выравнивания posalign_dx=0; posalign_dy=0; posaling_x=0; posalign_y=0; function posalign_do(arr){ for(var i in arr){ if(arr[i]=='')break; var src=arr[i][1]; var dst=arr[i][0]; var dx=arr[i][2]+posalign_dx; var dy=arr[i][3]+posalign_dy; var x,y; if(src!='#'){ x=0; y=0; for(var o=document.getElementById(src); o!=document.body;o=o.offsetParent){ y=y+o.offsetTop; x=x+o.offsetLeft; } }else{ x=posalign_x; y=posalign_y; } o=document.getElementById(dst); if(o);else continue; o.style.left=x+dx; o.style.top=y+dy; o.style.visibility='visible'; posalign_x=x; posalign_y=y; } } function posalign_show(eid){ var obj=document.getElementById(eid); if(obj);else return false; // obj.style.display='block'; obj.style.visibility='visible'; return true; } function posalign_hide(eid){ var obj=document.getElementById(eid); if(obj);else return false; // obj.style.display='none'; obj.style.visibility='hidden'; return true; }// Окно печатной версии var prw_hwnd = new Object(); prw_hwnd.closed=true; function prw_open(){ if(!prw_hwnd.closed)return; prw_hwnd=open("about:blank","prw","directories=no,width=800,height=600,location=no,menubar=0,resizeable=no,toolbar=no,scrollbars=yes"); } function swf_html( // HTML-код флэшки swf_src, // Адрес флэшки swf_width, // Ширина swf_height, // Высота swf_vars, // FlashVars swf_quality, // Качество swf_wmode, // Режим окна swf_align, // Выравнивание самого контейнера swf_salign, // Выравнивание внутри контейнера swf_scale, // Способ растягивания swf_bgcolor // Бэкграунд колор ){ var s= ''+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '; return s; }