//JavaScript v1.2 2014-01-17 function GetBrowser(){//判斷瀏覽器 var sAgent = navigator.userAgent.toLowerCase(); //alert(sAgent); this.isIE = (sAgent.indexOf("msie")!=-1); //IE6.0-7 this.isFF = (sAgent.indexOf("firefox")!=-1);//firefox this.isSa = (sAgent.indexOf("safari")!=-1);//safari this.isOp = (sAgent.indexOf("opera")!=-1);//opera this.isNN = (sAgent.indexOf("netscape")!=-1);//netscape this.isChr = (sAgent.indexOf("chrom")!=-1);//Chrom this.isMa = this.isIE;//marthon this.isOther = (!this.isIE && !this.isFF && !this.isSa && !this.isOp && !this.isNN && !this.isSa);//unknown Browser /* //應用方式 var oBrowser = new detectBrowser(); if (oBrowser.isIE){ alert("IE6.0/7.0(or above version)."); } */ } function GetObject(name) { if (document.getElementById) { //firefox this.obj = document.getElementById(name); } else if (document.all) { //ie this.obj = document.getElementById(name); // this.obj = document.all[name]; } else if (document.layers) { // this.obj = document.layers[name]; } return this.obj; } function checkvarempty(name,cname) { pid = GetObject(name); if (!pid) { window.alert(cname+' 元件未發現'); return false; } if(pid.value==null || pid.value=="") { window.alert(cname+ ' 輸入欄位為空白!');//+pid.value.length pid.focus(); return false; } return true; } function checkvarlen(name,cname,len) { pid = GetObject(name); if (pid.value.length < len) { window.alert(cname+' 輸入欄位長度不足 '+len+' 個字元!');//+pid.value.length pid.focus(); return false; } return true; } function GetVar(name) { p = GetObject(name); return p.value; } function openpopwindow(url,w,h,param) { var load = ""; p = param; if (p.length > 0) { load = window.open(url+param,'','scrollbars=no,menubar=no,height='+w+',width='+h+',resizable=no,toolbar=no,location=no,status=no'); } else { load = window.open(url,'','scrollbars=no,menubar=no,height='+w+',width='+h+',resizable=no,toolbar=no,location=no,status=no'); } if(load == null){ alert("此功能需使用彈出視窗!"); return false; } return true; } function checkinput(name, cname, len) { ret = checkvarempty(name, cname); if (ret == false) return false; ret = checkvarlen(name, cname, len); if (ret == false) return false; return true; } function showmsg(msg) { alert(msg); } function checkvarisequal(nam1, nam2) { p1 = GetVar(nam1); p2 = GetVar(nam2); if (p1 == p2) return true; return false; } //是否有選 function doOutput(key) { var obj=document.getElementsByName(key); var len = obj.length; var checked = false; for (i = 0; i < len; i++) { if (obj[i].checked == true) { return true; break; } } return false; } //Checkbox全選 function setCheckboxAll(all,key){ var chkall= document.getElementById(all); var chkother= document.getElementsByTagName("input"); for (var i=0;i= 0); if (flg) { alert('請勿輸入特殊字符: ' + realkey); return false; } return true; } function gosubmit(fname) { var form = document.getElementById(fname); form.submit(); } //在文字框的指定位置插入文字 function InsertString(tbid, str){ var tb = document.getElementById(tbid); tb.focus(); if (document.all){ var r = document.selection.createRange(); document.selection.empty(); r.text = str; r.collapse(); r.select(); }else{ var newstart = tb.selectionStart+str.length; tb.value=tb.value.substr(0,tb.selectionStart)+str+tb.value.substring(tb.selectionEnd); tb.selectionStart = newstart; tb.selectionEnd = newstart; } checkTXTnum('msg','bit','Tcurrency','xxx','55') } function ValidateNumber(e, pnumber){ if (!/^\d+$/.test(pnumber)){ $(e).val(/^\d+/.exec($(e).val())); } return false; } //在文字框的字元數 function checkTXTnum(obj,bit,T,cid,max){ var len = 0; var n=3; var str=document.getElementById(obj).value; var num= Math.ceil(str.length/max); var aa=document.getElementById(cid); var bit=document.getElementById(bit); var T=document.getElementById(T); aa.innerHTML='輸入'+str.length+'個字元 需要'+num+'則簡訊傳送'; bit.innerHTML=num; T.innerHTML=num*n; } function chackFile(fileName){ var fileName2 = fileName.toLowerCase();//全部轉成小寫在做判別比較具正確性 if(fileName2.lastIndexOf('.') != -1){ var fileType = fileName2.substring(fileName2.lastIndexOf('.')+1,fileName2.length); if(!(fileType == 'jpg' || fileType == 'jpeg' || fileType == 'gif' )){ return false; }else{ return true; } } return false; } function isNumber(String) //字串值檢測 { var Letters = "1234567890"; //可以自己增加可輸入值 var i; var c; for( i = 0; i < String.length; i++ ) { c = String.charAt(i); if (Letters.indexOf(c) < 0){ return false; } } return true; } function isTel(String) //電話值檢測 { var Letters = "1234567890"; //可以自己增加可輸入值 var i; var c; for( i = 0; i < String.length; i++ ) { c = String.charAt(i); if (Letters.indexOf(c) < 0){ return false; } } return true; } function isPhone(String) //手機值檢測 { var Letters = "1234567890"; //可以自己增加可輸入值 var i; var c; var sL= String.length;//長度 if( sL != 10){ return false; } for( i = 0; i < sL; i++ ) { c = String.charAt(i); if(i==0 || i==1){ if(c !='0' && c !='9' ){ return false; } }else{ if (Letters.indexOf(c) < 0){ return false; } } } return true; } function isTnnCode(String) //Tnn號碼值檢測 { //17-00-380-931 var Letters = "1234567890"; //可以自己增加可輸入值 var i; var c; var sL= String.length;//長度 if( sL != 13){ return false; } for( i = 0; i < sL; i++ ) { c = String.charAt(i); if(i==2 || i==5 || i==9){ if(c !='-'){ return false; } }else{ if (Letters.indexOf(c) < 0){ return false; } } } return true; } function isBDay(String) //生日格式檢測 { var Letters = "1234567890"; //可以自己增加可輸入值 var i; var c; for( i = 0; i < String.length; i++ ) { c = String.charAt(i); if(i==4 || i==7){ if(c !='-'){ return false; } }else{ if (Letters.indexOf(c) < 0){ return false; } } } return true; } //閏年 function isLeapYear(nYear){ if (nYear % 4 != 0){ return false; } if (nYear % 100 != 0){ return true; } return (nYear % 400 == 0); } function isMonthAndDateCorrect(nYear, nMonth, nDay, c){ if(!isNumber(nYear)){ return false; } if(!isNumber(nMonth)){ return false; } if(!isNumber(nDay)){ return false; } nYear=parseInt(nYear); nMonth=parseInt(nMonth); nDay=parseInt(nDay); var d=new Date(); if (nYear >= d.getFullYear() || nYear < (d.getFullYear()-100) ){ return false; } if ((nMonth > 12 || nMonth < 1) && c==true){ return false; } if ((nMonth >= 12 || nMonth < 0) && c==false){ return false; } if (nDay > 31 || nDay <= 0){ return false; } switch(nMonth){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: if(nDay <= 31){ return true; } break; case 4: case 6: case 9: case 11: if(nDay <= 30){ return true; } break; case 2: if (isLeapYear(nYear)){ if(nDay <= 29){ return true; } }else{ if(nDay <= 28){ return true; } } break; default: return false; break; } return false; } function isEnglish(name) //英文值檢測 { if(name.length == 0){ return false; } for(i = 0; i < name.length; i++){ if(name.charCodeAt(i) > 128) return false; } return true; } function isChinese(name) //中文值檢測 { if(name.length == 0) return false; for(i = 0; i < name.length; i++) { if(name.charCodeAt(i) > 128) return true; } return false; } function isEngOrNumber(div){ var String = document.getElementById(div).value; var Letters = "-1234567890ABCDEFGHIJKLNMOPQRSTUVWXYZabcdefghijklnmopqrstuvwxyz"; //可以自己增加可輸入值 var i; var c; for( i = 0; i < String.length; i++ ) { c = String.charAt(i); if (Letters.indexOf(c) < 0){ document.getElementById(div).focus(); return false; } } } function isMail(name) // E-mail值檢測 { if(! isEnglish(name)){ return false; } i = name.indexOf("@"); j = name.lastIndexOf("@"); if(i == -1){ return false; } if(i != j){ return false; } if(i == name.length){ return false; } return true; } function checkMultipleAll(ta)//全選select { var objs=document.getElementById(ta).options; for (i=0; i< objs.length; i++) { objs[i].selected=true; } return false; } //取值 function radioValue(key) { var obj=document.getElementsByName(key); var len = obj.length; var checked = false; for (i = 0; i < len; i++) { if (obj[i].checked == true) { return obj[i].value; //return true; break; } } return false; } //取值 function radioValue2(key) { var obj=document.getElementsByName(key); var len = obj.length; var checked = false; for (i = 0; i < len; i++) { if (obj[i].checked == true) { return obj[i].value; //return true; break; } } return false; } //陣列是否有值 function arrValue(key){ var obj=document.getElementsByName(key); var len = obj.length; for (i = 0; i < len; i++) { if (obj[i].value !='') { return true; break; } } return false; } //修改divID的內容 function DivChange(div,txt){ var div = document.getElementById(div); div.innerHTML=txt; } //動態表格欄位增加 function add_new_data() { //先取得目前的row數 var num = document.getElementById("mytable").rows.length; //建立新的tr 因為是從0開始算 所以目前的row數剛好為目前要增加的第幾個tr var Tr = document.getElementById("mytable").insertRow(num); //建立新的td 而Tr.cells.length就是這個tr目前的td數 Td = Tr.insertCell(Tr.cells.length); //而這個就是要填入td中的innerHTML Td.innerHTML=''; //這裡也可以用不同的變數來辨別不同的td Td = Tr.insertCell(Tr.cells.length); Td.innerHTML=''; //這樣就好囉 記得td數目要一樣 不然會亂掉~ } //動態表格欄位刪除 function remove_data() { //先取得目前的row數 var num = document.getElementById("mytable").rows.length; //防止把標題跟原本的第一個刪除XD if(num >1) { //刪除最後一個 document.getElementById("mytable").deleteRow(-1); } } //修改divID的內容 function DivImgChange(div,txt,div2,txt2){ var div = document.getElementById(div); var div2 = document.getElementById(div2); div.innerHTML=txt; div2.innerHTML=txt2; } //加入cookie function addCookie(cstr){ document.cookie = cstr; } function openme(){ document.getElementById('divLogInBOX1').style.display='block'; document.getElementById('divLogInBOX2').style.display='block'; } function closeme(){ document.getElementById('divLogInBOX1').style.display='none'; document.getElementById('divLogInBOX2').style.display='none'; } /*ajax function*/ function GetData(act,KeyData){ xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); var strURL='_set.html?act=' + act + '&key=' + KeyData; xmlhttp.open('POST',strURL,false); xmlhttp.Send(null); var rc=xmlhttp.responseText; showmsg (rc); return rc; } function getParam(parm,url, divID) { var xmlHttp = false; if (window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest(); }else if (window.ActiveXObject){ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } var url = url+"?"+parm; if(xmlHttp){ var obj = document.getElementById(divID); xmlHttp.open("POST", url); xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4 && xmlHttp.status == 200){ obj.innerHTML = xmlHttp.responseText; } } xmlHttp.send(url); } } //相容 IE 及 Firefox 的寫法 function getEvent(){ if(document.all) return window.event; func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0){ if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)) { return arg0; } } func=func.caller; } return null; } function MM_goToURL() { //v3.0 var i, args=MM_goToURL.arguments; document.MM_returnValue = false; for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'"); } //ajax範列 function ajaxExp(div,key,act) { var evt=getEvent(); var element=evt.srcElement || evt.target ; if(element.value!='') { var KeyData=document.getElementById(key).value; var url = "_getAJAX.html"; var para = "&act="+act+"&key="+KeyData; getParam(para,url,div); } } function getAjaxData(div,act,lang,key1,key2) { var evt=getEvent(); var element=evt.srcElement || evt.target ; if(element.value!='') { var url = "_getAJAX.html"; var key1=document.getElementById(key1).value; if (key2!=''){ var key2=document.getElementById(key2).value; } var para = "&act="+act+"&lang="+lang+"&key1="+key1+"&key2="+key2; getParam(para,url,div); } } function getAjaxOrderData(div,act,item,id,lang) { var evt=getEvent(); var element=evt.srcElement || evt.target ; if(element.value!='') { var iData=document.getElementById(item).value; var url = "_getAJAX.html"; var para = "&act="+act+"&item="+iData+"&id="+id+"&lang="+lang; getParam(para,url,div); } } function getAjaxOrderDataSP(div,act,item,id,lang) { var evt=getEvent(); var element=evt.srcElement || evt.target ; if(element.value!='') { itemX=item+id; //alert('E-Mail 格式錯誤!'); var iData=document.getElementById(itemX).value; var url = "_getAJAX.html"; var para = "&act="+act+"&item="+iData+"&id="+id+"&lang="+lang; getParam(para,url,div); } } /**/ function getJqData(e) { $(e.target).attr('disabled', true); $.ajax({ type: 'POST', url: '_getAJAX.html', //data: {gid: $('#gid').val(), amount: $('#gAmount').val(), type1: $('#goodsDataSize').val(), type2: $('#goodsDataColor').val(), step: 'GoodsAdd2', next: '0'}, data: {gid: $('#gid').val(), amount: $('#gAmount').val(), type1: $('#goodsDataSize').val(), step: 'GoodsAdd2', next: '0'}, error: function(xhr) { alert('Ajax request 發生錯誤'); $(e.target).attr('disabled', false); }, success: function(response) { $('#showBuyBox').html(response); } }); } //*----------------------------*/ function cont(obj) { var aid = ["name","tel","email","txt","authinput"]; var acn = ["姓名","電話","電子信箱","詢問內容","驗證碼"]; var len = [2,7,5,1,5]; end = aid.length; for(var i=0; i MaxAmount){ warning.innerHTML=icon+"輸入數量大於庫存量,請重新輸入!"; document.getElementById('warning').style.display = 'block'; return false; } document.getElementById('amount').value=gAmount document.getElementById('warning').style.display = 'none'; gosubmit(obj); } function shopGoodsADDNow(obj,gid){ $("#gid").val(gid); $("#amount").val('1'); $("#step").val('GoodsAdd'); gosubmit(obj); } function AjaxShopGoodsADD(div,act){ var gid=document.getElementById('gid').value; var warning=document.getElementById('warning'); var icon=" "; var gAmount = document.getElementById('gAmount').value; var MaxAmount = document.getElementById("reserve").innerText; gAmount=parseInt(gAmount); MaxAmount=parseInt(MaxAmount); if(MaxAmount<=0 || MaxAmount=="已售完補貨中!"){ warning.innerHTML=icon+"本產品已售完補貨中!"; document.getElementById('warning').style.display = 'block'; return false; } if(gAmount<=0){ warning.innerHTML=icon+"未輸入數量!"; document.getElementById('warning').style.display = 'block'; return false; } if(gAmount > MaxAmount){ warning.innerHTML=icon+"輸入數量大於庫存量,請重新輸入!"; document.getElementById('warning').style.display = 'block'; return false; } document.getElementById('warning').style.display = 'none'; var url = "_getAJAX.html"; var para = "&act="+act+"&gid="+gid+"&amount="+gAmount; getParam(para,url,div); } //*----------------shopping-------------------------*/ function shopCarActDel(obj,aid){ if(confirm('真的要刪除?')){ document.getElementById('step').value='GoodsDel'; document.getElementById('ArrId').value=aid; gosubmit(obj); } } function shopCarActNext(obj,aid){ document.getElementById('step').value='GoodsNext'; document.getElementById('ArrId').value=aid; gosubmit(obj); } function shopCarActBuyNow(obj,aid){ document.getElementById('step').value='GoodsBuyNow'; document.getElementById('ArrId').value=aid; gosubmit(obj); } function shopCarActBuyNowAll(obj,aid){ var objs=document.getElementsByName(aid); var r=false ; var x = new Array(); for (i=0; i< objs.length; i++){ if(objs[i].checked ){ x[i]=objs[i].value; var r=true ; } } if(!r){ alert('尚未選擇加入的產品!'); return false; } document.getElementById('step').value='GoodsBuyNowAll'; document.getElementById('ArrId').value=x; gosubmit(obj); } function shopCarActAmount(obj,aid,div){ document.getElementById('step').value='GoodsAmount'; document.getElementById('ArrId').value=aid; //var email=document.getElementById('email').value; document.getElementById('amount').value=document.getElementById(div).value; gosubmit(obj); } function shopCarActClean(obj){ if(confirm('確定 全部刪除 ?? ')){ document.getElementById('step').value='GoodsClear'; gosubmit(obj); } } function shopCarPayTypeCH(obj,div){ document.getElementById('step').value='GoodsAddPay'; document.getElementById('act').value=document.getElementById(div).value; gosubmit(obj); } function shopCarAddPay(obj,PayDiv){ if($("#"+PayDiv).val()==''){ return false; } $.cookie("shopPay", $("#"+PayDiv).val()); //$("#act").val($("#"+PayDiv).val()); //document.getElementById('step').value='GoodsAddPay'; //gosubmit(obj); } function shopCarAddBuyUser(obj,tab){ if(tab==="PayStore"){ var aid = ["nick","mobile","email"]; var acn = ["收件人姓名","行動電話","電子信箱"]; var len = [1,10,5]; }else{ var aid = ["nick","addr","tel","email"]; var acn = ["收件人姓名","配送地址","聯絡電話","電子信箱"]; var len = [1,3,1,7,10,5]; } end = aid.length; for(var i=0; i'); $('#showGBOX_B').html(''); $('#showGBOX_C').html(''); $('#showGBOX_'+x).html(''); $.blockUI(); setTimeout(function() { $.unblockUI({ onUnblock: function(){ $(this.target).attr('disabled', true); $.ajax({ error: function(xhr) {alert('Ajax request error');$(this.target).attr('disabled', false);}, type: 'POST',url: '_getAJAX.html', data: {show: x}, success: function(response) { $('#gDataBox').html(response); } }); } }); }, 2000); } function GBOX_show_sort (x) { $.cookie("GSort_t", x); $('#showGSort_A').css({'color':'#000'}).find("img").attr("src","images/symbol/icon_25.gif"); $('#showGSort_B').css({'color':'#000'}).find("img").attr("src","images/symbol/icon_25.gif"); $('#showGSort_C').css({'color':'#000'}).find("img").attr("src","images/symbol/icon_25.gif"); $('#showGSort_'+x).css({'color':'#f75824'}); if($.cookie("GSort_act")=="up"){ $('#showGSort_'+x).find("img").attr("src","images/symbol/icon_24.gif"); $.cookie("GSort_act", "dn"); }else{ $('#showGSort_'+x).find("img").attr("src","images/symbol/icon_23.gif"); $.cookie("GSort_act", "up"); } $.blockUI(); setTimeout(function() { $.unblockUI({ onUnblock: function(){ $(this.target).attr('disabled', true); $.ajax({ error: function(xhr) {alert('Ajax request error');$(this.target).attr('disabled', false);}, type: 'POST',url: '_getAJAX.html', data: {sort: x}, success: function(response) { $('#gDataBox').html(response); } }); } }); }, 2000); }