function isInteger(str){
	var reg = /^[0-9]*$/;
		return reg.test(str);
}

function ajaxLogin(tourl,query)
{
	$.ajax({
			type: "POST",
			url: "userlogin.do",
			data: query,
			dataType: "text",
			success: function(data){
				if(!alertAjaxException(data))
				{
					return;
				}
				if("yes" == data)
				{
					if(tourl=="#")
					{
						parent.closeAjaxLoginWindow();
						if(parent.changeLogStatus!=null &&  (typeof parent.changeLogStatus != 'undefined'))
						{
							parent.changeLogStatus();
						}
					}
					else
					{
						parent.location = tourl;
					}
				}
				else if("no" == data)
				{
					alert("登录失败！请检查用户名和密码");
				}
			},
			error: function(request, textStatus, errorThrown){				
				alert(textStatus);
			}
		});
}

function ajaxLogout(fn){
	$.ajax({
		type: "Post",
		url: "ajaxlogout.do",
		data: "",
		dataType: "text",
		success: function(data){
			if(data == "yes")
			{
				if(fn!=null && (typeof fn != 'undefined'))
				{
					fn();
				}
			}
			else
			{
				alert("退出失败！");
			}
		},
		error: function(request, textStatus, errorThrown){
			alert(textStatus+errorThrown);
		}
	});
	return false;
}

function ajaxAuthVist(url){
	$.ajax({
		type: "Post",
		url: "checklogin.do",
		data: "",
		dataType: "text",
		success: function(data){
			if(data == "yes")
			{
				if(url=="#")
				{
					
				}
				else
				{
					window.location = url;
				}
			}
			else
			{
				showAjaxLoginWindow(url);
			}
		},
		error: function(request, textStatus, errorThrown){
			alert(textStatus+errorThrown);
		}
	});
	return false;
}

function showAjaxLoginWindow(tourl)
{
	if($("#ajaxloginwindow").length<=0)
	{
		var divhtml='<div id="ajaxloginwindow"><iframe src="ajaxloginpage.do?tourl='+encodeURIComponent(tourl)+'" scrolling=no frameborder="no" border="0" id="ajaxloginiframe"/></div>';
		$(divhtml).appendTo("body");
		ajaxMarkBackGround(true);
		var timerID = ajaxWaiting(true);
		$("#ajaxloginiframe").load(function(e){			
			$("#ajaxloginwindow").css("display","block");
			var iframe_body = $(document.getElementById('ajaxloginiframe').contentWindow.document.body);
			$("#ajaxloginiframe").width(iframe_body.width());
			$("#ajaxloginiframe").height(iframe_body.height());
			centerDiv("ajaxloginwindow");
			ajaxWaiting(false , timerID);

			var close_btn = iframe_body.find("#ajaxlogin_close_btn");
			if(close_btn.length>0)
			{
				close_btn.click(function(){
					 closeAjaxLoginWindow();
				});
			}
			$("#ajaxloginwindow").css("display","none");
			$("#ajaxloginwindow").slideDown("normal");
		});
	}
	else
	{
		ajaxMarkBackGround(true);
		$("#ajaxloginwindow").css("display","block");
		centerDiv("ajaxloginwindow");
		$("#ajaxloginwindow").css("display","none");
		$("#ajaxloginwindow").slideDown("normal");
		var checkcodeObj = $(document.getElementById('ajaxloginiframe').contentWindow.document.body).find("#checkcodeimg");
		if(checkcodeObj.length>0)
		{
			var src = checkcodeObj.attr("src");
			checkcodeObj.attr("src",src+"&date="+(new Date().getTime()));
		}
	}	
	
}

function closeAjaxLoginWindow(){
	if($("#ajaxloginwindow").length>0)
	{
		$("#ajaxloginwindow").css("display","none");
		var iframe_body = $(document.getElementById('ajaxloginiframe').contentWindow.document.body);
		iframe_body.find("#username").val("");
		iframe_body.find("#password").val("");
		iframe_body.find("#checkcode").val("");
	}
	if($("#ajaxloginwindow_mark_div").length>0)
	{
		$("#ajaxloginwindow_mark_div").css("display","none");
	}
}

function resizeMarkBackGround()
{
	$("#ajaxloginwindow_mark_div").css("width",$(document.html).width());
	$("#ajaxloginwindow_mark_div").css("height",$(document.html).height());
}

function ajaxMarkBackGround(display)
{	
	if(display)
	{
		if($("#ajaxloginwindow_mark_div").length<=0)
		{
			var markdivhtml='<div id="ajaxloginwindow_mark_div" />';
			$(markdivhtml).appendTo("body");
		}
		$("#ajaxloginwindow_mark_div").css("width",$(document.html).width());
		$("#ajaxloginwindow_mark_div").css("height",$(document.html).height());
		$("#ajaxloginwindow_mark_div").css("display","block");
		$(window).bind("resize",resizeMarkBackGround);
	}
	else
	{
		if($("#ajaxloginwindow_mark_div").length>0)
		{
			$("#ajaxloginwindow_mark_div").css("display","none");
			$(window).unbind("resize",resizeMarkBackGround);
		}
	}
}

function ajaxWaiting(display,timerID)
{
	if($("ajaxwaitingdiv").length<=0)
	{		
		var waitingdiv='<div id="ajaxwaitingdiv">正在加载...</div>';
		$(waitingdiv).appendTo("body");
	}
	if(display)
	{
		$("#ajaxwaitingdiv").text("正在加载...");
		centerDiv("ajaxwaitingdiv");
		$("#ajaxwaitingdiv").css("display","block");
		var timerID = setInterval("ajaxProcessWaiting()",1000);
		return timerID;
	}
	else
	{
		if(timerID!=null)
		{
			clearInterval(timerID);
		}
		$("#ajaxwaitingdiv").css("display","none");
	}
}

function ajaxProcessWaiting()
{
	var oldtext = $("#ajaxwaitingdiv").text();
	if(oldtext.length>20)
	{
		$("#ajaxwaitingdiv").text("正在加载...");
	}
	else
	{
		$("#ajaxwaitingdiv").text(oldtext+".");
	}
}

function centerDiv(divid)
{
	if($("#"+divid).length>0)
	{

		var scrollLeft = document.documentElement.scrollLeft;
		var client_width =document.documentElement.clientWidth;
		var dialog_width = $("#"+divid).width(); 
		$("#"+divid).css("left",scrollLeft+(client_width-dialog_width)/2);
		
		var scrollTop = document.documentElement.scrollTop;
		var client_height =document.documentElement.clientHeight;
		var dialog_height = $("#"+divid).height();
		$("#"+divid).css("top",scrollTop+document.body.scrollTop+(client_height-dialog_height)/2);
	}
}

function showShadow(divid)
{
	if($("#"+divid+"_shadowdiv").length<=0)
	{
		$("#"+divid).before("<div id=\""+divid+"_shadowdiv\"></div>");
	}
	var offset = $("#"+divid).offset();
	var z_index = $("#"+divid).css("z-index");
	
	$("#"+divid+"_shadowdiv").css("position","absolute");
	$("#"+divid+"_shadowdiv").css("z-index",z_index - 1);
	$("#"+divid+"_shadowdiv").css("background-color","#000");
	$("#"+divid+"_shadowdiv").css("left",offset.left+7);
	$("#"+divid+"_shadowdiv").css("top",offset.top+7);
	$("#"+divid+"_shadowdiv").width($("#"+divid).width());
	$("#"+divid+"_shadowdiv").height($("#"+divid).height());
	$("#"+divid+"_shadowdiv").css("filter","alpha(opacity=10)");
	$("#"+divid+"_shadowdiv").css("-moz-opacity","0.1");
	$("#"+divid+"_shadowdiv").css("opacity","0.1");
	$("#"+divid+"_shadowdiv").css("display","block");
}

function showIframeDialog(divid,url,left,top,modal,shadow)
{
	if($("#"+divid).length<=0)
	{
		var divhtml = '<div id="'+divid+'"><iframe id="'+divid+'iframe" src="'+url+'" scrolling=no frameborder="no" border="0"/></div>';
		$(divhtml).appendTo("body");
			showDialog("waiting_div",null,null,true,false);
			$("#"+divid+"iframe").load(function(e){
				$("#"+divid+"window").css("display","block");
				var iframe_body = $(document.getElementById(divid+'iframe').contentWindow.document.body);
				$("#"+divid+"iframe").width(iframe_body.width());
				$("#"+divid+"iframe").height(iframe_body.height()+10);
				
				var close_btn = iframe_body.find(".dialog_close_btn");
				if(close_btn.length>0)
				{
					close_btn.click(function(){
						 closeDialog(divid);
					});
				}
				$("#"+divid).css("display","none");
				closeDialog("waiting_div");
				showDialog(divid,left,top,modal,shadow);
			});
	}
	else
	{		
		$("#"+divid+"iframe").attr("src",url);
		showDialog(divid,left,top,modal,shadow);
	}
}

function showDialog(divid,left,top,modal,shadow)
{
	if($("#"+divid).length<=0)
	{
		return;
	}
	$("#"+divid).css("position","absolute");
	if(left == null)
	{
		var scrollLeft = document.documentElement.scrollLeft;
		var client_width =document.documentElement.clientWidth;
		var dialog_width = $("#"+divid).width(); 
		$("#"+divid).css("left",scrollLeft+(client_width-dialog_width)/2);
	}
	else
	{
		$("#"+divid).css("left",left);
	}
	if(top == null)
	{
		var scrollTop = document.documentElement.scrollTop;
		var client_height =document.documentElement.clientHeight;
		var dialog_height = $("#"+divid).height();
		$("#"+divid).css("top",scrollTop+document.body.scrollTop+(client_height-dialog_height)/2);
	}
	else
	{
		$("#"+divid).css("top",top);
	}
	$("#"+divid).css("z-index",10001);
	if(modal)
	{
		ajaxMarkBackGround(true);
	}

	$("#"+divid).css("display","block");

	if(shadow)
	{
		showShadow(divid);
	}
	
}

function closeDialog(divid)
{
	if($("#"+divid).length>0)
	{
		$("#"+divid).css("display","none");
		$("#"+divid).css("top",0);
		$("#"+divid).css("left",0);
		if($("#"+divid+"_shadowdiv").length>0)
		{
			$("#"+divid+"_shadowdiv").css("display","none");
		}
		ajaxMarkBackGround(false);
	}
}

function clearAreaInfo(filledId)
{
	var filledObj = $("#"+filledId);
	if(filledObj.length>0)
	{
		var opsize = filledObj[0].options.length;
		if(opsize>1)
		{
			var firstop = filledObj[0].options[0];
			var fvalue = $(firstop).val();
			var ftext = $(firstop).text();
			filledObj[0].options.length = 0;
			filledObj.append("<option value=\""+fvalue+"\" selected>"+ftext+"</option>");
		}
	}
}

function loadAreaInfo(selectedValue,filledId,levelid,clearedId)
{
	if(selectedValue== null || selectedValue=="")
	{
		clearAreaInfo(filledId);
		clearAreaInfo(clearedId);
		return;
	}
	$.ajax({
		type: "Post",
		url: "ajaxloadareainfo.do",
		data: "areaid="+selectedValue+"&levelid="+levelid,
		dataType: "text",
		success: function(data){
			var filledObj = $("#"+filledId);
			if(data!=null && data!="")
			{				
				if(filledObj.length>0)
				{
					var opsize = filledObj[0].options.length;
					if(opsize>1)
					{
						var firstop = filledObj[0].options[0];
						var fvalue = $(firstop).val();
						var ftext = $(firstop).text();
						filledObj[0].options.length = 0;
						filledObj.append("<option value=\""+fvalue+"\" selected>"+ftext+"</option>");
					}
					var pairs = data.split(";");
					if(pairs!=null && pairs.length>0)
					{
						filledObj.css("display","inline");
						for(var i=0;i<pairs.length;i++)
						{
							var id_name = pairs[i].split(",");
							if(id_name.length>=2)
							{
								filledObj.append("<option value=\""+id_name[0]+"\">"+id_name[1]+"</option>");
							}
						}
					}
					else
					{
						filledObj.css("display","none");
						clearAreaInfo(filledId);
					}
					if(clearedId!=null && typeof(clearedId) != "undefined" )
					{
						clearAreaInfo(clearedId);
					}
				}
			}
			else
			{
				if(filledObj.length>0)
				{
					filledObj.css("display","none");
					clearAreaInfo(filledId);
				}
			}
		},
		error: function(request, textStatus, errorThrown){
			alert(textStatus);
		}
	});
}

function showMessageDialog(dialogid,title,message)
{
	if($("#dialogid").length<=0)
	{
		var divstr = '<div id="'+dialogid+'"><div class="dialog_title_div"><div class="dialog_title">'+title+'</div></div>';
		divstr += '<div class="dialog_body_div">';
		divstr += message;
		divstr += '</div>';
		$(divstr).appendTo("body");
	}
	showDialog(dialogid,null,null,true,true);
}

function boundTabs(tabid,li_id_format,div_id_format,event_format,event_fn) {
	if(li_id_format==null || li_id_format=="")
	{
		li_id_format = "cmslisttabli";
	}
	if(div_id_format==null || div_id_format=="")
	{
		div_id_format = "cmslisttabdiv";
	}

	if(event_format==null || event_format=="")
	{
		event_format = "mousemove";
	}

	$("#"+tabid+" > ul > li").bind(event_format,function(e) {
		if (e.target == this) {
                $("#"+tabid+" > ul > li").removeClass();
				$("#"+tabid+" > ul > li").addClass("tab-no-active-label");
				$("#"+tabid+" > div").removeClass();
				$("#"+tabid+" > div").addClass("tab-no-active-div");
				$(this).removeClass();
				$(this).addClass("tab-active-label");
				var curtabid = $(this).attr("id");
				if(curtabid!=null && curtabid!="" && curtabid.length>li_id_format.length)
				{
					var num = curtabid.substr(li_id_format.length);
					var divid = div_id_format+num;
					$("#"+tabid+" > #"+divid).removeClass();
					$("#"+tabid+" > #"+divid).addClass("tab-active-div");
				}
				if(event_fn!=null && typeof(event_fn) != "undefined")
				{
					event_fn(e);
				}
		}
	});
	$("#"+tabid+" > ul > li").removeClass();
	$("#"+tabid+" > ul > li").addClass("tab-no-active-label");
	var firstLi = $("#"+tabid+" > ul li:first-child");
	if(firstLi.length>0)
	{
		firstLi.removeClass();
		firstLi.addClass("tab-active-label");
		var firsttabid = firstLi.attr("id");
		$("#"+tabid+" > div").removeClass();
		$("#"+tabid+" > div").addClass("tab-no-active-div");
		if(firsttabid!=null && firsttabid!="" && firsttabid.length>li_id_format.length)
		{
			var num = firsttabid.substr(li_id_format.length);
			var divid = div_id_format+num;
			$("#"+tabid+" > #"+divid).removeClass();
			$("#"+tabid+" > #"+divid).addClass("tab-active-div");
		}
	}
}

function alertAjaxException(data)
{
	if(data==null || data=="")
	{
		return true;
	}
	if(data.indexOf("{")!=0)
	{
		var messagespan = $(data).find("#message_span");
		if(messagespan.length>0)
		{
			var msg = messagespan.text();
			msg = msg.replace("???","");
			msg = msg.replace("???","");
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		return true;
	}
	
}

function createDialog(dialogid,title,labelArray,inputArray,closeFn,submitFn)
{
	var divstr = '<div id="'+dialogid+'"><div class="dialog_title_div"><div class="dialog_title">'+title+'</div><div class="dialog_close_btn"></div></div>';
	divstr += '<div class="dialog_body_div">';
	if(labelArray!=null && labelArray.length>0 && inputArray!=null && labelArray.length==inputArray.length)
	{
		for(var i=0;i<labelArray.length ;i++ )
		{
			divstr += '<div class="dialog_body_line"><label>'+labelArray[i]+'</label>'+inputArray[i]+"</div>";
		}
	}
	divstr += '<div class="dialog_btn_line"><a href="#">提交</a><a href="#">关闭</a></div>';
	divstr += '</div></div>';
	$(divstr).appendTo("body");
	$("#"+dialogid+" > div.dialog_title_div > div.dialog_close_btn").click(function(e){
		if(e.target == this)
		{
			if(closeFn!=null && (typeof closeFn != 'undefined'))
			{
				closeFn();
			}
			else
			{
				closeDialog(dialogid);
			}
		}
	});

	$("#"+dialogid+" > div.dialog_body_div > div.dialog_btn_line > a").click(function(e){
		if(e.target == this)
		{
			if($(this).text()=="提交")
			{
				if(submitFn!=null &&  (typeof submitFn != 'undefined'))
				{
					submitFn();
				}
			}
			else
			{
				if(closeFn!=null && (typeof closeFn != 'undefined'))
				{
					closeFn();
				}
				else
				{
					closeDialog(dialogid);
				}
			}
		}
	});
}

function getQueryString(parentid,selvalIds)
{
	if($("#"+parentid).length>0)
	{
		var query = "";
		var inputs = $("#"+parentid).find(":input");
		var needchecksel = false;
		if(selvalIds!=null && (typeof(selvalIds) != 'undefined') && $.isArray(selvalIds))
		{
			if(selvalIds.length>0)
			{
				needchecksel = true;
			}			
		}
		if(inputs!=null && inputs.length>0)
		{
			for(var i=0;i<inputs.length;i++)
			{
				if(query!="")
				{
					query+="&";
				}
				if(needchecksel)
				{
					if($(inputs[i]).attr("type") == "select-one")
					{
						var issel = false;
						for(var j=0;j<selvalIds.length;j++)
						{
							if($(inputs[i]).attr("id") == selvalIds[j])
							{
								issel = true;
								break;
							}
						}
						if(issel)
						{
							query += $(inputs[i]).attr("name") + "=" + encodeURIComponent($(inputs[i]).find("option:selected").text());	
						}
						else
						{
							query += $(inputs[i]).attr("name") + "=" + encodeURIComponent($(inputs[i]).val());
						}
					}
					else
					{
						query += $(inputs[i]).attr("name") + "=" + encodeURIComponent($(inputs[i]).val());
					}
				}
				else
				{
					query += $(inputs[i]).attr("name") + "=" + encodeURIComponent($(inputs[i]).val());	
				}
			}
		}
		return query;
	}
	else
	{
		return "";
	}
}

function alwaysShow(divid,bottomdivid)
{
	var divobj = $("#"+divid);
	if(divobj.length==0)
	{
		return;
	}
	var hasbottom = true;
	if(bottomdivid==null || typeof(bottomdivid)=='undefined')
	{
		hasbottom = false;
	}
	if($("#"+bottomdivid).length==0)
	{
		hasbottom = false;
	}
	var oldposition = divobj.css("position");
	var oldzindex = divobj.css("z-index");
	var oldoffset = divobj.offset();
	var oldtop = oldoffset.top;
	var moving = false;
	if($("#"+divid+"_fill").length==0)
	{
		divobj.before('<div id="'+divid+'_fill"></div>');
		$("#"+divid+"_fill").css("display","none");
		$("#"+divid+"_fill").height(divobj.height());
		$("#"+divid+"_fill").css("position",oldposition);
		$("#"+divid+"_fill").css("clear",divobj.css("clear"));
	}
	$(window).bind("scroll",function(){
		var scrollTop = 0;
		if (document.documentElement && document.documentElement.scrollTop) {
			scrollTop = document.documentElement.scrollTop;
		}else{
			scrollTop = document.body.scrollTop;
		}
		if(moving)
		{
			if(scrollTop <= oldtop)
			{
				divobj.css("position",oldposition);
				divobj.css("z-index",oldzindex);
				divobj.css("top",oldtop);
				moving = false;
				$("#"+divid+"_fill").css("display","none");
			}
			else
			{
				divobj.css("top",scrollTop);
			}
		}
		else
		{
			if(scrollTop > oldtop)
			{
				divobj.css("position","absolute");
				divobj.css("z-index","9998");
				divobj.css("top",scrollTop);
				moving = true;
				$("#"+divid+"_fill").css("display","block");
			}
		}
	});
	$(window).resize(function(e){
		if(moving)
		{
			var scrollTop = 0;
			if (document.documentElement && document.documentElement.scrollTop) {
				scrollTop = document.documentElement.scrollTop;
			}else{
				scrollTop = document.body.scrollTop;
			}
			if(scrollTop <= oldtop)
			{
				divobj.css("position",oldposition);
				divobj.css("z-index",oldzindex);
				divobj.css("top",oldtop);
				moving = false;
				$("#"+divid+"_fill").css("display","none");
			}
			else
			{
				if(hasbottom)
				{
					if(scrollTop >= $("#"+bottomdivid).offset().top)
					{
						divobj.css("position",oldposition);
						divobj.css("z-index",oldzindex);
						divobj.css("top",oldtop);
						moving = false;
						$("#"+divid+"_fill").css("display","none");
					}
					else
					{
						divobj.css("top",scrollTop);
					}
				}
				else
				{
					divobj.css("top",scrollTop);
				}
			}
		}
	});
}

jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        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(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        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 { // only name given, get cookie
        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]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};
