var ua = navigator.userAgent.toLowerCase(), checkBrowserVersion = function(r){ return r.test(ua);};
var isIE7 = (!checkBrowserVersion(/opera/) 
       && checkBrowserVersion(/msie/) 
       && (checkBrowserVersion(/msie 7/) || document.documentMode == 7));

$(document).ready(function(){
	
	
    if(isIE7){
       document.getElementById("functionBar").style.paddingBottom = "20px";
       var objMainNav = document.getElementById("main-Nav");
       if(objMainNav){
          objMainNav.style.paddingBottom = "5px";
          objMainNav.firstChild.style.marginLeft = "-5px";
       }
    }
	
	$("div.linkDiv")
		.mouseover(function(){
			$(this).css('color', '#FF8C1E');
		})
		.mouseout(function(){
			$(this).css('color', '#999999');
		});
});

function onAdClick(obj){
	window.open("http://"+ obj.getAttribute("adUrl"));
	$.post( "servlet/ADHandlerServlet",
            {action:'adOnclick', id: obj.getAttribute("adId")},
            function(data){},
            "xml" );
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function fillDateOptIntoSelect(fldId, type){
	var start, stop;
	switch(type){
		case "D":
		  start = 1;
		  stop = 31;
		  break;
	    case "M":
          start = 1;
          stop = 12;
          break;
        case "Y":
          start = 1960;
          stop = 2011;
          break;
	}
	var opts = document.getElementById(fldId).options;
    for(var idx = start; idx <= stop; idx++){
        opts.add(new Option(idx, idx));
    }
}

//會員註冊--form即時檢查
function emailCheck(){
    var emailVaildate = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if(document.registerFM.email.value != ''){
        if( !emailVaildate.test(document.registerFM.email.value) ){
            //alert('Email格式錯誤，請重新輸入.');
            $("#emailMsg").html('Email格式錯誤，請重新輸入.').css('color', 'red');
            $("#registerFM #email").focus();
            return false;
        }else{
            $("#emailMsg").html('');
            return true;
        }
    }
}

function passwdCheck(){
    var passwdValidate = /\\d\\w/;
    //alert($("#registerFM #passwd").val().length);
    if( $("#registerFM #passwd").val() != '' ){
        if( $("#registerFM #passwd").val().length < 6  || passwdValidate.test($("#registerFM #passwd").val())){
            $("#passwdMsg").html('請輸入至少六位英文或數字').css('color', 'red');
            return false;
        }else{
            $("#passwdMsg").html('');
            return true;
        }
    }
}

function passwd2Check(){
    var passwdValidate = /[\\d][\\w]/;
    if( $("#registerFM #passwd2").val() != '' ){
        if( $("#registerFM #passwd").val() != $("#registerFM #passwd2").val() ){
            $("#passwd2Msg").html('與上面輸入的密碼不符').css('color', 'red');
            $("#registerFM #passwd2").focus();
            return false;
        }else{
            $("#passwd2Msg").html('');
            return true;
        }
    }
}


//會員註冊--form檢查&註冊
function validateRegisterForm(){
    
    var fm = document.registerFM;
    if(fm.email.value.length == 0){
        alert('請輸入Email');
        fm.email.focus();
    }else if(fm.passwd.value.length == 0){
        alert('請輸入密碼');
        fm.passwd.focus();
    }else if(fm.passwd2.value.length == 0){
        alert('請輸入密碼再確認');
        fm.passwd2.focus();
    }else if( $('input[name=sex]:checked').val() == undefined ){
        alert('請選擇性別');
    }else if( $("#confirm:checked").val() !== 'on' ){
        alert('請勾選同意遵守會員條款內容');
    }else if( fm.verify.value.length == 0 ){
        alert('請輸入驗證碼.');
        fm.verify.focus();
    }else{
        if(!passwdCheck() || !passwd2Check() || !emailCheck()){return;}
        var fmStr = $("#registerFM").serialize();
        
        $.ajax({
            type: "POST",
            url: "servlet/CommonMemberRegisterServlet",
            data: fmStr,
            dataType: "xml",
            error: function(xhr){
                alert('註冊連線失敗. 請稍候重試');
                //alert(xhr.responseText);
            },
            success: function(xml){
                var result = $(xml).find('result').text();
                if(result == 'ok'){
                     $("#registerDialog").dialog('close');
                    alert('加入會員成功.\r\n謝謝您的加入，請至您填寫的信箱收取認證信，點選認證後，即可馬上登入，開始使用本網站的會員功能。');
                }else{
                    alert(result);
                }
            }
        });
    }
}

var isLoginDlgCreated = false;

function initLoginDlg(){
	    $("#changeCAPTCHA1").click(function(){
             $("#vCodeImg1").attr('src', 'simpleImg?'+Math.random());
        });
    
        $("#loginDialog").dialog({
            autoOpen: false,
            bgiframe: true,
            height: 280,
            width: 380,
            modal: true,
            buttons:{
                '取消':function(){
                    $(this).dialog('close');
                },
                '登入':function(){
                    if(document.loginFM.userName.value.length == 0){
                        alert('請輸入帳號');
                        document.loginFM.userName.focus();
                    }else if(document.loginFM.userPassword.value.length == 0){
                        alert('請輸入密碼');
                        document.loginFM.userPassword.focus();
                    }else{
                        var fmStr = $("#loginFM").serialize();
                        $.ajax({
                            type: "POST",
                            url: "servlet/LoginCheckServlet",
                            data: fmStr,
                            dataType: "xml",
                            error: function(err){
                                alert('登入失敗.\r\n'+err.toString());
                            },
                            success: function(xml){
                                var result = $(xml).find('result').text();
                                if(result == 'ok'){
                                    location.reload();
                                }else{
                                    alert(result);
                                }
                            }
                        });
                    }
                }
            }
        });
        
        isLoginDlgCreated = true;
        
        openLoginDlg();  
}

function openLoginDlg(){
	$("#loginDialog").dialog('open');
    $("#vCodeImg1").attr('src', 'simpleImg?'+Math.random());
}

function onLoginClick(){
	if(!isLoginDlgCreated){
		$("#loginDialog").load("components/getDialogContents.jsp?dlgType=1",  initLoginDlg);
	}
	else{
	   openLoginDlg();  
	}
}

function logout(){
	
    if(confirm('確定登出?')){
        $.ajax({
            type: "post",
            url: "servlet/LogoutServlet",
            complete: function(rs){
                location.reload();
            }
        });
    }   
}

var isRegisterDlgCreated = false;

function initRegisterDlg(){
	
   fillDateOptIntoSelect("registerDD", "D");
   fillDateOptIntoSelect("registerMM", "M");
   fillDateOptIntoSelect("registerYY", "Y");
   
   $("#registerDialog").dialog({
        autoOpen: false,
        bgiframe: true,
        height: 490,
        width: 410,
        modal: true,
        buttons:{
            '取消':function(){
                $(this).dialog('close');
            },
            '註冊':function(){
                validateRegisterForm();
            }
        }
    });
    
    $("#changeCAPTCHA2").click(function(){
        $("#vCodeImg2").attr('src', 'simpleImg?'+Math.random());
    });
    
    //檢查帳號是否已使用
    $("#idcheck").click(function(){
        if( document.registerFM.email.value == '' ){
            alert('請輸入帳號');
            document.registerFM.email.focus();
            return;
        }
        var fmStr = $("#registerFM").serialize();
        $.ajax({
            type: "post",
            url: "servlet/CheckUsedEmail",
            data: fmStr,
            dataType: "xml",
            error: function(){
                alert('檢查失敗.');
            },
            success: function(xml){
                var result = $(xml).find('result').text();
                alert(result);
            }
        });
    });
    
    //--密碼
    $("#registerFM #passwd").blur(function(){passwdCheck();});
    //--密碼2
    $("#registerFM #passwd2").blur(function(){passwd2Check();});
    //--帳號(email)
    $("#registerFM #email").blur(function(){emailCheck();});
        
    isRegisterDlgCreated = true;
    
    openRegisterDlg();
}

function openRegisterDlg(){
	$("#registerDialog").dialog('open');
    $("#vCodeImg2").attr('src', 'simpleImg?'+Math.random());
}

function onRegisterClick(){
	
	if(!isRegisterDlgCreated){
	   $("#registerDialog").load("components/getDialogContents.jsp?dlgType=2",  initRegisterDlg);
	}
	else{
		openRegisterDlg();
	}
}

var isForgetPWDDlgCreated = false;

function initForgetPWDDlg(){
	    
    fillDateOptIntoSelect("forgetPWDDD", "D");
    fillDateOptIntoSelect("forgetPWDMM", "M");
    fillDateOptIntoSelect("forgetPWDYY", "Y");
    
    $("#forgetPwdDialog").dialog({
        autoOpen: false,
        bgiframe: true,
        height: 210,
        modal: true,
        buttons:{
            '取消':function(){
                $(this).dialog('close');
            },
            '產生新密碼':function(){
                var fmStr = $("#forgetPwdFM").serialize();
                
                $.post(
                    "servlet/ForgetPasswordServlet",
                    fmStr,
                    function(data, textStatus){
                        alert($(data).find('result').text());
                    },
                    'xml'
                );
                $(this).dialog('close');
            }
        }
    });
    
    isForgetPWDDlgCreated = true;
    
    openForgetPWDDlg();
}

function openForgetPWDDlg(){
	$("#forgetPwdDialog").dialog('open');
}

function onForgetPWDClick(){
	
	if(!isForgetPWDDlgCreated){
	   $("#forgetPwdDialog").load("components/getDialogContents.jsp?dlgType=3",  initForgetPWDDlg);
	}
	else{
		openForgetPWDDlg();
	}
}

function getPagination(totalCnt, currentPage, pageSize, funName){
    
        var pagesPerGroup = 5;
    
        if(totalCnt == 0) return "";
        
        var totalPage = parseInt(totalCnt / pageSize, 10);
        
        if(totalCnt % pageSize > 0) totalPage++;
        if(totalPage == 1) return "<span class='current'>1</span>";
        
        if (currentPage > totalPage) currentPage = totalPage;
        
        var totalGroups = parseInt(totalPage / pagesPerGroup, 10);
        if(totalPage % pagesPerGroup > 0) totalGroups++;
        
        var currentGroup = parseInt(currentPage / pagesPerGroup, 10);
        if(currentPage % pagesPerGroup > 0) currentGroup++;
            
        var getPageRec = function(pPageNo, pText){ return "<a href='javascript: void "+ funName + "("+ pPageNo +")' class=''>"+ pText +"</a>"; };
        
        var pageOffset = (currentGroup - 1) * pagesPerGroup + 1;
       
        var stb = "", go_page = 0;;
                       
        for(var idx = 0; idx < pagesPerGroup; idx++){
            
            go_page = idx +  pageOffset;
            
            if(go_page > totalPage) break;
            
            if(currentPage == go_page){
                stb = ("<span class='current'>" + go_page+ "</span>") + stb;
            }
            else{
                stb = getPageRec(go_page, go_page) + stb;
            }
        }
        
        if(currentGroup > 1)
           stb += getPageRec(pageOffset - pagesPerGroup, "&lt;&lt;&lt;");
        
        if(currentGroup != totalGroups)
           stb = getPageRec(pageOffset + pagesPerGroup, "&gt;&gt;&gt;") + stb;
        
        return stb;
}


