﻿// <reference path="jquery-1.3.2-vsdoc.js" />
if ( (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/Android/i)) ) {// || (navigator.userAgent.match(/BlackBerry/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/Windows CE/i)) || (navigator.userAgent.match(/Symbian/i))) {
    if (location.hostname.match(/carrot.payfree.co.kr/i) || location.hostname.match(/www.payfree.co.kr/i)) {
        location.href = 'http://m.payfree.co.kr';
    }
} else {
    if (location.hostname.match(/mtest.payfree.co.kr/i) || location.hostname.match(/m.payfree.co.kr/i)) {
        location.href = 'http://www.payfree.co.kr';
    }
}

/************************************************************************
함수명		: String.Format(params args)
작성목적	: C#의 String.Format함수와 동일한 기능 구현
작 성 자	: 김호동
최초작성일	: 2009.11.03
최종작성일	:
수정내역	:
예) var tmp = '사과:{0}개, 딸기:{1}개, 배:{2}개'.Format('2', '3', '4');
*************************************************************************/
String.prototype.Format = function() {
    var txt = this;
	for(var i=0;i<arguments.length;i++) {
		var exp = new RegExp('\\{' + (i) + '\\}','gm');
		txt = txt.replace(exp,arguments[i]);
	}
	return txt;
};

var IS_DEV_URL = location.hostname.toLowerCase().match(/carrot.payfree.co.kr/i) || location.hostname.toLowerCase().match(/localhost/i);
var URL_COWAY = "https://help.coway.co.kr";
if (IS_DEV_URL) {
    URL_COWAY = "http://tvoc.coway.co.kr";
}

// 로그인 페이지로 이동
function GoLogIn()
{
    //document.location.href = "/Commonlogin.aspx?url=" + document.URL;
    document.location.href = "/Login/Logout.aspx?login_url={0}/member/carrot/member/login.aspx?url=".Format(URL_COWAY) + document.URL;
}


// 로그인 페이지로 이동
function GoLogInUrl(url)
{
    //document.location.href = "/Commonlogin.aspx?url=" + document.URL;
    document.location.href = "/Login/Logout.aspx?login_url={0}/member/carrot/member/login.aspx?url=".Format(URL_COWAY) + document.URL + encodeURIComponent("&suburl=" + url);
}

function fnGoMemPage(url)
{
    var frm = $('<form></form>').appendTo("body");
            		
    frm.append('<input type="hidden" name="userType" value="" />');
    frm.append('<input type="hidden" name="userLevel" value="" />');
    frm.attr({method:"post", action:url});
    frm.submit();
}


// LEFT 메뉴 사이즈 조정 : 플래쉬 스크립터(장동석)
function LNB_size(size) {
	document.getElementById("LNB_wrap").style.height = size + "px";
}


// 즐겨찾기에 추가
function fnAddFavorites() 
{
    var favoriteurl="http://www.payfree.co.kr";
    var favoritetitle="웅진페이프리-통합고객관리";

    if (window.sidebar)
    { // firefox
        window.sidebar.addPanel(favoritetitle, favoriteurl, "");
    }
    else if(window.opera && window.print)
    { // opera
        var elem = document.createElement('a');
        elem.setAttribute('href',favoriteurl);
        elem.setAttribute('title',favoritetitle);
        elem.setAttribute('rel','sidebar');
        elem.click();
    }
    else if(document.all) // ie
    {
       window.external.AddFavorite(favoriteurl, favoritetitle);
    }
}


// 쿼리스트링 받기
function RequestQueryString(valuename)
{
    var rtnval = "";
    var nowAddress = unescape(location.href);
    var parameters = (nowAddress.slice(nowAddress.indexOf("?")+1,nowAddress.length)).split("&");
    
    for(var i = 0 ; i < parameters.length ; i++)
    {
        var varName = parameters[i].split("=")[0];
        
        if(varName.toUpperCase() == valuename.toUpperCase())
        {
            rtnval = parameters[i].split("=")[1];
            break;
        }
    }
    
    return rtnval;
}


// 10보자 작은 숫자를 2자리 문자열로 변경(ex: 1 --> "01", 9 --> "09")
function fnDayString(d) 
{																
    var str = new String();
	
    if (parseInt(d) < 10) 
    {
	    str = "0" + parseInt(d);
    } 
    else 
    {
	    str = "" + parseInt(d)
    }
	
    return str;
}

 
 /**
*	jquery의 ajax함수 호출
* 	@param url  url(필수)
* 	@param pars parameter(필수)
* 	@param success 성공 후 호출할 함수(필수)
* 	@param error error일때 호출 할 함수(없으면 alert) 
* 	@param async 
* 	@param type return값 text or json (기본 json)
*/
function AjaxRequest(url, pars, success, error, async, type){
	$.ajax({
		type:"POST",
		url:url,
		data:pars,
		dataType: type != null ? "text" : "json",
		async: (async == null || async == true) ? true : false,
		cache: false,
		error: error!=null?error:function(req, s, e) {
			//alert(req.responseText);
			location.href = "/Error/FileNotFound.aspx";
		},
		success:success,
		beforeSend:function(){

		},
		complete:function(){

		}
	});
}

$.appendProgress = function(settings) {
    var config = {
        width: 300,
        height: 100,
        imgsrc: '/images/common/progressbar.gif',
        css: null,
        left: null,
        top: null
    };
    if (settings) $.extend(config, settings);

    var $window = $(window), left = config.width, top = config.height;
    if (config.left) { left = config.left; }
    if (config.top) { top = config.top; }
    
    var css = {
        'position': 'absolute',
        'left': ($window.width() - left) / 2 + $window.scrollLeft(),
        'top': ($window.height() - top) / 2 + $window.scrollTop(),
        'z-index': 1000
    };
    if (config.css) {
        css = config.css;
    }
    
    var o = $('<div id="loadingImgLayer"></div>').append($('<img />').attr({ src: config.imgsrc, width: config.width, height: config.height })).css(css);
    $("body").find("#loadingImgLayer").remove().end().append(o);
    return o;
}


/************************************************************************
함수명		: JsonAjaxRequest
작성목적	: *.cs function 직접 호출시 JSON data type 통신
작 성 자	: 김호동
최초작성일	: 2009.10.26
최종작성일	:
수정내역	:
*************************************************************************/

function JsonAjaxRequest(url, pars, success, async, timeout, skip, progress) {
//    alert(pars);
//    if (pars.match('["]') != null) {
//        alert('"는 사용할 수 없습니다.');
//        return;
//    }
//    pars = pars.replace(/,'/g, '",')
//               .replace(/',/g, '",')
//               .replace(/':/g, '":')
//               .replace(/:'/g, ':"')
//               .replace(/'}/g, '"}')
//               .replace(/{'/g, '{"')
//               
    //alert(pars);
    //alert(pars.match("[']"));
    
    $.ajax({
        type: "POST",
        url: url,
        data: pars,
        timeout: (typeof timeout != "undefined" ? timeout : 0),
        async : (typeof async != "undefined" ? async : true),
        cache: false,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        beforeSend: function(xhr) {
            xhr.setRequestHeader("Content-type", "application/json; charset=utf-8");
            if (progress) { $.appendProgress(progress); }
        },
        complete: function() {
            if (progress) { $('#loadingImgLayer').remove(); }
        },
        success: success,
        error: function(req, s, e) {
			if (typeof skip != "undefined" ? true : false) {
			    $(skip);
			} else {
    			//location.href = "/Error/FileNotFound.aspx";
			    alert(req.responseText);
            }
		}
    });
}

function loadingLayer() {
    var imgOption = {};
	imgOption.src = "/images/common/loading.gif";
	imgOption.width = 160;
	imgOption.height = 24;

	if(typeof $("#loadingImgLayer")[0] != "object") {
		$("body").append("<div id='loadingImgLayer'><img src='"+imgOption.src+"'/></div>");
	}

	var $window = $(window), $imgDiv = $("#loadingImgLayer");

	$imgDiv.css(
		{
			'position' : 'absolute',
			'left' : ($window.width() - imgOption.width) / 2 + $window.scrollLeft(),
			'top' : ($window.height() - imgOption.height) / 2 + $window.scrollTop(), 
			'z-index' : 1000,
			'display' : 'none'
		}
	);
	$("select").attr('disabled', true); opacityLayer(); $imgDiv.show();
}

function opacityLayer(option) {
	if(typeof $("#loadingLayer")[0] != "object") {
		$("body").append("<div id='loadingLayer'></div>");
	}
	var $document = $(document);
	var attr = {	 'opacity' :0.5,
		 'height' : $document.height(),
		 'width' : $document.width() - ($.browser.msie ? 20 : 0),
		 'position' : 'absolute',
		 'top' : 0,
		 'left' : 0,
		 'z-index' : 999,
		 'background-color' : '#FFFFFF',
		 'display' : 'block'
	};
	$.extend(attr, option);
	$("#loadingLayer").css(attr);
}


$.fn.boardToggle = function() {
    var self = $(this);
    self.find("a").click(function(evt) {
        //    evt.preventDefault();
        var $cur = $($(this).attr("href"));
        self.find("[id]").not($cur).hide();
        $cur.toggle();
        return false;
    });
}

 //    사용제품별 모델 권한 체크
$.checkErpCdAuth = function(no, ischeck) {
    var auth = false;
    if (ischeck) {
        JsonAjaxRequest("/ShoppingMall/Review/Data/ReviewData.aspx/GetReviewErpCdAuth", $.toJSON({nProdNo: no}), function(result) {
            auth = result.d;
        }, false);
        if (!auth) {
            alert('고객님이 사용중인 제품만 등록이 가능합니다.');
        }
    } else {
        auth = true;
    }
    return auth;
}
    
$.review = function(shopgb, prodcd, attribute) {
    var attr = {
        miniGrade: new Object(),
        miniPremiumList: new Object(),
        premiumList: new Object(),
        premiumCnt: new Object(),
        reviewCnt: new Object(),
        reviewGrade: new Object(),
        reviewList: new Object(),
        txtReview: new Object(),
        chkGrade: new Object(),
        btnReview: new Object(),
        autoinit: true,
        isPopPremium: true,
        isWrite: true,
        userID: "",
        type: "",
        isProdModelAuth: false,
        nProdSeqNo: 0,
        temlate: ""
    }
    $.extend(attr, attribute);
    var data = {
        miniGrade: new Object(),
        miniPremiumList: new Object(),
        premiumList: new Object(),
        premiumCnt: new Object(),
        reviewCnt: new Object(),
        reviewGrade: new Object(),
        reviewList: new Object(),
        userID: ""
    }
    this.shopGb = shopgb;
    this.prodCd = prodcd;
    this.bigNm = "";
    this.midNm = "";
    this.smallNm = "";
    this.userID = "";
    if (attr.userID != "") { this.userID = attr.userID; }

    var $premiumWriteLink = $("<div class='btnArea' type='coway' style='display:none;'><a style='cursor:pointer;'><img alt='프리미엄 리뷰 쓰기' src='/images/shop/btn/btn_previwWrite.gif'/></a></div>")
    .click(function() {
        //    로그인 체크
        if (data.userID == "") {
            location.href = "/Login/Logout.aspx?login_url={0}/member/carrot/member/login.aspx?url=".Format(URL_COWAY) + encodeURIComponent(location.href + "&scrolly=" + $(window).scrollTop());
            return;
        }

        if ($.checkErpCdAuth(attr.nProdSeqNo, attr.isProdModelAuth)) {
            if (attr.isPopPremium) {
                var popPremium = window.open('/ShoppingMall/Review/PopPremiumWrite.aspx?shopgb={0}&prodcd={1}'.Format(shopgb, prodcd), "premiumWrite", "width=775, height=720, scrollbars=yes");
                popPremium.focus();
            }
            else {
                var popPremium = window.open('/ShoppingMall/Review/PopOrderList.aspx', "popOrderList", "width=800, height=280, scrollbars=yes");
                popPremium.focus();
            }
        }
    });
    var self = this;
    var pagers = {
        reviewList: function() {
            if ($("#reviewPaging").length > 0) {
                return $("#reviewPaging");
            }
            else {
                var temp = $("<div id='reviewPaging' class='boardBottom' review='general' style='display:none;'><div class='paging'></div></div>");
                attr.reviewList.after(temp);
                return temp;
            }
        },
        premiumList: function() {
            if ($("#premiumPaging").length > 0) {
                return $("#premiumPaging");
            }
            else {
                var temp = new Object();
                if (attr.isWrite) {
                    temp = $("<div id='premiumPaging' class='boardBottom'><div class='paging'></div></div>").append($premiumWriteLink);
                }
                else {
                    temp = $("<div id='premiumPaging' class='boardBottom'><div class='paging'></div></div>");
                }
                attr.premiumList.after(temp);
                return temp;
            }
        }
    }

    function init() {
        if (attr.autoinit) {
            getTotData();
            var scrollY = RequestQueryString("scrolly");
            if (scrollY != "") {
                $(window).scrollTop(scrollY);
            }
        }
    }

    var getTotData = function() {
        JsonAjaxRequest("/ShoppingMall/Review/Data/ReviewData.aspx/GetReviewTot", $.toJSON({ strShopGb: self.shopGb, strProdCd: self.prodCd, strUserID: self.userID }), function(result) {
            data = result.d;
            getMiniPremiumList();
            getPremiumList("", 1, 5);
            getGrade();
            getMiniGrade();
            getReviewList(1, 5);
            self.initReviewInsert();
        }, false);
    }

    var getMiniPremiumList = function() {
        attr.miniPremiumList.empty().append(data.miniPremiumList)
        .find("[premiumlink='true']")
        .click(function() {
            if ($(this).attr("linkurl") != "") {
                var premiumPop1 = window.open($(this).attr("linkurl"));
                premiumPop1.focus();
            }
            else {
                if (attr.isPopPremium) {
                    var premiumPop2 = window.open('/ShoppingMall/Review/PopPremiumView.aspx?seq={0}'.Format($(this).attr("seqno")), "premiumPop", "width=775, height=720, scrollbars=yes");
                    premiumPop2.focus();
                }
                else {
                    location.href = '/ShoppingMall/Review/PremiumView.aspx?seq={0}'.Format($(this).attr("seqno"));
                }
            }
        }).end()
    }

    var getPremiumList = function(strOrderColumn, nCurPage, nRowCnt) {
        if (typeof attribute.premiumCnt != "undefined") {
            attr.premiumCnt.html(data.premiumList.cnt);
        }

        var $list = $(data.premiumList.list)
        .find("[premiumlink='true']")
        .click(function() {
            if ($(this).attr("linkurl") != "") {
                var premiumPop1 = window.open($(this).attr("linkurl"));
                premiumPop1.focus();
            }
            else {
                if (attr.isPopPremium) {
                    var premiumPop2 = window.open('/ShoppingMall/Review/PopPremiumView.aspx?seq={0}'.Format($(this).attr("seqno")), "premiumPop", "width=775, height=720, scrollbars=yes");
                    premiumPop2.focus();
                }
                else {
                    location.href = '/ShoppingMall/Review/PremiumView.aspx?seq={0}'.Format($(this).attr("seqno"));
                }
            }
        }).end()

        pagers.premiumList().find(".paging").pager({
            totalCount: data.premiumList.cnt,
            pageSize: nRowCnt,
            pageClick: function(evt) {
                self.initPremiumList(strOrderColumn, evt.data.page, nRowCnt)
            },
            curPage: nCurPage
        })

        attr.premiumList.html($list)
        .find("[delbtn]").click(function() {
            if (confirm(" 프리미엄 리뷰를 삭제하시면 댓글도 삭제됩니다. ")) {
                JsonAjaxRequest("/ShoppingMall/Review/Data/ReviewData.aspx/DelPremium", $.toJSON({ nSeq: $(this).attr("seqno") }), function(result) {
                    if (result.d != "") {
                        alert(result.d);
                    }
                    else {
                        self.initPremiumList("", 1, nRowCnt);
                    }
                }, false);
            }
        });
    }

    var getMiniGrade = function() {
        attr.miniGrade.html(data.miniGrade);
    }

    var getGrade = function() {
        attr.reviewGrade.html(data.reviewGrade);
    }

    var getReviewList = function(nCurPage, nRowCnt) {
        if (typeof attribute.reviewCnt != "undefined") {
            attr.reviewCnt.empty().append(data.reviewList.cnt);
        }
        attr.reviewList.empty().append($(data.reviewList.list));

        pagers.reviewList().find(".paging").pager({
            totalCount: data.reviewList.cnt,
            pageSize: nRowCnt,
            pageClick: function(evt) {
                self.initReviewList(evt.data.page, nRowCnt)
            },
            curPage: nCurPage
        })
        attr.reviewList.find("[delbtn]").click(function() {
            if (confirm("해당 리뷰를 삭제하시겠습니까? ")) {
                JsonAjaxRequest("/ShoppingMall/Review/Data/ReviewData.aspx/DelReview", $.toJSON({ nSeq: $(this).attr("seqno") }), function(result) {
                    if (result.d != "") {
                        alert(result.d);
                    }
                    else {
                        self.initReviewList(1, nRowCnt);
                        self.initGrade();
                        self.initMiniGrade();
                    }
                }, false);
            }
        });
    }

    this.initMiniPremiumList = function(nRowCnt) {//nCurPage,
        var param = new Object();
        param.strShopGb = self.shopGb;
        param.strProdCd = self.prodCd;
        param.strOrderColumn = "";
        param.nCurPage = 1;
        param.nRowCnt = nRowCnt;
        param.strUserID = self.userID;
        
        JsonAjaxRequest("/ShoppingMall/Review/Data/ReviewData.aspx/GetMiniPremiumList", $.toJSON(param), function(result) {
            data.miniPremiumList = result.d;
            getMiniPremiumList();
        }, false);
    }

    this.initPremiumList = function(strOrderColumn, nCurPage, nRowCnt) {
        var param = new Object();
        param.strShopGb = self.shopGb;
        param.strProdCd = self.prodCd;
        param.strOrderColumn = strOrderColumn;
        param.nCurPage = nCurPage;
        param.nRowCnt = nRowCnt;
        param.strBigNm = self.bigNm;
        param.strMidNm = self.midNm;
        param.strSmallNm = self.smallNm;
        param.strUserID = self.userID;
        param.strType = attr.type;
        param.strTemplate = attr.temlate;
        
        JsonAjaxRequest("/ShoppingMall/Review/Data/ReviewData.aspx/GetPremiumList", $.toJSON(param), function(result) {
            data.premiumList = result.d;
            data.userID = result.d.userID;
            getPremiumList(strOrderColumn, nCurPage, nRowCnt)
        }, false);
    }

    this.initMiniGrade = function() {
        JsonAjaxRequest("/ShoppingMall/Review/Data/ReviewData.aspx/GetMiniGrade", $.toJSON({ strShopGb: self.shopGb,
            strProdCd: self.prodCd
        }), function(result) {
            data.miniGrade = result.d;
            getMiniGrade();
        }, false);
    }

    this.initGrade = function() {
        JsonAjaxRequest("/ShoppingMall/Review/Data/ReviewData.aspx/GetGrade", $.toJSON({ strShopGb: self.shopGb, strProdCd: self.prodCd }), function(result) {
            data.reviewGrade = result.d;
            getGrade();
        }, false);
    }

    this.initReviewList = function(nCurPage, nRowCnt) {
        var param = new Object();
        param.strShopGb = self.shopGb;
        param.strProdCd = self.prodCd;
        param.nCurPage = nCurPage;
        param.nRowCnt = nRowCnt;
        param.strBigNm = self.bigNm;
        param.strMidNm = self.midNm;
        param.strSmallNm = self.smallNm;
        param.strUserID = self.userID;
        param.strType = attr.type;

        JsonAjaxRequest("/ShoppingMall/Review/Data/ReviewData.aspx/GetReviewList", $.toJSON(param), function(result) {
            data.reviewList = result.d;
            getReviewList(nCurPage, nRowCnt)
        }, false);
    }

    this.initReviewInsert = function() {
        if (data.userID == "") {
            attr.txtReview.addClass("reviwDiscTxt").click(function() {
                location.href = "/Login/Logout.aspx?login_url={0}/member/carrot/member/login.aspx?url=".Format(URL_COWAY) + encodeURIComponent(location.href + "&scrolly=" + $(window).scrollTop());
            });
            attr.btnReview.click(function() {
                location.href = "/Login/Logout.aspx?login_url={0}/member/carrot/member/login.aspx?url=".Format(URL_COWAY) + encodeURIComponent(location.href + "&scrolly=" + $(window).scrollTop());
            });
        }
        else {
            attr.txtReview.addClass("reviwDiscTxt_1");
            attr.btnReview.click(function() {
                if ($.checkErpCdAuth(attr.nProdSeqNo, attr.isProdModelAuth)) {
                    var param = new Object();
                    param.strShopGb = self.shopGb;
                    param.strProdCd = self.prodCd;
                    param.strContent = attr.txtReview.val();
                    param.nGrade = attr.chkGrade.filter("[checked=true]").val();
                    if (typeof param.nGrade == "undefined") {
                        alert("평점을 입력해 주시기 바랍니다");
                        return;
                    }
                    else if ($.trim(param.strContent) == "") {
                        alert("리뷰내용을 입력해 주시기 바랍니다.");
                        return;
                    }
                    else if (param.strContent.length > 500) {
                        alert("리뷰내용은 500자까지 입력 가능합니다.");
                        return;
                    }
                    else if (!confirm("리뷰를 등록하시겠습니까?")) {
                        return;
                    }

                    JsonAjaxRequest("/ShoppingMall/Review/Data/ReviewData.aspx/SetReview", $.toJSON(param), function(result) {
                        attr.txtReview.val("");
                        attr.chkGrade.removeAttr("checked");
                        self.initReviewList(1, 5);
                        self.initGrade();
                        self.initMiniGrade();
                    }, false);
                }
            });
        }
    }
    init();
    return this;
}

$.fn.orderList = function(attribute) {
    var attr = {
        strSdate: '00000000',
        strEdate: '99999999',
        strOrgState: ["A", "B", "C", "D", "E"],
        strOrgSeq: "",
        columns: ['주문일', '주문번호', '구분', '종류', '상품군', '상품명', '수량', '결제금액', '주문상태', '결제방법', '비고', '주문취소', '렌탈/일시불', '할인금액', '주문금액'],
        isCapsule: false
    }
    $.extend(attr, attribute);
    var self = this;
    JsonAjaxRequest("/ShoppingMall/OwnMall/Data/OrderData.aspx/GetOrderList2", $.toJSON(attr), function(result) {
            $(self).empty().append(result.d).find("[seqno]").removeAttr('onclick').unbind().click(function() {
            var popPremium = window.open('/ShoppingMall/OwnMall/PopOrderHistory.aspx?orderno={0}'.Format($(this).attr("seqno")), "popHis", "width=705, height=720, scrollbars=yes");
            popPremium.focus();
        });
    }, false);
    return $(this);
}

/************************************************************************
플러그인명	: messegeInput
작성목적	: 기본메시지가 있는 인풋을 위해
작 성 자	: 김덕인
최초작성일	: 2009.10.26
최종작성일	:
수정내역	:
*************************************************************************/
$.fn.messegeInput = function(attribute) {
    var offset;
    var messageWrapper;
    attr = {
        message: "검색 키워드를 입력하세요"
    }
    var self = $(this);
    self.attr("autocomplete", "off");
    $.extend(attr, attribute);
    offset = self.offset();

    messageWrapper = $(this).clone().css({ "z-index": 1000 }).attr({ id: "messageWrapper", name: "messageWrapper" }).val(attr.message)
    .insertAfter(self);

    if (self.val() == "") {
        self.hide();
        messageWrapper.show();
    }
    else {
        self.show();
        messageWrapper.hide();
    }
    messageWrapper.click(function() {
        messageWrapper.hide();
        self.show().focus();
    }).blur(function() {
        // messageWrapper.show();
        // self.hide().focus();
    })

    $(this).click(function() {
        if (self.val() == "") {
            messageWrapper.hide();
            self.show().focus()
        }
    }).blur(function() {
        if (self.val() == "") {
            messageWrapper.show();
            self.hide();
        }
    })
    return $(this);
}

/************************************************************************
플러그인명	: pager
작성목적	: 자바스크립트 페이징 플러그인
작 성 자	: 김덕인
최초작성일	: 2009.10.26
최종작성일	:
수정내역	:
*************************************************************************/
$.fn.pager = function(attribute) {
    var attr = {
        totalCount: 0,
        pageSize: 10,
        blockSize: 10,
        curPage: 1,
        curNumCls: 'on',
        hoverNumCls: 'on',
        containerClass: '',
        curPageClass: 'on',
        $First: $('<a style="cursor:pointer"><img alt="처음리스트" src="/Images/board/boardFirst.gif"/></a>'),
        $Prev: $('<a style="cursor:pointer"><img class="right" alt="이전리스트" src="/Images/board/boardPrev.gif"/></a>'),
        $Number: $('<a style="cursor:pointer" class="number"></a>'),
        $Next: $('<a style="cursor:pointer"><img class="left" alt="다음리스트" src="/Images/board/boardNext.gif"/></a>'),
        $End: $('<a style="cursor:pointer"><img alt="마지막리스트" src="/Images/board/boardLast.gif"/></a>'),
        $Container: $("<div></div>"),
        pageClick: function() { }
    }

    $.extend(attr, attribute);
    var pageCount = Math.floor((attr.totalCount - 1) / attr.pageSize + 1);
    pageCount = (pageCount == 0 ? 1 : pageCount);
    var blockCount = Math.floor((pageCount - 1) / attr.blockSize + 1);
    var curBlock = Math.floor((attr.curPage - 1) / attr.blockSize + 1);
    var pageStart;
    var pageEnd;
    var $self = $(this);
    $self.empty().find("a").unbind()


    function init() {
        if (curBlock < 1) {
            curBlock = 1;
        }

        if (curBlock > blockCount) {
            curBlock = blockCount;
        }

        var pageStart = Math.floor((curBlock - 1) * attr.blockSize + 1);
        var pageEnd = curBlock * attr.blockSize;

        if (blockCount <= curBlock) {
            pageEnd = pageCount;
        }
        if (curBlock > 1) //첫 블럭이 아닌경우
        {
            attr.$First.bind("mousedown", { page: 1 }, attr.pageClick).appendTo(attr.$Container);
            attr.$Prev.bind("mousedown", { page: (curBlock - 1) * attr.blockSize }, attr.pageClick).appendTo(attr.$Container);
        }
        else {
            attr.$First.css("cursor", 'default').appendTo(attr.$Container);
            attr.$Prev.css("cursor", 'default').appendTo(attr.$Container);
        }
        
        for (var i = pageStart; i <= pageEnd; i++) {
            var $number = attr.$Number.clone()
            if (i == attr.curPage) {
                $number.attr("title", i + "페이지").html(i)
                .bind("mousedown", { page: i }, attr.pageClick)
                .addClass(attr.curNumCls).appendTo(attr.$Container);
            }
            else {
                $number.attr("title", i + "페이지").html(i)
                .bind("mousedown", { page: i }, attr.pageClick)
                .mouseenter(function(evt) {
                    $(this).toggleClass(attr.hoverNumCls);
                })
                .mouseleave(function(evt) {
                    $(this).toggleClass(attr.hoverNumCls);
                })
                .appendTo(attr.$Container)
            }
        }
        
        if ((curBlock) * attr.blockSize < pageCount) //마지막페이지가 아닌경우
        {
            attr.$Next.bind("mousedown", { page: (curBlock) * attr.blockSize + 1 }, attr.pageClick).appendTo(attr.$Container);
            attr.$End.bind("mousedown", { page: pageCount }, attr.pageClick).appendTo(attr.$Container);
        }
        else {
            attr.$Next.css("cursor", 'default').appendTo(attr.$Container);
            attr.$End.css("cursor", 'default').appendTo(attr.$Container);
        }
        $self.append(attr.$Container);
    }
    init();
}

/************************************************************************
플러그인명	: slideshow
작성목적	: 그냥
작 성 자	: 김덕인
최초작성일	: 2009.11.17
최종작성일	:
수정내역	:
*************************************************************************/
$.fn.slideShow = function(attribute) {
    var totalWidth;
    var curPosition = 1;
    var lastPosition = 1;
    var showchildCnt = 0;
    var childwidth = 0;
    var showchildCnt = 5;
    var attr = {
        $Next: new Object(),
        $Prev: new Object(),
        movewidth: 835
    }
    $.extend(attr, attribute);
    $self = $(this);
    function init() {
        if ($("#slidewrapper").length < 1) {
            $self.wrap($("<div id='slidewrapper'><div/>").css({position:"relative", overflow: "hidden", "z-index": 2 }));
        }

        var $cloneWrap = $self.clone().show().css("position", "absolute");
        $(document.body).append($cloneWrap);
        lastPosition = Math.ceil($cloneWrap.children().length / showchildCnt);
        if (attr.movewidth == 0) {
            attr.movewidth = $cloneWrap.width();
        }
        $cloneWrap.remove();
        $self.css({ "float": "left", left: "0px",position: "relative", "z-index": 1, "width": 2000 });
        $("#slidewrapper").width(835);
        SetImage();
    }

    function SetImage() {
        if (lastPosition == 1) {
            attr.$Next.find("img[imgtype=on]").hide();
            attr.$Next.find("img[imgtype=off]").show();

            attr.$Prev.find("img[imgtype=on]").hide();
            attr.$Prev.find("img[imgtype=off]").show();
        }
        else {
            if (curPosition == 1) {
                attr.$Next.find("[imgtype=on]").show();
                attr.$Next.find("[imgtype=off]").hide();

                attr.$Prev.find("[imgtype=off]").show();
                attr.$Prev.find("[imgtype=on]").hide();
            }
            else if (curPosition == lastPosition) {
                attr.$Next.find("[imgtype=off]").show();
                attr.$Next.find("[imgtype=on]").hide();

                attr.$Prev.find("[imgtype=on]").show();
                attr.$Prev.find("[imgtype=off]").hide();
            }
        }
    }
    attr.$Next.unbind().css("cursor", "pointer").click(function() {
        if (curPosition == lastPosition) {
            return;
        }
        curPosition++;
        SetImage();
        $self.animate({ left: "-=" + attr.movewidth }, { duration: 800 });
    })
    attr.$Prev.unbind().css("cursor", "pointer").click(function() {
        if (curPosition == 1) {
            return;
        }
        curPosition--;
        SetImage();
        $self.animate({ left: "+=" + attr.movewidth }, { duration: 800 });
    })
    init();
}



/************************************************************************
함수명		: -
작성목적	: DOM구조의 Select Box를 DIV로 비쥬얼하게 변환
작 성 자	: 김호동
최초작성일	: 2009.11.10
최종작성일	:
수정내역	:
   @ 페이지 로드시 자동 실행
   @ Select Box의 필수 Attribute : name, id, transfer
*************************************************************************/
function transferSelToDiv() {
    //alert($sel.length);
        $("div[transfer='true']").remove();
        
        //select box를 div tag로 변환
        $("select[transfer='true']").each(function() {
            var resultDiv = "";
            var resultOption = ""
            var self = $(this);
            resultDiv = "<div class='{0}' style='z-index:999;' name='{1}' id='div_{2}' transfer='true' >\n".Format(
                self.attr("class"), self.attr("name"), self.attr("id")
            );

            self.find("option").each(function(i) {
                if ($(this).attr("selected"))
                    resultDiv += "<a style='cursor:pointer' >{0}</a>\n<ul style='display:none;' >\n".Format($(this).text());

                resultOption += "<li val='{0}' ><a style='cursor:pointer'>{1}</a></li>\n".Format(
                 $(this).attr("value"), $(this).text());
            });
            resultDiv += resultOption;
            resultDiv += "</ul>\n</div>";
            if (resultOption == "") resultDiv = "";
            
            var temp = $(resultDiv);
            self.hide()
                .after(temp);
            
            //div로 변환된것에 이벤트 바인딩
            temp.find("a:eq(0)").toggle(
                function() {
                    $(this).next("ul").show();
                },
                function() {
                    $(this).next("ul").hide();
                }
            ).end()
            .find("li").bind("click", {$sel : self}, function(evt) {
                $(this).parent("ul").hide()
                .prev("a").text($(this).text());
                 evt.data.$sel.val($(this).attr("val")).change();
               // alert(evt.data.$sel);
            });
        });
}
$(transferSelToDiv);


/**
 * Get the value of a cookie with the given name.
 *
 * @example $.cookie('the_cookie');
 * @desc Get the value of a cookie.
 *
 * @param String name The name of the cookie.
 * @return The value of the cookie.
 * @type String
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 */
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};



(function($) {
	$.fn.pval = function(value) {
		if ( value === undefined ) {
			switch ($(this)[0].nodeName.toLowerCase())
			{
				case "label" :
					return $(this).text();
				case "div" : case "span" : case "strong":
					return $(this).html();
				default :
					return $(this).val();
			}
		} else {
			switch ($(this)[0].nodeName.toLowerCase())
			{
				case "label" :
					return $(this).text(value);
				case "div" : case "span" : case "strong": 
					return $(this).html(value);
				default :
					return $(this).val(value);
			}
		}
	}
	
	//	금액형태로 변환	$.fn.toPrice = function(math, cipher) {
	    //$(this).each(function() {
		    var strb, len, revslice;

		    strb = $(this).pval().toString();
	    //	strb = strb.replace(/,/g, '');
		    strb = $(this).getOnlyNumeric(math);
		    strb = parseInt(strb, 10);
    		
		    if(isNaN(strb))
			    return $(this).pval('');

		    strb = strb.toString();
		    len = strb.length;

		    if(len < 4)
			    return $(this).pval(strb);

		    if(cipher == undefined || !isNumeric(cipher))
			    cipher = 3;

		    count = len/cipher;
		    slice = new Array();

		    for(var i=0; i<count; ++i) {
			    if(i*cipher >= len)
				    break;
			    slice[i] = strb.slice((i+1) * -cipher, len - (i*cipher));
		    }

		    revslice = slice.reverse();
		    return $(this).pval(revslice.join(','));
		//});
	}

	//	숫자형태로 변환	$.fn.getOnlyNumeric = function(math, data) {
		var chrTmp, strTmp;
		var len, str;

		if(data == undefined) {
			str = $(this).pval();
		}
		else {
			str = data;
		}
		
		str = str.replace(/,/g, '');
		len = str.length;
		strTmp = '';

		if (len > 0)
		{
			//	소수점 처리
			switch (math)
			{
				case "ceil" :
					str = String(Math.ceil(str));	//	올림
					break;
				case "floor" :
					str = String(Math.floor(str));	//	버림
					break;
				default :
					str = String(Math.round(str));	//	반올림					break;
			}
		}
		
		for(var i=0; i<len; ++i) {
			chrTmp = str.charCodeAt(i);
			if((chrTmp > 47 || chrTmp <= 31) && chrTmp < 58) {
				strTmp = strTmp + String.fromCharCode(chrTmp);
			}
		}

		if(data == undefined)
			return strTmp;
		else
			return $(this).pval(strTmp);
	};

	var isNumeric = function(data) {
		var len, chrTmp;

		len = data.length;
		for(var i=0; i<len; ++i) {
			chrTmp = str.charCodeAt(i);
			if((chrTmp <= 47 && chrTmp > 31) || chrTmp >= 58) {
				return false;
			}
		}

		return true;
	};
	
	$.fn.toPriceAll = function() {
		$(this).each(function() {
			$(this).toPrice();
		});
	};
	

	$.fn.table2CSV = function(options) {
		var options = $.extend({
			separator: ',',
			header: [],
			delivery: 'popup' // popup, value
		},
		options);

		var csvData = [];
		var headerArr = [];
		var el = this;

		//header
		var numCols = options.header.length;
		var tmpRow = []; // construct header avalible array

		if (numCols > 0) {
			for (var i = 0; i < numCols; i++) {
				tmpRow.push(formatData(options.header[i]));
			}
		} else {
			$(el).filter(':visible').find('th').each(function() {
				if ($(this).css('display') != 'none') tmpRow.push(formatData($(this).html()));
			});
		}

		row2CSV(tmpRow);

		// actual data
		$(el).find('tr').each(function() {
			var tmpRow = [];
			$(this).filter(':visible').find('td').each(function() {
				if ($(this).css('display') != 'none') tmpRow[tmpRow.length] = formatData($(this).html());
			});
			row2CSV(tmpRow);
		});
		if (options.delivery == 'popup') {
			var mydata = csvData.join('\n');
			return popup(mydata);
		} else {
			var mydata = csvData.join('\n');
			return mydata;
		}

		function row2CSV(tmpRow) {
			var tmp = tmpRow.join('') // to remove any blank rows
			if (tmpRow.length > 0 && tmp != '') {
				csvData.push(tmpRow.join(options.separator));
			}
		}
		function formatData(input) {
			// replace " with “
			var regexp = new RegExp(/["]/g);
			var output = input.replace(regexp, "“");
			//HTML
			var regexp = new RegExp(/\<[^\<]+\>/g);
			var output = output.replace(regexp, "").replace(/\r\n/g, "");
			if (output == "") return '';
			//return '"' + output + '"';
			return output;
		}
		function popup(data) {
			var generator = window.open('', 'csv', 'height=400,width=600');
			generator.document.write('<html><head><title>CSV</title>');
			generator.document.write('</head><body >');
			generator.document.write('<textArea cols=70 rows=15 wrap="off" >');
			generator.document.write(data);
			generator.document.write('</textArea>');
			generator.document.write('</body></html>');
			generator.document.close();
			return true;
		}
	};
	
	$.fn.toExcel = function(settings) {
		var config = $.extend({fname: "", url: "/Common/PopUp/Excel.aspx"}, settings);
		var csv = $(this).table2CSV({separator:'|', delivery:'value'});
		var frm = $('<form></form>').appendTo("body");

		frm.attr({method:"post", action:config.url, target:"_blank"});
		frm.append('<input type="hidden" name="csv_fname" value="' + escape(config.fname) + '" />');
		frm.append('<input type="hidden" name="csv_output" value="' + escape(csv) + '" />');
		frm.submit().remove();
	};
	
	$.fn.autoEllipsis = function(options) {
		var get_AutoEllipsisScroller = function(id) {
			var aeScrollerId = "WingooliAutoEllipsisScroller_" + id
			if (!document.getElementById(aeScrollerId)) {
				var div = document.createElement("div");
				div.id = aeScrollerId + "_Container";
				div.innerHTML = "<span id=\"" + aeScrollerId + "\" style=\"overflow: visible; position: absolute; top: -2000px; color: orange\"></span>";
				document.body.appendChild(div);
			}
			return document.getElementById(aeScrollerId);
		};

		var StringEllipsesByMaxLetters = function(element, originalText, maxLettersAllowed) {
			element.title = "";
			var text = originalText;
			if (text == null || text == "") text = element.innerHTML;
			var maxAllowedLatterIndex = text.length - maxLettersAllowed;
			if (maxAllowedLatterIndex > 0) {
				element.title = text;
				if (originalText == null)
					originalText = text;
				element.innerHTML = text.substr(0, maxLettersAllowed - 2) + "&hellip;";
			} else {
				element.innerHTML = text;
			}
		};

		var _this = this;

		var settings = $.extend({}, options);
		this.each(function(i) {
			var aeScroller = get_AutoEllipsisScroller(i);
			saeScroller = $(aeScroller);
			sthis = $(this);
			saeScroller.text(sthis.text());

			var origText = sthis.html();

			var element = this;
			var elementBounds = { width: element.offsetWidth, height: element.offsetHeight };

			var jAeScroller = $(aeScroller);
			var jElement = $(element);

			var props = ["font-size", "font-weight", "font-family", "font-style", "padding"];

			for (var i = 0; i < props.length; i++) {
				try {
					jAeScroller.css(props[i], jElement.css(props[i]));
				} catch (ex) { }
			}
			jElement.css("overflow", "visible");


			jAeScroller.width(jElement.width());

			var isIe = (document.all != undefined);
			var scrollerWidth = jAeScroller.width();
			var scrollerHeight = jAeScroller.height();
			var fitText = saeScroller.text();

			while (scrollerHeight > elementBounds.height && fitText != "") {
				fitText = fitText.substr(0, fitText.length - 2);
				var autoScrollerInnerHTML = fitText + "&hellip;";
				saeScroller.html(autoScrollerInnerHTML);
				scrollerHeight = jAeScroller.height();
			}
			if (fitText == "") {
				fitText = origText;
				saeScroller.html(fitText);
				jElement.css("whiteSpace", "nowrap");
				jAeScroller.width("");
				var scrollerWidth = jAeScroller.width();
			}

			while (scrollerWidth > elementBounds.width && fitText != "") {
				fitText = fitText.substr(0, fitText.length - 2);
				var autoScrollerInnerHTML = fitText + "&hellip;";
				saeScroller.html(autoScrollerInnerHTML);
				scrollerWidth = jAeScroller.width();
			}
			var scrollerHeight = aeScroller.offsetHeight;
			var r = (Math.ceil(elementBounds.height / scrollerHeight) - 1);
			r += (r == 0) ? 1 : 0;
			var maxLettersAllowed = fitText.length * r;

			StringEllipsesByMaxLetters(element, origText, maxLettersAllowed + (r + 1));
		});
	};

})(jQuery);

(function($) {
	var MALL_HTTP_URL = "";
	$("a[map='true']").live("click", function(evt) {
		evt.preventDefault();
		var url = $(this).attr("href");
		switch (url) {
			case "a": url = "/MyPage/MyPage_Main.aspx?from=MP"; break;	//	마이페이지(개인)
			case "a1": url = "/MyPage/Person/ProductMng/ProdInquiry.aspx?from=MP_A"; break;	//	마이페이지(개인) > 사용제품관리			case "a11": url = "/MyPage/Person/ProductMng/ProdInquiry.aspx?from=MP_A_01"; break;	//	마이페이지(개인) > 사용제품관리 > 사용제품조회
			case "a12": url = "/MyPage/Person/ProductMng/ProdCheck.aspx?from=MP_A_02"; break;	//	마이페이지(개인) > 사용제품관리 > 정기점검관리			case "a13": url = "/MyPage/Person/ProductMng/AsReservation.aspx?from=MP_A_03"; break;	//	마이페이지(개인) > 사용제품관리 > AS예약
			case "a14": url = "/MyPage/Person/ProductMng/AsList.aspx?from=MP_A_04"; break;	//	마이페이지(개인) > 사용제품관리 > AS예약/취소
			case "a15": url = "/MyPage/Person/ProductMng/ProdService.aspx?from=MP_A_05"; break;	//	마이페이지(개인) > 사용제품관리 > 맞춤서비스 신청/조회
			case "a16": url = "/MyPage/Person/ProductMng/CapsuleCoffeeList.aspx?from=MP_A_06"; break;	//	마이페이지(개인) > 사용제품관리 > 캡슐커피관리

			case "a2": url = "/MyPage/Person/PayMng/FeeList.aspx?from=MP_B"; break;	//	마이페이지(개인) > 요금관리			case "a21": url = "/MyPage/Person/PayMng/FeeList.aspx?from=MP_B_01"; break;	//	마이페이지(개인) > 요금관리 > 청구요금조회/결제
			case "a22": url = "/MyPage/Person/PayMng/FeePreList.aspx?from=MP_B_02"; break;	//	마이페이지(개인) > 요금관리 > 선납결제
			case "a23": url = "/MyPage/Person/PayMng/FeePayList.aspx?from=MP_B_03"; break;	//	마이페이지(개인) > 요금관리 > 납부요금내역조회
			case "a24": url = "/MyPage/Person/PayMng/PayMethod.aspx?from=MP_B_04"; break;	//	마이페이지(개인) > 요금관리 > 납부방법변경
			case "a3": url = "/MyPage/Person/FavorMng/Sms.aspx?from=MP_C"; break;	//	마이페이지(개인) > 혜택관리			case "a36": url = "/MyPage/Person/FavorMng/Sms.aspx?from=MP_C_06"; break;	//	마이페이지(개인) > 혜택관리 > 문자발송서비스			case "a31": url = "/MyPage/Person/FavorMng/MileageList.aspx?from=MP_C_01"; break;	//	마이페이지(개인) > 혜택관리 > 쉬즈웰포인트관리			case "a32": url = "/MyPage/Person/FavorMng/PayFreePointList.aspx?from=MP_C_02"; break;	//	마이페이지(개인) > 혜택관리 > 페이프리포인트 관리			case "a33": url = "/MyPage/Person/FavorMng/CouponList.aspx?from=MP_C_03"; break;	//	마이페이지(개인) > 혜택관리 > 쿠폰관리			case "a34": url = "/MyPage/Person/FavorMng/MembersCard.aspx?from=MP_C_04"; break;	//	마이페이지(개인) > 혜택관리 > 멤버스카드조회/신청
			case "a35": url = "/MyPage/Person/FavorMng/TotalMembers.aspx?from=MP_C_05"; break;	//	마이페이지(개인) > 혜택관리 > 통합멤버스 관리
			case "a4": url = "/MyPage/Person/MyBoard/PartiEventList.aspx?from=MP_D"; break;	//	마이페이지(개인) > 참여활동관리			case "a41": url = "/MyPage/Person/MyBoard/PartiEventList.aspx?from=MP_D_01"; break;	//	마이페이지(개인) > 참여활동관리 > 나의 이벤트 관리			case "a42": url = "/MyPage/Person/MyBoard/PartiAnnounce.aspx?from=MP_D_02"; break;	//	마이페이지(개인) > 참여활동관리 > 알림방			case "a43": url = "/MyPage/Person/MyBoard/PartiNewsletter.aspx?from=MP_D_03"; break;	//	마이페이지(개인) > 참여활동관리 > 뉴스레터
			case "a44": url = "/MyPage/Person/MyBoard/PartiMyboardList.aspx?from=MP_D_04"; break;	//	마이페이지(개인) > 참여활동관리 > 참여게시글/댓글관리			case "a45": url = "/MyPage/Person/MyBoard/PartiQuestList.aspx?from=MP_D_05"; break;	//	마이페이지(개인) > 참여활동관리 > 고객센터 문의내역
			case "a46": url = "/MyPage/Person/MyBoard/ShesPointUseList.aspx?from=MP_D_06"; break;	//	마이페이지(개인) > 참여활동관리 > 컨텐츠이용내역

			case "a5": url = MALL_HTTP_URL + "/shoppingmall/ownmall/MyShopping.aspx?from=MP_E"; break;	//	마이페이지(개인) > 마이쇼핑

			case "a6": url = "{0}/member/carrot/member/login_modify.aspx?from=MP_F".Format(URL_COWAY); break;	//	마이페이지(개인) > 회원정보관리			case "a61": url = "{0}/member/carrot/member/login_modify.aspx?from=MP_F_01".Format(URL_COWAY); break;	//	마이페이지(개인) > 회원정보관리 > 개인정보수정
			case "a62": url = "{0}/member/carrot/member/member_secession.aspx?from=MP_F_02".Format(URL_COWAY); break;	//	마이페이지(개인) > 회원정보관리 > 회원탈퇴
			case "a63": url = "{0}/member/carrot/member/m_pass_ch.aspx?from=MP_F_03".Format(URL_COWAY); break;	//   m_pass_ch.aspx    //  비밀번호 변경
            case "a64": url = "{0}/member/carrot/member/chg_ipin.aspx?from=MP_F_04".Format(URL_COWAY); break;	//   아이핀(i-PIN)전환

			case "b": url = "/MyPage/Company/ProductMng/PrdInquiryList.aspx?from=MB"; break;	//	마이페이지(사업자)
			case "b1": url = "/MyPage/Company/ProductMng/PrdInquiryList.aspx?from=MB_A"; break;	//	마이페이지(사업자) > 사용제품관리			case "b11": url = "/MyPage/Company/ProductMng/PrdInquiryList.aspx?from=MB_A_01"; break;	//	마이페이지(사업자) > 사용제품관리 > 사용제품조회
			case "b12": url = "/MyPage/Company/ProductMng/ProdCheckList.aspx?from=MB_A_02"; break;	//	마이페이지(사업자) > 사용제품관리 > 정기정검관리			case "b13": url = "/MyPage/Company/ProductMng/AsReservationList.aspx?from=MB_A_03"; break;	//	마이페이지(사업자) > 사용제품관리 > AS 예약
			case "b14": url = "/MyPage/Company/ProductMng/AsList.aspx?from=MB_A_04"; break;	//	마이페이지(사업자) > 사용제품관리 > AS 예약조회/취소
			case "b15": url = "/MyPage/Company/ProductMng/ProdService.aspx?from=MB_A_05"; break;	//	마이페이지(사업자) > 사용제품관리 > 맞춤서비스 신청/조회

			case "b2": url = "/MyPage/Company/PayMng/FeeList.aspx?from=MB_B"; break;	//	마이페이지(사업자) > 요금관리			case "b21": url = "/MyPage/Company/PayMng/FeeList.aspx?from=MB_B_01"; break;	//	마이페이지(사업자) > 요금관리 > 청구요금조회/결제
			case "b22": url = "/MyPage/Company/PayMng/FeePreList.aspx?from=MB_B_02"; break;	//	마이페이지(사업자) > 요금관리 > 선납결제
			case "b23": url = "/MyPage/Company/PayMng/FeePayList.aspx?from=MB_B_03"; break;	//	마이페이지(사업자) > 요금관리 > 납부요금내역조회
			case "b24": url = "/MyPage/Company/PayMng/PayMethod.aspx?from=MB_B_04"; break;	//	마이페이지(사업자) > 요금관리 > 납부방법변경
			case "b3": url = "/MyPage/Company/PartiQuest/PartiQuestList.aspx?from=MB_C"; break;	//	마이페이지(사업자) > 사업자문의하기			case "b4": url = "{0}/member/carrotcorp/login_modify.aspx?from=MB_D".Format(URL_COWAY); break;	//	마이페이지(사업자) > 사업자정보수정			case "b5": url = "/MyPage/Company/Tax/TaxList.aspx?from=MB_E"; break;	//	마이페이지(사업자) > 세금계산서발행내역			case "b6": url = "/MyPage/Company/Tax/FundsList.aspx?from=MB_F"; break;	//	마이페이지(사업자) > 지급내역조회
			case "c": url = "/PayfreeMembers/Intro/MemberInfo.aspx?from=PM"; break;	//	페이프리 멤버스			case "c1": url = "/PayfreeMembers/Intro/MemberInfo.aspx?from=PM_A"; break;	//	페이프리 멤버스 > 페이프리 멤버스란
			case "c2": url = "/PayfreeMembers/FavorInfo/List.aspx?from=PM_B"; break; //	페이프리 멤버스 > 페이프리 멤버스 혜택
			case "c21": url = "/PayfreeMembers/FavorInfo/Special.aspx?from=PM_B_01"; break; //	페이프리 멤버스 > 페이프리 멤버스 혜택 > 스페셜			case "c22": url = "/PayfreeMembers/FavorInfo/List.aspx?from=PM_B_02"; break; //	페이프리 멤버스 > 페이프리 멤버스 혜택 > 일반
			case "c3": url = "/PayfreeMembers/PointInfo/Info.aspx?from=PM_C"; break; //	페이프리 멤버스 > 페이프리 포인트 안내
			case "c4": url = "/PayfreeMembers/VirtualEx/Calcul.aspx?from=PM_D"; break;	//	페이프리 멤버스 > 페이프리 가상체험			case "c41": url = "/PayfreeMembers/VirtualEx/Calcul.aspx?from="; break;	//	페이프리 멤버스 > 페이프리 가상체험 > 페이프리 계산기			case "c42": url = "/PayfreeMembers/VirtualEx/FindFavor.aspx?from="; break;	//	페이프리 멤버스 > 페이프리 가상체험 > 혜택찾기
			case "c5": url = "/PayfreeMembers/UsePost/List.aspx?from=PM_E"; break;	//	페이프리 멤버스 > 페이프리 멤버스 체험기            case "c6": url = "/PayfreeMembers/Intro/IssueCheck.aspx?from=PM_F"; break;	//	페이프리 멤버스 > 페이프리 멤버스 신청

			case "d": url = "/Community/CultureSpace/Health/List.aspx?from=CO"; break;	//	커뮤니티
			case "d1": url = "/Community/CultureSpace/Health/List.aspx?from=CO_A"; break;	//	커뮤니티 > 문화공간
			case "d11": url = "/Community/CultureSpace/Health/List.aspx?from=CO_A_01"; break;	//	커뮤니티 > 문화공간 > 건강
			case "d12": url = "/Community/CultureSpace/Education/List.aspx?from=CO_A_02"; break;	//	커뮤니티 > 문화공간 > 육아/교육
			case "d13": url = "/Community/CultureSpace/Money/List.aspx?from=CO_A_03"; break;	//	커뮤니티 > 문화공간 > 재테크			case "d14": url = "/Community/CultureSpace/CookingCalendar/Calendar.aspx?from=CO_A_05"; break;	//	커뮤니티 > 문화공간 > 쿠킹캘린더			case "d15": url = "/Community/CultureSpace/WebToon/List.aspx?from=CO_A_06"; break; //	커뮤니티 > 문화공간 > 웹툰
			case "d16": url = "/Community/CultureSpace/Beauty/List.aspx?from=CO_A_04"; break; //	커뮤니티 > 문화공간 > 뷰티/패션
			
			case "d2": url = "/Community/Talk/Daily/List.aspx?from=CO_B"; break;	//	커뮤니티 > 수다공간
			case "d21": url = "/Community/Talk/Daily/List.aspx?from=CO_B_01"; break;	//	커뮤니티 > 수다공간 > 나의일상
			case "d22": url = "/Community/Talk/SiDaeg/List.aspx?from=CO_B_02"; break;	//	커뮤니티 > 수다공간 > 소곤소곤시댁식구
			case "d23": url = "/Community/Talk/Financial/List.aspx?from=CO_B_03"; break;	//	커뮤니티 > 수다공간 > 참을인1억만들기
			case "d24": url = "/Community/Talk/Photo/List.aspx?from=CO_B_04"; break;	//	커뮤니티 > 수다공간 > 포토에세이			case "d25": url = "/Community/Talk/Diet/List.aspx?from=CO_B_05"; break;	//	커뮤니티 > 수다공간 > 살빼기살찌기
			case "d26": url = "/Community/Talk/Knowhow/List.aspx?from=CO_B_06"; break;	//	커뮤니티 > 수다공간 > 공유나의노하우
			case "d27": url = "/Community/PlaySpace/talk/List.aspx?from=CO_B_07"; break;	//	커뮤니티 > 수다공간 > 주제톡
			
			case "d3": url = "/Community/PlaySpace/PointUse/Luck.aspx?from=CO_C"; break;	//	커뮤니티 > 놀이공간			//case "d31": url = "/Community/PlaySpace/talk/List.aspx?from=CO_C_01"; break;	//	커뮤니티 > 놀이공간 > 주제톡			//case "d32": url = "/Community/PlaySpace/Quiz/List.aspx?from=CO_C_02"; break;	//	커뮤니티 > 놀이공간 > 퀴즈퀴즈
			case "d31": url = "/Community/PlaySpace/PointUse/Luck.aspx?from=CO_C_01"; break;	//	커뮤니티 > 놀이공간 > 운세
			case "d32": url = "/Community/PlaySpace/PointUse/Comic.aspx?from=CO_C_02"; break;	//	커뮤니티 > 놀이공간 > 만화
			case "d33": url = "/Community/PlaySpace/PointUse/Edu.aspx?from=CO_C_03"; break;	//	커뮤니티 > 놀이공간 > 교육
			//case "d33": url = "/Community/PlaySpace/Visit/List.aspx?from="; break;	//	커뮤니티 > 놀이공간 > 출첵
			case "d4": url = "/Community/Research/List.aspx?from=CO_D"; break;	//	커뮤니티 > 리서치
			case "e": url = "/Customer/Request/Write.aspx?from=CC"; break;	//	고객센터
			case "e1": url = "/Customer/Request/Write.aspx?from=CC_A"; break;	//	고객센터 > 고객문의/불편사항
			case "e2": url = "/Customer/Praise/List.aspx?from=CC_B"; break;	//	고객센터 > 고객칭찬
			case "e3": url = "/Customer/Proposal/List.aspx?from="; break;	//	고객센터 > 고객제안
			case "e4": url = "/MyPage/Person/ProductMng/AsReservation.aspx?from=CC_C"; break;	//	고객센터 > AS예약
			case "e5": url = "/Customer/Notice/List.aspx?from=CC_D"; break;	//	고객센터 > 공지사항
			case "e6": url = "/Customer/RentalHouse/List.aspx?from=CC_E"; break;	//	고객센터 > 렌탈하우스
			case "e7": url = "/Customer/FAQ/List.aspx?from=CC_F"; break;	//	고객센터 > 자주하는질문
			case "e8": url = "/Customer/UseInfo/UseInfo1.aspx?from=CC_G"; break;	//	고객센터 > 이용안내
			case "e81": url = "/Customer/UseInfo/UseInfo1.aspx?from=CC_G_01"; break;	//	고객센터 > 이용안내 > 회원정책안내
			case "e82": url = "Customer/UseInfo/UseInfo4.aspx?from=CC_G_02"; break;	//	고객센터 > 이용안내 > 쉬즈웰포인트 안내
			case "e83": url = "/Customer/UseInfo/UseInfo2.aspx?from=CC_G_03"; break;	//	고객센터 > 이용안내 > 하트서비스안내			case "e84": url = "/Customer/UseInfo/UseInfo3.aspx?from=CC_G_04"; break;	//	고객센터 > 이용안내 > 렌탈/구매안내
			case "e85": url = "/Customer/UseInfo/UseInfo5.aspx?from=CC_G_05"; break;	//	고객센터 > 이용안내 > 모바일웹 안내
			case "e86": url = "/Customer/UseInfo/UseInfo6.aspx?from=CC_G_06"; break;	//	고객센터 > 이용안내 > 놀이공간 안내

			case "e10": url = "/Customer/Price/PriceInfo1.aspx?from=CC_I"; break;	//	고객센터 > 렌탈/멤버십 제도 안내
			case "e101": url = "/Customer/Price/PriceInfo1.aspx?from=CC_I_01"; break;	//	고객센터 > 렌탈/멤버십 제도 안내 > 렌탈제도 안내
			case "e102": url = "/Customer/Price/PriceInfo2.aspx?from=CC_I_02"; break;	//	고객센터 > 렌탈/멤버십 제도 안내 > 멥버십 안내
			case "e103": url = "/Customer/Price/PriceInfo3.aspx?from=CC_I_03"; break;	//	고객센터 > 렌탈/멤버십 제도 안내 > 단체/학교 할인 안내			case "e104": url = "/Customer/Price/PriceInfo4.aspx?from=CC_I_04"; break;	//	고객센터 > 렌탈/멤버십 제도 안내 > 패키지 제도 안내
			
			case "e9": url = "/Customer/Heart/ServiceInfo.aspx?from=CC_H"; break;	//	고객센터 > HEART서비스
			case "e91": url = "/Customer/Heart/ServiceInfo.aspx?from=CC_H_01"; break;	//	고객센터 > HEART서비스 > HEART서비스소객
			case "e92": url = "/Customer/Heart/ProductWater.aspx?from=CC_H_02"; break;	//	고객센터 > HEART서비스 > 정수기
			case "e93": url = "/Customer/Heart/ProductBidet.aspx?from=CC_H_03"; break;	//	고객센터 > HEART서비스 > 비데
			case "e94": url = "/Customer/Heart/ProductAirCleaner.aspx?from=CC_H_04"; break;	//	고객센터 > HEART서비스 > 청정기
			case "e95": url = "/Customer/Heart/ProductSoftener.aspx?from=CC_H_05"; break;	//	고객센터 > HEART서비스 > 연수기
			case "e96": url = "/Customer/Heart/ProductWasteDisposer.aspx?from=CC_H_06"; break;	//	고객센터 > HEART서비스 > 음식물처리기
			case "e97": url = "/Customer/Heart/PersonalRequestService.aspx?from=CC_H_07"; break;	//	고객센터 > HEART서비스 > 개인별신청서비스
			
			case "f": url = "/Event/Event/List.aspx?from=EV"; break;	//	이벤트			case "f1": url = "/Event/Event/List.aspx?from=EV_A"; break;	//	이벤트 > 진행중 이벤트			case "f2": url = "/Event/Winner/List.aspx?from=EV_B"; break;	//	이벤트 > 당첨자 발표
			case "f3": url = "/Event/After/List.aspx?from=EV_C"; break;	//	이벤트 > 당첨후기
			case "f4": url = "/Event/Event/OldList.aspx?from=EV_D"; break;	//	이벤트 > 지난이벤트

			case "g": url = "/W_Class/main.aspx?from=WC"; break;	//	W_class라운지
			case "g1": url = "/W_Class/WclassInfo.aspx?from=WC_A"; break;	//	W_class라운지 > W_class란
			case "g2": url = "/W_Class/WclassBenefit01.aspx?from=WC_B"; break;	//	W_class라운지 > W_class혜택
			case "g21": url = "/W_Class/WclassBenefit01.aspx?from=WC_B_01"; break;	//	W_class라운지 > W_class혜택 > 차별화서비스
			case "g22": url = "/W_Class/WclassBenefit02.aspx?from=WC_B_02"; break;	//	W_class라운지 > W_class혜택 > 특별한혜택			case "g23": url = "/W_Class/WclassBenefit03.aspx?from=WC_B_03"; break;	//	W_class라운지 > W_class혜택 > 고객초청행사

			case "g3": url = "/W_Class/Lottery/Event.aspx?from=WC_C"; break;	//	W_class라운지 > W_이벤트			case "g31": url = "/W_Class/Lottery/Event.aspx?from=WC_C_01"; break;	//	W_class라운지 > W_이벤트 > W_일일복권
			case "g32": url = "/W_Class/Event/List.aspx?from=WC_C_02"; break;	//	W_class라운지 > W_이벤트 > W_이벤트			case "g33": url = "/W_Class/Event/OldList.aspx?from=WC_C_03"; break;	//	W_class라운지 > W_이벤트 > W_지난이벤트
			case "g34": url = "/W_Class/Win/List.aspx?from=WC_C_04"; break;	//	W_class라운지 > W_이벤트 > W_당첨공지

			case "g4": url = "/W_Class/Notice/List.aspx?from=WC_D"; break;	//	W_class라운지 > W_커뮤니티
			case "g41": url = "/W_Class/Notice/List.aspx?from=WC_D_01"; break;	//	W_class라운지 > W_커뮤니티 > W_공지사항
			case "g42": url = "/W_Class/Experience/List.aspx?from=WC_D_02"; break;	//	W_class라운지 > W_커뮤니티 > W_체험후기
			case "g43": url = "/W_Class/Story/List.aspx?from=WC_D_03"; break;	//	W_class라운지 > W_커뮤니티 > W_이야기
			case "g44": url = "/W_Class/Imagine/List.aspx?from=WC_D_04"; break;	//	W_class라운지 > W_커뮤니티 > W_고객상상

			case "h": url = MALL_HTTP_URL + "/ShoppingMall/Default.aspx?from=SM"; break;	//	쇼핑몰			case "h1": url = MALL_HTTP_URL + "/ShoppingMall/Default.aspx?from=SM_A"; break;	//	쇼핑몰 > 코웨이몰
			case "h11": url = MALL_HTTP_URL + "/Shoppingmall/OwnMall/ProductList.aspx?from=SM_A_01&C1=19"; break;	//	쇼핑몰 > 코웨이몰 > 코웨이정수기
			case "h12": url = MALL_HTTP_URL + "/Shoppingmall/OwnMall/ProductList.aspx?from=SM_A_02&C1=20"; break;	//	쇼핑몰 > 코웨이몰 > 케어스공기청정기			case "h13": url = MALL_HTTP_URL + "/Shoppingmall/OwnMall/ProductList.aspx?from=SM_A_03&C1=21"; break;	//	쇼핑몰 > 코웨이몰 > 룰루비데
			case "h14": url = MALL_HTTP_URL + "/Shoppingmall/OwnMall/ProductList.aspx?from=SM_A_04&C1=22"; break;	//	쇼핑몰 > 코웨이몰 > 룰루연수기			case "h15": url = MALL_HTTP_URL + "/Shoppingmall/OwnMall/ProductList.aspx?from=SM_A_05&C1=23"; break;	//	쇼핑몰 > 코웨이몰 > 클리베음식물처리기			case "h16": url = MALL_HTTP_URL + "/Shoppingmall/OwnMall/bussellist.aspx?from=&C1=25"; break;	//	쇼핑몰 > 코웨이몰 > 뷔셀
			case "h17": url = MALL_HTTP_URL + "/Shoppingmall/OwnMall/ProductList.aspx?from=SM_A_06&C1=98"; break;	//	쇼핑몰 > 코웨이몰 > 기타
			case "h18": url = MALL_HTTP_URL + "/ShoppingMall/OwnMall/ContPackage.aspx?from="; break;	//	쇼핑몰 > 코웨이몰 > 패키지할인
			case "h19": url = MALL_HTTP_URL + "/ShoppingMall/OwnMall/ContGroup.aspx?from=SM_A_07"; break;	//	쇼핑몰 > 코웨이몰 > 단체할인
			case "h110": url = MALL_HTTP_URL + "/Shoppingmall/OwnMall/RefurbList.aspx?from=SM_A_08&C1=28"; break;	//	쇼핑몰 > 코웨이몰 > 리퍼브상품
			case "h111": url = MALL_HTTP_URL + "/Shoppingmall/OwnMall/Coupon.aspx?from=SM_A_09"; break;	//	쇼핑몰 > 코웨이몰 > 대박쿠폰몰
			case "h2": url = MALL_HTTP_URL + "/ShoppingMall/Ownmall/MyShopping.aspx?from=SM_B"; break;	//	쇼핑몰 > 마이쇼핑
			case "h21": url = MALL_HTTP_URL + "/ShoppingMall/OwnMall/orderlist.aspx?from=SM_B_01"; break;	//	쇼핑몰 > 마이쇼핑 > 나의주문정보
			case "h21-a": url = MALL_HTTP_URL + "/ShoppingMall/OwnMall/orderlist.aspx?from=SM_B_01_1"; break;	//	쇼핑몰 > 마이쇼핑 > 나의주문정보 > 주문/배송조회
			case "h21-b": url = MALL_HTTP_URL + "/ShoppingMall/OwnMall/ordercancel.aspx?from=SM_B_01_2"; break;	//	쇼핑몰 > 마이쇼핑 > 나의주문정보 > 주문취소/반품/교환
			case "h21-c": url = MALL_HTTP_URL + "/ShoppingMall/OwnMall/wishlist.aspx?from=SM_B_01_3"; break;	//	쇼핑몰 > 마이쇼핑 > 나의주문정보 > 관심상품			case "h21-d": url = MALL_HTTP_URL + "/ShoppingMall/OwnMall/ReceiptList.aspx?from=SM_B_01_4"; break;	//	쇼핑몰 > 마이쇼핑 > 나의주문정보 > 영수증
			case "h22": url = MALL_HTTP_URL + "/ShoppingMall/OwnMall/CounselingList.aspx?from=SM_B_02"; break;	//	쇼핑몰 > 마이쇼핑 > 나의 활동내역
			case "h22-a": url = MALL_HTTP_URL + "/ShoppingMall/OwnMall/CounselingList.aspx?from=SM_B_02_1"; break;	//	쇼핑몰 > 마이쇼핑 > 나의 활동내역 > 전문가문의
			case "h22-b": url = MALL_HTTP_URL + "/ShoppingMall/OwnMall/MyReview.aspx?from=SM_B_02_2"; break;	//	쇼핑몰 > 마이쇼핑 > 나의 활동내역 > 상품리뷰
			case "h23": url = "{0}/member/carrot/member/login_modify.aspx?from=SM_B_03".Format(URL_COWAY); break;	//	쇼핑몰 > 마이쇼핑 > 회원정보
			case "h23-a": url = "{0}/member/carrot/member/login_modify.aspx?from=SM_B_03_1".Format(URL_COWAY); break;	//	쇼핑몰 > 마이쇼핑 > 회원정보 > 회원정보수정(개인)
			case "h23-b": url = "{0}/member/carrotcorp/login_modify.aspx?from=SM_B_03_2".Format(URL_COWAY); break;	//	쇼핑몰 > 마이쇼핑 > 회원정보 > 회원정보수정(사업자)
			case "h3": url = MALL_HTTP_URL + "/ShoppingMall/OwnMall/KitList.aspx?from=SM_B_04"; break;	//	쇼핑몰 > 장바구니/주문결제
			case "h4": url = MALL_HTTP_URL + "/ShoppingMall/OwnMall/ProductSearch.aspx?from=SM_B_05&C1=19"; break;	//	쇼핑몰 > 내게 맞는 상품찾기
			case "h5": url = MALL_HTTP_URL + "/ShoppingMall/OwnMall/ContPackage.aspx?from="; break;	//	쇼핑몰 > 패키지만들기			case "h6": url = MALL_HTTP_URL + "/ShoppingMall/Review/ReviewList.aspx?from=SM_B_06"; break;	//	쇼핑몰 > 제품리뷰
			
			case "k1":
			    url = "{0}/member/carrot/member/join_gate.aspx?from=RT_A_02".Format(URL_COWAY);
			    try{fnADWorksTargetMember();}catch(e){}
			    break; //  회원가입 하기
			case "k2": url = "{0}/member/carrot/member/pop_find_id.aspx?from=RT_A_04".Format(URL_COWAY); break;   //  아이디 찾기
			case "k3": url = "{0}/member/carrot/member/find_pwd_select.aspx?from=RT_A_05".Format(URL_COWAY); break;   //  비밀번호 찾기
		    case "k4": url = "{0}/member/carrot/member/privacy.aspx?from=RT_A_08".Format(URL_COWAY); break;  //  개인정보취급방침
		    case "k5": url = "{0}/member/carrot/member/service.aspx?from=RT_A_09".Format(URL_COWAY); break;  //  이용약관

		}
		location.href = url;
	});

	$.extend({
		getUrlVars: function(ishasopener, path){
			var vars = [], hash, hashes;
			if (path != undefined)
			    hashes = path.slice(path.indexOf('?') + 1).split('&');
			else if (ishasopener == undefined)
				hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
			else
				hashes = opener.location.href.slice(opener.location.href.indexOf('?') + 1).split('&');
				
			for(var i = 0; i < hashes.length; i++) {
				hash = hashes[i].split('=');
				vars.push(hash[0]);
				vars[hash[0]] = hash[1];
			}
			return vars;
		},
		getUrlVar: function(name, ishasopener, path){
			if (path != undefined)
			    return $.getUrlVars(ishasopener, path)[name];
			else if (ishasopener == undefined)
				return $.getUrlVars()[name];
			else
				return $.getUrlVars(ishasopener)[name];
		}
	});
	
	//	카드전표
    $.popCardBill = function(t) {
		var pbr = window.open("https://admin.kcp.co.kr/Modules/Sale/Card/ADSA_CARD_BILL_Receipt.jsp?c_trade_no={0}".Format(t), "_billPop", "width=390,height=680,scrollbars=yes,top=5,left=5");
		//pbr.resizeTo(440,680);
		pbr.focus();
	};

	//	현금영수증    $.popCashBill = function(t, o, b, n) {//사이트코드, 오더아이디_XX이런거, 'Y', '현금영수증승인번호'
		var pcr = window.open("https://admin.kcp.co.kr/Modules/Service/Cash/Cash_Bill_Common_View.jsp?term_id=PGNW{0}&orderid={1}&bill_yn={2}&authno={3}".Format(t,o,b,n), "_billPop", "width=420,height=670,scrollbars=yes,top=5,left=5");
		//pcr.resizeTo(420,670);
		//pcr.focus();
	};
	
	//	제휴 카테고리
	$.lastCate = {val: 0, text: "전체"}
	$.setcategory = function(cateset) {
		var cateconfig = {
			name : "ddlCate"
		,	maxlevel : 3
		,	url : function() {}
		,	type : ""
		,	path: ""
		}
		if (cateset) $.extend(cateconfig, cateset);
		
		$.categoryBind = function(settings) {
			var config = {
				data: []
			,	parent: 0
			,	name : cateconfig.name
			,	level : 0
			,	maxlevel : cateconfig.maxlevel
			,	css : "seltBasic"
			,	url : cateconfig.url
			,	issel : true
			,	type : cateconfig.type
			,	path: cateconfig.path
			}
			if (settings) $.extend(config, settings);
			
			var isCate = function(cate) {
				var b = false;
				$.each(config.path.split("|"), function() {
					var v = $.trim(this);
					if (v.length > 0) {
						if (v == cate) {
							b = true;
							return true;
						}
					}
				});
				return b;
			}
			
			var addCate = function() {
				var sel = $("select[name='" + config.name + "']").not("#" + config.name + "0");
				var select = $("<select class='" + config.css + "' transfer='true' id='" + config.name + config.level + "' name='" + config.name + "' />").bind("change", {name:config.name, level:config.level}, function(evt) {
					var v = $(this).val();
					var sel = $("select[name='" + config.name + "']").not("#" + config.name + "0");
					var newconfig = new Object();
					$.extend(newconfig, config);
					if (v == 0) {
						sel.next().remove(); sel.remove();
						$.extend(newconfig, {level: 0, css: "seltBasic", parent: v, issel: false});
					} else {
						if (config.level == 0) {
							sel.next().remove(); sel.remove();
						}
						$.extend(newconfig, {level: config.level+1, css: "seltBasic bgNone", parent: v, issel: true});
					}
					$.categoryBind(newconfig);
					
					var t = $(this).find("[selected=true]").text();
					config.url({name:config.name, level:config.level, val:v, text:t});
				});

				if (config.issel) {
					sel.filter("#" + select.attr("id")).remove();
					
					if (config.parent == 0) {
						$("<option />").attr({value: "0"}).text("전체").appendTo(select);
					}

					$.each(config.data, function(index) {
						$("<option />").attr({value: this.CATEID, selected: isCate(this.CATEID)}).text(this.CATENM).appendTo(select);
					});
					$(".topSelectBar").append(select);
				}
				
				switch (config.level) {
					case 0 :
						break;
					case 1 :
						select.attr("transfer", "false").hide();
						break;
					default :
						select.attr("transfer", "false").hide();
						if (config.maxlevel > config.level) {
							$("select[transfer='false'][name='" + config.name + "']").not(select).attr("transfer", "true").show();
						//	$(transferSelToDiv);
						}
				}
			};

			var subBind = function(attribute) {
				var defattr = {
					data: []
				,	parent: 0
				,	ulid : "ulSubCate"
				}
				if (settings) $.extend(defattr, attribute);
				var ul = $("#" + defattr.ulid);
				if (defattr.data.length > 0) {
					ul.html("");
					if (defattr.parent == 0) {
						$("<li><a href=\"0\">전체상품</a></li>").appendTo(ul);
					}
					$.each(defattr.data, function(index) {
						var li = $("<li><a href=\"" + this.CATEID + "\">" + this.CATENM + "</a></li>");
						if (this.CATEID == defattr.parent) {
							li.attr("class","on");
						}
						li.appendTo(ul);
					});
					
					ul.find("li").bind("click", {name:config.name, level:config.level}, function(evt) {
						evt.preventDefault();
						var v = $(this).children(0).attr("href");
						$("select[name='" + config.name + "']").find("option[value='"+v+"']").attr("selected", true).change();
						//cateconfig.url({name:config.name, level:config.level, val:$(this).children(0).attr("href"), text:$(this).children(0).text()});
						$(transferSelToDiv);
					});
				}
			};

			JsonAjaxRequest("GoodsView.aspx/getCatogoryList", "{parent:" + config.parent + "}", function(result) {
				config.data = result.d;
				if (config.level <= config.maxlevel) { addCate(config); }
				if (config.type == "") { subBind({data: config.data, parent:config.parent}); }
				$.lastCate.val = config.parent;
				$.lastCate.text = $("select[name='" + config.name + "']").find("option[value='"+config.parent+"']").text();
				//$(transferSelToDiv);
			}, false);
		};

		var n = 0;
		$.categoryBind({url: cateconfig.url, issel: cateconfig.issel, path: cateconfig.path, type: cateconfig.type, parent:0}); 
		n = n+1;
		$.each($.trim(cateconfig.path).split("|"), function(idx) {
			var v = $.trim(this);
			if (v.length > 0) {
				$.categoryBind({level: n, maxlevel: cateconfig.maxlevel, url: cateconfig.url, path: cateconfig.path, type: cateconfig.type, parent:v}); 
				n = n+1;
			}
		});
	};


    var IE = navigator.userAgent.indexOf("MSIE")!=-1 
    var favicon = { 
        change: function(iconURL) { 
            if (arguments.length == 2) { 
                document.title = optionalDocTitle} 
            this.addLink(iconURL, "icon") 
            this.addLink(iconURL, "shortcut icon") 
     
            // Google Chrome HACK - whenever an IFrame changes location  
            // (even to about:blank), it updates the favicon for some reason 
            // It doesn't work on Safari at all though :-( 
            if (!IE) { // Disable the IE "click" sound 
                if (!window.__IFrame) { 
                    __IFrame = document.createElement('iframe') 
                    var s = __IFrame.style 
                    s.height = s.width = s.left = s.top = s.border = 0 
                    s.position = 'absolute' 
                    s.visibility = 'hidden' 
                    document.body.appendChild(__IFrame)} 
                __IFrame.src = 'about:blank'}}, 
     
        addLink: function(iconURL, relValue) { 
            var link = document.createElement("link") 
            link.type = "image/x-icon" 
            link.rel = relValue 
            link.href = iconURL 
            this.removeLinkIfExists(relValue) 
            this.docHead.appendChild(link)}, 
     
        removeLinkIfExists: function(relValue) { 
            var links = this.docHead.getElementsByTagName("link"); 
            for (var i=0; i<links.length; i++) { 
                var link = links[i] 
                if (link.type == "image/x-icon" && link.rel == relValue) { 
                    this.docHead.removeChild(link) 
                    return}}}, // Assuming only one match at most. 
     
        docHead: document.head || document.getElementsByTagName('head')[0]
    }


			
    $.CheckFileExtension = function(settings) {
		var config = {
			object: $("form"),
			extension: /^(bmp|jpg|jpeg|gif|png|hwp|ppt|pptx|xls|xlsx|doc|docx|pdf|txt|zip)$/
		}
		if (settings) $.extend(config, settings);
		var ret = true;	
        //config.object.submit(function(evt) {
            $.each(config.object.find("input[type='file']"), function(i) {
                var t = $.trim($(this).val()).toLowerCase().split(".");
                if (t.length > 1) {
                    if (!config.extension.test(t[t.length-1])) {
                        alert('첨부파일은 bmp, jpg, jpeg, gif, png, hwp, ppt, pptx, xls, xlsx, doc, docx, pdf, txt, zip 파일만 올릴수 있습니다.');
                        ret = false;
                    }
                }
            });
        //});
        return ret;
    }
      
			
    $.CheckImgFileExtension = function(settings) {
		var config = {
			object: $("form"),
			extension: /^(bmp|jpg|jpeg|gif|png)$/
		}
		if (settings) $.extend(config, settings);
		var ret = true;	
        //config.object.submit(function(evt) {
            $.each(config.object.find("input[type='file']"), function(i) {
                var t = $.trim($(this).val()).toLowerCase().split(".");
                if (t.length > 1) {
                    if (!config.extension.test(t[t.length-1])) {
                        alert('첨부파일은 bmp, jpg, jpeg, gif, png 파일만 올릴수 있습니다.');
                        ret = false;
                    }
                }
            });
        //});
        return ret;
    }
    
    $(function() {
        favicon.change("/images/common/payfree_icon.ico");
    }); 
    
    $.fn.ProxyClick = function() {
        $(this).unbind().removeAttr("onclick").attr({href: "#"}).click(function(evt) {
            evt.preventDefault();
            alert("대리 사용자 화면에서는 연결되지 않습니다.");
        });
    }
    
    
    $.IsLogin = function(settings) {
        var bRet = false;
        var config = {
                go: false,
                msg: '',
                url : "/Login/Logout.aspx?login_url={0}/member/carrot/member/login.aspx?url=".Format(URL_COWAY) + encodeURIComponent(location.href)
            }
        if (settings) $.extend(config, settings);
        JsonAjaxRequest("/Default.aspx/IsLogin", "{}", function(req) {
            bRet = req.d;
        }, false);
        if (!bRet) {
            if (config.go) {
                if (config.msg.length > 0) { alert(config.msg); }
                if (config.url.length > 0) { location.href =  config.url; }
            }
        }
        return bRet;
    }
    
    $.IsLoginMemberVip = function() {
        var bRet = false;
        JsonAjaxRequest("/W_Class/Main.aspx/getVipMember", "{}", function(req) {
            if (req.d.vip == "VIP" || req.d.vip == "VVIP") {
                bRet = true;
            }
        }, false);
        return bRet;
    }
    
    $.IsPersonRegularMember = function() {
        var bRet = false;
        JsonAjaxRequest("/Default.aspx/IsPersonRegularMember", "{}", function(req) {
            bRet = req.d;
        }, false);
        return bRet;
    }
    
    $.IsPersonWebMember = function() {
        var bRet = false;
        JsonAjaxRequest("/Default.aspx/IsPersonWebMember", "{}", function(req) {
            bRet = req.d;
        }, false);
        return bRet;
    }
    
    $.AdLogPayfreeInsert = function(no, step) {
        JsonAjaxRequest("/ShoppingMall/OwnMall/data/ProductData.aspx/SetAdLogPayfreeInsert", "{nProdSeq: {0}, strStep: '{1}'}".Format(no, step), function(result) {}, false);
    }
    
    $('a[href*="ProductView.aspx"]').live('click', function(evt) {
        //evt.preventDefault();
        var self = $(this);
        var path = self.attr('href');
        var no = $.getUrlVar('seq', false, path);
        if (no != undefined) {
            $.AdLogPayfreeInsert(no, 'A');
        }
    });
    
    $.download = function(path, no) {
        var url = "/Common/File/DownLoad.aspx?path={0}&no={1}".Format(escape(path), (typeof no != "undefined" ? no : 0));
		var frm = $('<iframe></iframe>').appendTo("body");
		frm.attr({src: url});//.remove();
	};
	
	
	$.fn.cycleBanner = function(settings) {
	    var config = { fx: 'shuffle', startingSlide: 0, speed: 500, timeout: 5000, pager: null, prev: null, next: null, before: null, after: null, updateActivePagerLink: null,
	        pagerEvent: 'mouseenter',
	        prevNextEvent: 'mouseenter'
	    }
        if (settings) $.extend(config, settings);   // cleartype: false,
        $(this).cycle({ fx: config.fx, startingSlide: config.startingSlide, speed: config.speed, timeout: config.timeout, pager: config.pager, prev: config.prev, next: config.next, before: config.before, after: config.after, pagerEvent: config.pagerEvent+'.cycle', prevNextEvent: config.prevNextEvent+'.cycle',
            updateActivePagerLink: config.updateActivePagerLink, requeueOnImageNotLoaded: false
        }).find('a').click(function(evt) {
            var self = $(this), url = self.attr('href');
            if (self.attr('ispop')) {
            
                evt.preventDefault();
                var w = 775;
                if (self.attr('width')) {
                    w = self.attr('width');
                };
                var h = 720;
                if (self.attr('height')) {
                    w = self.attr('height');
                };
                var bannerPop = window.open(url, "bannerPop", "width={0}, height={1}, scrollbars=yes".Format(w, h));
                bannerPop.focus();
            }
        });
        return this;
	};
	
	
	$.openWindow = function(url, name, featrues, center) {
	    var config = { 
	        width: 100,
	        height: 100,
	        top: 0,
	        left: 0,
            directories: 'no',
            menubar: 'no',
            resizable: 'no',
            scrollbars: 'auto',
            status: 'no',
            toolbar: 'no'
	    }
        if (featrues) $.extend(config, featrues);
	    if (center) {
	        config.top = (screen.height/2)-(config.height/2);//($(window).height() - config.height) / 2;
	        config.left = (screen.width/2)-(config.width/2);//($(window).width() - config.width) / 2;
	        //config.screenY = config.top;
	        //config.screenX = config.left;
	    }
	    
        var p = [];
        $.each(config, function(k, v) {
            p.push('{0}={1}'.Format(k, v));
        });

        var newwin = window.open(url, name, p.join(','));
        if (window.focus) { newwin.focus(); };
        return newwin;
    };
	
	$.checkPhoneNumber = function(val) {
	    var regExp = /^(01[016789]{1}|02|0[3-9]{1}[0-9]{1})-?[0-9]{3,4}-?[0-9]{4}$/;
	    return regExp.test(val);
	};
	
	$.fn.insertFlash = function(settings) {
	    var config = {
	        url: '',
	        id: '',
	        width: 100,
	        height: 100,
	        wmode: 'window'
	    };
	    $.extend(config, settings);

        var f = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="' + config.width + '" height="' + config.height + '" id="' + config.id + '" align="middle">'
        + '	<param name="allowScriptAccess" value="always">'
        + '	<param name="movie" value="' + config.url + '">'
        + '	<param name="wmode" value="' + config.wmode + '">'
        + '	<param name="quality" value="high">'
        + '	<param name="bgcolor" value="#ffffff">'
        + '	<embed src="' + config.url + '" quality="high" wmode="' + config.wmode + '" bgcolor="#ffffff" width="' + config.width + '" height="' + config.height + '" id="' + config.id + '_embed" name="' + config.id + '" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">'
        + '</object>';

        $(this).empty().append(f);
        return this;
    };
	
})(jQuery);


/************************************************************************
함수명		: String.href();
작성목적	: 웹페이지 이동 (location.href 문제해결)
작 성 자	: 김호동
최초작성일	: 2009.10.30
최종작성일	:
수정내역	:
*************************************************************************/
String.prototype.href = function() {
    if($.browser.msie) {
        $("body").append("<a href='"+this+"' id='tempAlink'></a>");
        $("#tempAlink")[0].click();
    } else {
        location.href = this;
    }
};

/*
* jQuery JSON Plugin
* version: 2.1 (2009-08-14)
*
* This document is licensed as free software under the terms of the
* MIT License: http://www.opensource.org/licenses/mit-license.php
*
* Brantley Harris wrote this plugin. It is based somewhat on the JSON.org 
* website's http://www.json.org/json2.js, which proclaims:
* "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that
* I uphold.
*
* It is also influenced heavily by MochiKit's serializeJSON, which is 
* copyrighted 2005 by Bob Ippolito.
*/

(function($) {
    /** jQuery.toJSON( json-serializble )
    Converts the given argument into a JSON respresentation.

        If an object has a "toJSON" function, that will be used to get the representation.
    Non-integer/string keys are skipped in the object, as are keys that point to a function.

        json-serializble:
    The *thing* to be converted.
    **/
    $.toJSON = function(o) {
        if (typeof (JSON) == 'object' && JSON.stringify) {
            return JSON.stringify(o);
        }
        var type = typeof (o);

        if (o === null)
            return "";

        if (type == "undefined")
            return undefined;

        if (type == "number" || type == "boolean")
            return o + "";

        if (type == "string")
            return $.quoteString(o);

        if (type == 'object') {
            if (typeof o.toJSON == "function")
                return $.toJSON(o.toJSON());

            if (o.constructor === Date) {
                var month = o.getUTCMonth() + 1;
                if (month < 10) month = '0' + month;

                var day = o.getUTCDate();
                if (day < 10) day = '0' + day;

                var year = o.getUTCFullYear();

                var hours = o.getUTCHours();
                if (hours < 10) hours = '0' + hours;

                var minutes = o.getUTCMinutes();
                if (minutes < 10) minutes = '0' + minutes;

                var seconds = o.getUTCSeconds();
                if (seconds < 10) seconds = '0' + seconds;

                var milli = o.getUTCMilliseconds();
                if (milli < 100) milli = '0' + milli;
                if (milli < 10) milli = '0' + milli;

                return '"' + year + '-' + month + '-' + day + 'T' +
                             hours + ':' + minutes + ':' + seconds +
                             '.' + milli + 'Z"';
            }

            if (o.constructor === Array) {
                var ret = [];
                for (var i = 0; i < o.length; i++)
                    ret.push($.toJSON(o[i]) || "null");

                return "[" + ret.join(",") + "]";
            }

            var pairs = [];
            for (var k in o) {
                var name;
                var type = typeof k;

                if (type == "number")
                    name = '"' + k + '"';
                else if (type == "string")
                    name = $.quoteString(k);
                else
                    continue;  //skip non-string or number keys

                if (typeof o[k] == "function")
                    continue;  //skip pairs where the value is a function.

                var val = $.toJSON(o[k]);

                pairs.push(name + ":" + val);
            }

            return "{" + pairs.join(", ") + "}";
        }
    };

    /** jQuery.evalJSON(src)
    Evaluates a given piece of json source.
    **/
    $.evalJSON = function(src) {
        if (typeof (JSON) == 'object' && JSON.parse)
            return JSON.parse(src);
        return eval("(" + src + ")");
    };

    /** jQuery.secureEvalJSON(src)
    Evals JSON in a way that is *more* secure.
    **/
    $.secureEvalJSON = function(src) {
        if (typeof (JSON) == 'object' && JSON.parse)
            return JSON.parse(src);

        var filtered = src;
        filtered = filtered.replace(/\\["\\\/bfnrtu]/g, '@');
        filtered = filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']');
        filtered = filtered.replace(/(?:^|:|,)(?:\s*\[)+/g, '');

        if (/^[\],:{}\s]*$/.test(filtered))
            return eval("(" + src + ")");
        else
            throw new SyntaxError("Error parsing JSON, source is not valid.");
    };

    /** jQuery.quoteString(string)
    Returns a string-repr of a string, escaping quotes intelligently.  
    Mostly a support function for toJSON.
    
    Examples:
    >>> jQuery.quoteString("apple")
    "apple"
        
    >>> jQuery.quoteString('"Where are we going?", she asked.')
    "\"Where are we going?\", she asked."
    **/
    $.quoteString = function(string) {
        if (string.match(_escapeable)) {
            return '"' + string.replace(_escapeable, function(a) {
                var c = _meta[a];
                if (typeof c === 'string') return c;
                c = a.charCodeAt();
                return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
            }) + '"';
        }
        return '"' + string + '"';
    };

    var _escapeable = /["\\\x00-\x1f\x7f-\x9f]/g;

    var _meta = {
        '\b': '\\b',
        '\t': '\\t',
        '\n': '\\n',
        '\f': '\\f',
        '\r': '\\r',
        '"': '\\"',
        '\\': '\\\\'
    };
})(jQuery);

(function($){var ver="2.99";if($.support==undefined){$.support={opacity:!($.browser.msie)};}function debug(s){$.fn.cycle.debug&&log(s);}function log(){window.console&&console.log&&console.log("[cycle] "+Array.prototype.join.call(arguments," "));}$.expr[":"].paused=function(el){return el.cyclePause;};$.fn.cycle=function(options,arg2){var o={s:this.selector,c:this.context};if(this.length===0&&options!="stop"){if(!$.isReady&&o.s){log("DOM not ready, queuing slideshow");$(function(){$(o.s,o.c).cycle(options,arg2);});return this;}log("terminating; zero elements found by selector"+($.isReady?"":" (DOM not ready)"));return this;}return this.each(function(){var opts=handleArguments(this,options,arg2);if(opts===false){return;}opts.updateActivePagerLink=opts.updateActivePagerLink||$.fn.cycle.updateActivePagerLink;if(this.cycleTimeout){clearTimeout(this.cycleTimeout);}this.cycleTimeout=this.cyclePause=0;var $cont=$(this);var $slides=opts.slideExpr?$(opts.slideExpr,this):$cont.children();var els=$slides.get();if(els.length<2){log("terminating; too few slides: "+els.length);return;}var opts2=buildOptions($cont,$slides,els,opts,o);if(opts2===false){return;}var startTime=opts2.continuous?10:getTimeout(els[opts2.currSlide],els[opts2.nextSlide],opts2,!opts2.backwards);if(startTime){startTime+=(opts2.delay||0);if(startTime<10){startTime=10;}debug("first timeout: "+startTime);this.cycleTimeout=setTimeout(function(){go(els,opts2,0,!opts.backwards);},startTime);}});};function handleArguments(cont,options,arg2){if(cont.cycleStop==undefined){cont.cycleStop=0;}if(options===undefined||options===null){options={};}if(options.constructor==String){switch(options){case"destroy":case"stop":var opts=$(cont).data("cycle.opts");if(!opts){return false;}cont.cycleStop++;if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);}cont.cycleTimeout=0;$(cont).removeData("cycle.opts");if(options=="destroy"){destroy(opts);}return false;case"toggle":cont.cyclePause=(cont.cyclePause===1)?0:1;checkInstantResume(cont.cyclePause,arg2,cont);return false;case"pause":cont.cyclePause=1;return false;case"resume":cont.cyclePause=0;checkInstantResume(false,arg2,cont);return false;case"prev":case"next":var opts=$(cont).data("cycle.opts");if(!opts){log('options not found, "prev/next" ignored');return false;}$.fn.cycle[options](opts);return false;default:options={fx:options};}return options;}else{if(options.constructor==Number){var num=options;options=$(cont).data("cycle.opts");if(!options){log("options not found, can not advance slide");return false;}if(num<0||num>=options.elements.length){log("invalid slide index: "+num);return false;}options.nextSlide=num;if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);cont.cycleTimeout=0;}if(typeof arg2=="string"){options.oneTimeFx=arg2;}go(options.elements,options,1,num>=options.currSlide);return false;}}return options;function checkInstantResume(isPaused,arg2,cont){if(!isPaused&&arg2===true){var options=$(cont).data("cycle.opts");if(!options){log("options not found, can not resume");return false;}if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);cont.cycleTimeout=0;}go(options.elements,options,1,!options.backwards);}}}function removeFilter(el,opts){if(!$.support.opacity&&opts.cleartype&&el.style.filter){try{el.style.removeAttribute("filter");}catch(smother){}}}function destroy(opts){if(opts.next){$(opts.next).unbind(opts.prevNextEvent);}if(opts.prev){$(opts.prev).unbind(opts.prevNextEvent);}if(opts.pager||opts.pagerAnchorBuilder){$.each(opts.pagerAnchors||[],function(){this.unbind().remove();});}opts.pagerAnchors=null;if(opts.destroy){opts.destroy(opts);}}function buildOptions($cont,$slides,els,options,o){var opts=$.extend({},$.fn.cycle.defaults,options||{},$.metadata?$cont.metadata():$.meta?$cont.data():{});if(opts.autostop){opts.countdown=opts.autostopCount||els.length;}var cont=$cont[0];$cont.data("cycle.opts",opts);opts.$cont=$cont;opts.stopCount=cont.cycleStop;opts.elements=els;opts.before=opts.before?[opts.before]:[];opts.after=opts.after?[opts.after]:[];if(!$.support.opacity&&opts.cleartype){opts.after.push(function(){removeFilter(this,opts);});}if(opts.continuous){opts.after.push(function(){go(els,opts,0,!opts.backwards);});}saveOriginalOpts(opts);if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){clearTypeFix($slides);}if($cont.css("position")=="static"){$cont.css("position","relative");}if(opts.width){$cont.width(opts.width);}if(opts.height&&opts.height!="auto"){$cont.height(opts.height);}if(opts.startingSlide){opts.startingSlide=parseInt(opts.startingSlide);}else{if(opts.backwards){opts.startingSlide=els.length-1;}}if(opts.random){opts.randomMap=[];for(var i=0;i<els.length;i++){opts.randomMap.push(i);}opts.randomMap.sort(function(a,b){return Math.random()-0.5;});opts.randomIndex=1;opts.startingSlide=opts.randomMap[1];}else{if(opts.startingSlide>=els.length){opts.startingSlide=0;}}opts.currSlide=opts.startingSlide||0;var first=opts.startingSlide;$slides.css({position:"absolute",top:0,left:0}).hide().each(function(i){var z;if(opts.backwards){z=first?i<=first?els.length+(i-first):first-i:els.length-i;}else{z=first?i>=first?els.length-(i-first):first-i:els.length-i;}$(this).css("z-index",z);});$(els[first]).css("opacity",1).show();removeFilter(els[first],opts);if(opts.fit&&opts.width){$slides.width(opts.width);}if(opts.fit&&opts.height&&opts.height!="auto"){$slides.height(opts.height);}var reshape=opts.containerResize&&!$cont.innerHeight();if(reshape){var maxw=0,maxh=0;for(var j=0;j<els.length;j++){var $e=$(els[j]),e=$e[0],w=$e.outerWidth(),h=$e.outerHeight();if(!w){w=e.offsetWidth||e.width||$e.attr("width");}if(!h){h=e.offsetHeight||e.height||$e.attr("height");}maxw=w>maxw?w:maxw;maxh=h>maxh?h:maxh;}if(maxw>0&&maxh>0){$cont.css({width:maxw+"px",height:maxh+"px"});}}if(opts.pause){$cont.hover(function(){this.cyclePause++;},function(){this.cyclePause--;});}if(supportMultiTransitions(opts)===false){return false;}var requeue=false;options.requeueAttempts=options.requeueAttempts||0;$slides.each(function(){var $el=$(this);this.cycleH=(opts.fit&&opts.height)?opts.height:($el.height()||this.offsetHeight||this.height||$el.attr("height")||0);this.cycleW=(opts.fit&&opts.width)?opts.width:($el.width()||this.offsetWidth||this.width||$el.attr("width")||0);if($el.is("img")){var loadingIE=($.browser.msie&&this.cycleW==28&&this.cycleH==30&&!this.complete);var loadingFF=($.browser.mozilla&&this.cycleW==34&&this.cycleH==19&&!this.complete);var loadingOp=($.browser.opera&&((this.cycleW==42&&this.cycleH==19)||(this.cycleW==37&&this.cycleH==17))&&!this.complete);var loadingOther=(this.cycleH==0&&this.cycleW==0&&!this.complete);if(loadingIE||loadingFF||loadingOp||loadingOther){if(o.s&&opts.requeueOnImageNotLoaded&&++options.requeueAttempts<100){log(options.requeueAttempts," - img slide not loaded, requeuing slideshow: ",this.src,this.cycleW,this.cycleH);setTimeout(function(){$(o.s,o.c).cycle(options);},opts.requeueTimeout);requeue=true;return false;}else{log("could not determine size of image: "+this.src,this.cycleW,this.cycleH);}}}return true;});if(requeue){return false;}opts.cssBefore=opts.cssBefore||{};opts.cssAfter=opts.cssAfter||{};opts.cssFirst=opts.cssFirst||{};opts.animIn=opts.animIn||{};opts.animOut=opts.animOut||{};$slides.not(":eq("+first+")").css(opts.cssBefore);$($slides[first]).css(opts.cssFirst);if(opts.timeout){opts.timeout=parseInt(opts.timeout);if(opts.speed.constructor==String){opts.speed=$.fx.speeds[opts.speed]||parseInt(opts.speed);}if(!opts.sync){opts.speed=opts.speed/2;}var buffer=opts.fx=="none"?0:opts.fx=="shuffle"?500:250;while((opts.timeout-opts.speed)<buffer){opts.timeout+=opts.speed;}}if(opts.easing){opts.easeIn=opts.easeOut=opts.easing;}if(!opts.speedIn){opts.speedIn=opts.speed;}if(!opts.speedOut){opts.speedOut=opts.speed;}opts.slideCount=els.length;opts.currSlide=opts.lastSlide=first;if(opts.random){if(++opts.randomIndex==els.length){opts.randomIndex=0;}opts.nextSlide=opts.randomMap[opts.randomIndex];}else{if(opts.backwards){opts.nextSlide=opts.startingSlide==0?(els.length-1):opts.startingSlide-1;}else{opts.nextSlide=opts.startingSlide>=(els.length-1)?0:opts.startingSlide+1;}}if(!opts.multiFx){var init=$.fn.cycle.transitions[opts.fx];if($.isFunction(init)){init($cont,$slides,opts);}else{if(opts.fx!="custom"&&!opts.multiFx){log("unknown transition: "+opts.fx,"; slideshow terminating");return false;}}}var e0=$slides[first];if(opts.before.length){opts.before[0].apply(e0,[e0,e0,opts,true]);}if(opts.after.length){opts.after[0].apply(e0,[e0,e0,opts,true]);}if(opts.next){$(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,1);});}if(opts.prev){$(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,0);});}if(opts.pager||opts.pagerAnchorBuilder){buildPager(els,opts);}exposeAddSlide(opts,els);return opts;}function saveOriginalOpts(opts){opts.original={before:[],after:[]};opts.original.cssBefore=$.extend({},opts.cssBefore);opts.original.cssAfter=$.extend({},opts.cssAfter);opts.original.animIn=$.extend({},opts.animIn);opts.original.animOut=$.extend({},opts.animOut);$.each(opts.before,function(){opts.original.before.push(this);});$.each(opts.after,function(){opts.original.after.push(this);});}function supportMultiTransitions(opts){var i,tx,txs=$.fn.cycle.transitions;if(opts.fx.indexOf(",")>0){opts.multiFx=true;opts.fxs=opts.fx.replace(/\s*/g,"").split(",");for(i=0;i<opts.fxs.length;i++){var fx=opts.fxs[i];tx=txs[fx];if(!tx||!txs.hasOwnProperty(fx)||!$.isFunction(tx)){log("discarding unknown transition: ",fx);opts.fxs.splice(i,1);i--;}}if(!opts.fxs.length){log("No valid transitions named; slideshow terminating.");return false;}}else{if(opts.fx=="all"){opts.multiFx=true;opts.fxs=[];for(p in txs){tx=txs[p];if(txs.hasOwnProperty(p)&&$.isFunction(tx)){opts.fxs.push(p);}}}}if(opts.multiFx&&opts.randomizeEffects){var r1=Math.floor(Math.random()*20)+30;for(i=0;i<r1;i++){var r2=Math.floor(Math.random()*opts.fxs.length);opts.fxs.push(opts.fxs.splice(r2,1)[0]);}debug("randomized fx sequence: ",opts.fxs);}return true;}function exposeAddSlide(opts,els){opts.addSlide=function(newSlide,prepend){var $s=$(newSlide),s=$s[0];if(!opts.autostopCount){opts.countdown++;}els[prepend?"unshift":"push"](s);if(opts.els){opts.els[prepend?"unshift":"push"](s);}opts.slideCount=els.length;$s.css("position","absolute");$s[prepend?"prependTo":"appendTo"](opts.$cont);if(prepend){opts.currSlide++;opts.nextSlide++;}if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){clearTypeFix($s);}if(opts.fit&&opts.width){$s.width(opts.width);}if(opts.fit&&opts.height&&opts.height!="auto"){$s.height(opts.height);}s.cycleH=(opts.fit&&opts.height)?opts.height:$s.height();s.cycleW=(opts.fit&&opts.width)?opts.width:$s.width();$s.css(opts.cssBefore);if(opts.pager||opts.pagerAnchorBuilder){$.fn.cycle.createPagerAnchor(els.length-1,s,$(opts.pager),els,opts);}if($.isFunction(opts.onAddSlide)){opts.onAddSlide($s);}else{$s.hide();}};}$.fn.cycle.resetState=function(opts,fx){fx=fx||opts.fx;opts.before=[];opts.after=[];opts.cssBefore=$.extend({},opts.original.cssBefore);opts.cssAfter=$.extend({},opts.original.cssAfter);opts.animIn=$.extend({},opts.original.animIn);opts.animOut=$.extend({},opts.original.animOut);opts.fxFn=null;$.each(opts.original.before,function(){opts.before.push(this);});$.each(opts.original.after,function(){opts.after.push(this);});var init=$.fn.cycle.transitions[fx];if($.isFunction(init)){init(opts.$cont,$(opts.elements),opts);}};function go(els,opts,manual,fwd){if(manual&&opts.busy&&opts.manualTrump){debug("manualTrump in go(), stopping active transition");$(els).stop(true,true);opts.busy=0;}if(opts.busy){debug("transition active, ignoring new tx request");return;}var p=opts.$cont[0],curr=els[opts.currSlide],next=els[opts.nextSlide];if(p.cycleStop!=opts.stopCount||p.cycleTimeout===0&&!manual){return;}if(!manual&&!p.cyclePause&&!opts.bounce&&((opts.autostop&&(--opts.countdown<=0))||(opts.nowrap&&!opts.random&&opts.nextSlide<opts.currSlide))){if(opts.end){opts.end(opts);}return;}var changed=false;if((manual||!p.cyclePause)&&(opts.nextSlide!=opts.currSlide)){changed=true;var fx=opts.fx;curr.cycleH=curr.cycleH||$(curr).height();curr.cycleW=curr.cycleW||$(curr).width();next.cycleH=next.cycleH||$(next).height();next.cycleW=next.cycleW||$(next).width();if(opts.multiFx){if(opts.lastFx==undefined||++opts.lastFx>=opts.fxs.length){opts.lastFx=0;}fx=opts.fxs[opts.lastFx];opts.currFx=fx;}if(opts.oneTimeFx){fx=opts.oneTimeFx;opts.oneTimeFx=null;}$.fn.cycle.resetState(opts,fx);if(opts.before.length){$.each(opts.before,function(i,o){if(p.cycleStop!=opts.stopCount){return;}o.apply(next,[curr,next,opts,fwd]);});}var after=function(){opts.busy=0;$.each(opts.after,function(i,o){if(p.cycleStop!=opts.stopCount){return;}o.apply(next,[curr,next,opts,fwd]);});};debug("tx firing("+fx+"); currSlide: "+opts.currSlide+"; nextSlide: "+opts.nextSlide);opts.busy=1;if(opts.fxFn){opts.fxFn(curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}else{if($.isFunction($.fn.cycle[opts.fx])){$.fn.cycle[opts.fx](curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}else{$.fn.cycle.custom(curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}}}if(changed||opts.nextSlide==opts.currSlide){opts.lastSlide=opts.currSlide;if(opts.random){opts.currSlide=opts.nextSlide;if(++opts.randomIndex==els.length){opts.randomIndex=0;}opts.nextSlide=opts.randomMap[opts.randomIndex];if(opts.nextSlide==opts.currSlide){opts.nextSlide=(opts.currSlide==opts.slideCount-1)?0:opts.currSlide+1;}}else{if(opts.backwards){var roll=(opts.nextSlide-1)<0;if(roll&&opts.bounce){opts.backwards=!opts.backwards;opts.nextSlide=1;opts.currSlide=0;}else{opts.nextSlide=roll?(els.length-1):opts.nextSlide-1;opts.currSlide=roll?0:opts.nextSlide+1;}}else{var roll=(opts.nextSlide+1)==els.length;if(roll&&opts.bounce){opts.backwards=!opts.backwards;opts.nextSlide=els.length-2;opts.currSlide=els.length-1;}else{opts.nextSlide=roll?0:opts.nextSlide+1;opts.currSlide=roll?els.length-1:opts.nextSlide-1;}}}}if(changed&&opts.pager){opts.updateActivePagerLink(opts.pager,opts.currSlide,opts.activePagerClass);}var ms=0;if(opts.timeout&&!opts.continuous){ms=getTimeout(els[opts.currSlide],els[opts.nextSlide],opts,fwd);}else{if(opts.continuous&&p.cyclePause){ms=10;}}if(ms>0){p.cycleTimeout=setTimeout(function(){go(els,opts,0,!opts.backwards);},ms);}}$.fn.cycle.updateActivePagerLink=function(pager,currSlide,clsName){$(pager).each(function(){$(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);});};function getTimeout(curr,next,opts,fwd){if(opts.timeoutFn){var t=opts.timeoutFn.call(curr,curr,next,opts,fwd);while(opts.fx!="none"&&(t-opts.speed)<250){t+=opts.speed;}debug("calculated timeout: "+t+"; speed: "+opts.speed);if(t!==false){return t;}}return opts.timeout;}$.fn.cycle.next=function(opts){advance(opts,1);};$.fn.cycle.prev=function(opts){advance(opts,0);};function advance(opts,moveForward){var val=moveForward?1:-1;var els=opts.elements;var p=opts.$cont[0],timeout=p.cycleTimeout;if(timeout){clearTimeout(timeout);p.cycleTimeout=0;}if(opts.random&&val<0){opts.randomIndex--;if(--opts.randomIndex==-2){opts.randomIndex=els.length-2;}else{if(opts.randomIndex==-1){opts.randomIndex=els.length-1;}}opts.nextSlide=opts.randomMap[opts.randomIndex];}else{if(opts.random){opts.nextSlide=opts.randomMap[opts.randomIndex];}else{opts.nextSlide=opts.currSlide+val;if(opts.nextSlide<0){if(opts.nowrap){return false;}opts.nextSlide=els.length-1;}else{if(opts.nextSlide>=els.length){if(opts.nowrap){return false;}opts.nextSlide=0;}}}}var cb=opts.onPrevNextEvent||opts.prevNextClick;if($.isFunction(cb)){cb(val>0,opts.nextSlide,els[opts.nextSlide]);}go(els,opts,1,moveForward);return false;}function buildPager(els,opts){var $p=$(opts.pager);$.each(els,function(i,o){$.fn.cycle.createPagerAnchor(i,o,$p,els,opts);});opts.updateActivePagerLink(opts.pager,opts.startingSlide,opts.activePagerClass);}$.fn.cycle.createPagerAnchor=function(i,el,$p,els,opts){var a;if($.isFunction(opts.pagerAnchorBuilder)){a=opts.pagerAnchorBuilder(i,el);debug("pagerAnchorBuilder("+i+", el) returned: "+a);}else{a='<a href="#">'+(i+1)+"</a>";}if(!a){return;}var $a=$(a);if($a.parents("body").length===0){var arr=[];if($p.length>1){$p.each(function(){var $clone=$a.clone(true);$(this).append($clone);arr.push($clone[0]);});$a=$(arr);}else{$a.appendTo($p);}}opts.pagerAnchors=opts.pagerAnchors||[];opts.pagerAnchors.push($a);$a.bind(opts.pagerEvent,function(e){e.preventDefault();opts.nextSlide=i;var p=opts.$cont[0],timeout=p.cycleTimeout;if(timeout){clearTimeout(timeout);p.cycleTimeout=0;}var cb=opts.onPagerEvent||opts.pagerClick;if($.isFunction(cb)){cb(opts.nextSlide,els[opts.nextSlide]);}go(els,opts,1,opts.currSlide<i);});if(!/^click/.test(opts.pagerEvent)&&!opts.allowPagerClickBubble){$a.bind("click.cycle",function(){return false;});}if(opts.pauseOnPagerHover){$a.hover(function(){opts.$cont[0].cyclePause++;},function(){opts.$cont[0].cyclePause--;});}};$.fn.cycle.hopsFromLast=function(opts,fwd){var hops,l=opts.lastSlide,c=opts.currSlide;if(fwd){hops=c>l?c-l:opts.slideCount-l;}else{hops=c<l?l-c:l+opts.slideCount-c;}return hops;};function clearTypeFix($slides){debug("applying clearType background-color hack");function hex(s){s=parseInt(s).toString(16);return s.length<2?"0"+s:s;}function getBg(e){for(;e&&e.nodeName.toLowerCase()!="html";e=e.parentNode){var v=$.css(e,"background-color");if(v&&v.indexOf("rgb")>=0){var rgb=v.match(/\d+/g);return"#"+hex(rgb[0])+hex(rgb[1])+hex(rgb[2]);}if(v&&v!="transparent"){return v;}}return"#ffffff";}$slides.each(function(){$(this).css("background-color",getBg(this));});}$.fn.cycle.commonReset=function(curr,next,opts,w,h,rev){$(opts.elements).not(curr).hide();if(typeof opts.cssBefore.opacity=="undefined"){opts.cssBefore.opacity=1;}opts.cssBefore.display="block";if(opts.slideResize&&w!==false&&next.cycleW>0){opts.cssBefore.width=next.cycleW;}if(opts.slideResize&&h!==false&&next.cycleH>0){opts.cssBefore.height=next.cycleH;}opts.cssAfter=opts.cssAfter||{};opts.cssAfter.display="none";$(curr).css("zIndex",opts.slideCount+(rev===true?1:0));$(next).css("zIndex",opts.slideCount+(rev===true?0:1));};$.fn.cycle.custom=function(curr,next,opts,cb,fwd,speedOverride){var $l=$(curr),$n=$(next);var speedIn=opts.speedIn,speedOut=opts.speedOut,easeIn=opts.easeIn,easeOut=opts.easeOut;$n.css(opts.cssBefore);if(speedOverride){if(typeof speedOverride=="number"){speedIn=speedOut=speedOverride;}else{speedIn=speedOut=1;}easeIn=easeOut=null;}var fn=function(){$n.animate(opts.animIn,speedIn,easeIn,function(){cb();});};$l.animate(opts.animOut,speedOut,easeOut,function(){$l.css(opts.cssAfter);if(!opts.sync){fn();}});if(opts.sync){fn();}};$.fn.cycle.transitions={fade:function($cont,$slides,opts){$slides.not(":eq("+opts.currSlide+")").css("opacity",0);opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.cssBefore.opacity=0;});opts.animIn={opacity:1};opts.animOut={opacity:0};opts.cssBefore={top:0,left:0};}};$.fn.cycle.ver=function(){return ver;};$.fn.cycle.defaults={activePagerClass:"activeSlide",after:null,allowPagerClickBubble:false,animIn:null,animOut:null,autostop:0,autostopCount:0,backwards:false,before:null,cleartype:!$.support.opacity,cleartypeNoBg:false,containerResize:1,continuous:0,cssAfter:null,cssBefore:null,delay:0,easeIn:null,easeOut:null,easing:null,end:null,fastOnEvent:0,fit:0,fx:"fade",fxFn:null,height:"auto",manualTrump:true,next:null,nowrap:0,onPagerEvent:null,onPrevNextEvent:null,pager:null,pagerAnchorBuilder:null,pagerEvent:"click.cycle",pause:0,pauseOnPagerHover:0,prev:null,prevNextEvent:"click.cycle",random:0,randomizeEffects:1,requeueOnImageNotLoaded:true,requeueTimeout:250,rev:0,shuffle:null,slideExpr:null,slideResize:1,speed:1000,speedIn:null,speedOut:null,startingSlide:0,sync:1,timeout:4000,timeoutFn:null,updateActivePagerLink:null};})(jQuery);
(function($){$.fn.cycle.transitions.none=function($cont,$slides,opts){opts.fxFn=function(curr,next,opts,after){$(next).show();$(curr).hide();after();};};$.fn.cycle.transitions.fadeout=function($cont,$slides,opts){$slides.not(":eq("+opts.currSlide+")").css({display:"block",opacity:1});opts.before.push(function(curr,next,opts,w,h,rev){$(curr).css("zIndex",opts.slideCount+(!rev===true?1:0));$(next).css("zIndex",opts.slideCount+(!rev===true?0:1));});opts.animIn.opacity=1;opts.animOut.opacity=0;opts.cssBefore.opacity=1;opts.cssBefore.display="block";opts.cssAfter.zIndex=0;};$.fn.cycle.transitions.scrollUp=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var h=$cont.height();opts.cssBefore.top=h;opts.cssBefore.left=0;opts.cssFirst.top=0;opts.animIn.top=0;opts.animOut.top=-h;};$.fn.cycle.transitions.scrollDown=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var h=$cont.height();opts.cssFirst.top=0;opts.cssBefore.top=-h;opts.cssBefore.left=0;opts.animIn.top=0;opts.animOut.top=h;};$.fn.cycle.transitions.scrollLeft=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var w=$cont.width();opts.cssFirst.left=0;opts.cssBefore.left=w;opts.cssBefore.top=0;opts.animIn.left=0;opts.animOut.left=0-w;};$.fn.cycle.transitions.scrollRight=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var w=$cont.width();opts.cssFirst.left=0;opts.cssBefore.left=-w;opts.cssBefore.top=0;opts.animIn.left=0;opts.animOut.left=w;};$.fn.cycle.transitions.scrollHorz=function($cont,$slides,opts){$cont.css("overflow","hidden").width();opts.before.push(function(curr,next,opts,fwd){if(opts.rev){fwd=!fwd;}$.fn.cycle.commonReset(curr,next,opts);opts.cssBefore.left=fwd?(next.cycleW-1):(1-next.cycleW);opts.animOut.left=fwd?-curr.cycleW:curr.cycleW;});opts.cssFirst.left=0;opts.cssBefore.top=0;opts.animIn.left=0;opts.animOut.top=0;};$.fn.cycle.transitions.scrollVert=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push(function(curr,next,opts,fwd){if(opts.rev){fwd=!fwd;}$.fn.cycle.commonReset(curr,next,opts);opts.cssBefore.top=fwd?(1-next.cycleH):(next.cycleH-1);opts.animOut.top=fwd?curr.cycleH:-curr.cycleH;});opts.cssFirst.top=0;opts.cssBefore.left=0;opts.animIn.top=0;opts.animOut.left=0;};$.fn.cycle.transitions.slideX=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$(opts.elements).not(curr).hide();$.fn.cycle.commonReset(curr,next,opts,false,true);opts.animIn.width=next.cycleW;});opts.cssBefore.left=0;opts.cssBefore.top=0;opts.cssBefore.width=0;opts.animIn.width="show";opts.animOut.width=0;};$.fn.cycle.transitions.slideY=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$(opts.elements).not(curr).hide();$.fn.cycle.commonReset(curr,next,opts,true,false);opts.animIn.height=next.cycleH;});opts.cssBefore.left=0;opts.cssBefore.top=0;opts.cssBefore.height=0;opts.animIn.height="show";opts.animOut.height=0;};$.fn.cycle.transitions.shuffle=function($cont,$slides,opts){var i,w=$cont.css("overflow","visible").width();$slides.css({left:0,top:0});opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,true,true);});if(!opts.speedAdjusted){opts.speed=opts.speed/2;opts.speedAdjusted=true;}opts.random=0;opts.shuffle=opts.shuffle||{left:-w,top:15};opts.els=[];for(i=0;i<$slides.length;i++){opts.els.push($slides[i]);}for(i=0;i<opts.currSlide;i++){opts.els.push(opts.els.shift());}opts.fxFn=function(curr,next,opts,cb,fwd){if(opts.rev){fwd=!fwd;}var $el=fwd?$(curr):$(next);$(next).css(opts.cssBefore);var count=opts.slideCount;$el.animate(opts.shuffle,opts.speedIn,opts.easeIn,function(){var hops=$.fn.cycle.hopsFromLast(opts,fwd);for(var k=0;k<hops;k++){fwd?opts.els.push(opts.els.shift()):opts.els.unshift(opts.els.pop());}if(fwd){for(var i=0,len=opts.els.length;i<len;i++){$(opts.els[i]).css("z-index",len-i+count);}}else{var z=$(curr).css("z-index");$el.css("z-index",parseInt(z)+1+count);}$el.animate({left:0,top:0},opts.speedOut,opts.easeOut,function(){$(fwd?this:curr).hide();if(cb){cb();}});});};$.extend(opts.cssBefore,{display:"block",opacity:1,top:0,left:0});};$.fn.cycle.transitions.turnUp=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false);opts.cssBefore.top=next.cycleH;opts.animIn.height=next.cycleH;opts.animOut.width=next.cycleW;});opts.cssFirst.top=0;opts.cssBefore.left=0;opts.cssBefore.height=0;opts.animIn.top=0;opts.animOut.height=0;};$.fn.cycle.transitions.turnDown=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false);opts.animIn.height=next.cycleH;opts.animOut.top=curr.cycleH;});opts.cssFirst.top=0;opts.cssBefore.left=0;opts.cssBefore.top=0;opts.cssBefore.height=0;opts.animOut.height=0;};$.fn.cycle.transitions.turnLeft=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true);opts.cssBefore.left=next.cycleW;opts.animIn.width=next.cycleW;});opts.cssBefore.top=0;opts.cssBefore.width=0;opts.animIn.left=0;opts.animOut.width=0;};$.fn.cycle.transitions.turnRight=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true);opts.animIn.width=next.cycleW;opts.animOut.left=curr.cycleW;});$.extend(opts.cssBefore,{top:0,left:0,width:0});opts.animIn.left=0;opts.animOut.width=0;};$.fn.cycle.transitions.zoom=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,false,true);opts.cssBefore.top=next.cycleH/2;opts.cssBefore.left=next.cycleW/2;$.extend(opts.animIn,{top:0,left:0,width:next.cycleW,height:next.cycleH});$.extend(opts.animOut,{width:0,height:0,top:curr.cycleH/2,left:curr.cycleW/2});});opts.cssFirst.top=0;opts.cssFirst.left=0;opts.cssBefore.width=0;opts.cssBefore.height=0;};$.fn.cycle.transitions.fadeZoom=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,false);opts.cssBefore.left=next.cycleW/2;opts.cssBefore.top=next.cycleH/2;$.extend(opts.animIn,{top:0,left:0,width:next.cycleW,height:next.cycleH});});opts.cssBefore.width=0;opts.cssBefore.height=0;opts.animOut.opacity=0;};$.fn.cycle.transitions.blindX=function($cont,$slides,opts){var w=$cont.css("overflow","hidden").width();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.animIn.width=next.cycleW;opts.animOut.left=curr.cycleW;});opts.cssBefore.left=w;opts.cssBefore.top=0;opts.animIn.left=0;opts.animOut.left=w;};$.fn.cycle.transitions.blindY=function($cont,$slides,opts){var h=$cont.css("overflow","hidden").height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.animIn.height=next.cycleH;opts.animOut.top=curr.cycleH;});opts.cssBefore.top=h;opts.cssBefore.left=0;opts.animIn.top=0;opts.animOut.top=h;};$.fn.cycle.transitions.blindZ=function($cont,$slides,opts){var h=$cont.css("overflow","hidden").height();var w=$cont.width();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.animIn.height=next.cycleH;opts.animOut.top=curr.cycleH;});opts.cssBefore.top=h;opts.cssBefore.left=w;opts.animIn.top=0;opts.animIn.left=0;opts.animOut.top=h;opts.animOut.left=w;};$.fn.cycle.transitions.growX=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true);opts.cssBefore.left=this.cycleW/2;opts.animIn.left=0;opts.animIn.width=this.cycleW;opts.animOut.left=0;});opts.cssBefore.top=0;opts.cssBefore.width=0;};$.fn.cycle.transitions.growY=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false);opts.cssBefore.top=this.cycleH/2;opts.animIn.top=0;opts.animIn.height=this.cycleH;opts.animOut.top=0;});opts.cssBefore.height=0;opts.cssBefore.left=0;};$.fn.cycle.transitions.curtainX=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true,true);opts.cssBefore.left=next.cycleW/2;opts.animIn.left=0;opts.animIn.width=this.cycleW;opts.animOut.left=curr.cycleW/2;opts.animOut.width=0;});opts.cssBefore.top=0;opts.cssBefore.width=0;};$.fn.cycle.transitions.curtainY=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false,true);opts.cssBefore.top=next.cycleH/2;opts.animIn.top=0;opts.animIn.height=next.cycleH;opts.animOut.top=curr.cycleH/2;opts.animOut.height=0;});opts.cssBefore.height=0;opts.cssBefore.left=0;};$.fn.cycle.transitions.cover=function($cont,$slides,opts){var d=opts.direction||"left";var w=$cont.css("overflow","hidden").width();var h=$cont.height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);if(d=="right"){opts.cssBefore.left=-w;}else{if(d=="up"){opts.cssBefore.top=h;}else{if(d=="down"){opts.cssBefore.top=-h;}else{opts.cssBefore.left=w;}}}});opts.animIn.left=0;opts.animIn.top=0;opts.cssBefore.top=0;opts.cssBefore.left=0;};$.fn.cycle.transitions.uncover=function($cont,$slides,opts){var d=opts.direction||"left";var w=$cont.css("overflow","hidden").width();var h=$cont.height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,true,true);if(d=="right"){opts.animOut.left=w;}else{if(d=="up"){opts.animOut.top=-h;}else{if(d=="down"){opts.animOut.top=h;}else{opts.animOut.left=-w;}}}});opts.animIn.left=0;opts.animIn.top=0;opts.cssBefore.top=0;opts.cssBefore.left=0;};$.fn.cycle.transitions.toss=function($cont,$slides,opts){var w=$cont.css("overflow","visible").width();var h=$cont.height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,true,true);if(!opts.animOut.left&&!opts.animOut.top){$.extend(opts.animOut,{left:w*2,top:-h/2,opacity:0});}else{opts.animOut.opacity=0;}});opts.cssBefore.left=0;opts.cssBefore.top=0;opts.animIn.left=0;};$.fn.cycle.transitions.wipe=function($cont,$slides,opts){var w=$cont.css("overflow","hidden").width();var h=$cont.height();opts.cssBefore=opts.cssBefore||{};var clip;if(opts.clip){if(/l2r/.test(opts.clip)){clip="rect(0px 0px "+h+"px 0px)";}else{if(/r2l/.test(opts.clip)){clip="rect(0px "+w+"px "+h+"px "+w+"px)";}else{if(/t2b/.test(opts.clip)){clip="rect(0px "+w+"px 0px 0px)";}else{if(/b2t/.test(opts.clip)){clip="rect("+h+"px "+w+"px "+h+"px 0px)";}else{if(/zoom/.test(opts.clip)){var top=parseInt(h/2);var left=parseInt(w/2);clip="rect("+top+"px "+left+"px "+top+"px "+left+"px)";}}}}}}opts.cssBefore.clip=opts.cssBefore.clip||clip||"rect(0px 0px 0px 0px)";var d=opts.cssBefore.clip.match(/(\d+)/g);var t=parseInt(d[0]),r=parseInt(d[1]),b=parseInt(d[2]),l=parseInt(d[3]);opts.before.push(function(curr,next,opts){if(curr==next){return;}var $curr=$(curr),$next=$(next);$.fn.cycle.commonReset(curr,next,opts,true,true,false);opts.cssAfter.display="block";var step=1,count=parseInt((opts.speedIn/13))-1;(function f(){var tt=t?t-parseInt(step*(t/count)):0;var ll=l?l-parseInt(step*(l/count)):0;var bb=b<h?b+parseInt(step*((h-b)/count||1)):h;var rr=r<w?r+parseInt(step*((w-r)/count||1)):w;$next.css({clip:"rect("+tt+"px "+rr+"px "+bb+"px "+ll+"px)"});(step++<=count)?setTimeout(f,13):$curr.css("display","none");})();});$.extend(opts.cssBefore,{display:"block",opacity:1,top:0,left:0});opts.animIn={left:0};opts.animOut={left:0};};})(jQuery);

//var clear="/image/shop/common/clear.gif"; //path to clear.gif

//document.write('<script type="text/javascript" id="ct" defer="defer" src="javascript:void(0)"><\/script>');var ct=document.getElementById("ct");ct.onreadystatechange=function(){pngfix()};pngfix=function(){var els=document.getElementsByTagName('*'),ip=/\.png/i,al="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='",i=els.length,uels=new Array(),c=0;while(i-->0){if(els[i].className.match(/unitPng/)){uels[c]=els[i];c++;}}if(uels.length==0)pfx(els);else pfx(uels);function pfx(els){i=els.length;while(i-->0){var el=els[i],es=el.style,elc=el.currentStyle,elb=elc.backgroundImage;if(el.src&&el.src.match(ip)&&!es.filter){es.height=el.height;es.width=el.width;es.filter=al+el.src+"',sizingMethod='crop')";el.src=clear;}else{if(elb.match(ip)){var path=elb.split('"'),rep=(elc.backgroundRepeat=='no-repeat')?'crop':'scale',elkids=el.getElementsByTagName('*'),j=elkids.length;es.filter=al+path[1]+"',sizingMethod='"+rep+"')";es.height=el.clientHeight+'px';es.backgroundImage='none';if(j!=0){if(elc.position!="absolute")es.position='static';while(j-->0)if(!elkids[j].style.position)elkids[j].style.position="relative";}}}}}}
