﻿var Site = {};
(function(){
    Site = {
        module:{
        },
        util:{
            String:{},
            Form:{},
            Dom:{},
            Uri:{}
        }
    };
    // YUI Referneces
    var YUE = YAHOO.util.Event;
    var YUC = YAHOO.util.Connect;
    var YUD = YAHOO.util.Dom;
    YAHOO.namespace('TW.Life.UMap');
    YAHOO.TW.Life.UMap.cnst = {
        ihost: 'http://tw.yimg.com/i/tw/lifestyle/i7/',
        apiurl: 'http://tw.mapapis.yahoo.com/addrapi.php',
        overdelay: 400,

        ih: 26,
        iwd: 6,
        wwd: 4,
        whd: 10,
        owdh: 23,

        isx: 1,
        isy: 1,
        isc: 0.1,

        hsx: 2,
        hsy: 2,
        hsc: 0.2,

        csx: 3,
        csy: 3,
        csc: 0.4,

        msx: 2,
        msy: 2,
        msc: 0.6,

        dw: 206,
        dh: 100,
        tw: 216,
        th: 36,
        mw: 140,
        mh: 143,

        tai: 20,
        tal: 5,
        dai: 20,
        dal: 5,
        ax: [0.4, 0.8, 1, 1.1, 1.05, 1]
    }
    YAHOO.TW.Life.UMap.API = {
        rand: 0,
        getapi: function(A) {
            YAHOO.TW.Life.UMap.apin++;
            nsc = document.createElement("script");
            nsc.type = "text/javascript";
            nsc.src = YAHOO.TW.Life.UMap.cnst.apiurl + '?' + A + '&cn=' + YAHOO.TW.Life.UMap.apin + (YAHOO.TW.Life.UMap.API.rand ? '&rnd=' + Math.random() : '');
            var head = document.getElementsByTagName('head').item(0);
            head.appendChild(nsc);
            return YAHOO.TW.Life.UMap.apin;
        },

        searchAddr: function(T, C) {
            return YAHOO.TW.Life.UMap.API.getapi('t=addr&p=' + encodeURIComponent(T) + '&cb=' + C);
        },

        routeCar: function(lat, lon, lat2, lon2, C) {
            return YAHOO.TW.Life.UMap.API.getapi('t=car&lat=' + lat + '&lon=' + lon + '&lat2=' + lat2 + '&lon2=' + lon2 + '&cb=' + C);
        },

        routeMRT: function(lat, lon, lat2, lon2, C) {
            return YAHOO.TW.Life.UMap.API.getapi('t=mrt&lat=' + lat + '&lon=' + lon + '&lat2=' + lat2 + '&lon2=' + lon2 + '&cb=' + C);
        },

        searchShop: function(K, lat, lon, P, C) {
            return YAHOO.TW.Life.UMap.API.getapi('t=name&p=' + encodeURIComponent(K) + '&lat=' + lat + '&lon=' + lon + '&b=' + P + '&cb=' + C);
        },

        searchCate: function(T, lat, lon, P, C) {
            return YAHOO.TW.Life.UMap.API.getapi('t=shops&p=' + T + '&lat=' + lat + '&lon=' + lon + '&b=' + P + '&cb=' + C);
        }
    }

    Site.util.Dom = {
        getNextElementByTag:function(oNode,sTag){
            while(oNode['nextSibling']){
                oNode = oNode['nextSibling'];
                var t = oNode.tagName;
                if(t&&t==sTag.toUpperCase()){
                    return oNode;
                };
            };
            return null;
        },
        getParentByTag:function(oNode,sTag){
            while(oNode['parentNode']){
                oNode = oNode['parentNode'];
                var t = oNode.tagName;
                if(t && t==sTag.toUpperCase()){
                    return oNode;
                }
            }
        },
        setStyle:function(sCssText,oDiv) {
            var rules = sCssText.split(';');
            while(rules.length>0){
                var rule = rules.shift();
                if (rule!=''){
                    var ruleName = rule.split(':')[0];
                    var ruleValue = rule.split(':')[1];
                    if(rule.split(':')) {
                        oDiv.style[ruleName]=ruleValue;
                    }
                }
            }
        }
    };
    Site.util.Uri = {
        getUri:function(sUrl) {
            var url = sUrl;
            var hostdir = '';
            if(url.indexOf('/')!=-1) {
                hostdir = url.substr(0,url.lastIndexOf('/')+1);
                if(hostdir) {url = url.replace(hostdir,'');}
            }
            if(url.indexOf('?')!=-1) {
                url = url.split('?')[0];
            }
            return url.toLowerCase();
        },
        getUriParams:function(sUrl) {
            var url = sUrl;
            if(url.indexOf('?')!=-1) {
                url = url.split('?')[1];
                return url;
            }
            else {
                return '';
            }
        },
        getParamValue:function(sUrl,sParamName) {
            var url = sUrl;
            var paramName = sParamName;
            var paramList = this.getUriParams(url);
            if(this.checkParamExists(paramName,paramList)){
                var params = paramList.split('&');
                for(var i=0,j=params.length;i<j;i++){
                    if(paramName == params[i].split('=')[0]){
                        return decodeURIComponent(params[i].split('=')[1]);
                    }
                }
            }
            return '';
        },
        checkParamExists:function(sParamName,sParamList){
            var params = sParamList.split('&');
            for(var i=0,j=params.length;i<j;i++){
                if(sParamName == params[i].split('=')[0]){
                    return true;
                    break;
                }
            }
            return false;
        },
        replaceParam:function(sUrl,sParamName,sParamValue){
            var url = sUrl;
            var hostDir = YKP.Tool.getUri(url);
            var paramArray = YKP.Tool.getUriParams(url).split('&');
            var paramList = '';
            for(var i=0,j=paramArray.length;i<j;i++){
                var paramName = paramArray[i].split('=')[0];
                var paramValue = paramArray[i].split('=')[1];
                paramValue = decodeURIComponent(paramValue);
                if(sParamName == paramName){

                    paramList += paramName + '=' + encodeURIComponent(sParamValue) + '&'
                }
                else {
                    paramList += paramName + '=' + encodeURIComponent(paramValue) + '&'
                }
            }
            return (hostDir + '?' + paramList).substr(0,(hostDir + '?' + paramList).length - 1);
        },
        addParam:function(sOriginalUrl,sAttachParam) {
            var url = sOriginalUrl;
            var currentParam = YKP.Tool.getUriParams(sOriginalUrl);
            var newParams = sAttachParam.split('&');
            for(var i=0,j=newParams.length;i<j;i++){
                var paramName = newParams[i].split('=')[0];
                var paramValue = newParams[i].split('=')[1];
                paramValue = decodeURIComponent(paramValue);
                if(url.indexOf('?') == -1){
                    if(typeof(paramValue) == 'string'){
                        url += '?' + paramName + '=' + encodeURIComponent(paramValue);
                    }
                }
                else {
                    if(url.indexOf('?') == (url.length - 1)) {
                        url += paramName + '=' + encodeURIComponent(paramValue);
                    }
                    else {
                        if(!YKP.Tool.checkParamExists(paramName,YKP.Tool.getUriParams(url))){
                            url += '&' + paramName + '=' + encodeURIComponent(paramValue);
                        }
                        else {
                            url = YKP.Tool.replaceParam(url,paramName,paramValue);
                        }
                    }
                }
            }
            return url;
        }
    };
    /* 檢查 Email 的格式是否正確 */
    Site.util.Form.isValidEmail = function(sValue) {
        var oFilter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        return oFilter.test(sValue);
    };
    /* [Method] 讓 text input 可以有提示的文字 */
    Site.util.Form.setTextPrompt = function(dInput,sText,dButton){
        dInput.value = sText;
        if(dButton !== undefined){
            YUE.on(dButton,'click',function(e){
                if(dInput.value == sText){dInput.value = '';}
            });
            YUE.on(dButton,'change',function(e){
                if(dInput.value == sText){dInput.value = '';}
            });
        };
        YUE.on(dInput,'mouseup',function(e){
            if(this.value == sText){this.value = ''};
        });
        YUE.on(dInput,'blur',function(e){
            if(this.value == ''){
                this.value = sText;
            };
        });
    };
    /* [Method] 檢查表單內容是否為空 */
    Site.util.Form.isEmpty = function(sValue){
        sValue = sValue.toString();
        return (sValue.replace(/\r|\n| |　/g, '')=='')?true:false;
    };
    /* [Method] 截頭去尾 */
    Site.util.String.trim = function(sValue){
        return sValue.replace(/\r|\n| |　/g, '');
    };
    /* [Method] 檢查長度是否超過 */
    Site.util.Form.isTooMuch = function(sValue,iMaxLength){
        var sRule = '/.{'+ (iMaxLength+1).toString() +'}/';
        return (sValue.replace(/\r|\n| |　/g, '').match(sRule))?true:false;
    };
    /* [Method] 自動讓 Label 與表單欄位產生關聯 */
    Site.util.Form.setLabel = function(dElement) {
        dElement = dElement || document.body;
        function getNextFormElement(oNode){
            while(oNode['nextSibling']){
                oNode = oNode['nextSibling'];
                if(oNode&&oNode.tagName&&(oNode.tagName.toLowerCase()=='input'||oNode.tagName.toLowerCase()=='select'||oNode.tagName.toLowerCase()=='textarea')){
                    return oNode;
                };
            };
            return null;
        };
        function getPreviousFormElement(oNode){
            while(oNode['previousSibling']){
                oNode = oNode['previousSibling'];
                if(oNode&&oNode.tagName&&(oNode.tagName.toLowerCase()=='input'||oNode.tagName.toLowerCase()=='select'||oNode.tagName.toLowerCase()=='textarea')){
                    return oNode;
                };
            };
            return null;
        };
        var dLabels = document.getElementsByTagName('label');
        for(var i=0,j=dLabels.length;i<j;i++){
            if(getPreviousFormElement(dLabels[i]) && !dLabels[i].htmlFor) {
                var dElement = getPreviousFormElement(dLabels[i]);
                if(dElement.id){
                    dLabels[i].htmlFor = dElement.id;
                }
                else {
                    YUD.generateId(dElement);
                    dLabels[i].htmlFor = dElement.id;
                };
            };
            if(getNextFormElement(dLabels[i]) && !dLabels[i].htmlFor) {
                var dElement = getNextFormElement(dLabels[i]);
                if(dElement.id){
                    dLabels[i].htmlFor = dElement.id;
                }
                else {
                    YUD.generateId(dElement);
                    dLabels[i].htmlFor = dElement.id;
                }
            }
            if(Site.util.Dom.getParentByTag(dLabels[i],'th')){
                var dTh = Site.util.Dom.getParentByTag(dLabels[i],'th');
                var dTd = dTh.parentNode.cells[dTh.cellIndex + 1];
                var dLabel = dLabels[i];
                if(dTd.getElementsByTagName('input')[0]) {
                    var dInput = dTd.getElementsByTagName('input')[0];
                    var k = 0;
                    while(dInput.type == 'hidden') {
                        k+=1;
                        dInput = dTd.getElementsByTagName('input')[k];
                        if(typeof(dInput) == 'undefined') {break;};
                    }
                    if(dInput) {
                        if(!dLabel.htmlFor){
                            if(!dInput.id){YUD.generateId(dInput);}
                            dLabel.htmlFor = dInput.id;
                        };
                    }
                };

                if(dTd.getElementsByTagName('select')[0]) {
                    var dInput = dTd.getElementsByTagName('select')[0];
                    if(!dLabel.htmlFor){
                        if(!dInput.id){dInput.id = 'yud_gen_' + Math.random()*10 + Date.parse(new Date());}
                        dLabel.htmlFor = dInput.id;
                    };
                };
                if(dTd.getElementsByTagName('textarea')[0]) {
                    var dInput = dTd.getElementsByTagName('textarea')[0];
                    if(!dLabel.htmlFor){
                        if(!dInput.id){YUD.generateId(dInput);}
                        dLabel.htmlFor = dInput.id;
                    };
                };
            }
        }
    };
    Site.module.Login = function(){
        var dModule = this;
        var dForm = dModule.getElementsByTagName('form')[0];
        if (dForm) {
            YUE.on(dForm.elements['post'], 'click', function(oEvent) {
                if(Site.util.Form.isEmpty(dForm.elements['user'].value)){
                    alert('很抱歉！請填寫帳號');
                    dForm.elements['user'].focus();
                    YUE.stopEvent(oEvent);
                    return;
                };
                if(Site.util.Form.isEmpty(dForm.elements['password'].value)){
                    alert('很抱歉！請填寫密碼');
                    dForm.elements['password'].focus();
                    YUE.stopEvent(oEvent);
                    return;
                };
            })
        };

    };
    Site.module.ProductLatest = function(dModule){
        // get frameset div
        var dScroll = YUD.getElementsByClassName('yui-frameset')[0];
        // instaniate new object
        var oScroll = new YAHOO.ACE.util.ContentScroll(dScroll,{duration:0.7,direction:'left'});
        // buttons and their events
        var dNext = YUD.getElementsByClassName('yui-go-next','a',YUD.get('scroller'))[0];
        YUE.on(dNext,'click',function(e){
            oScroll.scroll('left');
            YUE.stopEvent(e);
            return false;
        });
        var dBack = YUD.getElementsByClassName('yui-go-back','a',YUD.get('scroller'))[0];
        YUE.on(dBack,'click',function(e){
            oScroll.scroll('right');
            YUE.stopEvent(e);
            return false;
        });
        // method - show or hide the buttons
        var updateButtons = function(){
            var iPages = oScroll.get('totalFrame');
            var iIndex = oScroll.get('activeIndex');
            var sDisplay;
            sDisplay = (iPages>iIndex+1)?'block':'none';
            YUD.setStyle(dNext,'display',sDisplay);
            sDisplay = (iIndex>0)?'block':'none';
            YUD.setStyle(dBack,'display',sDisplay);
        };
        // do while frame switch completed...
        oScroll.switchComplete.subscribe(function(){
            updateButtons();
        });
        updateButtons();
    };
    Site.module.Map = function() {
        var oTabView = new YAHOO.widget.TabView(this.id)
    };
    Site.module.Navigation = function() {
        var oMenuBar = new YAHOO.widget.MenuBar(this.id,{
            autosubmenudisplay: true,
            hidedelay:750,
            lazyload:true
        });
   	    oMenuBar.render();
    };
    Site.module.OrderList = function() {
        var dModule = this;
        var dOrders = YUD.getElementsByClassName('order-item', 'li', dModule);
        YUD.batch(dOrders, function(dOrder) {
            var bShrink = (YUD.hasClass(dOrder, 'first-child')) ? false : true;
            var dTrigger = YUD.getElementsByClassName('trigger', 'a', dOrder)[0];
            var dBody = YUD.getElementsByClassName('body', 'form', dOrder)[0];
            var oToggle = new YAHOO.util.Toggle(dBody, {
                "isShrink":bShrink,
                "triggerEl":dTrigger,
                "wording":['展開', '收摺']
            });
        });
    };
    Site.module.MastHead = function() {
        var dModule = this;
        var dSearch = YUD.getElementsByClassName('searchbox', 'div', dModule)[0];
        var dForm = dSearch.getElementsByTagName('form')[0];
        var oPrompt = new YAHOO.util.TextPrompt(dForm.elements['p'], {
            "promptText" : "找飼料、找器具、找鳥",
            "clearTrigger" : dForm.elements['search']
        });
        YUE.on(dForm, 'submit', function(oEvent) {
            var dInput = dForm.elements['p'];
            if (Site.util.Form.isEmpty(dInput.value)) {
                YUE.stopEvent(oEvent);
            };
        });
    };
    Site.module.Announce = function () {
        var dRotator = this.getElementsByTagName('ul')[0];                                                                                                        
        var oNewsRotator = new YAHOO.util.NewsRotator(dRotator);       
    };
    Site.module.AdminNavigation = function() {
        var oMenu = new YAHOO.widget.Menu(this.id, {
            position: "static",
            hidedelay:  750,
            lazyload: true
        });
        oMenu.render();
    };
    Site.module.CheckoutForm = function () {
        var dModule = this;
        var dForm = dModule.getElementsByTagName('form')[0];
        var dElements = dForm.elements;
        var onFormSubmit = function(oEvent){
            if(Site.util.Form.isEmpty(dElements['Name'].value)){
                alert('很抱歉！請填寫真實姓名');
                dElements['Name'].focus();
                YUE.stopEvent(oEvent);
                return;
            };
            if(Site.util.Form.isEmpty(dElements['MobilePhone'].value)){
                alert('很抱歉！請填寫手機電話號碼');
                dElements['MobilePhone'].focus();
                YUE.stopEvent(oEvent);
                return;
            };
            if(Site.util.Form.isEmpty(dElements['Phone'].value)){
                alert('很抱歉！請填寫市話電話號碼');
                dElements['Phone'].focus();
                YUE.stopEvent(oEvent);
                return;
            };
            if(Site.util.Form.isEmpty(dElements['Address'].value)){
                alert('很抱歉！請填寫收件地址');
                dElements['Address'].focus();
                YUE.stopEvent(oEvent);
                return;
            };
            if(Site.util.Form.isEmpty(dElements['ZipCode'].value)){
                alert('很抱歉！請填寫郵遞區號');
                dElements['ZipCode'].focus();
                YUE.stopEvent(oEvent);
                return;
            };
            if(Site.util.Form.isEmpty(dElements['Email'].value)){
                alert('很抱歉！請填寫電子郵件信箱');
                dElements['Email'].focus();
                YUE.stopEvent(oEvent);
                return;
            };
            if(!Site.util.Form.isValidEmail(dElements['Email'].value)){
                alert('很抱歉！您所輸入的電子郵件信箱格式不正確');
                dElements['Email'].focus();
                YUE.stopEvent(oEvent);
                return;
            };
        };
        YUE.on(dForm,'submit',onFormSubmit);

    };
    Site.module.RegisterForm = function(){
        var dModule = this;
        var dForm = dModule.getElementsByTagName('form')[0];
        var dElements = dForm.elements;
        dElements['UserID'].focus();

        YUE.on(dElements['check'],'click',function(oEvent){
            var sUserId = dElements['UserID'].value;
            sUserId = sUserId.replace(/\r|\n| |　/g, '');
            if(!sUserId){
                alert('很抱歉！請填寫帳號');
                dElements['UserID'].focus();
                return;
            };
            if(sUserId.length > 15 || sUserId.length < 3){
                alert('很抱歉！帳號必需介於 3 - 15 個字之間');
                dElements['UserID'].focus();
                return;
            };
            YUC.asyncRequest('GET', '/service/index.asp?method=user.checkExist&user=' + encodeURIComponent(sUserId),{
                'success':function(e){
                    var oData = eval('(' + e.responseText + ')');
                    var sMessage = (!oData.rsp.status) ? '恭喜您，您可以使用此帳號' : '很抱歉！此帳號已經有人使用';
                    alert(sMessage);
                },
                'failure':function(e){
                    return;
                }
            });
        });

        var onFormSubmit = function(oEvent){
            if(Site.util.Form.isEmpty(dElements['UserID'].value)){
                alert('很抱歉！請填寫帳號');
                dElements['UserID'].focus();
                YUE.stopEvent(oEvent);
                return;
            };
            if(Site.util.Form.isEmpty(dElements['Token'].value)){
                if(Site.util.Form.isEmpty(dElements['Password'].value)){
                    alert('很抱歉！請填寫密碼');
                    dElements['Password'].focus();
                    YUE.stopEvent(oEvent);
                    return;
                };
                if(Site.util.Form.isEmpty(dElements['Password_Confirm'].value)){
                    alert('很抱歉！請填寫確認密碼');
                    dElements['Password_Confirm'].focus();
                    YUE.stopEvent(oEvent);
                    return;
                };
                if(dElements['Password'].value != dElements['Password_Confirm'].value){
                    alert('很抱歉！您的密碼不一致，請重新填寫');
                    dElements['Password'].value = '';
                    dElements['Password_Confirm'].value = '';
                    dElements['Password'].focus();
                    YUE.stopEvent(oEvent);
                    return;
                };
            };
            if(Site.util.Form.isEmpty(dElements['Name'].value)){
                alert('很抱歉！請填寫真實姓名');
                dElements['Name'].focus();
                YUE.stopEvent(oEvent);
                return;
            };
            if(Site.util.Form.isEmpty(dElements['Email'].value)){
                alert('很抱歉！請填寫電子郵件信箱');
                dElements['Email'].focus();
                YUE.stopEvent(oEvent);
                return;
            };
            if(!Site.util.Form.isValidEmail(dElements['Email'].value)){
                alert('很抱歉！您所輸入的電子郵件信箱格式不正確');
                dElements['Email'].focus();
                YUE.stopEvent(oEvent);
                return;
            };
            if(Site.util.Form.isEmpty(dElements['AreaCode'].value)){
                alert('很抱歉！請填寫區碼');
                dElements['AreaCode'].focus();
                YUE.stopEvent(oEvent);
                return;
            };
            if(Site.util.Form.isEmpty(dElements['Phone'].value)){
                alert('很抱歉！請填寫電話號碼');
                dElements['Phone'].focus();
                YUE.stopEvent(oEvent);
                return;
            };
        };
        YUE.on(dForm,'submit',onFormSubmit);
        YUE.on(dElements['Cancel'],'click',function(oEvent){
            if(!confirm('您確定要放棄填寫此表單嗎？')){
                YUE.stopEvent(oEvent);
                return;
            };
            YUE.removeListener(dForm,'submit',onFormSubmit)
        });
    };
    var oMap;
    var oPolyline;
    Site.module.Map = function () {
        var dModule = this;
        var dForm = dModule.getElementsByTagName('form')[0];
        var dMap = YUD.getElementsByClassName('map', 'div', dModule)[0];
        oMap = new UMap(dMap);
        oMap.addControl(U_FULLZOOM_CONTROL);
        oMap.addControl(U_TYPE_CONTROL);
        oMap.addControl(U_SCALE_CONTROL);
        var oLatLng = new ULatLng(25.034349213896416, 121.50446506844214);
        var oIcon = new UIcon();
        oIcon.image = 'http://www.urmap.com/SearchEngine/api/img/s.gif';
        oIcon.iconWidth = 26;
        oIcon.iconHeight = 30;
        oIcon.iconAnchor = new UPoint(13, 30);
        var oMarker = new UMarker(oLatLng, oIcon)
        oMap.centerAndZoom(oLatLng, 10);
        oMap.addOverlay(oMarker);
        /*
        var oPrompt = new YAHOO.util.TextPrompt(dForm.elements['from'], {
            "promptText" : "請輸入您的地址，系統將自動幫你規劃到本店的路徑。",
            "clearTrigger" : dForm.elements['post']
        });
        */
        YUE.on(dForm.elements['post'], 'click', function (oEvent) {
            YUE.stopEvent(oEvent);
            YAHOO.TW.Life.UMap.API.searchAddr(dForm.elements['from'].value , 'Site.util.getRoute');
        });
    };
    Site.util.getRoute = function (oAddress) {
        var sLat = oAddress.lat;
        var sLon = oAddress.lon;
        YAHOO.TW.Life.UMap.API.routeCar(sLat, sLon, '25.034349213896416', '121.50446506844214', 'Site.util.drawRoute');
    };
    Site.util.drawRoute = function (oPath) {
        if (oPolyline) {
            oMap.removeOverlay(oPolyline);
        };
        try {
            var aData = oPath[0].toString().split(',');
        }
        catch (e) {
            alert('很抱歉，無法查詢到您所輸入的地址');
            return;
        };
        var aRoute = [];
        var oBounds = new UBounds()
        for (var i=0,j=aData.length;i<j;i=i+2) {
            var oLatLon = new ULatLng(aData[i+1], aData[i]);
            aRoute.push(oLatLon);
            oBounds.extend(oLatLon);
        };
        oPolyline = new UPolyline(aRoute);
        oMap.addOverlay(oPolyline);
        oMap.centerAndZoom(oBounds.getCenter(), oMap.getBoundsZoomLevel(oBounds));
        location.href = '#gomap';
        var dRoute = YUD.get('map-route');
        if (dRoute) {
            var dRouteList = YUD.getElementsByClassName('route-list')[0];
            YUD.removeClass(dRouteList, 'empty');
            var aRouteList = [];
            aRouteList = ['<ol start="1">']
            for (var i=1, j=oPath.length; i<j-1; i++) {
                aRouteList.push('<li value="' + i + '">' + oPath[i]['next'] + '</li>');
            };
            aRouteList.push('</ol>');
            dRouteList.innerHTML = aRouteList.join('');
        };
    };
    Site.module.AdminOrderInfo = function () {
        var dForm = this.getElementsByTagName('form')[0];
        var dFinish = dForm.elements['finish'];
        var dCancel = dForm.elements['cancel'];
        YUE.on([dFinish, dCancel], 'click', function(oEvent) {
            if (!confirm('您確定嗎？這樣將會永遠改變訂單的狀態')) {
                YUE.stopEvent(oEvent);
                return;
            }
        });
    };
    Site.module.LiveShowResponse = function (oChannel) {
        var dModule = YUD.get('live-show');
        var dBox = YUD.getElementsByClassName('bd', 'div', dModule)[0].getElementsByTagName('div')[0]; 
        YUD.generateId(dBox);
        swfobject.embedSWF('http://live.yahoo.com/swf/v1/ylsp/' + oChannel.id, dBox.id, '220', '165', '9.0.47', '/i7/expressInstall.swf');
    };
    Site.module.LiveShow = function () {
        YAHOO.util.Get.script('http://api.live.yahoo.com/api/v1/channel/myparrot?format=json&callback=Site.module.LiveShowResponse');
    };
    YUE.onContentReady('live-show', Site.module.LiveShow);
    YUE.onContentReady('admin-order-info', Site.module.AdminOrderInfo);
    YUE.onContentReady('checkout-form', Site.module.CheckoutForm);
    YUE.onContentReady('announce', Site.module.Announce);
    YUE.onContentReady('map', Site.module.Map);
    YUE.onContentReady('login', Site.module.Login);
    YUE.onContentReady('admin-navigation', Site.module.AdminNavigation);
    YUE.onContentReady('product-latest', Site.module.ProductLatest);
    YUE.onContentReady('order-list', Site.module.OrderList);
    YUE.onContentReady('register-form', Site.module.RegisterForm);
    YUE.onContentReady('navigation', Site.module.Navigation);
    YUE.onContentReady('masthead', Site.module.MastHead);
    YUE.on(document, 'click', function(oEvent){
        var dEl = YUE.getTarget(oEvent);
        if (dEl.className === 'cart-link') {
            YUE.stopEvent(oEvent); 
            YUC.asyncRequest('GET', 'service/?method=user.isLogin', {
                "success" : function (oResponse) {
                    var oData = eval('(' + oResponse.responseText + ')');
                    if (!oData.rsp.status) {
                        alert('很抱歉！您必須先登入方可使用購物車');
                        return;
                    }
                    else {
                        location.href = dEl.href;
                    };
                }, 
                "failure" : function (oRespose) {
                    alert('伺服器錯誤，請稍後再試');
                }
            });
        };
    });
}());


