function create_xmlHttpRequest() { var xmlHttp = false; /*@cc_on @*/ /*@if (@_jscript_version >= 5) try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { xmlHttp = false; } } @end @*/ if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); } return xmlHttp; } function ajax_post(param, url, handle_function, args) { var xmlHttp = create_xmlHttpRequest();if ( xmlHttp ) { var dt = new Date();param = encodeURI(param + "&rd=" + dt.getTime());xmlHttp.onreadystatechange = function() { handle_function(xmlHttp, args); }; xmlHttp.open("POST", url, true); xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");xmlHttp.setRequestHeader("Content-Length", param.length);xmlHttp.send(param);}}function runSWFAd(swf_name,swf_width,swf_height,swf_file){document.write('\n');document.write('\n'); document.write('\n');document.write('\n'); document.write('\n');document.write('\n');document.write('\n');}function resize_user_pic(_maxW, _maxH) { var _list = null; var _divs = document.getElementsByTagName('div'); for ( var i = 0 ; i < _divs.length ; i++ ) { if ( typeof(_divs[i].className) != 'undefined' && /^talk_inner_/.test(_divs[i].className) ) { _list = _divs[i]; break; } } if ( _list == null ) { _list = document; } if ( _list ) { var _imgs = _list.getElementsByTagName('img'); for ( var i = 0 ; i < _imgs.length ; i++ ) { if ( typeof(_imgs[i].id) != 'undefined' && /^up_/.test(_imgs[i].id) ) { var _src = _imgs[i].src; if ( isFF ) { _imgs[i].onload = function(_img) { resize_image(this, _maxW, _maxH); }; } else if ( isChrome ) { _imgs[i].onload = function() { resize_image(this, _maxW, _maxH); }; } else { _imgs[i].onreadystatechange = function() { resize_image(this, _maxW, _maxH); }; } _imgs[i].src = ''; _imgs[i].src = _src; } } } } function resize_talk_content_pic(_maxW, _maxH) { var _list = null; var _divs = document.getElementsByTagName('div'); for ( var i = 0 ; i < _divs.length ; i++ ) { if ( typeof(_divs[i].className) != 'undefined' && /^block_content/.test(_divs[i].className) ) { _list = _divs[i]; break; } } if ( _list ) { var _imgs = _list.getElementsByTagName('img'); for ( var i = 0 ; i < _imgs.length ; i++ ) { var _src = _imgs[i].src; if ( isFF ) { _imgs[i].onload = function() { resize_image(this, _maxW, _maxH); }; } else { _imgs[i].onreadystatechange = function() { resize_image(_imgs[i], _maxW, _maxH); }; } _imgs[i].src = ''; _imgs[i].src = _src; } } } function resize_image_of_element(e, _maxW, _maxH) { var _list = document.getElementById(e); if ( _list ) { var _imgs = _list.getElementsByTagName('img'); for ( var i = 0 ; i < _imgs.length ; i++ ) { var _src = _imgs[i].src; if ( isFF ) { _imgs[i].onload = function() { resize_image(this, _maxW, _maxH); }; } else { _imgs[i].onreadystatechange = function() { resize_image(_imgs[i], _maxW, _maxH); }; } _imgs[i].src = ''; _imgs[i].src = _src; } } } function resize_image(img, _maxW, _maxH) { if ( typeof(img) == 'undefined' || typeof(img.src) == 'undefined' || img.src == '' ) { return; } var _W = eval(img.width); var _H = eval(img.height); if ( _W > _maxW && _H > _maxH ) { if ( _W > _H ) { var ratio = _maxW / _W; var _height = Math.ceil(_H * ratio); if ( _height > _maxH ) { var ratio = _maxH / _H; var _width = Math.ceil(_W * ratio); img.style.height = _maxH + 'px'; img.style.width = _width + 'px'; } else { img.style.width = _maxW + 'px'; img.style.height = _height + 'px'; } } else { var ratio = _maxH / _H; var _width = Math.ceil(_W * ratio); if ( _width > _maxW ) { var ratio = _maxW / _W; var _height = Math.ceil(_H * ratio); img.style.width = _maxW + 'px'; img.style.height = _height + 'px'; } else { img.style.height = _maxH + 'px'; img.style.width = _width + 'px'; } } } else if ( _H > _maxH ) { var ratio = _maxH / _H; var _width = Math.ceil(_W * ratio); img.style.height = _maxH + 'px'; img.style.width = _width + 'px'; } else if ( _W > _maxW ) { var ratio = _maxW / _W; var _height = Math.ceil(_H * ratio); img.style.width = _maxW + 'px'; img.style.height = _height + 'px'; } } function online_polling() { ajax_post(null, '/ajax/member/online.php', handle_online_polling); } function handle_online_polling(xmlHttp) { } setInterval('online_polling()', 6000000);function check_pmbox() { var param = null; ajax_post(param, '/ajax/member/pm/check_pmbox.php', handle_check_pmbox); } function handle_check_pmbox(xmlHttp) { if ( xmlHttp.readyState == 4 && xmlHttp.status == 200 && xmlHttp.responseXML ) { var _total = xmlHttp.responseXML.getElementsByTagName('total'); if ( _total && _total.length > 0 ) { var _msg_count = _total[0].getAttribute('value'); if ( _msg_count > 0 ) { var _span = document.getElementById('pm_notice'); if ( _span ) { var _href = document.createElement('a'); with(_href) { href = "/member/?op=pm&type=in"; } var _title = "您有 " + _msg_count + " 封私人訊息尚未讀取"; var _img = document.createElement('img'); with (_img) { src = 'http://img.eprice.com.tw/img/common/header/pm_notice_mailbox.gif'; style.border = '0'; title = _title; alt = _title; } var _pm_notice_num = document.createElement('span'); with(_pm_notice_num) { id = 'pm_notice_num'; innerHTML = _msg_count; title = _title; } _href.appendChild(_img); _href.appendChild(_pm_notice_num); _span.appendChild(_href); document.getElementById('pm_notice_delimiter').className = 'delimiter'; } var _span = document.getElementById('span_pmbox_new'); if ( _span ) { _span.innerHTML = "私人訊息(" + _msg_count + ")"; } } } } }// IE5.5+ PNG Alpha Fix v2.0 Alpha: Background Tiling Support // (c) 2008-2009 Angus Turnbull http://www.twinhelix.com // This is licensed under the GNU LGPL, version 2.1 or later. // For details, see: http://creativecommons.org/licenses/LGPL/2.1/ var IEPNGFix = window.IEPNGFix || {}; IEPNGFix.tileBG = function(elm, pngSrc, ready) { // Params: A reference to a DOM element, the PNG src file pathname, and a // hidden "ready-to-run" passed when called back after image preloading. var data = this.data[elm.uniqueID], elmW = Math.max(elm.clientWidth, elm.scrollWidth), elmH = Math.max(elm.clientHeight, elm.scrollHeight), bgX = elm.currentStyle.backgroundPositionX, bgY = elm.currentStyle.backgroundPositionY, bgR = elm.currentStyle.backgroundRepeat; // Cache of DIVs created per element, and image preloader/data. if (!data.tiles) { data.tiles = { elm: elm, src: '', cache: [], img: new Image(), old: {} }; } var tiles = data.tiles, pngW = tiles.img.width, pngH = tiles.img.height; if (pngSrc) { if (!ready && pngSrc != tiles.src) { // New image? Preload it with a callback to detect dimensions. tiles.img.onload = function() { this.onload = null; IEPNGFix.tileBG(elm, pngSrc, 1); }; return tiles.img.src = pngSrc; } } else { // No image? if (tiles.src) ready = 1; pngW = pngH = 0; } tiles.src = pngSrc; if (!ready && elmW == tiles.old.w && elmH == tiles.old.h && bgX == tiles.old.x && bgY == tiles.old.y && bgR == tiles.old.r) { return; } // Convert English and percentage positions to pixels. var pos = { top: '0%', left: '0%', center: '50%', bottom: '100%', right: '100%' }, x, y, pc; x = pos[bgX] || bgX; y = pos[bgY] || bgY; if (pc = x.match(/(\d+)%/)) { x = Math.round((elmW - pngW) * (parseInt(pc[1]) / 100)); } if (pc = y.match(/(\d+)%/)) { y = Math.round((elmH - pngH) * (parseInt(pc[1]) / 100)); } x = parseInt(x); y = parseInt(y); // Handle backgroundRepeat. var repeatX = { 'repeat': 1, 'repeat-x': 1 }[bgR], repeatY = { 'repeat': 1, 'repeat-y': 1 }[bgR]; if (repeatX) { x %= pngW; if (x > 0) x -= pngW; } if (repeatY) { y %= pngH; if (y > 0) y -= pngH; } // Go! this.hook.enabled = 0; if (!({ relative: 1, absolute: 1 }[elm.currentStyle.position])) { elm.style.position = 'relative'; } var count = 0, xPos, maxX = repeatX ? elmW : x + 0.1, yPos, maxY = repeatY ? elmH : y + 0.1, d, s, isNew; if (pngW && pngH) { for (xPos = x; xPos < maxX; xPos += pngW) { for (yPos = y; yPos < maxY; yPos += pngH) { isNew = 0; if (!tiles.cache[count]) { tiles.cache[count] = document.createElement('div'); isNew = 1; } var clipR = Math.max(0, xPos + pngW > elmW ? elmW - xPos : pngW), clipB = Math.max(0, yPos + pngH > elmH ? elmH - yPos : pngH); d = tiles.cache[count]; s = d.style; s.behavior = 'none'; s.left = (xPos - parseInt(elm.currentStyle.paddingLeft)) + 'px'; s.top = yPos + 'px'; s.width = clipR + 'px'; s.height = clipB + 'px'; s.clip = 'rect(' + (yPos < 0 ? 0 - yPos : 0) + 'px,' + clipR + 'px,' + clipB + 'px,' + (xPos < 0 ? 0 - xPos : 0) + 'px)'; s.display = 'block'; if (isNew) { s.position = 'absolute'; s.zIndex = -999; if (elm.firstChild) { elm.insertBefore(d, elm.firstChild); } else { elm.appendChild(d); } } this.fix(d, pngSrc, 0); count++; } } } while (count < tiles.cache.length) { this.fix(tiles.cache[count], '', 0); tiles.cache[count++].style.display = 'none'; } this.hook.enabled = 1; // Cache so updates are infrequent. tiles.old = { w: elmW, h: elmH, x: bgX, y: bgY, r: bgR }; }; IEPNGFix.update = function() { // Update all PNG backgrounds. for (var i in IEPNGFix.data) { var t = IEPNGFix.data[i].tiles; if (t && t.elm && t.src) { IEPNGFix.tileBG(t.elm, t.src); } } }; IEPNGFix.update.timer = 0; if (window.attachEvent && !window.opera) { window.attachEvent('onresize', function() { clearTimeout(IEPNGFix.update.timer); IEPNGFix.update.timer = setTimeout(IEPNGFix.update, 100); }); } /* Cookie control */ var caution = false function set_cookie(name, value, expires, path, domain, secure) { /* GMT format : October, 4 2000 07:04:11 */ if ( !expires ) { var date = new Date(); var days = 7; date.setTime(date.getTime()+(days*24*60*60*1000)); expires = date; } if ( !domain ) { domain = "eprice.com.tw"; } var curCookie = name + "=" + escape(value) + ((expires)? "; expires=" + expires.toGMTString() : "" ) + ((path)? "; path=" + path : "" ) + ((domain)? "; domain=" + domain : "" ) + ((secure)? "; secure" : "" ); if ( !caution || ( name + "=" + escape(value)).length <= 4000 ) { document.cookie = curCookie; } else { if ( confirm("Cookie exceeds 4KB and will be cut!") ) { document.cookie = curCookie; } } } function get_cookie(name) { var prefix = name + "=" var cookieStartIndex = document.cookie.indexOf(prefix) if (cookieStartIndex == -1) return null; var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length) if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex)) } var currentLayer = "mobile_tab_1"; var currentDiv = "mobile_layer_1"; var currentDCLayer = "dc_tab_10"; var currentDCDiv = "dc_layer_10"; var currentNBLayer = "nb_tab_10"; var currentNBDiv = "nb_layer_10"; function showIt(o,d,mode){ var obj = document.getElementById(o); var div = document.getElementById(d); var type = obj.id.split('_')[0]; var op = mode? "on" : "off"; if ( obj.tagName.toLowerCase() == 'table' ) { obj.rows[0].cells[0].style.backgroundImage = 'url(http://img.eprice.com.tw/img/common/index/hot_goods/tab/' + type + '_tab_left_' + op + '.gif)'; obj.rows[0].cells[1].style.backgroundImage = 'url(http://img.eprice.com.tw/img/common/index/hot_goods/tab/' + type + '_tab_1px_' + op + '.gif)'; obj.rows[0].cells[2].style.backgroundImage = 'url(http://img.eprice.com.tw/img/common/index/hot_goods/tab/' + type + '_tab_right_' + op + '.gif)'; var td = obj.rows[0].cells[1]; if ( td ) { for ( var i = 0 ; i < td.childNodes.length ; i++ ) { if ( typeof(td.childNodes[i].tagName) != 'undefined' && td.childNodes[i].tagName.toLowerCase() == 'a' ) { td.childNodes[i].className = mode? "hot_goods_tab_" + type + "_on" : "hot_goods_tab_" + type + "_off"; break; } } } } else if ( obj.tagName.toLowerCase() == "div" ) { /* obj 是 button */ /* 開始替換 */ var _idx = 0; for ( var i = 0 ; i < obj.childNodes.length ; i++ ) { if ( obj.childNodes[i].nodeName.toLowerCase() == "div" ) { switch(_idx) { case 0 : obj.childNodes[i].className = "tab_" + op + "_left"; break; case 1 : var _width = obj.childNodes[i].className.split(' ')[1]; obj.childNodes[i].className = "tab_" + op + "_center " + _width; for ( var j = 0 ; j < obj.childNodes[i].childNodes.length ; j++ ) { if ( obj.childNodes[i].childNodes[j].nodeName.toLowerCase() == "a" ) { obj.childNodes[i].childNodes[j].className = "hot_goods_tab_" + type + "_" + op; break; } } break; case 2 : obj.childNodes[i].className = "tab_" + op + "_right"; break; default : break; } _idx++; } } } div.style.display = mode? "block" : "none"; /*div.style.height = '120px';*/ } function _showLayer(obj,div){ if(currentLayer!=obj.id) { showIt(currentLayer,currentDiv,false); currentLayer = obj.id; currentDiv = div; showIt(currentLayer,currentDiv,true); } } function _showDCLayer(obj,div){ if(currentDCLayer!=obj.id) { showIt(currentDCLayer,currentDCDiv,false); currentDCLayer = obj.id; currentDCDiv = div; showIt(currentDCLayer,currentDCDiv,true); } } function _showNBLayer(obj,div) { if(currentNBLayer!=obj.id) { showIt(currentNBLayer,currentNBDiv,false); currentNBLayer = obj.id; currentNBDiv = div; showIt(currentNBLayer,currentNBDiv,true); } } function ajax_show_layer(obj, div) { if ( /^mobile/.test(div) ) { _showLayer(obj, div); } else if ( /^dc/.test(div) ) { _showDCLayer(obj, div); } else if ( /^nb/.test(div) ) { _showNBLayer(obj, div); } else { return; } /* 讀入頁面資訊 */ try { var tb = document.getElementById(div); /* 如果沒有資料才要讀入 */ if ( tb.tagName.toLowerCase() == "div" ) { /* 測試中 */ var _div = tb; if ( _div.innerHTML.length < 20 ) { var xmlHttp = create_xmlHttpRequest(); if ( xmlHttp ) { var dt = new Date(); var url = ""; var tmp = div.split("_"); var index = tmp[2]; if ( /^mobile/.test(div) ) { url = "/ajax/index/hot_goods_mobile.php?idx=" + index + "&rd=" + dt.getTime(); } else if ( /^dc/.test(div) ) { url = "/ajax/index/hot_goods_dc.php?idx=" + index + "&rd=" + dt.getTime(); } else if ( /^nb/.test(div) ) { url = "/ajax/index/hot_goods_nb.php?idx=" + index + "&rd=" + dt.getTime(); } if ( url != "" ) { tb.innerHTML = "
"; xmlHttp.onreadystatechange = function () { handle_ajax_show_layer(xmlHttp, div); }; xmlHttp.open("GET", url, true); xmlHttp.send(null); } } } } else if ( tb.rows[0].cells[0].innerHTML.length < 20 ) { var xmlHttp = create_xmlHttpRequest(); if ( xmlHttp ) { var dt = new Date(); var url = ""; var tmp = div.split("_"); var index = tmp[2]; if ( /^mobile/.test(div) ) { url = "/ajax/index/hot_goods_mobile.php?idx=" + index + "&rd=" + dt.getTime(); } else if ( /^dc/.test(div) ) { url = "/ajax/index/hot_goods_dc.php?idx=" + index + "&rd=" + dt.getTime(); } else if ( /^nb/.test(div) ) { url = "/ajax/index/hot_goods_nb.php?idx=" + index + "&rd=" + dt.getTime(); } if ( url != "" ) { tb.rows[0].cells[0].innerHTML = "
"; xmlHttp.onreadystatechange = function () { handle_ajax_show_layer(xmlHttp, div); }; xmlHttp.open("GET", url, true); xmlHttp.send(null); } } } } catch(e) { } } function handle_ajax_show_layer(xmlHttp, div_id) { if ( xmlHttp.readyState == 4 ) { if ( xmlHttp.status == 200 ) { var tb = document.getElementById(div_id); if ( tb.tagName.toLowerCase() == "div" ) { tb.innerHTML = xmlHttp.responseText; } else { tb.rows[0].cells[0].innerHTML = xmlHttp.responseText; } } } }/* 如果有增加選項的話要更改這邊的值,只可比單列選項總數多不可比較少 */ var max_option_length = 7; function change_radio_value(e, name, value, optionIdx, lib) { /* input 的名字為 'search_option_' + name + '_' + optionIdx label 的名字為 'search_option_label_' + name + '_' + optionIdx */ for ( var i = 0 ; i < max_option_length ; i++ ) { var optionLabel = document.getElementById(lib + '_search_option_label_' + name + '_' + i); var option = document.getElementById(lib + '_search_option_' + name + '_' + i); /* 理論上應該是會一起存在的 */ if ( optionLabel && option ) { if ( option.type == "radio" ) { optionLabel.className = ( i == optionIdx )? "search_option_label_active" : "search_option_label_inactive"; option.checked = ( i == optionIdx )? true : false; change_value(name, value, lib); } } } } function change_checkbox_value(e, name, value, optionIdx, lib) { /* checkbox 的名字為 search_option_name + '_' + optionIdx label 的名字為 search_option_name + '_' + name + '_' + optionIdx 送 e 進來只是為了判斷觸發是件本身的事不是 checkbox,如果是,就不要更改他的 checked 屬性 */ if( typeof( e ) == "undefined" && typeof( window.event ) != "undefined" ) e = window.event; var optionLabel = document.getElementById(lib + '_search_option_label_' + name + '_' + optionIdx); var option = document.getElementById(lib + '_search_option_' + name + '_' + optionIdx); if ( optionLabel && option ) { if ( e.type != 'checkbox' ) { option.checked = !option.checked; } optionLabel.className = ( option.checked )? "search_option_label_active" : "search_option_label_inactive"; if ( option.checked ) { change_value(name, value, lib); } else { change_value(name, "", lib); } } } function change_value(name, value, lib) { /* 改變要 post 出去的 form 欄位資料 */ var query_field = document.getElementsByName(name); if ( query_field ) { for ( var i = 0 ; i < query_field.length ; i++ ) { if ( lib + "_search_form" == query_field[i].parentNode.id ) { query_field[i].value = value; break; } } } else { alert("Error : 請回報工程師"); } } function do_stat(lib) { document.getElementById(lib + '_search_form').submit(); } function doSearch(lib) { if ( lib == 'dc' ) { doSearchDC(); } else if ( lib == 'mobile') { do_stat(lib); /* document.getElementById('mobile_search_form').submit(); */ } else if ( lib == 'nb' ) { document.getElementById(lib + '_search_form').submit(); } } function doSearchDC() { /* 檢查 DSLR 的特別選項,如果DSLR有被選取,特別選項的值才納入考量,否則要設回初始值 */ if ( document.getElementById('category').value != "DSLR" ) { /* 將選項設為預設值 */ for ( var i = 1 ; i <= 7 ; i++ ) { var id = 'lens_mount' + i; try { document.getElementById(id).value = ''; } catch(e) { } } try { document.getElementById('sensor_antidust').value = ''; document.getElementById('lcd_liveview').value = ''; } catch(e) { } } /* if ( document.getElementById('search_option_body_antishake_0').checked ) { */ if ( document.getElementById('body_antishake').value != "1" ) { for ( var i = 1 ; i <= 4 ; i++ ) { var id = 'body_asmethods' + i; try { document.getElementById(id).value = ''; } catch(e) { } } } do_stat('dc'); } var dslr_ext_table = new Array('dslr_ring', 'dslr_space', 'dslr_others', 'dslr_space1' ); var asm_ext_table = new Array ('body_asmethods', 'dslr_space2' ); function open_ext_table(ext_table) { /* 有三個dslr的column需要有隱藏功能 dslr_ring, dslr_space, dslr_others */ for ( var i = 0 ; i < ext_table.length ; i++ ) { var row = document.getElementById(ext_table[i]); if ( row ) { /* 設定為 '' empty 是為了讓瀏覽器可以使用自己預設的"顯示"屬性,達到 IE 與 FF 的相容,此方法特別適用於 table row 物件 */ row.style.display = ''; } } } function close_ext_table(ext_table) { for ( var i = 0 ; i < ext_table.length ; i++ ) { var row = document.getElementById(ext_table[i]); if ( row ) { row.style.display = 'none'; } } } var onload_flag = false; var sAgent = navigator.userAgent.toLowerCase(); var isIE = (sAgent.indexOf("msie")!=-1); //IE6.0-7 var isFF = (sAgent.indexOf("firefox") != -1); var isChrome = ( /Chrome/.test(navigator.userAgent) )? true : false; window.onload = function() { check_pmbox();};