/*
 * jQuery pageination by liujian
*/
/*
json -
totalRowNum
pageInfo
html -
<div class="pagebox"><div class="pagedata"></div><div class="pagenumber"><p id="pagenum"></p></div></div>
js -
$('#pagenum').pageination({src:'a.json',number:3,data:{id:id}},function(item){
	var html= '<tr><td>'+item.memberName+'留言:</td><td>'+item.question+'</td><td>'+item.questionTime+'</td></tr>'
	return html;
});
*/
(function($){
	$.fn.pagination = function(s,callback) {
		return this.each(function() {
			var $this = $(this);
			s = $.extend({
				src: '',
				number: 3,
				data: {}
			}, s || {});
			if (!s.src||!s.data){ return false; }
			var $table = $this.closest('.pagebox');
			var pageNum = s.number;
			var pageTotal = 1;
			var pageCurrent = 1;
			var rowTotal = 0;
			var pageHtml = '';
			pageHtml += '共<span class="rowtotal"></span>条信息，显示<span class="rowview">' + s.number + '</span>条&nbsp;&nbsp;';
			pageHtml += '<a class="first" href="javascript:void(0);">首页</a>';
			pageHtml += '<a class="prev" href="javascript:void(0);">上一页</a>';
			pageHtml += '<span class="num"></span>';
			pageHtml += '<a class="next" href="javascript:void(0);">下一页</a>';
			pageHtml += '<a class="last" href="javascript:void(0);">末页</a>';
			$this.html(pageHtml);
			var pageTo = function(num){
				var data = $.extend({pageNo:num,rowNum:s.number},s.data);
				var dataHtml = '';
				$.getJSON(s.src,data,function(data){
					pageCurrent = parseInt(num);
					rowTotal = data.totalRowNum;
					$this.find('span.rowtotal').text(rowTotal);
					pageTotal = Math.ceil(rowTotal/pageNum);
					var spanHtml = '';
					if(pageTotal<=10){
						pageBegin = 1;
						pageFinish = pageTotal;
					}else if(pageCurrent<=6){
						pageBegin = 1;
						pageFinish = 10;
					}else if(pageCurrent>=pageTotal-4){
						pageFinish = pageTotal;
						pageBegin = pageTotal - 9;
					}else{
						pageBegin = pageCurrent - 5;
						pageFinish = pageCurrent + 4;
					}
					for(i=pageBegin;i<=pageFinish;i++){
						if(i == pageCurrent){
							spanHtml += "<a class='current'>" + i + "</a>";
						}else{
							spanHtml += "<a href='javascript:void(0)'>" + i + "</a>";
						}
					}
					var $spanNum = $this.find('span.num');
					$spanNum.html(spanHtml);
					$spanNum.find('a').not('.current').each(function(){
						var n = $(this).text();
						$(this).bind('click',function(){pageTo(n);});
					});
					$.each(data.pageInfo,function(index,item){
						if(jQuery.isFunction(callback)){ dataHtml += callback(item); }
					});
					$table.find('.pagedata').html(dataHtml);
					if(num == 1){
						$this.find('a.first').hide();
						$this.find('a.prev').hide();
					}else{
						$this.find('a.first').show();
						$this.find('a.prev').show();
					}
					if(num == pageTotal){
						$this.find('a.last').hide();
						$this.find('a.next').hide();
					}else{
						$this.find('a.last').show();
						$this.find('a.next').show();
					}
					if(rowTotal == 0){
						$table.hide();
					}else if(rowTotal > 0){
						$table.show();
					}
				});
			}
			$this.find('a.first').bind('click',function(){pageTo(1);});
			$this.find('a.prev').bind('click',function(){pageTo(pageCurrent>1?pageCurrent-1:1);});
			$this.find('a.next').bind('click',function(){pageTo(pageCurrent<pageTotal?pageCurrent+1:pageTotal);});
			$this.find('a.last').bind('click',function(){pageTo(pageTotal);});
			pageTo(1);
		});
	}
})(jQuery);

/*
 * jQuery selectbox by liujian
*/
/*
html -
<div id="selectbox"><input type="hidden" id="city" name="city" value="" /></div>
js -
$('#selectbox').selectbox({name:'city',src:'a.json',data:['1','2','3']},function(){alert('hello')});
*/

(function($){
	$.fn.selectbox = function(s,callback) {
		return this.each(function() {
			var $this = $(this);
			s = $.extend({
				name: 'select',
				src: '',
				inputFinal: false,
				data: []
			}, s || {});
			if (!s.src){ return false; }
			var defaultOption = '<option value="">请选择</option>';
			var html = defaultOption;
			var index = 0;
			var indexNew = 0;
			var dataNew;
			var optionIndex = 0;
			var selects;
			var newSelect = function(index,data){
				selects = $this.find('select');
				$.each(data,function(itemIndex,item){
					html += '<option value="'+ item[0]+'">' + item[1] + '</option>';
				});
				selects.eq(index).append(html).show();
				selects.eq(index).change(function(){
					selects.eq(index).nextAll('select').remove();
					optionIndex = $(this).find('option:selected').val();
					if( optionIndex && optionIndex != '' ){
						if(!s.inputFinal){ $this.find('#'+s.name).val(optionIndex); }
						else{ $this.find('#'+s.name).val(''); }
						$.getJSON(s.src,{value:optionIndex},function(dataNew){
							if(dataNew&&dataNew.length>0){
								indexNew = index + 1;
								$this.append('<select id="' + s.name + indexNew + '"name="' + s.name + indexNew + '" style="display:none"></select>');
								selects.eq(indexNew).show();
								html = defaultOption;
								newSelect(indexNew,dataNew);
							}else{
								if(s.inputFinal){ $this.find('#'+s.name).val(optionIndex); }
							}
							if(jQuery.isFunction(callback)){ callback(); }
						});	
					}else{
						if( index == 0||s.inputFinal ){ $this.find('#'+s.name).val(''); }
						else if( optionIndex == '' ){ 
							var lastVal = $(selects[index-1]).val();
							$this.find('#'+s.name).val(lastVal);
						}
						if(jQuery.isFunction(callback)){ callback(); }
					}
				});
				if(s.data[index]&&s.data[index]!=''){ selects.eq(index).val(s.data[index]).change();s.data[index]=''; }
			}
			$this.find('select').remove();
			$this.find('#'+s.name).val('');
			$this.append('<select id="' + s.name + index + '"name="' + s.name + index + '" style="display:none"></select>');
			$.getJSON(s.src,function(data){
				newSelect(index,data);
			});
		});
	}
})(jQuery);

/*
 * jQuery common by liujian
*/

if($.validator){

//默认验证信息
jQuery.extend(jQuery.validator.messages, {
	required: "必填项",
	remote: "请修正该项",
	email: "请输入正确格式的电子邮件",
	url: "请输入合法的网址",
	date: "请输入合法的日期",
	dateISO: "日期格式必须为yyyy-mm-dd",
	number: "请输入合法的数字",
	digits: "只能输入整数",
	creditcard: "请输入合法的信用卡号",
	equalTo: "请再次输入相同的值",
	accept: "请输入拥有合法后缀名的字符串",
	maxlength: jQuery.validator.format("请输入一个长度最多是 {0} 的字符串"),
	minlength: jQuery.validator.format("请输入一个长度最少是 {0} 的字符串"),
	rangelength: jQuery.validator.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"),
	range: jQuery.validator.format("请输入一个介于 {0} 和 {1} 之间的值"),
	max: jQuery.validator.format("请输入一个最大为 {0} 的值"),
	min: jQuery.validator.format("请输入一个最小为 {0} 的值")
});

}

var myDate=new Date()
var myYear=myDate.getFullYear();
var yearRange=(myYear-10)+':'+(myYear+10);

jQuery(function() {

if($.ui){

	//dialog初始化
	$.ui.dialog.defaults.bgiframe = true;
	$.ui.dialog.defaults.autoOpen = false;
	$.ui.dialog.defaults.height = 'auto';

	//日历控件初始化
	var dateInput = $('input.datepicker');
	if(dateInput&&dateInput.length>0){
		$.datepicker.setDefaults($.extend($.datepicker.regional['']));
		dateInput.datepicker({
			buttonImage: 'images/calendar.gif',
			buttonImageOnly: true,
			changeMonth: true,
			changeYear: true,
			dateFormat: 'yy-mm-dd',
			dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
			dayNamesMin: ['日','一','二','三','四','五','六'],
			dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
			monthNames: ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],
			monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
			showMonthAfterYear: true,
			yearRange: yearRange,
			onClose: function() { $(this).focus(); }
		},$.datepicker.regional['zh-CN']);
	}

}
if($.validator){

	//字符串
	$.validator.addMethod("isWord",function(value, element) {
		return this.optional(element) || /^\w+$/.test(value);
	},"只能包含数字、字符或下划线");
	//纯汉字
	$.validator.addMethod("chinese",function(value, element) {
		return this.optional(element) || /^[\u4E00-\u9FA5]+$/.test(value);
	},"只能使用汉字");
	//身份证
	$.validator.addMethod("idCard",function(value, element) {
		return this.optional(element) || /(^\d{15}$)|(^\d{17}([0-9]|X|x)$)/.test(value);
	},"请输入15或18位身份证号码，18位末尾可以是X");
	//选择框
	$.validator.addMethod("selectRequired",function(value, element, param) {
		if(value == param) { return this.optional(element) }
		else { return true };
	},$.validator.messages.required);
	//二选一
	$.validator.addMethod("oneRequired",function(value, element, param) {
		var paramVal = $(param).val();
		if(value == '' && paramVal == '') { return false }
		else { return true };
	},$.validator.messages.required);
	//电话
	$.validator.addMethod("telephone",function(value, element) {
		return this.optional(element) || /^\d{3,4}-\d{7,9}$/.test(value);
	},"格式为010-12345678 ");
	//手机
	$.validator.addMethod("mobile",function(value, element) {
		return this.optional(element) || /^(13|15)[0-9]{9}$/.test(value);
	},"请输入正确的手机号");
	//邮编
	$.validator.addMethod("isZipCode", function(value, element) {
		return this.optional(element) || /^[0-9]{6}$/.test(value);
	}, "请输入正确的邮政编码");
	//支付平台账号
	$.validator.addMethod("payAccount", function(value, element) {
		return this.optional(element) || /^[0-9a-zA-Z]{19}$/.test(value);
	}, "支付平台帐号的长度为19位，且只能是数字或字母");
	//日期格式验证
	$.validator.addMethod("datepicker", function(value, element) {
		return this.optional(element) || /^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))$|^((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/.test(value);
	}, "日期错误，格式为yyyy-mm-dd");
	//组织机构代码验证
	$.validator.addMethod("orgcode",function(value, element){
		return this.optional(element) || /^[0-9A-Z]{8}-[0-9A-Z]{1}$/.test(value);
	},"组织机构代码格式错误");
	//时间比较
	$.validator.addMethod("dateCompare",function(value, element, param) {
		var paramtime = $(param).val();
		var comp = comptime(paramtime,value);
		return comp == true;
	},"开始时间必须早于结束时间");
	//数字比较
	$.validator.addMethod("compareNumber",function(value, element, params) {
		var paramVal = $(params.target).val();
		switch(params.mode){
			case '>': return (value-paramVal)>0; break;
			case '<': return (value-paramVal)<0; break;
			case '==': return value==paramVal; break;
			case '>=': return (value-paramVal)>=0; break;
			case '<=': return (value-paramVal)<=0; break;
			case '!=': return (value-paramVal)!=0; break;
		}
	},"填入的数字有误");

	//验证初始化
	jQuery.validator.setDefaults({
		onkeyup: false,
		errorElement: "em",
		errorPlacement: function(error, element) {
			var errorParent = element.parents('td').eq(0);
			if(errorParent&&errorParent.length>0){
				errorParent.find('em').remove();
				errorParent.append( error );
			}
		}
	});
	
	//验证规则合并
	$.validator.addClassRules({
		username: {
			isWord:true,
			rangelength:[6,18]
		},
		password: {
			isWord:true,
			rangelength:[6,12]
		},
		realname: {
			chinese:true,
			minlength:2
		}
	});

}

	//输入框焦点样式
	$('input:text').add('input:password').add('textarea').focus(function(){
		$(this).addClass('focus-style');
		var input_tip = $(this).attr('tip')||'';
		if(input_tip !== ''){
			var em_tip = $(this).parent().find('em');
			if(em_tip&&em_tip.length>0){
				em_tip.addClass('nor').text(input_tip);
			}else{
				$(this).parent().append('<em class="nor">' + input_tip + '</em>');
			}
		}
	}).blur(function(){
		$(this).removeClass('focus-style');
		$(this).nextAll('em.nor').empty().removeClass('nor');
	});
	
	//回车直接触发表单事件
	if($('form.search-area') && $('form.search-area').length>0) {
		$('form.search-area').each(function(){
			var $this = $(this);
			$this.keydown(function(event){
				var keycode = event.keyCode;
				if(keycode == 13){
					var inputSubmit = $('input[type="submit"]',$this) || $('input.submit',$this);
					inputSubmit.click();
					return false;
				}
			});
		});
	}
	
	//为IE6的img.max添加max-width max-height
	if($.browser.msie && $.browser.version == 6.0) {
		if($('img.max') && $('img.max').length>0){
			$('img.max').each(function(){
				$(this).hide();
				var imgThis = new Image();
				imgThis.src = this.src;
				var $this = $(imgThis);
				$this.hide().appendTo('body');
				var thisWidth = $this.innerWidth();
				var thisHeight = $this.innerHeight();
				var maxWidth = parseInt($(this).css('max-width'));
				var maxHeight = parseInt($(this).css('max-height'));
				if(thisWidth >= thisHeight){
					$(this).width(thisWidth>maxWidth?maxWidth:thisWidth);
				}else{
					$(this).height(thisHeight>maxHeight?maxHeight:thisHeight);
				}
				$this.remove();
				$(this).show();
			});
		}
	}

});

//时间比较
function comptime(beginTime,endTime){
	var beginTimes=beginTime.substring(0,10).split('-');
	var endTimes=endTime.substring(0,10).split('-');
	if(endTimes[0] > beginTimes[0]) { return true; }
	else if(endTimes[0] == beginTimes[0]) {
		if(endTimes[1] > beginTimes[1]) { return true; }
		else if(endTimes[1] == beginTimes[1]) {
			if(endTimes[2] > beginTimes[2]) { return true; }
			else{ return false; }
		}
		else{ return false; }
	}
	else{ return false; }
}

//自定义警告信息和提示信息
if($.ui){

var timeSet;
jQuery.extend({
	alert:function(txt,callback){
		clearTimeout(timeSet);
		var htmlAlert = '<div id="systemAlert" title="系统提示">';
		htmlAlert += '<div class="msg">' + txt + '</div></div>';
		$('body').append(htmlAlert);
		$('#systemAlert').dialog({
			bgiframe: true,
			autoOpen: true,
			modal: true,
			resizable: false,
			buttons: {
				确定: function() {
					$(this).dialog('close');
					if(jQuery.isFunction(callback)){ callback(); }
				}
			},
			close:function(){
				$('#systemAlert').dialog('destroy').remove();
			}
		});
		var autoClose = function(){
			if($('#systemAlert')&&$('#systemAlert').length>0){
				$('#systemAlert').dialog('close');
				if(jQuery.isFunction(callback)){ callback(); }
			}
		}
		timeSet = setTimeout(autoClose,3000);
	},
	confirm:function(txt,callback){
		var htmlConfirm = '<div id="systemConfirm" title="操作确认">';
		htmlConfirm += '<div class="msg">' + txt + '</div></div>';
		$('body').append(htmlConfirm);
		$('#systemConfirm').dialog({
			bgiframe: true,
			autoOpen: true,
			modal: true,
			resizable: false,
			buttons: {
				取消: function(){
					$(this).dialog('close');
				},
				确定: function() {
					$(this).dialog('close');
					if(jQuery.isFunction(callback)){ callback(); }
				}
			},
			close:function(){
				$('#systemConfirm').dialog('destroy').remove();
			}
		});
	}
	
});

}

//定义验证码刷新函数
function changeImg(obj){
	var imgSrc = $(obj);
	var src = imgSrc.attr("src");
	imgSrc.attr("src",chgUrl(src));
}
function chgUrl(url){
	var timestamp = (new Date()).valueOf();
	if((url.indexOf("&")>=0)){
		url = url + "×tamp=" + timestamp;
	}else{
		url = url + "?timestamp=" + timestamp;
	}
	return url;
}

//定义loading函数
var loading = {
	start:function(txt){
		if($('#systemLoading')){$('#systemLoading').remove();}
		var htmlLoad = '<div id="systemLoading"><div id="msgLoading">' + txt + '......' + '</div></div>';
		$('body').append(htmlLoad);
		$('#systemLoading').bgiframe();
		var msgTop = $('#msgLoading').height();
		$('#msgLoading').css('margin-top',-msgTop/2);
	},
	end:function(){
		$('#systemLoading').remove();
	}
}

//定义iframe弹出框
var iframeOpen = function(obj){
	if(!obj){ obj = this };
	$(obj).colorbox({innerWidth:760, innerHeight:"80%", iframe:true, overlayClose:false});
	return false;
}