;(function($) {

$.fn.extend({

	disableSel: function(el) {
		return this.attr('unselectable', 'on').css('MozUserSelect', 'none').bind('selectstart', function() { return false; });
	},
	enableSel: function(el) {
		return this.attr('unselectable', 'off').css('MozUserSelect', '').unbind('selectstart');
	},

	//操作cookie
	cookie: function(name, value, options){
		if(typeof value != 'undefined'){
			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();
			}
			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{
			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]);
					if (cookie.substring(0, name.length + 1) == (name + '=')) {
						cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
						break;
					}
				}
			}
			return cookieValue;
		}
	},

	//交换样式
	swapClass: function(c1, c2){
		return this.hasClass(c1) ? this.removeClass(c1).addClass(c2) : this.hasClass(c2) ? this.removeClass(c2).addClass(c1) : this;
	},

	//overlay
	overlay: function(options, evclass){
		var options = $.extend({//absolute
				position: 'fixed', top: 0, left: 0,
				width: '100%',
				height: '100%',
				opacity: 0.2, background: 'black', zIndex: 99
			}, options),
		evclass = evclass || 'overlay';
		
		if( $.fn.ie6 ) options = $.extend(options, {
			position: 'absolute',
			width: $(document.body).width(),
			height: $(document.body).height() });

		return $('<div class="'+evclass+'" id="'+evclass+'"/>')
			.appendTo(document.body)
			.css(options);
	},

	//绝对居中
	position: function(options){
		var options = $.extend({
				fixx: 0,
				fixy: 0
			}, options),
			mod = (this.css("position")=="fixed") ? 0 : 1,
			pTop = $(document).scrollTop()*mod,
			pLeft = $(document).scrollLeft()*mod,
			minTop = pTop;

		pLeft += ($(window).width() - this.width()) / 2;
		pTop += ($(window).height() - this.height()) / 2;
		
		pLeft += options.fixx;
		pTop = Math.max(pTop, minTop)+options.fixy;
		
		if(pTop<0) pTop = 0;
		if(pLeft<0) pLeft = 0;
		
		return this.css({top: pTop, left: pLeft});
	},

	//进度条
	loading: function(options) {
		$("#loading").remove();
		var options = $.extend({
				action: true,
				text: "加载中……"
			}, options);
		if(options.action){
			$('<div id="loading"/>').appendTo(document.body)
				.html(options.text)
				.hide()
				.css({
					top: $.fn.ie6 ? $(document).scrollTop() : 0,
					right: 0
				})
				.show();
		}
	},

	//换肤
	skinctrl: function(options) {
		var options = $.extend({
			}, options),
			target = $(document.body),
			els = this.children("a"),
			index = 0;

		els.each(function(i,n){
			if($(n).hasClass($.fn.cookie('skinctrl'))) index = i;
			$(n).click(function(){
				if(!$(this).hasClass("active")){
					$.fn.cookie('skinctrl', null, { expires: -1, path: '/', domain: location.hostname, secure: location.protocol == 'https:' ? true : false });
					$.fn.cookie('skinctrl', null, { expires: -1, path: '/', domain: '.ztemc.com', secure: location.protocol == 'https:' ? true : false });
					$.fn.cookie('skinctrl', this.className, { expires: 365, path: '/', domain: '.ztemc.com', secure: location.protocol == 'https:' ? true : false });
					target.removeAttr("class").addClass(this.className);
					$(this).siblings().removeClass("active").end().addClass("active").blur();
				}
				return false;
			});
		});
		
		//预设
		els.eq(index).click();
	},

	//插入FLASH
	embedswf: function(options){
		var options = $.extend({
			codebase: 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0',
			quality: 'high',
			pluginspage: 'http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash'}, options),
			self = this;

		function Generateobj(objAttrs, params, embedAttrs){ 
			var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
			var str = '';
			if($.browser.msie && isWin && !$.browser.opera){
				str += '<object ';
				for (var i in objAttrs) str += i + '="' + objAttrs[i] + '" ';
				str += '>';
				for (var i in params) str += '<param name="' + i + '" value="' + params[i] + '" /> ';
				str += '</object>';
			}else{
				str += '<embed ';
				for (var i in embedAttrs) str += i + '="' + embedAttrs[i] + '" ';
				str += '> </embed>';
			}
			self.html(str);
		}

		function AddExtension(src, ext){
			if (src.indexOf('?') != -1)
				return src.replace(/\?/, ext+'?'); 
			else
				return src + ext;
		}

		function GetArgs(args){
			var ext = ".swf", srcParamName = "movie", classid = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , mimeType = "application/x-shockwave-flash";
			var ret = new Object();
			ret.embedAttrs = new Object();
			ret.params = new Object();
			ret.objAttrs = new Object();
			for (var i in args){
				var currArg = i.toLowerCase();    
		
				switch (currArg){	
					case "classid":
						break;
					case "pluginspage":
						ret.embedAttrs[i] = args[i];
						break;
					case "src":
					case "movie":	
						args[i] = AddExtension(args[i], ext);
						ret.embedAttrs["src"] = args[i];
						ret.params[srcParamName] = args[i];
						break;
					case "onafterupdate":
					case "onbeforeupdate":
					case "onblur":
					case "oncellchange":
					case "onclick":
					case "ondblClick":
					case "ondrag":
					case "ondragend":
					case "ondragenter":
					case "ondragleave":
					case "ondragover":
					case "ondrop":
					case "onfinish":
					case "onfocus":
					case "onhelp":
					case "onmousedown":
					case "onmouseup":
					case "onmouseover":
					case "onmousemove":
					case "onmouseout":
					case "onkeypress":
					case "onkeydown":
					case "onkeyup":
					case "onload":
					case "onlosecapture":
					case "onpropertychange":
					case "onreadystatechange":
					case "onrowsdelete":
					case "onrowenter":
					case "onrowexit":
					case "onrowsinserted":
					case "onstart":
					case "onscroll":
					case "onbeforeeditfocus":
					case "onactivate":
					case "onbeforedeactivate":
					case "ondeactivate":
					case "type":
					case "codebase":
					case "id":
						ret.objAttrs[i] = args[i];
						break;
					case "width":
					case "height":
					case "align":
					case "vspace": 
					case "hspace":
					case "class":
					case "title":
					case "accesskey":
					case "name":
					case "tabindex":
						ret.embedAttrs[i] = ret.objAttrs[i] = args[i];
						break;
					default:
						ret.embedAttrs[i] = ret.params[i] = args[i];
				}
			}
			ret.objAttrs["classid"] = classid;
			if (mimeType) ret.embedAttrs["type"] = mimeType;
			return ret;
		}

		var ret = GetArgs(options);
		Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
	},

	//可拖拉
	draggable: function(options, evclass) {
		var options = $.extend({
			}, options),
			handle = options.handle ? $(options.handle, this) : this,
			flag = false,
			__poffset = { left: 0, top: 0 },
			evclass = evclass || 'draggable',
			mod = this.css("position")=="fixed" ? 1 : 0,
			self = this;

		handle.bind("mousedown."+evclass,function(ev){
			flag = true;
			var offset = self.offset();
			__poffset = { left: ev.pageX - offset.left, top: ev.pageY - offset.top };
			$(document).bind("mousemove."+evclass,function(ev){
				if (flag) {
					var offset = self.offset(),
					pTop = $(document).scrollTop(),
					pLeft = $(document).scrollLeft();
					self.css( {
						left : ev.pageX - __poffset.left - pLeft*mod + "px",
						top : ev.pageY - __poffset.top - pTop*mod + "px"
					} );
				}
			});
		})
		.bind("mouseup."+evclass,function(ev){
			if (flag) {
				var offset = self.offset();
				pTop = $(document).scrollTop(),
				pLeft = $(document).scrollLeft();
				self.css( {
					left : ev.pageX - __poffset.left - pLeft*mod + "px",
					top : ev.pageY - __poffset.top - pTop*mod + "px"
				} );
			}
			flag = false;
			$(document).unbind("mousemove."+evclass);
		});

		return self;
	},

	/*弹出层*/
	popup: function(options,data){
		var options = $.extend({
				buttons: { '确认': function(){ destroy(); }, '取消': function(){ destroy(); } },
				closeonesc: true, destroy: false, id: 'popup', iframe: false,
				overlay: { opacity: 0.2, background: 'black' },
				text: '', title: '提示', type: 1, width: 280, height: 0, zIndex: 1
			}, options),
			self = this;

		/*移除popup*/
		function destroy(){
			$('#'+options.id+'_overlay').add([document, window]).unbind('.popup_overlay');
			$('#'+options.id).add([document, window]).unbind('.popup_draggable');
			$('#'+options.id+'_overlay').remove();
			$('#'+options.id).fadeOut('fast',function(){$(this).remove()});
		}

		switch(options.action){
			case -1://重设大小
				$('.popup_content', $('#'+options.id)).animate(data).find('iframe').css(data);
				return;
			case 0://重设标题
				$('.popup_title', $('#'+options.id)).text(options.text);
				return;
			case 1://点击第一个按钮
				$('.popup_buttonpane', $('#'+options.id)).children('a:nth-child(1)').trigger('click');
				return;
			case 2://点击第二个按钮
				$('.popup_buttonpane', $('#'+options.id)).children('a:nth-child(2)').trigger('click');
				return;
			case 9://关闭
				$('.popup_close', $('#'+options.id)).trigger('click', data);
				return;
			default:
				($('#'+options.id).length==1) && destroy(); 
		}
		
		/*创建控制按钮*/
		var hasButtons = false, genButtons = [];
		function createButtons(buttons) {
			
			popupButtonPane.empty().hide();
			
			$.each(buttons, function() { return !(hasButtons = true); });
			if (hasButtons) {
				popupButtonPane.show();
				$.each(buttons, function(name, fn) {
					genButtons.push($('<a href="javascript:;"/>')
						.text(name)
						.appendTo(popupButtonPane)
						.bind('click', function() { fn.apply(this, arguments); }));
				});
			}
		}
		
		var popupContentHTML;
		
		if(options.iframe){
			popupContentHTML = $('<iframe src="'+options.text+'" marginwidth="0" marginheight="0" frameborder="0" hspace="0" vspace="0" scrolling="no" />')
			.css({ width: options.width-20, height: options.height==0 ? 'auto' : options.height-45 });
			(options.height==0) && popupContentHTML.load(function(){
				var body = $.browser.msie ? this.contentWindow.document.body : this.contentWindow.document.documentElement;
				$.fn.popup( { action: -1 }, { width: body.offsetWidth, height: body.offsetHeight } );
			});
		}else{
			popupContentHTML = $('<div>'+options.text+'</div>');
		}

		var popupContent = $('<div class="popup_content popup_content_'+options.type+'"/>')
			.append(popupContentHTML)
			.wrap('<div class="popup popup_'+options.type+'"/>')
			.wrap('<div class="popup_container popup_container_'+options.type+'"/>'),

		popupContainer = popupContent.parent(),
		
		popupTitleClose = $('<div class="popup_titleclose"/>')
			.append('<span class="popup_title">' + options.title + '</span>')
			.append('<a href="javascript:;" class="popup_close"><span>X</span></a>')
			.prependTo(popupContainer),
			
		__position = ($.fn.ie6) ? 'absolute' : 'fixed';

		popup = popupContainer.parent()
			.css({
				position: __position, zIndex: 99+options.zIndex,
				top: 0, left: 0, width: options.width, height: options.height==0 ? 'auto' : options.height, outline: 0
			})
			.attr({ id: options.id, tabIndex: '-1' })
			.appendTo(document.body)
			.hide()
			.keydown(function(ev) {
				if (options.closeonesc) {
					(ev.keyCode && ev.keyCode == 27 && destroy());
				}
			})
			.draggable( { handle: '.popup_titleclose' }, 'popup_draggable' )
			.disableSel(),
		
		popupButtonPane = $('<div class="popup_buttonpane"/>')
			.appendTo(popup);

		$('.popup_close', popupTitleClose)
			.mousedown(function(ev) {
				ev.stopPropagation();
			})
			.click(function(event, callback) {
				destroy();
				if(callback) callback.apply(this, arguments);
				return false;
			});

		createButtons(options.buttons);
		
		if(options.overlay){
			var popup_overlay = $().overlay( $.extend(options.overlay, { position: __position }), options.id+'_overlay' );
	
			if (options.closeonesc) {
				$(document).bind('keydown.popup_overlay', function(e) {
					(e.keyCode && e.keyCode == 27 && destroy()); 
				});
			}
		}

		popup.position( options.iframe ? { fixy: -100 } : {} ).show();

		//设置焦点
		hasButtons ? $(genButtons).focus() : options.iframe ? popupContentHTML.focus() : options.overlay ? popup_overlay.focus() : true;
	},
	
	rating: function(options){
		this.disabled = false;
		var options = $.extend({
				url: ''
			}, options),
			self = this,
			bignum = this.find('big');
		if(bignum.length==0) return;
		var div = $('<div class="rating"/>').insertBefore( bignum ),
		 	score = this.find('big').text().split("."),
			str = "";

		for(var i=1;i<11;i++) str += '<div class="star"><a href="#'+i+'" title="给TA打 '+i+' 分">'+i+'</a></div>';
		
		div.append( str );
		
		var averageIndex = parseInt(score[0]),
			averagePercent = parseInt(score[1].substring(0,1)),
			stars = div.find("div.star")
				.mouseover(drainFill).focus(drainFill)
				.mouseout(drainReset).blur(drainReset)
				.click(click);

		function drainFill(){ drain(); fill(this); }
		function drainReset(){ drain(); reset(); }

		function click(){
			if(self.disabled) return;

			averageIndex   = stars.index(this) + 1;
			averagePercent = 0;

			if ( averageIndex == 0 ) drain();

			$.fn.loading();
			$.post(options.url,{
					rating: this.firstChild.hash.slice(1)
				}, function(data){
					$.fn.loading( { action: false } );
					if(parseFloat(data)>=0){
						self.disabled = true;
						var bigsup = data.split('.');
						bignum.html(bigsup[0]+'.<sup>'+bigsup[1]+'</sup>');
						stars.find('a').each(function(i,n){n.title="打分成功，谢谢您的参与。";});
						score = data.split('.');
						averageIndex = parseInt(score[0]);
						averagePercent = parseInt(score[1].substring(0,1));
						reset();
					}else if(data=="popLogin"){
						loginPopup(true);
					}else{
						errPopup({text:data});
					}
				});

			return false;
		}

		function fill( elem ){
			stars.find("a").css("width", "100%");
			stars.slice(0, stars.index(elem) + 1).addClass("hover");
		}

		function drain(){
			stars.removeClass("on hover");
		}

		function reset(){
			stars.slice(0, averageIndex).addClass("on");

			var percent = averagePercent ? averagePercent * 10 : 0;
			if (percent > 0)
				stars.slice(averageIndex, averageIndex + 1)
					.addClass("on")
					.children("a")
					.css("width", percent + "%");
		}
		
		reset();
	}

});

})(jQuery);

if ( jQuery.browser.msie ) {
	try{document.execCommand('BackgroundImageCache', false, true);}catch(e){}
	jQuery.fn.extend( { ie6: jQuery.browser.version == '6.0' } );
}


String.prototype.CutB = function(l){
	var arr = this.split("");
	for(var i=0,j=0,str="";i<arr.length&&j<l;i++,j++){
		str += arr[i];
		if(arr[i].LenB()==2) j++;
	}
	return str;
}
String.prototype.XMLEncode = function(){
	return this.replace("\"","&quot;").replace("'","&apos;").replace(">","&gt;").replace("<","&lt;").replace("&","&amp;").trim();
}

String.prototype.IsTheType = function(type){
	return new RegExp(","+this.trim().toLowerCase().substring(this.lastIndexOf(".")+1,this.length)).test(","+type);
}
/*
 * 通用函数
 */
function $$(){
	var elements = [];
	for (var i = 0; i < arguments.length; i++){
		var element = arguments[i];
		if (typeof element == "string"){
			try{
				element = document.getElementById(element);
			}catch(e){
			}
		}
		if (arguments.length == 1){
			return element;
		}
		elements.push(element);
	}
	return elements;
}
/*重设父窗体层尺寸*/
function resizeParent(){
	document.all ?
	parent.$.fn.popup( { action: -1 }, { width: document.body.scrollWidth, height: document.body.scrollHeight} ) :
	parent.$.fn.popup( { action: -1 }, { width: document.documentElement.offsetWidth, height: document.documentElement.offsetHeight} );
}

/*添加到收藏夹*/
function bookMark(title,url){
	var sTitle = title || document.title,
		sURL = url || location.href;
	try{
		window.external.addFavorite(sURL, sTitle);
	}catch (e){
		try{
			window.sidebar.addPanel(sTitle, sURL, "");
		}catch (e){
			norPopup({text: '加入收藏失败，请使用Ctrl+D进行添加'});
		}
	}
}
/*设为主页*/
function setHome(url){
	var sURL = url || location.href;
	try{
		window.event.srcElement.style.behavior = 'url(#default#homepage)';
		window.event.srcElement.setHomePage(sURL);
	}catch(e){
		if(window.netscape) {
			try {
				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
			}catch (e) {
				norPopup({text: '此操作被浏览器拒绝！\n请在浏览器地址栏输入“about:config”并回车\n然后将 [signed.applets.codebase_principal_support]设置为“true”'});
			}
			try{
				var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
				prefs.setCharPref('browser.startup.homepage',sURL);
			}catch(e){
			}
		}
	}
}

/*
 * 调用
 */

var contextPath=location.pathname.indexOf('/ztemc/')==0 ? '/ztemc' : '';

/*弹出登录*/
function loginPopup(isRefresh){
	var isRefreshParent=(isRefresh==null?false:isRefresh);
	$.fn.popup( {
		buttons: {},
		iframe: true,
		text: contextPath+'/popupLogin.jsp?isRefreshParent='+isRefreshParent+'',
		title: '登录',
		type: 9,
		width: 380,
		height:220
	} );
}
/*弹出注册*/
function registerPopup(){
	$.fn.popup( {
		buttons: {},
		iframe: true,
		text: contextPath+'/popupRegister.jsp',
		title: '注册',
		type: 9,
		width: 500,
		height:360
	} );
}
/*一般提示*/
function norPopup(options,fn){
	$.fn.popup( $.extend({
		buttons: {
			确定: function(){
				$.fn.popup( { action: 9 }, fn );
			}
		},
		type: 3
	}, options) );
}
/*错误提示*/
function errPopup(options,fn){
	$.fn.popup( $.extend({
		buttons: {
			确定: function(){
				$.fn.popup( { action: 9 }, fn );
			}
		},
		type: 0
	}, options) );
}
/*成功提示*/
function sucPopup(options,fn){
	$.fn.popup( $.extend({
		buttons: {
			确定: function(){
				$.fn.popup( { action: 9 }, fn );
			}
		},
		type: 1
	}, options) );
}
/*选择提示*/
function optPopup(options,fn1,fn2){
	$.fn.popup( $.extend({
		buttons: {
			确定: function(){
				$.fn.popup( { action: 9 }, fn1 );
			},
			取消: function(){
				$.fn.popup( { action: 9 }, fn2 );
			}
		},
		type: 2
	}, options) );
}

var Cookie={
	set:function(name,value){
	    var exp  = new Date();
		 exp.setTime(exp.getTime() + 30*24*60*60*1000);
		 var cookieStr  = name + "="+ escape (value) + ";expires=" + exp.toGMTString() + ";path=";
		 if(contextPath=='') cookieStr+="/";
		 else cookieStr+=contextPath;
		 
		 document.cookie = cookieStr;
	},
	get:function(name){
	    var reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
		 var arr=document.cookie.match(reg);
		 if(arr){
			return unescape(arr[2]);
		 }else{
		    return null;
		 }
	}
};

var Pub={
	redirect:function(theUrl){
	 		window.location.href=theUrl;
	},
    /**
	 * 全选/取消操作
	 */
	checkAll:function(areaId){
		var ev=window.event||arguments.callee.caller.arguments[0];
	    var obj=ev.target||ev.srcElement;
		var objs = document.getElementById(areaId).getElementsByTagName("input");
		for(var i=0; i<objs.length; i++) {
		  if(objs[i].type.toLowerCase() == "checkbox" )
		      objs[i].checked =obj.checked;
		  }
	},
	
	/**
	* 获取checkbox值串
	**/
	getValues:function(e){
	  var tmp="";
	  var objs = document.getElementById(e).getElementsByTagName("input");
	  for(var i=0; i<objs.length; i++) {
	    if(objs[i].type.toLowerCase() == "checkbox"&&objs[i].checked==true ){
	    	if(objs[i].value=="")continue;
	      	tmp+=","+objs[i].value;
	    }
	  }
	  if(tmp==""){return "";}
	  return tmp.substring(1,tmp.length);
	},
	
	/**
	 * 获取radio值
	 **/
	 getValue:function(e){
	 	var objs = e.getElementsByTagName("input");
	  	for(var i=0; i<objs.length; i++) {
	    if(objs[i].type.toLowerCase() == "radio"&&objs[i].checked==true )
	      	return objs[i].value;
	  	}
	  	return;
	 },
	 /**订购彩铃*/
	 colorRingWin:function(url,id){
	 	$.get(contextPath+"/colorRing/colorRing!addClickNum.action?colorRingId=" + id);
	 	window.open (''+url+'', 'newwindow', 'height=666, width=710, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no');
	 }
};
function StringBuffer(s){var b=[];this.append=function(s){if(s){b[b.length]=s;}return this;};this.toString=function(p){return b.join(p || "");};};
String.prototype.trim   =function(){return this.replace(/^\s+|\s+$/g, "");}
String.prototype.ltrim  =function(){return this.replace(/(^\s*)/g, "");}
String.prototype.rtrim  =function(){return this.replace(/(\s*$)/g, "");}
String.prototype.len    =function(){return this.replace(/[^\x00-\xff]/g,"rr").length;}

String.prototype.equals = function(value){return this.trim()==value.trim();}
String.prototype.isEmpty = function(){return this.trim()=="";}
String.prototype.isNumeric = function(){return !isNaN(parseFloat(this));}

String.prototype.between =function(min,max){return this.len()>=min&&this.len()<=max;}
String.prototype.contains = function(a){for(var i=0;i<a.length;i++){if(a[i].trim()==this.trim()) return true;}return false;}
String.prototype.match= function(exp){return ((typeof exp == "object") ? exp : (new RegExp(exp))).test(this.trim());}

