﻿jQuery.fn.extend({
    everyTime: function(interval, label, fn, times, belay) {
        return this.each(function() {
            jQuery.timer.add(this, interval, label, fn, times, belay);
        });
    },
    oneTime: function(interval, label, fn) {
        return this.each(function() {
            jQuery.timer.add(this, interval, label, fn, 1);
        });
    },
    stopTime: function(label, fn) {
        return this.each(function() {
            jQuery.timer.remove(this, label, fn);
        });
    }
});

jQuery.event.special

jQuery.extend({
    timer: {
        global: [],
        guid: 1,
        dataKey: "jQuery.timer",
        regex: /^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,
        powers: {
            // Yeah this is major overkill...
            'ms': 1,
            'cs': 10,
            'ds': 100,
            's': 1000,
            'das': 10000,
            'hs': 100000,
            'ks': 1000000
        },
        timeParse: function(value) {
            if (value == undefined || value == null)
                return null;
            var result = this.regex.exec(jQuery.trim(value.toString()));
            if (result[2]) {
                var num = parseFloat(result[1]);
                var mult = this.powers[result[2]] || 1;
                return num * mult;
            } else {
                return value;
            }
        },
        add: function(element, interval, label, fn, times, belay) {
            var counter = 0;

            if (jQuery.isFunction(label)) {
                if (!times)
                    times = fn;
                fn = label;
                label = interval;
            }

            interval = jQuery.timer.timeParse(interval);

            if (typeof interval != 'number' || isNaN(interval) || interval <= 0)
                return;

            if (times && times.constructor != Number) {
                belay = !!times;
                times = 0;
            }

            times = times || 0;
            belay = belay || false;

            var timers = jQuery.data(element, this.dataKey) || jQuery.data(element, this.dataKey, {});

            if (!timers[label])
                timers[label] = {};

            fn.timerID = fn.timerID || this.guid++;

            var handler = function() {
                if (belay && this.inProgress)
                    return;
                this.inProgress = true;
                if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
                    jQuery.timer.remove(element, label, fn);
                this.inProgress = false;
            };

            handler.timerID = fn.timerID;

            if (!timers[label][fn.timerID])
                timers[label][fn.timerID] = window.setInterval(handler, interval);

            this.global.push(element);

        },
        remove: function(element, label, fn) {
            var timers = jQuery.data(element, this.dataKey), ret;

            if (timers) {

                if (!label) {
                    for (label in timers)
                        this.remove(element, label, fn);
                } else if (timers[label]) {
                    if (fn) {
                        if (fn.timerID) {
                            window.clearInterval(timers[label][fn.timerID]);
                            delete timers[label][fn.timerID];
                        }
                    } else {
                        for (var fn in timers[label]) {
                            window.clearInterval(timers[label][fn]);
                            delete timers[label][fn];
                        }
                    }

                    for (ret in timers[label]) break;
                    if (!ret) {
                        ret = null;
                        delete timers[label];
                    }
                }

                for (ret in timers) break;
                if (!ret)
                    jQuery.removeData(element, this.dataKey);
            }
        }
    }
});

jQuery(window).bind("unload", function() {
    jQuery.each(jQuery.timer.global, function(index, item) {
        jQuery.timer.remove(item);
    });
});

function WebRequestInfo(url, callback, pars) {
    $.ajax({
        type: "POST",
        contentType: "application/json",
        url: url,
        data: pars,
        processData: false,
        success: function(msg) {
            callback(msg);
        },
        error: function(xml, status) {
            if (status == 'error') {
                try {
                    var json = eval('(' + xml.responseText + ')');
                    alert(json.Message + '\n' + json.StackTrace);
                }
                catch (e) { }
            } else {
                alert(status);
            }
        }
    });
}

$.fn.moneyFormat = function(mode) {
    return this.each(function() {
        var j = $(this).attr({ oncontextmenu: "return false;", onpaste: "return false;", style: "ime-mode:disabled;", maxlength: "13" }).clone().insertAfter(this);
        $(this).remove();
        if (mode == "Int") {
            j.keydown(function(event) {
                if (!(!event.shiftKey && event.keyCode > 47 && event.keyCode < 58 || event.keyCode > 95 && event.keyCode < 106 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 46)) {
                    $("仅允许输入整数数字，如100！").insertAfter(this).fadeOut(3000, function() { $(this).remove() });
                    return false;
                }
            }).change(function() { $(this).val(new Number($(this).val())); });
        } else if (mode == "Dec") {
            j.keydown(function(event) {
                if (!(!event.shiftKey && event.keyCode > 47 && event.keyCode < 58 || event.keyCode > 95 && event.keyCode < 106 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 46 || event.keyCode == 110 || event.keyCode == 190)) {
                    $("仅允许输入数字和小数点，如100.00！").insertAfter(this).fadeOut(3000, function() { $(this).remove() });
                    return false;
                } else if (event.shiftKey || event.keyCode == 110 || event.keyCode == 190 && $(this).val().indexOf(".") >= 0) {
                    $("仅允许输入一个小数点！").insertAfter(this).fadeOut(3000, function() { $(this).remove() });
                    return false;
                }
            }).change(function() { $(this).val(new Number($(this).val()).toFixed(2)); });
        } else {
            alert("参数错误，请检查"); return false;
        }
    });
};

function ShowFlashADPLayer(arraypics, arraylinks, arraytexts, focus_width, focus_height, text_height) {
    var swf_height = focus_height + text_height;
    var pics = "", links = "", texts = "";
    for (i = 0; i < arraypics.length; i++) {
        if (i == arraypics.length - 1) {
            pics = pics + arraypics[i];
        }
        else {
            pics = pics + arraypics[i] + "|";
        }
    }

    for (i = 0; i < arraylinks.length; i++) {
        if (i == arraypics.length - 1) {
            links = links + arraylinks[i];
        }
        else {
            links = links + arraylinks[i] + "|";
        }
    }

    for (i = 0; i < arraytexts.length; i++) {
        if (i == arraytexts.length - 1) {
            texts = texts + arraytexts[i];
        }
        else {
            texts = texts + arraytexts[i] + "|";
        }
    }

    document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="' + focus_width + '" height="' + swf_height + '">');
    document.write('<param name="allowScriptAccess" value="sameDomain"><param name="movie" value="/images/Flash/focus1.swf"><param name="quality" value="high"><param name="bgcolor" value="#F0F0F0">');
    document.write('<param name="menu" value="false"><param name=wmode value="opaque">');
    document.write('<param name="FlashVars" value="pics=' + pics + '&links=' + links + '&texts=' + texts + '&borderwidth=' + focus_width + '&borderheight=' + focus_height + '&textheight=' + text_height + '">');
    document.write('<embed src="/images/Flash/focus1.swf" wmode="opaque" FlashVars="pics=' + pics + '&links=' + links + '&texts=' + texts + '&borderwidth=' + focus_width + '&borderheight=' + focus_height + '&textheight=' + text_height + '" menu="false" bgcolor="#F0F0F0" quality="high" width="' + focus_width + '" height="' + focus_height + '" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
    document.write('<\/object>');
}

function ClickRefresh() {
    $("#imgValidate").attr("src", "/Common/ValidateCode.aspx?time=" + new Date() );
}

function ChangeProvinceByAjax() {
    var Country = $("#ddlProvince").val();
    if ($("#hidCountry").attr("id") == "hidCountry") {
        $("#hidCountry").val($("#ddlProvince")[0].options[$("#ddlProvince")[0].selectedIndex].text);
    }
    WebRequestInfo("/WebServices/MyService.svc/GetCity", function(obj) { ChangeProvinceByAjaxHandle(obj); }, JSON.stringify(Country));
}

function ChangeProvinceByAjaxHandle(objResult) {

    if (objResult) {
        var result = JSON.parse(objResult);

        var objState = $("#ddlCity");
        objState[0].options.length = 0;

        for (var i = 0; i < result.length; i++) {
            objState[0].options.add(new Option(result[i].CityName, result[i].CityName));
        }
    }
}

function ChangeProvinceByAjaxB() {
    var Country = $("#ddlProvince").val();
    
    WebRequestInfo("/WebServices/MyService.svc/GetCity", function(obj) { ChangeProvinceByAjaxHandleB(obj); }, JSON.stringify(Country));
}

function ChangeProvinceByAjaxHandleB(objResult) {

    if (objResult) {
        var result = JSON.parse(objResult);

        var objState = $("#ddlCity");
        objState[0].options.length = 0;

        for (var i = 0; i < result.length; i++) {
            objState[0].options.add(new Option(result[i].CityName, result[i].Code));
        }
    }
}

function ToolTip(TipContent) {
    /* CONFIG */
    xOffset = 10;
    yOffset = 20;
    // these 2 variable determine popup's distance from the cursor
    // you might want to adjust to get the right result
    /* END CONFIG */
    $("a.tooltip").hover(function(e) {
        this.t = this.title;
        this.title = "";
        $("body").append("<div id='tooltip'>" + TipContent + "</div>");
        $("#tooltip").css("top", (e.pageY - xOffset) + "px").css("left", (e.pageX + yOffset) + "px").fadeIn("fast");
    }, function() {
        this.title = this.t;
        $("#tooltip").remove();
    });
    $("a.tooltip").mousemove(function(e) {
        $("#tooltip").css("top", (e.pageY - xOffset) + "px").css("left", (e.pageX + yOffset) + "px");
    });
};

function ShowTab() {
    $(".entry-foot span:first").addClass("current");  //为第一个span添加 .current 的样式，默认选中
    $(".entry-foot ul:not(:first)").hide();  //ul 不是第一个时隐藏
    $(".entry-foot span").mouseover(function() {  //鼠标移到 span 上时触发函数
        $(".entry-foot span").removeClass("current");  //为第一个 span 移除 .current 样式
        $(this).addClass("current");  //为触发的 span 添加样式
        $(".entry-foot ul").hide();  //隐藏 ul
        $("." + $(this).attr("id")).fadeIn("slow");  //这句是核心，class(.) 和触发 span 的ID 一致的 fadeIn(渐显) 
    });
}

function ShowTab2() {
    var menuID; //用来存储导航的ID
    var subID; //用来存储导航ID中的数字,数字是显示对应子菜单的关键
    var current = 1; //定义当前鼠标值,默认显示第一个

    for (i = 1; i <= 4; i++) {//寻找所有menu
        $("#subMenu" + current).show(); //显示第一个
        $("#menu" + i).mouseover(function() {//加入鼠标事件
            //alert(this.id);
            menuID = this.id; //将当前这个导航的名称赋给变量menuID，现在的menuID就是鼠标移上去的那个导航
            delete current; //删除当前值,因为我们要重新为current赋值
            //alert(menuID);
            subID = menuID.charAt(4); //取对应的数字,在这里取各个menu后面的数字
            current = subID; //将对应代码的顺序赋给当前变量
            //alert(current)
            for (i = 1; i <= 4; i++) {//循环，先让所有的都隐藏
                $("#subMenu" + i).hide();
                $("#menu" + i).removeClass("current");
            }
            $("#subMenu" + current).show(); //找出对应的显示出来
            $("#menu" + current).addClass("current");
        })
    };
}

function ShowTab3() {
    var menuID; //用来存储导航的ID
    var subID; //用来存储导航ID中的数字,数字是显示对应子菜单的关键
    var current = 1; //定义当前鼠标值,默认显示第一个

    for (i = 1; i <= 5; i++) {//寻找所有menu
        $("#subMenu" + current).show(); //显示第一个
        $("#menu" + i).mouseover(function() {//加入鼠标事件
            //alert(this.id);
            menuID = this.id; //将当前这个导航的名称赋给变量menuID，现在的menuID就是鼠标移上去的那个导航
            delete current; //删除当前值,因为我们要重新为current赋值
            //alert(menuID);
            subID = menuID.charAt(4); //取对应的数字,在这里取各个menu后面的数字
            current = subID; //将对应代码的顺序赋给当前变量
            //alert(current)
            for (i = 1; i <= 5; i++) {//循环，先让所有的都隐藏
                $("#subMenu" + i).hide();
                $("#menu" + i).removeClass("current");
            }
            $("#subMenu" + current).show(); //找出对应的显示出来
            $("#menu" + current).addClass("current");
        })
    };
}

function ani() {
    var rnd = f[Math.floor(Math.random() * f.length)]
    //alert(rnd);
    StuffInfoList.style.filter = n + rnd;
    StuffInfoList.filters[0].apply();
    StuffInfoList.innerHTML = ulList[imgstep].innerHTML;
    StuffInfoList.filters[0].play();
    for (var i = 0; i < 3; i++) {
        if (imgstep == i) {
            document.getElementById("Num" + i).className = "hpstyle11";
        }
        else {
            document.getElementById("Num" + i).className = "hpstyle12";
        }
    }
    imgstep++;
    if (imgstep >= ulList.length) {
        imgstep = 0;
    }
    setTimeout("ani()", delay);
}

function ani2() {
    var rnd = f[Math.floor(Math.random() * f.length)]
    StuffInfoList.style.filter = n + rnd;
    StuffInfoList.filters[0].apply();
    StuffInfoList.innerHTML = ulList[imgstep].innerHTML;
    StuffInfoList.filters[0].play();
    for (var i = 0; i < 3; i++) {
        if (imgstep == i) {
            document.getElementById("Num" + i).className = "hpstyle11";
        }
        else {
            document.getElementById("Num" + i).className = "hpstyle12";
        }
    }
    imgstep++;
    if (imgstep >= ulList.length) imgstep = 0;
}

var imgstep = 0;
var f = new Array();
var delay = 5000;
var ulList = new Array();
var StuffInfoList;
var n = "progid:DXImageTransform.Microsoft.";

$(document).ready(function() {

    if ($("#StuffInfoList").attr("id") == "StuffInfoList") {
        StuffInfoList = document.getElementById("StuffInfoList");

        for (var i = 0; i < 3; i++) {
            ulList[i] = document.getElementById("StuffInfo" + i);
        }

        f[0] = "Wheel(spokes=4)";
        f[1] = "Blinds(Bands=10,direction=up)";
        f[2] = "Stretch(stretchstyle=PUSH)";
        f[3] = "Stretch(stretchstyle=SPIN)";
        f[4] = "RadialWipe(wipestyle=RADIAL)";
        f[5] = "RadialWipe(wipestyle=WEDGE)";
        f[6] = "Checkerboard(Direction=right,SquaresX=8,SquaresY=8)";
        f[7] = "Fade(Overlap=1.00)";
        f[8] = "GradientWipe(GradientSize=0.25,wipestyle=0,motion=forward)";
        f[9] = "Iris(irisstyle=CIRCLE,motion=out)";
        f[10] = "Iris(irisstyle=STAR,motion=out)";
        f[11] = "Barn( motion=out,orientation=vertical)";
        f[12] = "Barn( motion=in,orientation=vertical)";
        f[13] = "Strips(motion=leftup)";
        f[14] = "Slide(slidestyle=HIDE,Bands=1)";
        f[15] = "Slide(slidestyle=PUSH,Bands=1)";
        f[16] = "Slide(slidestyle=SWAP,Bands=1)";
        f[17] = "RandomDissolve(duration=1)";

        StuffInfoList.innerHTML = ulList[0].innerHTML;

        imgstep++;

        setTimeout('ani()', delay);
    }
});