﻿// JavaScript Document
var userAgent = navigator.userAgent.toLowerCase();
var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
var is_moz = (navigator.product == 'Gecko') && userAgent.substr(userAgent.indexOf('firefox') + 8, 3);
var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);
var b_version=navigator.appVersion;
var version=parseFloat(b_version);

var preg = ({
	// 是否是字符窜
	isString:function(obj) {
		return (typeof(obj) == 'string');
	},
	// 台灣行動電話
	ismobile:function(obj) {
		var reg = /^09[1-8][0-9]{7}$/g;
		return obj.search(reg);
	},
	// 數字認證碼
	isauthCode:function(obj) {
		var reg = /^[0-9]{6}$/g;
		return reg.search(obj);
	},
	// 帳號是否英文数字
	isEnNum:function(obj) {
		var reg = /^[\d\w]{1,}$/;
		return reg.test(obj);
	},
	// 密码是否英文数字
	ispwd:function(obj) {
		var reg = /^[\d\w]{6,16}$/;
		return reg.test(obj);
	},
	// 是否是整型
	isInteger:function(obj) {
		var reg = /^\d+$/;
		return reg.test(obj);
	},
	// 是否是數字
	isNumber:function(obj) {
		var reg = /^\d+(\.\d+)?$/;
		return reg.test(obj);
	},
	//是否是浮點數
	isFloat:function(obj) {
		return (!isNaN(Number(obj)));
	},
	// 验证是否是电话号码
	isTelephone:function(obj) {
		var reg = /^0?[1-9]\d{7,8}$/;
		return reg.test(obj);
	},
	// 验证是否是固定電話
	istelP:function(obj) {
		var reg = /^((0[2-8])|37|49|89|82|826|836)\d{7,8}$/g;
		return reg.test(obj);
	},
	// 是否是邮编
	isZip:function(obj) {
		var reg = /^\d{2,4}$/;
		return reg.test(obj)
	},
	// 是否是电话号码
	isMobile:function(obj) {
		var reg = /^09\d{8}$/;
		return reg.test(obj);
	},
	// 是否是邮件地址
	isMail:function(obj) {
		var reg=/^[\d\w]+\@[\d\w]+[\.\d\w]+$/;
		return reg.test(obj);
	},
	
	/**
	 * 檢測是否含有中文字符串
	 * @param {Object} str
	 * @return bool
	 */
	isCN:function(str){
		if (escape(str).indexOf("%u") != -1) {
			return true;
		}
		return false;
	},

	// 是否為統一編號
	isTwCompanyNo:function(str){
		var tbNum = new Array(1,2,1,2,1,2,4,1);
		var temp = 0;
		var total = 0;
		if(!str.match(/^\d{8}$/)) {
			return false;
		} else {
			for(var i = 0; i < tbNum.length ;i++){
				temp = str.charAt(i) * tbNum[i];
				total += Math.floor(temp/10)+temp%10;
			}
			if(total%10==0 || (total%10==9 && str.charAt(6)==7)) {
				return true;
			} else {
				return false;
			}
		}
	},
	// 是否為身分證字號
	isTwIDCard:function(str){
		if(str.length != 10) return false;
		var idArr = new Array();
		idArr['A']=10;idArr['B']=11;idArr['C']=12;idArr['D']=13;idArr['E']=14;
		idArr['F']=15;idArr['G']=16;idArr['H']=17;idArr['J']=18;idArr['K']=19;
		idArr['L']=20;idArr['M']=21;idArr['N']=22;idArr['P']=23;idArr['Q']=24;
		idArr['R']=25;idArr['S']=26;idArr['T']=27;idArr['U']=28;idArr['V']=29;
		idArr['X']=30;idArr['Y']=31;idArr['W']=32;idArr['Z']=33;idArr['I']=34;
		idArr['O']=35; 
		var N = new Array();
		for (var i=1;i<=10;i++) { 
			N[i] = str.substr(i-1,1); 
			if(i > 1){
				N[i] = parseInt(N[i]);
			}
		}
		N[1] = N[1].toUpperCase( );
		N[1] = idArr[N[1]];
		if(N[1] < 10 || N[1]>35) return false;
		if(N[2]<1 || N[2]>2) return false;
		N[1] = N[1].toString(); 
		
		var N1  = parseInt(N[1].substr(0,1)); 
		var N12 = parseInt(N[1].substr(1,1)); 
		var express = (N1+N12*9+N[2]*8+N[3]*7+N[4]*6+N[5]*5+N[6]*4+N[7]*3+N[8]*2+N[9]*1+N[10]) % 10; 
		
		if (express != 0) { 
			return false;
		} 
		return true; 
	}
});

/*******************
 * 文件後綴名
 * @param string fileName
 ********************/
function getFileExt(filename){
    return filename.replace(/^.*(\.[^\.\?]*)\??.*$/, '$1');
}

/******************
 * 檢查是否是圖像格式
 * @param String filename
 *****************/
function isImage(filename){
    var ext;
    ext = getFileExt(filename).toLowerCase();
    switch (ext) {
        case '.jpeg':
        case '.jpg':
        case '.png':
        case '.gif':
            return true;
        default:
            return false;
    }
    return false;
}

/**
 * 獲取對象的寬,高,left,top
 *
 * @return Object(height,width,top,left)
 */
function getObjOffset(obj){
    var objOffset = new Object();
    objOffset.height = obj.offsetHeight;
    objOffset.width = obj.offsetWidth;
    if (is_moz) {
        objOffset.top = obj.offsetTop;
        objOffset.left = obj.offsetLeft;
    }
    else {
		var version = parseInt(navigator.appVersion.split(";")[1].split(" ")[2]);
		if (version < 7)	{
			var o = obj;
			var t = o.offsetTop;
			var l = diffL = o.offsetLeft;
			while (o != null && o != document.body) {
				t += o.offsetTop;
				l += o.offsetLeft;
				o = o.offsetParent;
			}
			objOffset.top = t;
			objOffset.left = l - diffL;
		} else if (version == 7) {
			var o = obj;
			var t = o.offsetTop;
			var l = diffL = o.offsetLeft;
			while (o != null && o != document.body) {
				t += o.offsetTop;
				l += o.offsetLeft;
				o = o.offsetParent;
			}
			objOffset.top = t;
			objOffset.left = l - diffL;		
		} else {
			objOffset.top = obj.offsetTop;
			objOffset.left = obj.offsetLeft;
		}
    }
    return objOffset;
}

/**
 * 獲得表單輸入框剩余可輸入字符長度
 * @param String 輸入框id
 * @param String 所需要賦值的Span
 * @param Int 需要限制的長度
 * @return Int 返回輸入框輸入文字長度值
 */
function checkValLength(inputId, spanId, maxLth){
    var iId = document.getElementById(inputId);
    var sId = document.getElementById(spanId);
    var valLength = iId.value.length;
    if (valLength <= maxLth) {
        sId.innerHTML = valLength;
    } else {
        iId.value = iId.value.substr(0, maxLth);
    }
}

/**
 * checkAll,unCheckAll
 *
 * @param object obj
 **/
function chkCheckAll(obj, cat){
    var cBox = document.getElementsByName(obj);
    if (cat == "top") {
        a = 0;
    } else {
        a = cBox.length - 1;
    }
    for (var i = 0; i < cBox.length; i++) {
        cBox[i].checked = cBox[a].checked;
    }
}

// 过滤空格
function foramt26str(str){
	str = encodeURIComponent(str);
	//str = str.replace(/&/g,"%26");
	//str = str.replace(/%/g,"％");
	return str;
}

// 转换html代码
function htmlspecialchars(ch){
			ch = ch.replace(/&/g,"&amp;");
			ch = ch.replace(/\"/g,"&quot;");
			ch = ch.replace(/\'/g,"'");
			ch = ch.replace(/</g,"&lt;");
			ch = ch.replace(/>/g,"&gt;");
			return ch
}

function nl2br( str ) {
   return str.replace(/([^>])\n/g, '$1＜br /＞\n');
}

function show(obj)
{
	var obj  = '#'+obj;
	$(obj).show();
}
function showe(obj)
{
	$("#"+obj+":visible").show();
}
// 格式化数字
function num_han(num){
    if ( num == "1" )       return "壹";
    else if ( num == "2" )  return "貳";
    else if ( num == "3" )  return "參";
    else if ( num == "4" )  return "肆";
    else if ( num == "5" )  return "伍";
    else if ( num == "6" )  return "陸";
    else if ( num == "7" )  return "柒";
    else if ( num == "8" )  return "捌";
    else if ( num == "9" )  return "玖";
    else if ( num == "拾" ) return "拾";
    else if ( num == "佰" ) return "佰";
    else if ( num == "仟" ) return "仟";
    else if ( num == "萬" ) return "萬 ";
    else if ( num == "億" ) return "億 ";
    else if ( num == "兆" ) return "兆 ";
    else if ( num == "0" )  return "";
}

function NUM_HAN(num,mode,return_input,is_wan)
{
    if ( num == "" || num == "0" ) {
        if ( mode == "3" ) {
            return_input.value = "";
        }
        return;
    }
		
    num=new String(num);
    num=num.replace(/,/gi,"");

  	if (is_wan) {
		num = num + '0000';
	    num=new String(num);			
	}
	var len  = num.length;
    var temp1 = "";
    var temp2 = "";

    if ( len/4 > 3 && len/4 <= 4 ) {
        if ( len%4 == 0 ) {
            temp1 = ciphers_han(num.substring(0,4)) + "兆" + ciphers_han(num.substring(4,8)) + "億" + ciphers_han(num.substring(8,12)) + "萬" + ciphers_han(num.substring(12,16));
        }
        else {
            temp1 = ciphers_han(num.substring(0,len%4)) + "兆" + ciphers_han(num.substring(len%4,len%4+4)) + "億" + ciphers_han(num.substring(len%4+4,len%4+8)) + "萬" + ciphers_han(num.substring(len%4+8,len%4+12));
        }
    }
    else if ( len/4 > 2 && len/4 <= 3 ) {
        if ( len%4 == 0 ) {
            temp1 = ciphers_han(num.substring(0,4)) + "億" + ciphers_han(num.substring(4,8)) + "萬" + ciphers_han(num.substring(8,12));
        }
        else {
            temp1 = ciphers_han(num.substring(0,len%4)) + "億" + ciphers_han(num.substring(len%4,len%4+4)) + "萬" + ciphers_han(num.substring(len%4+4,len%4+8));
        }
    }
    else if ( len/4 > 1 && len/4 <= 2 ) {
        if ( len%4 == 0 ) {
            temp1 = ciphers_han(num.substring(0,4)) + "萬" + ciphers_han(num.substring(4,len));
        }
        else {
            temp1 = ciphers_han(num.substring(0,len%4)) + "萬" + ciphers_han(num.substring(len%4,len));
        }
    }
    else if ( len/4 <= 1 ) {
        temp1 = ciphers_han(num.substring(0,len));
    }

    for (var i=0; i<temp1.length; i++) {
        temp2 = temp2 + num_han(temp1.substring(i, i+1));
    }

    temp3=new String(temp2);
    temp3=temp3.replace(/億 萬/gi,"億 ");
    temp3=temp3.replace(/兆 億/gi,"兆 ");

    if ( mode == 1 ) {
        alert(temp3 + " 圓");
    } else if ( mode == 2 ) {
        return temp3;
    } else if ( mode == 3 ) {
        return_input.value = "( " + temp3 + " 圓 )";
    }
}

function ciphers_han(num)
{
    var len  = num.length;
    var temp = "";
    if ( len == 1 ) {
        temp = num;
    }
    else if ( len == 2 ) {
        temp = num.substring(0,1) + "拾" + num.substring(1,2);
    }
    else if ( len == 3 ) {
        temp = num.substring(0,1) + "佰" + num.substring(1,2) + "拾" + num.substring(2,3);
    }
    else if ( len == 4 ) {
        temp = num.substring(0,1) + "仟" + num.substring(1,2) + "佰" + num.substring(2,3) + "拾" + num.substring(3,4);
    }
    num=new String(temp);
    num=num.replace(/0拾/gi,"");
    num=num.replace(/0佰/gi,"");
    num=num.replace(/0仟/gi,"");		
    return num;
}
function numchk(num){	  
    num=new String(num);
    num=num.replace(/,/gi,"");
		num = numberConv(num);
    return numchk1(num);
}

function numchk2(num){
	num =new String(num);
    num=num.replace(/,/gi,"");
	num=new Number(num);
	num=num+15;
	return numchk1(num);
}

function numchk3(num){
	num =new String(num);
    num=num.replace(/,/gi,"");
	num=new Number(num);
	num=num*15;
	return numchk1(num);
}

function numchk1(num){
    var sign="";
    if(isNaN(num)) {
        return 0;
    }
    
	if(num==0) {
        return num;
    }
    if(num<0){
        num=num*(-1);
        sign="-";
    }
    else{
        num=num*1;
    }
    num = new String(num)
    var temp="";
    var pos=3;
    num_len=num.length;
    while (num_len>0){
        num_len=num_len-pos;
        if(num_len<0) {
            pos=num_len+pos;
            num_len=0;
        }
        temp=","+num.substr(num_len,pos)+temp;
    }
    return sign+temp.substr(1);
}
function numchk4(num){
	num =new String(num);
    num=num.replace(/,/gi,"");
	num=new Number(num);
	num=num+25;
	return numchk1(num);
}
function checkInteger(obj, allowzero)
{
	obj.value = numberConv(obj.value);
	if (false == allowzero)
	{
		if ((obj.value != '') && obj.value < 1)
		{
			alert('不能為零');
			obj.value = '';
			return false;
		}
	}
 	obj.value=obj.value.replace(/[^0123456789]/g, '');
}
function numberConv(val)
{
	if ('' == val)
	{
		return '';
	}
	return val.replace("０","0").replace("１","1").replace("２","2").replace("３","3").replace("４","4").replace("５","5").replace("６","6").replace("７","7").replace("８","8").replace("９","9").replace("．",".").replace("。",".");
}

// 
function checkIsDouble(obj, help_obj)
 {  
	  if ('' == obj.value) {
			return ;
	  }
		obj.value = numberConv(obj.value);
		re = /^\d+\.?\d*$/;
		if (! re.test(obj.value))
	  {
			if (obj.value.indexOf('.') != -1)
			{
				len = obj.value.length;
				obj.value = obj.value.substr(0, len-1);
			}
			obj.value=obj.value.replace(/[^0123456789.]/g, '');
			if (help_obj)
			{
				$(help_obj).innerHTML = '（請輸入正確的數字）';
			}
			return ;
		}
		if (obj.value < 1)
		{
			if (help_obj)
			{
				$(help_obj).innerHTML = '（數字不能小於0）';
				obj.value = '';
			}
			return ;
		}
		if (help_obj)
		{
			$(help_obj).innerHTML = '（正確的數字）';
		}
 }

// 只允许输入数字
function  onlyNum()
{
	if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)||(event.keyCode==8)))
	event.returnValue=false;
}

function jsAddFavorate(url,webTitle)
{
	if ( window.sidebar && "object" == typeof( window.sidebar ) && "function" == typeof( window.sidebar.addPanel ) ) {
		//  firefox
		window.sidebar.addPanel(webTitle,url, '_blank' );
	} else if ( document.all && "object" == typeof( window.external ) ) {
		//  ie
		
		window.external.addFavorite( url , webTitle);
	} else {
		alert('抱歉！您的瀏覽器不支持此操作，請按 Ctrl+D 快捷鍵加入收藏。');
	}
}
function priceOrder(url) 
{
	window.location.href=url;
}
function chkImageSize(source) {
	var img = new Image();
	img.src =  "file:///" + source;
	alert(img.fileSize);
}

function selectAll()
{
	$(":checkbox").each(function(){
		if ($(this).attr("checked") == true) {
			$(this).attr("checked",false);
		} else {
			$(this).attr("checked",true);
		}
	});
}

//圖片滾動
function slideLine(ul, delay, speed, lh) {
	var slideBox = (typeof ul == 'string')?document.getElementById(ul):ul;
	var delay = delay||1000, speed=speed||20, lh = lh||20;
	var tid = null, pause = false;
	var start = function() {
		tid=setInterval(slide, speed);
	}
	var slide = function() {
		if (pause) return;
		slideBox.scrollTop += 2;
		if (slideBox.scrollTop % lh == 0) {
			clearInterval(tid);
			slideBox.appendChild(slideBox.getElementsByTagName('li')[0]);
			slideBox.scrollTop = 0;
			setTimeout(start, delay);
		}
	}
	slideBox.onmouseover=function(){pause=true;}
	slideBox.onmouseout=function(){pause=false;}
	setTimeout(start, delay);
}

//問卷調查
function gourl(step)
{
	window.location = "index.php?module=survey&action=survey&step=" + step
}

//彈出回覆框
function toggleDiv(id)
{
 	var obj = document.getElementById(id);
 	if (obj.style.display == 'none' || obj.style.display == ""){
 		obj.style.display = 'block';
 	}else{
 		obj.style.display = 'none';
 	}

 } 


$.fn.wait = function(time,type){
	time = time || 1000;
	type = type || 'fx';
	return this.queue(type,function(){
		var self = this;
		setTimeout(function(){
			$(self).dequeue();
		},time);
	});
}

//-------------------------------搜尋loading框
function createLoadingLayer(){
    try {
		var __HOST = "http://statics.8891.com.tw/";
        var spreenWidth = $(document).width();
        var spreenHeight =  window.screen.height;
        var _iHtml = '';
        var _obj = jQuery('<div></div>')
                    .attr("id","content_loading_layer")
                    .fadeIn("normal")
                    .css("position","absolute")
                    .css("left",(spreenWidth - 126)/2)
                    .css("top",($(document).scrollTop() + (spreenHeight - 50))/2)
                    .css("width","126")
                    .css("height","50")
                    .html('<img width="126" height="50" src="' + __HOST + 'img/common/load.gif">');
        jQuery(document.body).append(_obj);
    } catch (e) {
        alert(e);
    }
}

// 搜尋完成后設置loading消失
function unloadLoadingLayer() {
    try {
        jQuery("#content_loading_layer").remove();
    } catch (e) {
        alert(e);
    }
}

/**
 * 顯示信息
 * 
 **/
function alertConfirm(backurl,msg,appInfo)
{
	try {
		dialogObj = $("#loginDialog");
		var option = {
			obj:dialogObj,
			backurl:backurl,
			msg:msg,
			appInfo:appInfo,
			onErrorButtonClick:function(){
				_cancelBtn();
			},
			onConfirm: function(flag){
				if(flag){
					window.location.href=backurl;
				} else {
					_cancelBtn();
				}
			}
		};
		dialog.confirmMsg(option);
		return false;
	} catch (e) {
        alert(e);
    }
}

(function($){
	if( $.browser.msie ){
		$('.site-nav .menu, .menu-sites dl').hover(function(){
			$(this).addClass('hover');
		}, function(){
			$(this).removeClass('hover');
		});
	}
	var lazyloader = $('textarea.lazyload');
	if( lazyloader.size()>0 ){
		window.onscroll = function(){
			var scrollTop = document.documentElement.scrollTop || window.scrollY || document.body.scrollTop,
				windowHeight = $(window).height();
			var touchpoint = scrollTop+windowHeight;
			lazyloader.filter(':visible').each(function(){
				var self = $(this);
				if( touchpoint >= self.offset().top ){
					var ct = self.val()||self.text()
					$(ct).insertBefore(self);
					self.hide();
				}
			});
		}
	}
	$('#search .recent-browser').hover(function(){
		$('#search .recent-browser .rb-dt a').addClass('hover');
		$('#search .recent-browser .rb-dd').show();
	},function(){
		$('#search .recent-browser .rb-dt a').removeClass('hover');
		$('#search .recent-browser .rb-dd').hide();
	});
})(jQuery);


var LazyLoad=function(k){function p(b,a){var g=k.createElement(b),c;for(c in a)a.hasOwnProperty(c)&&g.setAttribute(c,a[c]);return g}function l(b){var a=m[b],c,f;if(a)c=a.callback,f=a.urls,f.shift(),h=0,f.length||(c&&c.call(a.context,a.obj),m[b]=null,n[b].length&&j(b))}function w(){var b=navigator.userAgent;c={async:k.createElement("script").async===!0};(c.webkit=/AppleWebKit\//.test(b))||(c.ie=/MSIE/.test(b))||(c.opera=/Opera/.test(b))||(c.gecko=/Gecko\//.test(b))||(c.unknown=!0)}function j(b,a,g,f,h){var j=
	function(){l(b)},o=b==="css",q=[],d,i,e,r;c||w();if(a)if(a=typeof a==="string"?[a]:a.concat(),o||c.async||c.gecko||c.opera)n[b].push({urls:a,callback:g,obj:f,context:h});else{d=0;for(i=a.length;d<i;++d)n[b].push({urls:[a[d]],callback:d===i-1?g:null,obj:f,context:h})}if(!m[b]&&(r=m[b]=n[b].shift())){s||(s=k.head||k.getElementsByTagName("head")[0]);a=r.urls;d=0;for(i=a.length;d<i;++d)g=a[d],o?e=c.gecko?p("style"):p("link",{href:g,rel:"stylesheet"}):(e=p("script",{src:g}),e.async=!1),e.className="lazyload",
	e.setAttribute("charset","utf-8"),c.ie&&!o?e.onreadystatechange=function(){if(/loaded|complete/.test(e.readyState))e.onreadystatechange=null,j()}:o&&(c.gecko||c.webkit)?c.webkit?(r.urls[d]=e.href,t()):(e.innerHTML='@import "'+g+'";',u(e)):e.onload=e.onerror=j,q.push(e);d=0;for(i=q.length;d<i;++d)s.appendChild(q[d])}}function u(b){var a;try{a=!!b.sheet.cssRules}catch(c){h+=1;h<200?setTimeout(function(){u(b)},50):a&&l("css");return}l("css")}function t(){var b=m.css,a;if(b){for(a=v.length;--a>=0;)if(v[a].href===
	b.urls[0]){l("css");break}h+=1;b&&(h<200?setTimeout(t,50):l("css"))}}var c,s,m={},h=0,n={css:[],js:[]},v=k.styleSheets;return{css:function(b,a,c,f){j("css",b,a,c,f)},js:function(b,a,c,f){j("js",b,a,c,f)}}}(this.document);
	
var inc = function(urls, host, callback){
	try{		
		if(!host)host = '';
		if( urls instanceof Array ){			
			var tmp;
			for(var i=0,l=urls.length;i<l;i++){
				tmp = urls[i];				
				urls[i] = host+tmp;
			}
		}else{
			urls = [host+urls]
		}
	}catch(e){}

	LazyLoad.js(urls, callback);
}

