﻿function InStr(strSearch, charSearchFor) {
    var sLen = charSearchFor.length;
    for (i = 0; i < strSearch.length; i++) {
        if (charSearchFor == strSearch.substring(i, i + sLen)) {
            return i;
        }
    }
    return -1;
};

function format_number(val) {
    b = val + "c"
    c = b.length
    a = b.substr(0, c - 1)
    b = a.length; c = b / 3; f = Math.floor(b / 3); d = Math.round((c - f) * 3); e = Math.round((c - f) * 3)
    f = new Array
    for (i = 0; i <= c; i++) {
        if (i == 0) { ds = a.substr(0, d) }
        else if (i == 1) { ds = a.substr(e, d) }
        else { e = e + 3; ds = a.substr(e, d) }
        f[i] = ds; d = 3
    }
    str = f.join(","); str2 = str.substr(0, 1); if (str2 == ",") { str = str.substr(1, b + c); }
    return str;
}


var loading = function(id_) {
    if (!id_ && loading.div) {
        loading.div.parentNode.removeChild(loading.div);
        loading.div = null;
        return;
    }
    var div = loading.div = loading.div || document.createElement("DIV"),
		elem = document.getElementById(id_),
		height = elem.offsetHeight + 200;
    div.style.marginTop = -height + "px";
    div.style.height = height + "px";
    div.className = "loading";
    elem.appendChild(div);
};

var unloading = function(id_) {
    if (!id_ && loading.div) {
        loading.div.parentNode.removeChild(loading.div);
        loading.div = null;
        return;
    }
    var div = loading.div = loading.div || document.createElement("DIV"),
		elem = document.getElementById(id_)
    div.className = "loading";
    elem.removeChild(div);
};

/* CHECK LOGIN */
var checkLogin = function (func_, type_) {
    $.ajax({
        type: "POST",
        url: "/inc_/check_login.aspx",
        data: "",
        dataType: "html",
        success: function (msg) {
            if (msg) {
                if (func_ && func_.constructor == Function)
                    func_();
            } else {
                var param = type_ || "";
                jAlert('checkLogin', '', '', function (r) {
                    if (r) {
                        window.open('/membership/membership_login.aspx' + param, 'login', 'width=409px, height=375px, menubar=no, scrollbars=no, status=no, toolbar=no, location=no');
                    }
                });
                return false;
            }
        }
    });
    return false;
};

/* vitamin check */
var vitaminCheck = function (func_, quantity_) {
    $.ajax({
        type: "POST",
        url: "/inc_/check_vitamin.aspx",
        data: "",
        dataType: "html",
        success: function (msg) {

            if ((msg * 1) >= (quantity_ * 1)) {
                if (func_ && func_.constructor == Function)
                    func_();
            } else {
                alert("보유하신 비타민이 부족합니다.                 ");
                return false;
            }
        }
    });
    return false;
};


/* paging 관련 사용 */
function foo(datas) {
    var msg = "Argument List\n\n";
    for (var key in datas) {
        msg += ((key == datas[datas.zPagingKey]) ? "(*) " : "") + "datas." + key + " = (" + (typeof datas[key]) + ") " + datas[key] + "\n";
    }
    msg += "\nGo to " + datas.zPage + " page."; // Or use datas.[datas.zPagingKey]
    //alert(msg);
}
/* 상품 확대 보기 */

//$(document).ready(function () {
//    $(".fancyBox_prd").each(function () {
//        var id_ = $(this).attr("id");

//        $("a[rel=" + id_ + "]").fancybox({
//            'transitionIn': 'none',
//            'transitionOut': 'none',
//            'titlePosition': 'over',
//            'titleFormat': function (title, currentArray, currentIndex, currentOpts) {

//            }
//        });
//    });
//});

/* 상품 간략 보기 */
var prdDetail_view = function (_str) {
    window.open('/inc_/productDetail_popup.aspx?PID=' + _str, 'productDetail', 'width=780px, height=500px, menubar=no, scrollbars=yes, status=no, toolbar=no, location=no');
    return false;
};


/* 장바구니 담기 */
var addCart = function (prdNo_) {
    $.ajax({
        type: "POST",
        url: "/shopping/cart_add.aspx",
        data: "prdNo=" + prdNo_ + "&prdCnt=1&optionNum=0",
        dataType: "script",
        success: function () {
            jAlert('cart', '', '', function (r) {
                if (r) {
                    document.location.href = "/shopping/cart_list.aspx";
                }
            });
        }

    });
    return false;
};

/* 위시리스트 담기 */
var addWishlist = function (prdNo_) {
    checkLogin(function () {
        $.ajax({
            type: "POST",
            url: "/shopping/wishlist_add.aspx",
            data: "prdNo=" + prdNo_ + "&type=add",
            dataType: "script",
            success: function (val_) {
                if (val_ == "1") {
                    alert("이미 위시리스트에 담긴 상품입니다.");
                    return false;
                }
                else if (val_ == "2") {
                    alert("위시리스트에 30개이상의 상품을 담을 수 없습니다. \n삭제하신 후 담아주시기 바랍니다.");
                    return false;
                }
                else {
                    jAlert('wishlist', '', '', function (r) {
                        if (r) {
                            document.location.href = "/shopping/wishlist.aspx";
                        }
                    });
                }
            }
        });
        return false;
    });
    return false;
};

/* 상품 재고 체크 */
var sotck_check = function (func_, data_) {
    $.ajax({
        type: "POST",
        url: "/shopping/product_stockChk.aspx",
        data: data_,
        dataType: "script",
        success: function (msg) {
            if (msg == "1") {
                alert("상품의 재고가 없습니다.");
                return false;
            }
            else if (msg == "2") {
                alert("주문하신 상품의 수량이 재고수량보다 많습니다.");
                return false;
            }
            else {
                if (func_ && func_.constructor == Function)
                    func_();
            }
        }
    });
};

/* 쿠폰 받기 */

var get_coupon = function (couponNum, prdNo) {
    checkLogin(function () {
        $.ajax({
            type: "POST",
            url: "/inc_/getCoupon.aspx",
            data: "couponNum=" + couponNum + "&prdNo=" + prdNo,
            dataType: "script",
            success: function (val_) {
                if (val_ == "1") {
                    alert("이미 쿠폰을 다운받았습니다.");
                    return false;
                }
                else {
                    jAlert('getCoupon', '', '');
                    return false;
                }
            }
        });
    });
};

/* 공백체크 */
var chk_trim = function (strSource) {
    re = /^\s+|\s+$/g;
    return strSource.replace(re, '');
};

/* 질문과 답변 Q&A로 이동 */
var toQuestion = function () {
    checkLogin(function () {
        location.href = '/cs_center/toQuestion.aspx';
    }, "?type=toQuestion");
};

/* 나의 상품 질문 내역으로 이동 */
var info_goods = function () {
    checkLogin(function () {
        window.open('/mypage/myI_prdInquiry.aspx', "_blank");
    }, "?type=prdInquiry");
};

/* 나의 이벤트 참여 내역 내역으로 이동 */
var info_myEvent = function () {
    checkLogin(function () {
        location.href = '/mypage/myC_event.aspx';
    }, "?type=myEvent");
};

/* 쿠폰으로 이동 */
var toCoupon = function () {
    checkLogin(function () {
        location.href = '/mypage/myItem_coupon.aspx';
    }, "?type=toCoupon");
};

/* 적립금으로 이동 */
var toPoint = function () {
    checkLogin(function () {
        location.href = '/mypage/myItem_point.aspx';
    }, "?type=toPoint");
};

/* 비타민 페이지로 이동 */
var toVitamin = function () {
    checkLogin(function () {
        location.href = '/mypage/myItem_vitaminList.aspx';
    }, "?type=toVitamin");
};


/* 이미지 자동 리사이징 */
var autoImgResize = function (obj, maxSize) {

    obj.each(function () {
        var width = 0, height = 0;
        width = parseInt($(this).attr("width"), 10) || parseInt($(this).css("width"), 10);
        height = parseInt($(this).attr("height"), 10) || parseInt($(this).css("height"), 10);
        if (width > maxSize) $(this).css({ width: maxSize + "px", height: Math.round(height * (maxSize / width)) + "px" });
    });
}
/* 날자 반환 */
var fn_GetDate = function (sep) {

    var separator = sep || "";
    var dt = new Date();
    var arrDate = new Array();

    var date = dt.getDate();
    var month = dt.getMonth() + 1;

    arrDate[0] = dt.getFullYear();
    arrDate[1] = month.toString().length < 2 ? month = "0" + month : month;
    arrDate[2] = date.toString().length < 2 ? date = "0" + date : date;

    return arrDate.join(separator);
};

/* 복사하기 */
var _copy = function (_val) {
    var IE=(document.all)?true:false;
    if (IE) {
        window.clipboardData.setData("Text", _val);
    } else {
        temp = prompt("Ctrl+C를 눌러 클립보드로 복사하세요", _val);
    }
};

/* 쿠키적용 */
var setSaveCookie = function (name, value, expiredays) {
    var today = new Date();
    today.setDate(today.getDate() + expiredays);
    document.cookie = name + "=" + escape(value) + "; path=/; expires=" + today.toGMTString() + ";"
};

/* ------------------------------------------------------------------------
slider	
------------------------------------------------------------------------- */
(function ($) {

    $.fn.sSlider = function (options) {

        // default configuration properties
        var defaults = {
            btnSlider: true,
            btnEnabled: '<img src="http://img.wizwell.co.kr/Design/images/main/icon_spot_on.jpg" width="4" height="4" border="0">',
            btnDisabled: '<img src="http://img.wizwell.co.kr/Design/images/main/icon_spot_off.jpg" width="4" height="4" border="0">',
            sliderClass: 'sliderBtn',
            btnId: "icon_spot",
            prevId: 'prevBtn',
            prevText: 'Previous',
            prevShow: false,
            nextId: 'nextBtn',
            nextText: 'Next',
            nextShow: false,
            controlsShow: true,
            controlsBefore: '',
            controlsAfter: '',
            controlsFade: true,
            speed: 300,
            auto: true,
            pause: 3000,
            continuous: true
        };

        var options = $.extend(defaults, options);

        this.each(function () {
            var obj = $(this);
            var s = $("li", obj).length;
            var w = $("li", obj).width();
            var h = $("li", obj).height();
            obj.width(w);
            obj.height(h);
            obj.css("overflow", "hidden");
            var ts = s - 1;
            var t = 0;
            $("ul", obj).css('width', s * w);
            if (!options.vertical) $("li", obj).css('float', 'left');

            if (options.controlsShow) {
                var html = options.controlsBefore;
                if (options.btnSlider) {
                    html += '<span class="' + options.sliderClass + '"><a href=\"javascript:void(0);\">' + options.btnEnabled + '</a></span>';
                    for (var y = 1; y < s; y++) {
                        html += '<span class="' + options.sliderClass + '"><a href=\"javascript:void(0);\">' + options.btnDisabled + '</a></span>';
                    }
                }
                if (options.prevShow) html += ' <span id="' + options.prevId + '"><a href=\"javascript:void(0);\">' + options.prevText + '</a></span>';
                if (options.nextShow) html += ' <span id="' + options.nextId + '"><a href=\"javascript:void(0);\">' + options.nextText + '</a></span>';
                html += options.controlsAfter;
                if (options.btnSlider) {
                    $("#" + options.btnId + "").html(html);
                }
                else {
                    $(obj).before(html);
                }
            };

            $("a", "#" + options.nextId).click(function () {
                animate("next", true);
            });
            $("a", "#" + options.prevId).click(function () {
                animate("prev", true);
            });
            $("a", "." + options.sliderClass).mouseover(function () {
                var idx = $("a", "." + options.sliderClass).index(this);
                animate("btnOver", true, idx);
            });
            $("a", "." + options.sliderClass).mouseout(function () {
                timeout = setTimeout(function () {
                    animate("next", false);
                }, options.pause)
            });

            $("a", "#" + options.nextId).mouseout(function () {
                timeout = setTimeout(function () {
                    animate("next", false);
                }, options.pause)
            });

            $("a", "#" + options.prevId).mouseout(function () {
                timeout = setTimeout(function () {
                    animate("next", false);
                }, options.pause)
            });

            function animate(dir, clicked, idx) {
                var ot = t;
                switch (dir) {
                    case "next":
                        t = (ot >= ts) ? (options.continuous ? 0 : ts) : t + 1;
                        break;
                    case "prev":
                        t = (t <= 0) ? (options.continuous ? ts : 0) : t - 1;
                        break;
                    case "btnOver":
                        t = idx;
                        break;
                    default:
                        break;
                };

                var diff = Math.abs(ot - t);
                var speed = diff * options.speed;
                if (!options.vertical) {
                    p = (t * w * -1);
                    $("ul", obj).animate(
						{ marginLeft: p },
						speed
					);
                } else {
                    p = (t * h * -1);
                    $("ul", obj).animate(
						{ marginTop: p },
						speed
					);
                };

                if (options.btnSlider && dir == "next") {
                    $("." + options.sliderClass + "").each(function () {
                        var off = $(this).children("a").children("img").attr("src").replace(/_on.jpg$/gi, "_off.jpg");
                        $(this).children("a").children("img").attr("src", off);
                    });

                    var _tabIdx = $("." + options.sliderClass + "").eq(t).children("a").children("img");
                    var on = _tabIdx.attr("src").replace(/_off.jpg$/gi, "_on.jpg");
                    _tabIdx.attr("src", on);
                }

                if (options.btnSlider && clicked) {
                    $("." + options.sliderClass + "").each(function () {
                        var off = $(this).children("a").children("img").attr("src").replace(/_on.jpg$/gi, "_off.jpg");
                        $(this).children("a").children("img").attr("src", off);
                    });

                    var _tabIdx = $("." + options.sliderClass + "").eq(t).children("a").children("img")
                    var on = _tabIdx.attr("src").replace(/_off.jpg$/gi, "_on.jpg");
                    _tabIdx.attr("src", on);
                }

                if (!options.continuous && options.controlsFade) {
                    if (t == ts) {
                        $("a", "#" + options.nextId).hide();
                        $("a", "#" + options.lastId).hide();
                    } else {
                        $("a", "#" + options.nextId).show();
                        $("a", "#" + options.lastId).show();
                    };
                    if (t == 0) {
                        $("a", "#" + options.prevId).hide();
                        $("a", "#" + options.firstId).hide();
                    } else {
                        $("a", "#" + options.prevId).show();
                        $("a", "#" + options.firstId).show();
                    };
                };

                if (clicked) clearTimeout(timeout);
                if (options.auto && (dir == "next") && !clicked) {
                    ;
                    timeout = setTimeout(function () {
                        animate("next", false);
                    }, diff * options.speed + options.pause);
                };

            };
            // init
            var timeout;
            if (options.auto) {
                ;
                timeout = setTimeout(function () {
                    animate("next", false);
                }, options.pause);
            };
        });

    };

})(jQuery);


/*플래시 사용 <!-- 레이어 사용 플래시 LayerFlashPassive --> */
/*플래시 사용 <!-- 표준 사이즈 지정 플래시 GnxFlashActivate --> */

function autoBlur() {
    if (event.srcElement.tagName == "A" || event.srcElement.tagName == "IMG")
        document.body.focus();
}

document.onfocusin = autoBlur;

function resizeElement($id, $prop, $pixel) {
    var obj = document.getElementById($id);
    obj.style[$prop] = $pixel + "px";

}

function GnxFlashActivate(strFlashUrl, n4Witdh, n4Height, strWmode, strIdClassName, strFlashvar) {
    //width,height 여부 & 묶음 (width,height가 없을때는 0 으로 선언)
    if (n4Witdh != 0) {
        objSize_attribute = " width='" + n4Witdh + "' height='" + n4Height + "'";
    } else {
        objSize_attribute = "";
    }
    //class 여부 & id 여부 (class & ID 셀렉터가 없을때는 0 으로 선언)
    if (strIdClassName != 0) {
        className_attribute = " class='" + strIdClassName + "'";

        objId_attribute = " id='" + strIdClassName + "'";
        objId_IE_attribute = " id='" + strIdClassName + "'";
    } else {
        className_attribute = "";

        objId_attribute = "";
        objId_IE_attribute = "";
    }
    //wmode 여부 (wmode가 없을때는 0 으로 선언)
    if (strWmode == 1) {
        wmode_param = "<param name='wmode' value='window' />";
        wmode_attribute = " wmode='window'";
    } else {
        wmode_param = "<param name='wmode' value='transparent' />";
        wmode_attribute = " wmode='transparent'";
    }
    //Flashvar 여부 (wmode가 없을때는 0 으로 선언)
    if (strFlashvar != 0) {
        Flashvar_param = "<param name='flashvars' value='" + strFlashvar + "' />";
        Flashvar_attribute = " Flashvars='" + strFlashvar + "'";
    } else {
        Flashvar_param = "";
        Flashvar_attribute = "";
    }
    document.writeln("<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' " + objSize_attribute + objId_IE_attribute + className_attribute + ">");
    document.writeln("<param name='movie' value='" + strFlashUrl + "' />");
    document.writeln("<param name='quality' value='high' />");
    document.writeln("<param name='allowScriptAccess' value='always' />");
    document.writeln(wmode_param);
    document.writeln(Flashvar_param);
    document.writeln(" <param name='allowFullScreen' value='true' />");
    document.writeln("<!-- Hixie method -->");
    document.writeln("<!--[if !IE]> <-->");
    document.writeln("<objec" + "t type='application/x-shockwave-flash' data='" + strFlashUrl + "'" + Flashvar_attribute + objSize_attribute + objId_attribute + wmode_attribute + className_attribute + "></object>");
    document.writeln("<!--> <![endif]-->");
    document.writeln("</obje" + "ct>");
}

var appName = navigator.appName; 								//**	브라우저명
var appVersion = parseFloat(navigator.appVersion.split("MSIE")[1]); //**	브라우저 버전
var appCheck = true;
//alert(appVersion);
if (appName != "Microsoft Internet Explorer" || appVersion < 6) {
    if (appVersion >= 7) appCheck = true;
}


function LayerFlashPassive(strFlashUrl, strIdClassName) {
    document.writeln(" <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='100%' height='100%' id='" + strIdClassName + "' align='middle'>");
    document.writeln("	<param name='allowScriptAccess' value='sameDomain' />");
    document.writeln(" <param name='allowFullScreen' value='false' />");
    document.writeln("	<param name='movie' value='" + strFlashUrl + "' />");
    document.writeln("	<param name='quality' value='high' />");
    document.writeln("	<param name='wmode' value='transparent' />");
    document.writeln(" <embed src='" + strFlashUrl + "' width='100%' height='100%' align='middle' quality='high' bgcolor='#ffffff' name='" + strIdClassName + "' allowscriptaccess='sameDomain' allowfullscreen='false' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />");
    document.writeln("</object>");

}


(function($) {
    $.cookie = function(key, value, options) {
        if (arguments.length > 1) {
            var o = $.extend({}, $.cookie.defaults, options);
            if (value === null || value === undefined) {
                value = '';
                o.expires = -1;
            }
            if (o.expires.constructor != Date) {
                var today = new Date();
                today.setDate(today.getDate() + o.expires);
                o.expires = today;
            }
            // Create the cookie string
            document.cookie =
    key + '=' + value +
    '; expires=' + o.expires.toUTCString() +
    (o.path ? '; path=' + (o.path) : '') +
    (o.domain ? '; domain=' + (o.domain) : '') +
    (o.secure ? '; secure' : '');
        } else {
            if (result = new RegExp(key + "=(.*?)(?:;|$)").exec(document.cookie))
                return decodeURIComponent(result[1]);
            return false;
        }
    };
    $.cookie.defaults = {
        expires: 365,
        path: '/'
    }
})(jQuery);


function fnReSize(ObjName) {
    try {
        var objBody = eval(ObjName + ".document.body");
        var objFrame = eval("document.all." + ObjName);

        ifrmHeight = objBody.scrollHeight + (objBody.offsetHeight - objBody.clientHeight);
        objFrame.style.width = '100%';
        $("#" + ObjName).height(ifrmHeight);
    } catch (e) {
        //alert(e.description);
    }
}

/*! SWFObject v2.1 <http://code.google.com/p/swfobject/>
Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/

var swfobject = function () {

    var UNDEF = "undefined",
		OBJECT = "object",
		SHOCKWAVE_FLASH = "Shockwave Flash",
		SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash",
		FLASH_MIME_TYPE = "application/x-shockwave-flash",
		EXPRESS_INSTALL_ID = "SWFObjectExprInst",

		win = window,
		doc = document,
		nav = navigator,

		domLoadFnArr = [],
		regObjArr = [],
		objIdArr = [],
		listenersArr = [],
		script,
		timer = null,
		storedAltContent = null,
		storedAltContentId = null,
		isDomLoaded = false,
		isExpressInstallActive = false;

    /* Centralized function for browser feature detection
    - Proprietary feature detection (conditional compiling) is used to detect Internet Explorer's features
    - User agent string detection is only used when no alternative is possible
    - Is executed directly for optimal performance
    */
    var ua = function () {
        var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF,
			playerVersion = [0, 0, 0],
			d = null;
        if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) {
            d = nav.plugins[SHOCKWAVE_FLASH].description;
            if (d && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+
                d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
                playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
                playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
                playerVersion[2] = /r/.test(d) ? parseInt(d.replace(/^.*r(.*)$/, "$1"), 10) : 0;
            }
        }
        else if (typeof win.ActiveXObject != UNDEF) {
            var a = null, fp6Crash = false;
            try {
                a = new ActiveXObject(SHOCKWAVE_FLASH_AX + ".7");
            }
            catch (e) {
                try {
                    a = new ActiveXObject(SHOCKWAVE_FLASH_AX + ".6");
                    playerVersion = [6, 0, 21];
                    a.AllowScriptAccess = "always";  // Introduced in fp6.0.47
                }
                catch (e) {
                    if (playerVersion[0] == 6) {
                        fp6Crash = true;
                    }
                }
                if (!fp6Crash) {
                    try {
                        a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
                    }
                    catch (e) { }
                }
            }
            if (!fp6Crash && a) { // a will return null when ActiveX is disabled
                try {
                    d = a.GetVariable("$version"); // Will crash fp6.0.21/23/29
                    if (d) {
                        d = d.split(" ")[1].split(",");
                        playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
                    }
                }
                catch (e) { }
            }
        }
        var u = nav.userAgent.toLowerCase(),
			p = nav.platform.toLowerCase(),
			webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit
			ie = false,
			windows = p ? /win/.test(p) : /win/.test(u),
			mac = p ? /mac/.test(p) : /mac/.test(u);
        /*@cc_on
        ie = true;
        @if (@_win32)
        windows = true;
        @elif (@_mac)
				mac = true;
			@end
        @*/
        return { w3cdom: w3cdom, pv: playerVersion, webkit: webkit, ie: ie, win: windows, mac: mac };
    } ();

    /* Cross-browser onDomLoad
    - Based on Dean Edwards' solution: http://dean.edwards.name/weblog/2006/06/again/
    - Will fire an event as soon as the DOM of a page is loaded (supported by Gecko based browsers - like Firefox -, IE, Opera9+, Safari)
    */
    var onDomLoad = function () {
        if (!ua.w3cdom) {
            return;
        }
        addDomLoadEvent(main);
        if (ua.ie && ua.win) {
            try {	 // Avoid a possible Operation Aborted error
                doc.write("<scr" + "ipt id=__ie_ondomload defer=true src=//:></scr" + "ipt>"); // String is split into pieces to avoid Norton AV to add code that can cause errors 
                script = getElementById("__ie_ondomload");
                if (script) {
                    addListener(script, "onreadystatechange", checkReadyState);
                }
            }
            catch (e) { }
        }
        if (ua.webkit && typeof doc.readyState != UNDEF) {
            timer = setInterval(function () { if (/loaded|complete/.test(doc.readyState)) { callDomLoadFunctions(); } }, 10);
        }
        if (typeof doc.addEventListener != UNDEF) {
            doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, null);
        }
        addLoadEvent(callDomLoadFunctions);
    } ();

    function checkReadyState() {
        if (script.readyState == "complete") {
            script.parentNode.removeChild(script);
            callDomLoadFunctions();
        }
    }

    function callDomLoadFunctions() {
        if (isDomLoaded) {
            return;
        }
        if (ua.ie && ua.win) { // Test if we can really add elements to the DOM; we don't want to fire it too early
            var s = createElement("span");
            try { // Avoid a possible Operation Aborted error
                var t = doc.getElementsByTagName("body")[0].appendChild(s);
                t.parentNode.removeChild(t);
            }
            catch (e) {
                return;
            }
        }
        isDomLoaded = true;
        if (timer) {
            clearInterval(timer);
            timer = null;
        }
        var dl = domLoadFnArr.length;
        for (var i = 0; i < dl; i++) {
            domLoadFnArr[i]();
        }
    }

    function addDomLoadEvent(fn) {
        if (isDomLoaded) {
            fn();
        }
        else {
            domLoadFnArr[domLoadFnArr.length] = fn; // Array.push() is only available in IE5.5+
        }
    }

    /* Cross-browser onload
    - Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/
    - Will fire an event as soon as a web page including all of its assets are loaded 
    */
    function addLoadEvent(fn) {
        if (typeof win.addEventListener != UNDEF) {
            win.addEventListener("load", fn, false);
        }
        else if (typeof doc.addEventListener != UNDEF) {
            doc.addEventListener("load", fn, false);
        }
        else if (typeof win.attachEvent != UNDEF) {
            addListener(win, "onload", fn);
        }
        else if (typeof win.onload == "function") {
            var fnOld = win.onload;
            win.onload = function () {
                fnOld();
                fn();
            };
        }
        else {
            win.onload = fn;
        }
    }

    /* Main function
    - Will preferably execute onDomLoad, otherwise onload (as a fallback)
    */
    function main() { // Static publishing only
        var rl = regObjArr.length;
        for (var i = 0; i < rl; i++) { // For each registered object element
            var id = regObjArr[i].id;
            if (ua.pv[0] > 0) {
                var obj = getElementById(id);
                if (obj) {
                    regObjArr[i].width = obj.getAttribute("width") ? obj.getAttribute("width") : "0";
                    regObjArr[i].height = obj.getAttribute("height") ? obj.getAttribute("height") : "0";
                    if (hasPlayerVersion(regObjArr[i].swfVersion)) { // Flash plug-in version >= Flash content version: Houston, we have a match!
                        if (ua.webkit && ua.webkit < 312) { // Older webkit engines ignore the object element's nested param elements
                            fixParams(obj);
                        }
                        setVisibility(id, true);
                    }
                    else if (regObjArr[i].expressInstall && !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac)) { // Show the Adobe Express Install dialog if set by the web page author and if supported (fp6.0.65+ on Win/Mac OS only)
                        showExpressInstall(regObjArr[i]);
                    }
                    else { // Flash plug-in and Flash content version mismatch: display alternative content instead of Flash content
                        displayAltContent(obj);
                    }
                }
            }
            else {	// If no fp is installed, we let the object element do its job (show alternative content)
                setVisibility(id, true);
            }
        }
    }

    /* Fix nested param elements, which are ignored by older webkit engines
    - This includes Safari up to and including version 1.2.2 on Mac OS 10.3
    - Fall back to the proprietary embed element
    */
    function fixParams(obj) {
        var nestedObj = obj.getElementsByTagName(OBJECT)[0];
        if (nestedObj) {
            var e = createElement("embed"), a = nestedObj.attributes;
            if (a) {
                var al = a.length;
                for (var i = 0; i < al; i++) {
                    if (a[i].nodeName == "DATA") {
                        e.setAttribute("src", a[i].nodeValue);
                    }
                    else {
                        e.setAttribute(a[i].nodeName, a[i].nodeValue);
                    }
                }
            }
            var c = nestedObj.childNodes;
            if (c) {
                var cl = c.length;
                for (var j = 0; j < cl; j++) {
                    if (c[j].nodeType == 1 && c[j].nodeName == "PARAM") {
                        e.setAttribute(c[j].getAttribute("name"), c[j].getAttribute("value"));
                    }
                }
            }
            obj.parentNode.replaceChild(e, obj);
        }
    }

    /* Show the Adobe Express Install dialog
    - Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75
    */
    function showExpressInstall(regObj) {
        isExpressInstallActive = true;
        var obj = getElementById(regObj.id);
        if (obj) {
            if (regObj.altContentId) {
                var ac = getElementById(regObj.altContentId);
                if (ac) {
                    storedAltContent = ac;
                    storedAltContentId = regObj.altContentId;
                }
            }
            else {
                storedAltContent = abstractAltContent(obj);
            }
            if (!(/%$/.test(regObj.width)) && parseInt(regObj.width, 10) < 310) {
                regObj.width = "310";
            }
            if (!(/%$/.test(regObj.height)) && parseInt(regObj.height, 10) < 137) {
                regObj.height = "137";
            }
            doc.title = doc.title.slice(0, 47) + " - Flash Player Installation";
            var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn",
				dt = doc.title,
				fv = "MMredirectURL=" + win.location + "&MMplayerType=" + pt + "&MMdoctitle=" + dt,
				replaceId = regObj.id;
            // For IE when a SWF is loading (AND: not available in cache) wait for the onload event to fire to remove the original object element
            // In IE you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
            if (ua.ie && ua.win && obj.readyState != 4) {
                var newObj = createElement("div");
                replaceId += "SWFObjectNew";
                newObj.setAttribute("id", replaceId);
                obj.parentNode.insertBefore(newObj, obj); // Insert placeholder div that will be replaced by the object element that loads expressinstall.swf
                obj.style.display = "none";
                var fn = function () {
                    obj.parentNode.removeChild(obj);
                };
                addListener(win, "onload", fn);
            }
            createSWF({ data: regObj.expressInstall, id: EXPRESS_INSTALL_ID, width: regObj.width, height: regObj.height }, { flashvars: fv }, replaceId);
        }
    }

    /* Functions to abstract and display alternative content
    */
    function displayAltContent(obj) {
        if (ua.ie && ua.win && obj.readyState != 4) {
            // For IE when a SWF is loading (AND: not available in cache) wait for the onload event to fire to remove the original object element
            // In IE you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
            var el = createElement("div");
            obj.parentNode.insertBefore(el, obj); // Insert placeholder div that will be replaced by the alternative content
            el.parentNode.replaceChild(abstractAltContent(obj), el);
            obj.style.display = "none";
            var fn = function () {
                obj.parentNode.removeChild(obj);
            };
            addListener(win, "onload", fn);
        }
        else {
            obj.parentNode.replaceChild(abstractAltContent(obj), obj);
        }
    }

    function abstractAltContent(obj) {
        var ac = createElement("div");
        if (ua.win && ua.ie) {
            ac.innerHTML = obj.innerHTML;
        }
        else {
            var nestedObj = obj.getElementsByTagName(OBJECT)[0];
            if (nestedObj) {
                var c = nestedObj.childNodes;
                if (c) {
                    var cl = c.length;
                    for (var i = 0; i < cl; i++) {
                        if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) {
                            ac.appendChild(c[i].cloneNode(true));
                        }
                    }
                }
            }
        }
        return ac;
    }

    /* Cross-browser dynamic SWF creation
    */
    function createSWF(attObj, parObj, id) {
        var r, el = getElementById(id);
        if (el) {
            if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content
                attObj.id = id;
            }
            if (ua.ie && ua.win) { // IE, the object element and W3C DOM methods do not combine: fall back to outerHTML
                var att = "";
                for (var i in attObj) {
                    if (attObj[i] != Object.prototype[i]) { // Filter out prototype additions from other potential libraries, like Object.prototype.toJSONString = function() {}
                        if (i.toLowerCase() == "data") {
                            parObj.movie = attObj[i];
                        }
                        else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
                            att += ' class="' + attObj[i] + '"';
                        }
                        else if (i.toLowerCase() != "classid") {
                            att += ' ' + i + '="' + attObj[i] + '"';
                        }
                    }
                }
                var par = "";
                for (var j in parObj) {
                    if (parObj[j] != Object.prototype[j]) { // Filter out prototype additions from other potential libraries
                        par += '<param name="' + j + '" value="' + parObj[j] + '" />';
                    }
                }
                el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
                objIdArr[objIdArr.length] = attObj.id; // Stored to fix object 'leaks' on unload (dynamic publishing only)
                r = getElementById(attObj.id);
            }
            else if (ua.webkit && ua.webkit < 312) { // Older webkit engines ignore the object element's nested param elements: fall back to the proprietary embed element
                var e = createElement("embed");
                e.setAttribute("type", FLASH_MIME_TYPE);
                for (var k in attObj) {
                    if (attObj[k] != Object.prototype[k]) { // Filter out prototype additions from other potential libraries
                        if (k.toLowerCase() == "data") {
                            e.setAttribute("src", attObj[k]);
                        }
                        else if (k.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
                            e.setAttribute("class", attObj[k]);
                        }
                        else if (k.toLowerCase() != "classid") { // Filter out IE specific attribute
                            e.setAttribute(k, attObj[k]);
                        }
                    }
                }
                for (var l in parObj) {
                    if (parObj[l] != Object.prototype[l]) { // Filter out prototype additions from other potential libraries
                        if (l.toLowerCase() != "movie") { // Filter out IE specific param element
                            e.setAttribute(l, parObj[l]);
                        }
                    }
                }
                el.parentNode.replaceChild(e, el);
                r = e;
            }
            else { // Well-behaving browsers
                var o = createElement(OBJECT);
                o.setAttribute("type", FLASH_MIME_TYPE);
                for (var m in attObj) {
                    if (attObj[m] != Object.prototype[m]) { // Filter out prototype additions from other potential libraries
                        if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
                            o.setAttribute("class", attObj[m]);
                        }
                        else if (m.toLowerCase() != "classid") { // Filter out IE specific attribute
                            o.setAttribute(m, attObj[m]);
                        }
                    }
                }
                for (var n in parObj) {
                    if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { // Filter out prototype additions from other potential libraries and IE specific param element
                        createObjParam(o, n, parObj[n]);
                    }
                }
                el.parentNode.replaceChild(o, el);
                r = o;
            }
        }
        return r;
    }

    function createObjParam(el, pName, pValue) {
        var p = createElement("param");
        p.setAttribute("name", pName);
        p.setAttribute("value", pValue);
        el.appendChild(p);
    }

    /* Cross-browser SWF removal
    - Especially needed to safely and completely remove a SWF in Internet Explorer
    */
    function removeSWF(id) {
        var obj = getElementById(id);
        if (obj && (obj.nodeName == "OBJECT" || obj.nodeName == "EMBED")) {
            if (ua.ie && ua.win) {
                if (obj.readyState == 4) {
                    removeObjectInIE(id);
                }
                else {
                    win.attachEvent("onload", function () {
                        removeObjectInIE(id);
                    });
                }
            }
            else {
                obj.parentNode.removeChild(obj);
            }
        }
    }

    function removeObjectInIE(id) {
        var obj = getElementById(id);
        if (obj) {
            for (var i in obj) {
                if (typeof obj[i] == "function") {
                    obj[i] = null;
                }
            }
            obj.parentNode.removeChild(obj);
        }
    }

    /* Functions to optimize JavaScript compression
    */
    function getElementById(id) {
        var el = null;
        try {
            el = doc.getElementById(id);
        }
        catch (e) { }
        return el;
    }

    function createElement(el) {
        return doc.createElement(el);
    }

    /* Updated attachEvent function for Internet Explorer
    - Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks
    */
    function addListener(target, eventType, fn) {
        target.attachEvent(eventType, fn);
        listenersArr[listenersArr.length] = [target, eventType, fn];
    }

    /* Flash Player and SWF content version matching
    */
    function hasPlayerVersion(rv) {
        var pv = ua.pv, v = rv.split(".");
        v[0] = parseInt(v[0], 10);
        v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0"
        v[2] = parseInt(v[2], 10) || 0;
        return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
    }

    /* Cross-browser dynamic CSS creation
    - Based on Bobby van der Sluis' solution: http://www.bobbyvandersluis.com/articles/dynamicCSS.php
    */
    function createCSS(sel, decl) {
        if (ua.ie && ua.mac) {
            return;
        }
        var h = doc.getElementsByTagName("head")[0], s = createElement("style");
        s.setAttribute("type", "text/css");
        s.setAttribute("media", "screen");
        if (!(ua.ie && ua.win) && typeof doc.createTextNode != UNDEF) {
            s.appendChild(doc.createTextNode(sel + " {" + decl + "}"));
        }
        h.appendChild(s);
        if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) {
            var ls = doc.styleSheets[doc.styleSheets.length - 1];
            if (typeof ls.addRule == OBJECT) {
                ls.addRule(sel, decl);
            }
        }
    }

    function setVisibility(id, isVisible) {
        var v = isVisible ? "visible" : "hidden";
        if (isDomLoaded && getElementById(id)) {
            getElementById(id).style.visibility = v;
        }
        else {
            createCSS("#" + id, "visibility:" + v);
        }
    }

    /* Filter to avoid XSS attacks 
    */
    function urlEncodeIfNecessary(s) {
        var regex = /[\\\"<>\.;]/;
        var hasBadChars = regex.exec(s) != null;
        return hasBadChars ? encodeURIComponent(s) : s;
    }

    /* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only)
    */
    var cleanup = function () {
        if (ua.ie && ua.win) {
            window.attachEvent("onunload", function () {
                // remove listeners to avoid memory leaks
                var ll = listenersArr.length;
                for (var i = 0; i < ll; i++) {
                    listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]);
                }
                // cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect
                var il = objIdArr.length;
                for (var j = 0; j < il; j++) {
                    removeSWF(objIdArr[j]);
                }
                // cleanup library's main closures to avoid memory leaks
                for (var k in ua) {
                    ua[k] = null;
                }
                ua = null;
                for (var l in swfobject) {
                    swfobject[l] = null;
                }
                swfobject = null;
            });
        }
    } ();


    return {
        /* Public API
        - Reference: http://code.google.com/p/swfobject/wiki/SWFObject_2_0_documentation
        */
        registerObject: function (objectIdStr, swfVersionStr, xiSwfUrlStr) {
            if (!ua.w3cdom || !objectIdStr || !swfVersionStr) {
                return;
            }
            var regObj = {};
            regObj.id = objectIdStr;
            regObj.swfVersion = swfVersionStr;
            regObj.expressInstall = xiSwfUrlStr ? xiSwfUrlStr : false;
            regObjArr[regObjArr.length] = regObj;
            setVisibility(objectIdStr, false);
        },

        getObjectById: function (objectIdStr) {
            var r = null;
            if (ua.w3cdom) {
                var o = getElementById(objectIdStr);
                if (o) {
                    var n = o.getElementsByTagName(OBJECT)[0];
                    if (!n || (n && typeof o.SetVariable != UNDEF)) {
                        r = o;
                    }
                    else if (typeof n.SetVariable != UNDEF) {
                        r = n;
                    }
                }
            }
            return r;
        },

        embedSWF: function (swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj) {
            if (!ua.w3cdom || !swfUrlStr || !replaceElemIdStr || !widthStr || !heightStr || !swfVersionStr) {
                return;
            }
            widthStr += ""; // Auto-convert to string
            heightStr += "";
            if (hasPlayerVersion(swfVersionStr)) {
                setVisibility(replaceElemIdStr, false);
                var att = {};
                if (attObj && typeof attObj === OBJECT) {
                    for (var i in attObj) {
                        if (attObj[i] != Object.prototype[i]) { // Filter out prototype additions from other potential libraries
                            att[i] = attObj[i];
                        }
                    }
                }
                att.data = swfUrlStr;
                att.width = widthStr;
                att.height = heightStr;
                var par = {};
                if (parObj && typeof parObj === OBJECT) {
                    for (var j in parObj) {
                        if (parObj[j] != Object.prototype[j]) { // Filter out prototype additions from other potential libraries
                            par[j] = parObj[j];
                        }
                    }
                }
                if (flashvarsObj && typeof flashvarsObj === OBJECT) {
                    for (var k in flashvarsObj) {
                        if (flashvarsObj[k] != Object.prototype[k]) { // Filter out prototype additions from other potential libraries
                            if (typeof par.flashvars != UNDEF) {
                                par.flashvars += "&" + k + "=" + flashvarsObj[k];
                            }
                            else {
                                par.flashvars = k + "=" + flashvarsObj[k];
                            }
                        }
                    }
                }
                addDomLoadEvent(function () {
                    createSWF(att, par, replaceElemIdStr);
                    if (att.id == replaceElemIdStr) {
                        setVisibility(replaceElemIdStr, true);
                    }
                });
            }
            else if (xiSwfUrlStr && !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac)) {
                isExpressInstallActive = true; // deferred execution
                setVisibility(replaceElemIdStr, false);
                addDomLoadEvent(function () {
                    var regObj = {};
                    regObj.id = regObj.altContentId = replaceElemIdStr;
                    regObj.width = widthStr;
                    regObj.height = heightStr;
                    regObj.expressInstall = xiSwfUrlStr;
                    showExpressInstall(regObj);
                });
            }
        },

        getFlashPlayerVersion: function () {
            return { major: ua.pv[0], minor: ua.pv[1], release: ua.pv[2] };
        },

        hasFlashPlayerVersion: hasPlayerVersion,

        createSWF: function (attObj, parObj, replaceElemIdStr) {
            if (ua.w3cdom) {
                return createSWF(attObj, parObj, replaceElemIdStr);
            }
            else {
                return undefined;
            }
        },

        removeSWF: function (objElemIdStr) {
            if (ua.w3cdom) {
                removeSWF(objElemIdStr);
            }
        },

        createCSS: function (sel, decl) {
            if (ua.w3cdom) {
                createCSS(sel, decl);
            }
        },

        addDomLoadEvent: addDomLoadEvent,

        addLoadEvent: addLoadEvent,

        getQueryParamValue: function (param) {
            var q = doc.location.search || doc.location.hash;
            if (param == null) {
                return urlEncodeIfNecessary(q);
            }
            if (q) {
                var pairs = q.substring(1).split("&");
                for (var i = 0; i < pairs.length; i++) {
                    if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
                        return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1)));
                    }
                }
            }
            return "";
        },

        // For internal usage only
        expressInstallCallback: function () {
            if (isExpressInstallActive && storedAltContent) {
                var obj = getElementById(EXPRESS_INSTALL_ID);
                if (obj) {
                    obj.parentNode.replaceChild(storedAltContent, obj);
                    if (storedAltContentId) {
                        setVisibility(storedAltContentId, true);
                        if (ua.ie && ua.win) {
                            storedAltContent.style.display = "block";
                        }
                    }
                    storedAltContent = null;
                    storedAltContentId = null;
                    isExpressInstallActive = false;
                }
            }
        }
    };
} ();


/* ------------------------------------------------------------------------
s3Slider	
------------------------------------------------------------------------- */

(function ($) {
    
    
    $.fn.s3Slider = function (vars) {
        var element = this;
        var timeOut = (vars.timeOut != undefined) ? vars.timeOut : 4000;
        var current = null;
        var timeOutFn = null;
        var faderStat = true;
        var mOver = false;        
        var items = $("#" + element[0].id + "Content ." + element[0].id + "Image");        

        items.each(function (i) {

            $(items[i]).mouseover(function () {
                mOver = true;
            });

            $(items[i]).mouseout(function () {
                mOver = false;
                fadeElement(true);
            });

        });

        var fadeElement = function (isMouseOut) {
            var thisTimeOut = (isMouseOut) ? (timeOut / 2) : timeOut;
            thisTimeOut = (faderStat) ? 10 : thisTimeOut;
            if (items.length > 0) {
                timeOutFn = setTimeout(makeSlider, thisTimeOut);
            } else {
            }
        }

        var makeSlider = function () {
            current = (current != null) ? current : items[(items.length - 1)];
            var currNo = jQuery.inArray(current, items) + 1;
            currNo = (currNo == items.length) ? 0 : (currNo - 1);
            var newMargin = $(element).width() * currNo;
            if (faderStat == true) {
                if (!mOver) {
                    $(items[currNo]).fadeIn((timeOut / 6), function () {
                        faderStat = false;
                        current = items[currNo];
                        if (!mOver) {
                            fadeElement(false);
                        }
                    });
                }
            } else {
                if (!mOver) {
                    $(items[currNo]).fadeOut((timeOut / 6), function () {
                        faderStat = true;
                        current = items[(currNo + 1)];
                        if (!mOver) {
                            fadeElement(false);
                        }
                    });
                }
            }
        }

        makeSlider();

    };

})(jQuery);  



