
/**
 * js分页，当使用ajax调用数据时要用到
 * @recordCount : 总记录条数
 * @pageSize    : 每页条数
 * @currentPage : 当前页码
 * @url         : url
 * @T           : 模板
 *---------------分页模板，标签说明----------------
	var T = 
	{
		"N1" : ['首页','<a href="{U}">首页</a>'],
		"N2" : ['上一页','<a href="{U}">上一页</a>'],
		"N3" : ['下一页','<a href="{U}">下一页</a>'],
		"N4" : ['尾页','<a href="{U}">尾页</a>'],
		"N5" : ['共{N}条记录'],
		"N6" : ['每页显示{N}条'],
		"N7" : ['共{N}页'],
		"NL" : ['<b>{N}</b>',' <a href="{U}">{N}</a> ']
	}
*/
var pageTpl = 
{
	"N1" : ['首页','<a href="{U}">首页</a>'],
	"N2" : ['上一页','<a href="{U}">上一页</a>'],
	"N3" : ['下一页','<a href="{U}">下一页</a>'],
	"N4" : ['尾页','<a href="{U}">尾页</a>'],
	"N5" : ['共{N}条记录'],
	"N6" : ['每页显示{N}条'],
	"N7" : ['共{N}页'],
	"NL" : ['<b>{N}</b>',' <a href="{U}">{N}</a> ']
}
function getPage(recordCount,pageSize,currentPage,url,T)
{
	var pageCount = Math.ceil(recordCount / pageSize); //总页数
	currentPage   = (currentPage > pageCount) ? pageCount : currentPage ;
	var TP        = "";
	var TL        = "";
	var U         = "";//url替换
	/*分页模板*/
	var T = 
	{
		"N1" : ['首页','<a href="{U}">首页</a>'],
		"N2" : ['上一页','<a href="{U}">上一页</a>'],
		"N3" : ['下一页','<a href="{U}">下一页</a>'],
		"N4" : ['尾页','<a href="{U}">尾页</a>'],
		"N5" : ['共{N}条记录'],
		"N6" : ['每页显示{N}条'],
		"N7" : ['共{N}页'],
		"NL" : ['<b>{N}</b>',' <a href="{U}">{N}</a> ']
	}
	
	var L = 4, R = 5; //数字分页左边和右边显示数字个数
	var A = 1, Z = 1;
	A = currentPage - L;
	B = currentPage + R;
	A = (A <= 1) ? 1 : A;
	B = (B >= pageCount) ? pageCount : B;
	for(var i = A; i <= B; i++ )
	{
		if(i == currentPage)
		{
			TP += T.NL[0].replace("\{N\}",i);
		}
		else
		{
			U = url.replace("\{P\}",i);
			TP += T.NL[1].replace("\{N\}",i).replace("\{U\}",U);
		}
	}
	if(A > 5)
	{
		U = url.replace("\{P\}",1);
		TP = T.NL[1].replace("\{N\}",i).replace("\{U\}",U) + TP;
	}
	if(B < pageCount - 5)
	{
		U  = url.replace("\{P\}",pageCount);
		TP = TP + T.NL[1].replace("\{N\}",i).replace("\{U\}",U);
	}
}

/**
 * 下拉菜单数据填充，可以实现无限级菜单联动 by xilou
 * var d = 
 	{
		"Id":"下拉表单id",
		"Data":[["值","文字","父值"],["id","value","pid"],["值","文字","父值"],["值","文字","父值"]...],
		"DefaultValue":"默认值"
 	}
*/
function showOpList(d)
{
	var obj = document.getElementById(d.Id);
	var dv  = (d.DefaultValue) ? d.DefaultValue : ""; //默认值
	var c   = d.Data.length; //下拉项目数
	var s   = "";
	obj.options.length = 0;
	
	var op = null;
	if(d.Header)
	{
		op           = document.createElement("option");
		op.value     = d.Header[0];
		op.innerHTML = d.Header[1];
		obj.appendChild(op);
	}

	for(var i = 0; i < c; i++)
	{
		op           = document.createElement("option");
		op.value     = d.Data[i][0];
		op.innerHTML = d.Data[i][1];
		op.selected  = (d.Data[i][0] == dv) ? true : false ;
		obj.appendChild(op);
	}
}

/**
 * 下拉菜单数据填充，可以实现无限级菜单联动 扩展版  by xilou
 * var d = 
 	{
		"Id":"下拉表单id",
		"Pid"："关联的父id值",
		"Data":[["值","文字","父值"],["id","value","pid"],["值","文字","父值"],["值","文字","父值"]...],
		"DefaultValue":"默认值"
 	}
*/
function showOpListExt(d)
{
	var obj = document.getElementById(d.Id);
	var dv  = (d.DefaultValue) ? d.DefaultValue : ""; //默认值
	var c   = d.Data.length; //下拉项目数
	var s   = "";
	obj.options.length = 0;
	
	var op = null;
	if(d.Header)
	{
		op           = document.createElement("option");
		op.value     = d.Header[0];
		op.innerHTML = d.Header[1];
		obj.appendChild(op);
	}

	for(var i = 0; i < c; i++)
	{
		if(d.Data[i][2] == d.Pid)
		{
			op           = document.createElement("option");
			op.value     = d.Data[i][0];
			op.innerHTML = d.Data[i][1];
			op.selected  = (d.Data[i][0] == dv) ? true : false ;
			obj.appendChild(op);
		}
	}
}

/**
 * 定位下拉列表的某个值 by xilou
 * obj : 下拉列表对象
 * v   : 要定位的值
 */
function setOpIndex(obj,v)
{
	var l = obj.options.length;
	//alert(l);
	for(var i = 0; i < l; i++)
	{
		//alert(obj.options[i].value + '-' + v);
		/*
		if(obj.options[i].value == v)
		{
			//obj.options[i].selected = true;
			//alert(obj.options[i].value);
			//break;
		}*/
	}
}

function checkAll()
{
	var clickObj;
	var checkBoxName;
	if((typeof arguments[0]).toLowerCase() =='object')
	{
		clickObj=arguments[0];
		checkBoxName=arguments[1];
	}
	else
	{
		clickObj=arguments[1];
		checkBoxName=arguments[0];
	}

	if(!checkBoxName)
	{
		checkBoxName='id[]';
	}
	
	
	var form=clickObj.form;
	var ids=form[checkBoxName];
	if(!ids)
	{
		return;
	}

	//只有一个
	if(!ids.length)
	{
		ids.checked=clickObj.checked;
	}
	else
	{
		for(var i=0;i<ids.length;i++)
		{
			ids[i].checked=clickObj.checked;
		}
	}
}

function sendListConfirm(message,checkboxName)
{
	var all=document.getElementsByName(checkboxName);
	for(var i=0;i<all.length;i++)
	{
		if(all[i].checked)
		{
			return confirm(message);
		}
	}
	alert('请至少选择一个！');
	return false;
}

function is_idcard(StrNumber) 
{
	if(StrNumber.length<15||StrNumber.length==16||StrNumber.length==17||StrNumber.length>18)
	{
		return false;
	}
	return true;
}

function is_number(number)
{ 
	var pattern = /^[0-9]*$/; 
	flag = pattern.test(number); 
	if(flag)
	{ 
		return true; 
	} 
	return false; 
}

function is_email(email)
{ 
	var pattern = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; 
	flag = pattern.test(email); 
	if(flag)
	{ 
		return true; 
	} 
	return false; 
}

function trim(string) {
	if(string != null)
	{
		var m = string.match(/^\s*(\S+(\s+\S+)*)\s*/);
		return (m == null) ? "" : m[1];
	}
	return "";
}   

function is_mobile(string)
{
	var pattern =  /^(?:13\d|15[89])-?\d{5}(\d{3}|\*{3})/;
	if(pattern.test(trim(string)))
	{
		return true;
	}
	return false;
}

function is_tel(string)
{   
	var pattern =  /^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?/;
	if(pattern.test(trim(string)))
	{
		return true;
	}
	return false;
}   

function is_empty(string)
{
	var str = trim(string);
	if(str == "" || str.length <= 0)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function not_empty(string)
{
	return !is_empty(string);
}

function is_postno(string)
{
	var pattern =  /^[0-9]{6}$/;
	if(pattern.test(trim(string)))
	{
		return true;
	}
	return false;
}

function get_radio_value(name)
{
	var radio_list = document.getElementsByName(name);
	for(var i = 0; i < radio_list.length; i++)
	{
		if(radio_list[i].checked)
		{
			return radio_list[i].value;
		}
	}
	return null;
}

/**
* 一个验证函数
* @param f 表单对象
* @param data 验证规则数组[{name:'表单名','rule':'验证的正则对象或函数','message':'验证失败时提示的消息','null':'是否可以为空'}]
* @param attachValidateFun 附带检测函数，需要自己弹出alert或其它形式的警告，验证通过要返回true
* @return true or false
*/
function regAndFunValidate(f,data,attachValidateFun)
{
	var input;
	var val;
	var r;
	for(var i=0;i<data.length;i++)
	{
		if(input=f[data[i]['name']])
		{
			if(input.tagName)
			{
				input=[input];
			}
			for(var j=0; j<input.length; j++)
			{
				val=input[j].value;
				if(data[i]['null']&&val||!data[i]['null'])
				{
					if(typeof data[i]['rule']=='function')
					{
						r=data[i]['rule'].call(input[j]);
					}
					else
					{
						r=data[i]['rule'].test(input[j].value);
					}
					if(!r)
					{
						alert(data[i]['message']);
						try
						{
							input[j].focus();
						}
						catch(e)
						{}
						return false;
					}
				}
			}
		}
	}
	if(attachValidateFun)
	{
	    if(!attachValidateFun.apply(f))
	    {
		return false;
	    }
	}
	return true;
}

/**
 *获取元素的绝对坐标
 *@param obj 网页元素
 *@return [left+"px",top+"px"]
 */
function getAbsPos(obj,returnNumeric)
{
	var left=obj.offsetLeft;
	var top=obj.offsetTop+obj.offsetHeight;
	while(obj=obj.offsetParent)
	{
		left+=obj.offsetLeft;
		top+=obj.offsetTop;
	}
	if(returnNumeric)
	{
		return [left,top];
	}
	else
	{
		return [left+"px",top+"px"];
	}
}
 
Function.prototype.bind=function(obj)
{
	var fun=this;
	return function()
	{
		return fun.apply(obj,arguments);
	}
}

