$.extend({
  jextStatic:{
    getCal: function(options) {
	var defaultopt = { format:"yyyy-mm-dd week" };
	var opts = $.extend(defaultopt, options);
        var today = new Date();
        var tyear = today.getFullYear();
        var tmonth = today.getMonth() + 1;
        var tdate = today.getDate();
	var tday = today.getDay();
        var tdate_string = tyear + "-" + tmonth + "-" + tdate;
	var tds;
	var laststr = "";
        switch (tday) {
            case 0: tds = "星期日"; break;
            case 1: tds = "星期一"; break;
            case 2: tds = "星期二"; break;
            case 3: tds = "星期三"; break;
            case 4: tds = "星期四"; break;
            case 5: tds = "星期五"; break;
            case 6: tds = "星期六"; break;
        }
	switch (opts.format) {
	case "yyyy-mm-dd": laststr = tyear + "-" + tmonth + "-" + tdate; break;
	case "chineseyear": laststr = tyear + "年" + tmonth + "月" + tdate + "日"; break;
	case "yyyy-mm-dd week":
	default: laststr = tyear + "-" + tmonth + "-" + tdate + " " + tds;
	}
	return laststr;
    },
    getTime: function(options) {
	var defaultopt = { format:"hh:mm" };
	var opts = $.extend(defaultopt, options);
	var today = new Date();
        var thour = today.getHours();
	var tminute = today.getMinutes();
	var tsecond = today.getSeconds();
	return thour + ":" + tminute;
    },
    // NEED LOAD http://mat1.qq.com/weather/inc/minisite2_272.js
    getWeather: function(options) {
	var defaultopt = { src:((typeof(__minisite2__weather__) != "undefined") ? __minisite2__weather__ : "温州 无 无 无"),
			   format: "png"
	};
	var opts = $.extend(defaultopt, options);
	var weatherimg = [
	  [/(睛|睛，阳光充足|晴朗|炎热)+/, "w21", "w01"],
	  [/(多云|大部多云)+/, "w02", "w03"],
	  [/(局部多云|时有多云)+/, "w02", "w09" ],
	  [/(阴|冷)+/, "w26", "w01" ],
	  [/(沙尘暴|浮尘|灰尘|扬沙|风|大风|龙卷风|强沙尘暴)+/, "w06", "w05" ],
	  [/(阵雨)+/, "w17", "w17" ],
	  [/(雷阵雨|雷雨|局部雷雨|零星雷雨|局部阵雨|雷阵雨并伴有冰雹|冰雹雨)+/, "w28", "w28" ],
	  [/(雨夹雪|雨加雪|雨、雨夹雪|雪、雨夹雪|冻雨|冰雨)+/, "w18", "w18" ],
	  [/(小雨|冰毛雨|毛毛雨|中雨|大雨|小到中雨|中到大雨|大到暴雨)+/, "w17", "w17" ],
	  [/(暴雨|暴风雨|大暴雨|特大暴雨|暴雨-大暴雨|大暴雨-特大暴雨|热带风暴|飓风)+/, "w14", "w14" ],
	  [/(阵雨|小阵雨|零星阵雨|小雪|中雪|吹雪|雪|大雪|暴雪|暴风雪|局部暴雪|小到中雪|大到暴雪)+/, "w20", "w20" ],
	  [/(雾|薄雾|烟雾)+/, "w21", "w21" ],
	  [/(冰雹)+/, "w04", "w04" ],
	  [/(无)+/, "w11", "w11" ]
	];
	var today = new Date();
	var thour = today.getHours();
        var winfo = opts.src.split(" ");
	var wwhich = 13;
	var weatherpic = "w11";
	for (var i = 0; i < weatherimg.length; i++) {
	  if (weatherimg[i][0].test(winfo[3])) { weatherpic = weatherimg[i][(thour >= 6 && thour < 18) ? 1 : 2]; break; }
	}
	return opts.src + " " + weatherpic + "." + opts.format;
    }

  }
});

$.fn.extend({
    piaoFu: function(options) {
		var defaultopt = {
			speed:1000,
			easing:'linear',
			zindex:2000
		};
		var opts = $.extend(defaultopt, options);
		var objpiaofu = $(this);
		var scr = {x:function(){return $(window).scrollLeft()}, y:function(){return $(window).scrollTop()}};
		var wnd = {x:function(){return $(window).width()}, y:function(){return $(window).height()}};
		var obj = {x:function(){return objpiaofu.width()}, y:function(){return objpiaofu.height()}};
		var rx = function() { return (wnd.x() - obj.x() + scr.x()) };
		var ry = function() { return ((wnd.y() - obj.y()) / 2 + scr.y()) };
		var bx = function() { return ((wnd.x() - obj.x()) / 2 + scr.x()) };
		var by = function() { return (wnd.y() - obj.y() + scr.y()) };
		var lx = function() { return (scr.x()) };
		var ly = function() { return ((wnd.y() - obj.y()) / 2 + scr.y()) };
		var tx = function() { return ((wnd.x() - obj.x()) / 2 + scr.x()) };
		var ty = function() { return (scr.y()) };
		$(this).css({position:'absolute',zIndex:opts.zindex,display:'block'});
		$(this).animate({left:rx(), top:ry()}, opts.speed, opts.easing, function() {
			$(this).animate({left:bx(), top:by()}, opts.speed, opts.easing, function() {
				$(this).animate({left:lx(), top:ly()}, opts.speed, opts.easing, function() {
					$(this).animate({left:tx(), top:ty()}, opts.speed, opts.easing, function() {
						$(this).piaoFu(opts);
					});
				});
			});
		});
	},
	pixViewer: function(options) {
		var defaultopt = {
			viewer:"pixviewer.swf",	// swf file, picture player
			fwidth:260,				// Flash picture width
			fheight:182,			// Flash picture height
			theight:25,				// title height
			pics:"nopic.jpg",		// picture list
			links:"#",				// link list
			texts:"NoPictures",		// title list
			bgcolor:"#DADADA",		// swf background
			quality:"high"			// the quality of flash
		};
		var opts = $.extend(defaultopt, options);
		var swf_height = opts.fheight + opts.theight;
		var slashslash = "//";
		var htmlsrc = "<object codebase=\"http:" + slashslash + "fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\" width=\"" + opts.fwidth
					+ "\" height=\"" + swf_height + "\"><param name=\"allowScriptAccess\" value=\"sameDomain\" /><param name=\"movie\" value=\"" + opts.viewer
					+ "\" /><param name=\"quality\" value=\"" + opts.quality + "\" /><param name=\"bgcolor\" value=\"" + opts.bgcolor
					+ "\" /><param name=\"menu\" value=\"false\" /><param name=\"wmode\" value=\"opaque\" />"
					+ "<param name=\"FlashVars\" value=\"pics=" + opts.pics + "&links=" + opts.links + "&texts=" + opts.texts
					+ "&borderwidth=" + opts.fwidth + "&borderheight=" + opts.fheight + "&textheight=" + opts.theight
					+ "\" /><embed src=\"" + opts.viewer + "\" wmode=\"opaque\" FlashVars=\"pics=" + opts.pics + "&links=" + opts.links
					+ "&texts=" + opts.texts + "&borderwidth=" + opts.fwidth + "&borderheight=" + opts.fheight + "&textheight=" + opts.theight
					+ "\" menu=\"false\" bgcolor=\"" + opts.bgcolor + "\" quality=\"" + opts.quality + "\" width=\"" + opts.fwidth
					+ "\" height=\"" + swf_height + "\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\""
					+ " pluginspage=\"http:" + slashslash + "www.macromedia.com/go/getflashplayer\" /></object>";
		$(this).html(htmlsrc);
	},
	randomBackgroundImage: function(options) {
	    var defaultopt = {
	        path: "imgs/ads_small/",
	        num: 5
        };
        var opts = $.extend(defaultopt, options);
        var rn = Math.round(Math.random() * (opts.num - 1));
        var url = opts.path + rn + ".jpg";
        $(this).css("background-image", "url(" + url + ")");
	},
	videoPlayer: function(options) {
		var defaultopt = {
			player:"video.swf",
			fwidth:556,
			fheight:400,
			flv:"noflv.flv",
			quality:"high"
		};
		var opts = $.extend(defaultopt, options);
		var slashslash = "//";
		var htmlsrc = "<object width=\"" + opts.fwidth + "\" height=\"" + opts.fheight
					+ "\" codebase=\"http:" + slashslash + "fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\">"
					+ "<param value=\"" + opts.player + "\" name=\"movie\"/><param value=\"" + opts.quality
					+ "\" name=\"quality\"/><param value=\"false\" name=\"menu\"/><param value=\"true\" name=\"allowFullScreen\"/>"
					+ "<param value=\"Opaque\" name=\"wmode\"/><param value=\"vcastr_file=" + opts.flv
					+ "\" name=\"FlashVars\"/><embed width=\"" + opts.fwidth + "\" height=\"" + opts.fheight
					+ "\" pluginspage=\"http:" + slashslash + "www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\""
					+ " wmode=\"Opaque\" quality=\"" + opts.quality + "\" menu=\"false\" flashvars=\"vcastr_file=" + opts.flv
					+ "\" allowfullscreen=\"true\" src=\"" + opts.player + "\"/></object>";
		$(this).html(htmlsrc);
	},
	/* NEED LOAD jquery.pagination.js
	    NEED LOAD jquery.query.js */ 
	paginationThePage: function(options) {
	    /* qs -- means the page parameter key, like "http://www.site.com/class.asp?p=21", here p is the qs
	       op -- means other parameters key, like "http://www.site.com/class.asp?p=2&id=3&name=kk", here ["id", "name"] is the op
	    */
	    var defaultopt = {
	        url: "#",
	        qs: "p",
	        op: [],
	        wnum: 100,    /* 文章总数 */
	        pnum: 20    /* 每页文章数 */
	    };
	    var opts = $.extend(defaultopt, options);
        var param = {};
        if (opts.op.length > 0) {
            for (var i = 0; i < opts.op.length; i ++) {
                param[opts.op[i]] = $.query.get(opts.op[i]);
            }
        }
        var crtpage = $.query.get(opts.qs);
        crtpage = ((!crtpage) ? 1 : crtpage) - 1;
        $(this).pagination(opts.wnum, {
            items_per_page: opts.pnum,
            num_display_entries: 10,
            num_edge_entries: 5,
            current_page: crtpage,
            next_text: "下一页",
            prev_text: "上一页",
            callback: function(page, jq) {
                param[opts.qs] = page + 1;
                window.location = opts.url + "?" + $.param(param);
                return false;
            }
        });
    },
    initSearchForm: function(options) {
        var defaultopt = {
            tip: "请在此输入关键词...",
            sinput: "#sbtext",
            action: "http://www.google.cn/search",
            se: "google",
            hl: "zh-CN",
            ie: "gb2312"
        };
        var opts = $.extend(defaultopt, options);
        
        $(opts.sinput).val(opts.tip).focus(function() { if ($(this).val() == opts.tip) { $(this).val(""); }}).blur(function() { if ($(this).val() == "") {$(this).val(opts.tip);} });
        $(this).submit(function() {
            if ($(opts.sinput).val() != opts.tip) {
                var q;
                switch (opts.se) {
                    case "google":
                        q = $(opts.sinput).val() + "+site%3Awww.ohdj.gov.cn"; break;
                    default:
                        q = $(opts.sinput).val(); break;
                }
                window.open(opts.action + "?q=" + q + "&hl=" + opts.hl + "&ie=" + opts.ie );
            }
            return false;
        });   
    },
    flashShine: function(options) {
        var defaultopt = {
            width: 700,
            height: 90,
            wmode: "transparent",
            src: "plugin/003.swf"
        };
        var opts = $.extend(defaultopt, options);
        var str = "<embed width=\"" + opts.width + "\" height=\"" + opts.height + "\" type=\"application/octet-stream\" wmode=\"" + opts.wmode + "\" src=\"" + opts.src + "\"/>";
        $(this).html(str);
    },
    jext_Select: function(options) {
      var defaultopt = {
        direction: "down",    // up,down,left,right
        callback: function(a) {}
      };
      var opts = $.extend(defaultopt, options);
      // eval(opts.callback("abc"));
      var jext_select = $("<div></div>").addClass("jext_select");
      var jext_select_handle = $("<div></div>").addClass("tag_handle");
      var jext_select_options = $("<ul></ul>").addClass("tag_options").css("display", "none");
      $(this).children("option").each(function(i) {
	  var option_value = $(this).val();
	  var option_html = $(this).text();
	  var option_selected = $(this).attr("selected");
	  var option_li = $("<li></li>").attr("val", option_value).html(option_html);
	  if (!option_selected) { option_li.addClass("tag_option"); }
	  else { option_li.addClass("tag_option_selected"); jext_select_handle.html(option_html); }
	        option_li
		  .hover(
			 function() { if ($(this).hasClass("tag_option")) { $(this).removeClass().addClass("tag_option_hover"); return false; } },
			 function() { if ($(this).hasClass("tag_option_hover")) { $(this).removeClass().addClass("tag_option"); return false; } }
			 )
		  .click(function() {
		      jext_select_handle.removeClass().addClass("tag_handle").html($(this).text());
		      $(this).siblings(".tag_option_selected").removeClass().addClass("tag_option");
		      $(this).removeClass().addClass("tag_option_selected");
		      jext_select_options.hide();
		      eval(opts.callback($(this).attr("val")));
		      return false;
		    })
		  .appendTo(jext_select_options);
	});
      jext_select_handle
	.hover(
	       function() { if ($(this).hasClass("tag_handle")) { $(this).removeClass().addClass("tag_handle_hover"); return false; } },
	       function() { if ($(this).hasClass("tag_handle_hover")) { $(this).removeClass().addClass("tag_handle"); return false; } }
	       )
	.click(function() {
	    $(".tag_handle_open").not(jext_select_handle).removeClass().addClass("tag_handle");
	    $(".tag_options").not(jext_select_options).hide();
	    if (jext_select_options.css("display") == "none") {
	      $(this).removeClass().addClass("tag_handle_open");
	      jext_select_options.show();
	    } else {
	      $(this).removeClass().addClass("tag_handle_hover");
	      jext_select_options.hide();
	    }
	    return false;
	  });
      $(this).replaceWith(jext_select.append(jext_select_handle).append(jext_select_options));
      switch(opts.direction) {
        case "up": jext_select_options.css({top:-jext_select_options.outerHeight()+1, left:0}); break;
        case "left": jext_select_options.css({top:0, left:-jext_select_options.outerWidth()+1}); break;
        case "right": jext_select_options.css({top:0, left:jext_select_handle.outerWidth()-1}); break;
        default: jext_select_options.css({top:jext_select_handle.outerHeight()-1, left:0}); break;
      }
      $(document).click(function() { $(".tag_options:visible").hide(); $(".tag_handle_open").removeClass().addClass("tag_handle"); });
    },
    jext_MailSelect: function(options) {
      var defaultopt = {
        direction: "down",    // up,down,left,right
	influencedformitem: "",        // When SELECT open, the influenced form item hide at once.
        callback: function(a) {}
      };
      var opts = $.extend(defaultopt, options);
      // eval(opts.callback("abc"));
      var jext_select = $("<div></div>").addClass("jext_mailselect");
      var jext_select_handle = $("<div></div>").addClass("tag_handle");
      var jext_select_options = $("<ul></ul>").addClass("tag_options").css("display", "none");
      $(this).children("option").each(function(i) {
	  var option_value = $(this).val();
	  var option_html = $(this).text();
	  var option_selected = $(this).attr("selected");
	  
	  var ot_1, ot_2, ot_3, ot_4, ot_5;
	  if (typeof(option_html) != "undefined") {
	    ot_1 = option_html.split("(")[0];
	    ot_2 = option_html.split("(")[1];
	    if (typeof(ot_2) != "undefined") {
	      ot_3 = ot_2.split(",")[0];
	      ot_4 = ot_2.split(",")[1];
	      if (typeof(ot_4) != "undefined") {
		ot_5 = ot_4.split(")")[0];
	      }
	      else { ot_5 = ""; }
	    }
	    else { ot_3 = ""; ot_5 = ""; }
	  }
	  else { ot_1 = ""; ot_3 = ""; ot_5 = ""; }

	  option_item_name = ot_1;
	  option_item_w1 = ot_3;
	  option_item_w2 = ot_5;

	  var option_li = $("<li></li>").attr("val", option_item_name + "," +option_value)
	    .append($("<div></div>").addClass("tag_item_name").html(option_item_name))
	    .append($("<div></div>").addClass("tag_item_w1").html(option_item_w1))
	    .append($("<div></div>").addClass("tag_item_w2").html(option_item_w2));

	  if (!option_selected) { option_li.addClass("tag_option"); }
	  else {
	    option_li.addClass("tag_option_selected");
	    //jext_select_handle.html(option_html);
	    jext_select_handle
	      .append($("<div></div>").addClass("tag_item_name").html(option_item_name))
	      .append($("<div></div>").addClass("tag_item_w1").html(option_item_w1))
	      .append($("<div></div>").addClass("tag_item_w2").html(option_item_w2));
	  }
	  option_li
	    .hover(
		   function() { if ($(this).hasClass("tag_option")) { $(this).removeClass("tag_option").addClass("tag_option_hover"); return false; } },
		   function() { if ($(this).hasClass("tag_option_hover")) { $(this).removeClass("tag_option_hover").addClass("tag_option"); return false; } }
		   )
	    .click(function() {
		var tov_1 = $(this).find(".tag_item_name").text();
		var tov_2 = $(this).find(".tag_item_w1").text();
		var tov_3 = $(this).find(".tag_item_w2").text();
		jext_select_handle.removeClass().addClass("tag_handle").html("")
		  .append($("<div></div>").addClass("tag_item_name").html(tov_1))
		  .append($("<div></div>").addClass("tag_item_w1").html(tov_2))
		  .append($("<div></div>").addClass("tag_item_w2").html(tov_3));
		$(this).siblings(".tag_option_selected").removeClass("tag_option_selected").addClass("tag_option");
		$(this).removeClass("tag_option_hover").addClass("tag_option_selected");
		if (($.browser.msie) && (opts.influencedformitem != "")) { $(opts.influencedformitem).show(); }
		jext_select_options.hide();
		eval(opts.callback($(this).attr("val")));
		return false;
	      })
	    .appendTo(jext_select_options);
	});
      jext_select_handle
	.hover(
	       function() { if ($(this).hasClass("tag_handle")) { $(this).removeClass().addClass("tag_handle_hover"); return false; } },
	       function() { if ($(this).hasClass("tag_handle_hover")) { $(this).removeClass().addClass("tag_handle"); return false; } }
	       )
	.click(function() {
	    $(".tag_handle_open").not(jext_select_handle).removeClass().addClass("tag_handle");
	    $(".tag_options").not(jext_select_options).hide();
	    if (jext_select_options.css("display") == "none") {
	      $(this).removeClass().addClass("tag_handle_open");
	      if (($.browser.msie) && (opts.influencedformitem != "")) { $(opts.influencedformitem).hide(); }
	      jext_select_options.show();
	    } else {
	      $(this).removeClass().addClass("tag_handle_hover");
	      if (($.browser.msie) && (opts.influencedformitem != "")) { $(opts.influencedformitem).show(); }
	      jext_select_options.hide();
	    }
	    return false;
	  });
      jext_select_options.find("li:last").addClass("tag_option_last");
      $(this).replaceWith(jext_select.append(jext_select_handle).append(jext_select_options));
      $(document).click(function() { $(".tag_options:visible").hide(); $(".tag_handle_open").removeClass().addClass("tag_handle"); if (($.browser.msie) && (opts.influencedformitem != "")) { $(opts.influencedformitem).show(); } });
    },
    jext_Weather: function(options) {
      var defaultopt = {
        simgpath: "imgs/weather/",
        limgpath: "imgs/weather/",
	dstr: "yyyy-mm-dd Week",
	wstr: "N N N N w11.png",
	speed: "fast",
	powered: "Powered by Tencent",
	moverCallback: function() {},
	moutCallback: function() {}
      };
      var opts = $.extend(defaultopt, options);
      var wstr = opts.wstr.split(" ");
      var jext_weather = $("<div></div>").addClass("jext_weather");
      var jext_weather_handle = $("<div></div>").addClass("tag_handle");
      var jext_weather_body = $("<div></div>").addClass("tag_wbody").hide();
      var jext_weather_bweather = $("<div></div>").addClass("tag_weather");
      jext_weather_handle.append(opts.dstr + " ")
	.append($("<img/>").attr("src", opts.simgpath + wstr[4]).attr("alt", wstr[3]).attr("title", wstr[3]))
	.hover(function() {
	    jext_weather_handle.removeClass().addClass("tag_handle_hover");
	    jext_weather_body.show();
	    eval(opts.moverCallback());
	    return false;
	  },
	  function() {
	    jext_weather_handle.removeClass().addClass("tag_handle");
	    jext_weather_body.hide();
	    eval(opts.moutCallback());
	    return false;
	  });
      jext_weather_bweather
	.append($("<div></div>").addClass("tag_wimg").append($("<img/>").attr("src", opts.limgpath + wstr[4]).attr("alt", wstr[3])))
	.append($("<div></div>").addClass("tag_wlocal").text(wstr[0]))
        .append($("<div></div>").addClass("tag_winfo").text(wstr[3] + " " + wstr[1]))
	.append($("<div></div>").addClass("tag_wpowered").text(opts.powered))
	.appendTo(jext_weather_body);
      $(this).replaceWith(jext_weather.append(jext_weather_handle).append(jext_weather_body));
    }
});

