function isUndefined(variable) {
	return typeof variable == 'undefined' ? true : false;
}
/**
 * 添加到收藏夹中
 * @author xiaoye
 * @since  2009-10-08
 * @return　void
 */
function addfav()
{
    if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function"))//Gecko
    {
        window.sidebar.addPanel(document.title,document.URL,"");
    }
    else
    {
        window.external.AddFavorite(document.URL,document.title);
    }
}
/**
* 复制到粘贴板中
* @author xiaoye
* @since  2009-10-08
* @return　void
*/
function copyToClipboard() {   
	var txt = document.title + '　' + document.URL;
    if(window.clipboardData) {   
        window.clipboardData.clearData();   
        window.clipboardData.setData("Text", txt);   
    } else if(navigator.userAgent.indexOf("Opera") != -1) {   
        window.location = txt;   
    } else if (window.netscape) {   
        try {   
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");   
        } catch (e) {   
            alert("被浏览器拒绝！\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");   
        }   
    var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);   
    if (!clip)   
        return;   
    var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);   
    if (!trans)   
        return;   
    trans.addDataFlavor('text/unicode');   
    var str = new Object();   
    var len = new Object();   
    var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);   
    var copytext = txt;   
    str.data = copytext;   
    trans.setTransferData("text/unicode",str,copytext.length*2);   
    var clipid = Components.interfaces.nsIClipboard;   
    if (!clip)   
        return false;   
    clip.setData(trans,null,clipid.kGlobalClipboard);    
    }   
	alert("复制成功，粘贴到对话框里就可以推荐给好友喽！～");
}   

function getOs() { 
   if(navigator.userAgent.indexOf("MSIE")>0)return 1; 
   if(navigator.userAgent.indexOf("Firefox")>0)return 2; 
   return 0; 
} 

function emailValidate(emailStr) {

	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|mobi)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);

	if (matchArray==null) {
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			return false;
		}
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			return false;
		}
	}
	if (user.match(userPat)==null) {
		return false;
	}

	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
	// this is an IP address
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return false;
			}
		}
		return true;
	}
	 
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			return false;
		}
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
		return false;
	}
	if (len<2) {
		return false;
	}
	return true;
}

/*定义观察者处理对象*/
function observer(functionV)
{
	this.update = functionV;
}
function Subject()
{
	this.observers = [];
	this.loginUserId = 0;	 //登陆用户ID
	this.loginUserName = ''; //登陆用户名称
	this.login_type = 0;
	this.otherVal = '';
}
Subject.prototype.add = function(obj)
{
	if( (this.loginUserId != 0)||($.cookie('_cookieLoginUserId')!=null) )
	{		
		if(this.loginUserId==0){
			this.loginUserId = $.cookie('_cookieLoginUserId');
			this.loginUserName = $.cookie('_cookieLoginUserName');
			this.login_type = $.cookie('_cookieLoginUserType');
			this.otherVal = $.cookie('_cookieLoginOtherVal');
			_login_userId = this.loginUserId;
			_login_userName = this.loginUserName;
			_login_type = this.login_type;
			_login_otherval = this.otherVal;
		}
		obj.update(this.loginUserId,this.loginUserName,this.login_type,this.otherVal);
	}else{
		this.observers.push(obj);
	}
}
Subject.prototype.notify = function()
{
	var _tmp = this.observers.pop();
	while(_tmp!=null)
	{
		_tmp.update(this.loginUserId,this.loginUserName,this.login_type,this.otherVal);
		_tmp = this.observers.pop();
	}
}
function LoginInfoNotify(_subject,_getUserInfoUrl,_cookieDomain)
{
	if( ($.cookie('_cookieLoginUserId')==null) && (_subject.loginUserId==0) )
	{
		//获取登陆用户ID
		$.ajax({
			url:_getUserInfoUrl,
			type:'post',
			dataType:'text',
			data:'',
			success:function(_msg){
				if(parseInt(_msg)!=0){
					//alert(_msg+'TEST');
					var _userinfo = _msg.split(',');
					if(_userinfo.length>=2)
					{//alert(_userinfo[2]);
						_subject.loginUserId = _userinfo[0];
						_subject.loginUserName = _userinfo[1];
						_subject.login_type = _userinfo[2];
						_subject.otherVal = _userinfo[3];						
						_login_userId = _subject.loginUserId;
						_login_userName = _subject.loginUserName;
						_login_type = _subject.login_type;
						_login_otherval = _subject.otherVal;
						$.cookie('_cookieLoginUserId',_userinfo[0],{expires: 0, path: '/', domain:_cookieDomain})
						$.cookie('_cookieLoginUserName',_userinfo[1],{expires: 0, path: '/', domain:_cookieDomain})
						$.cookie('_cookieLoginUserType',_login_type,{expires: 0, path: '/', domain:_cookieDomain})
						$.cookie('_cookieLoginOtherVal',_login_otherval,{expires: 0, path: '/', domain:_cookieDomain})
						//调用观察者
						_subject.notify();
					}
				}
				else{
						$.cookie('_cookieLoginUserId',null,{expires: -1, path: '/', domain:_cookieDomain});
						$.cookie('_cookieLoginUserName',null,{expires: -1, path: '/', domain:_cookieDomain});
						$.cookie('_cookieLoginUserType',null,{expires: -1, path: '/', domain:_cookieDomain});
						$.cookie('_cookieLoginOtherVal',null,{expires: -1, path: '/', domain:_cookieDomain});
						_subject.loginUserId = 0;
						_subject.loginUserName = '';
						_subject.login_type = 0;
						_subject.otherVal = '';
						_login_userId = _subject.loginUserId;
						_login_userName = _subject.loginUserName;
						_login_type = _subject.login_type;
						_login_otherval = _subject.otherVal;
						_subject.notify();
				}
			}
		})
	}else{
		if(_subject.loginUserId==0)
		{
			_subject.loginUserId = $.cookie('_cookieLoginUserId');
			_subject.loginUserName = $.cookie('_cookieLoginUserName');
			_subject.login_type = $.cookie('_cookieLoginUserType');
			_subject.otherVal = $.cookie('_cookieLoginOtherVal');
			_login_userId = _subject.loginUserId;
			_login_userName = _subject.loginUserName;
			_login_type = _subject.login_type;
			_login_otherval = _subject.otherVal;
		}
		_subject.notify();
	}
}

/**事件处理机制*/
var keyDownSubject = new Subject();

if($.browser.msie) {
		document.attachEvent("onkeydown", listenKeyDown);
} else {
		addEventListener('keydown', function(e) {listenKeyDown(e);}, true);
}

function ctrlEnter(event, functionV, onlyEnter) {
	if(isUndefined(onlyEnter)) onlyEnter = 0;
	if((event.ctrlKey || onlyEnter) && event.keyCode == 13) {
		setTimeout(functionV,0)
	}
}

function listenKeyDown(event) {
	var _num = keyDownSubject.observers.length;
	if(_num>0)
	{
		for(var _i=0;_i<_num;_i++)
		{
			keyDownSubject.observers[_i].update(event)
		}
	}
}

function ctrlEnterObserver(functionV,onlyEnter)
{
	this.update = function(event)
	{
		ctrlEnter(event, functionV, onlyEnter)
	}
}

/**验证码设置*/
var img_code_url = '/imgcode.php';
function getImageCode(id,encode_input_name,refresh_text)
{
	if(!id) id = "_u91_img_code";
	var str = '<span id="' + id + '" style="cursor:pointer"></span>';
	if(refresh_text)
	{
		str += '<a href="javascript:;" id="_href_' + id + '">' + refresh_text + '</a>';
	}
	var url = img_code_url + '?';
	if(encode_input_name) url = url + 'name=' + encode_input_name + '&';
	document.write(str);
	$('#'+id).load(url);
	$('#'+id).click(function(){
		$('#'+id).load(url + Math.random());
	})
	$('#_href_'+id).click(function(){
		$('#'+id).load(url + Math.random());
	})
}

var dialogFirst=true;

function dialog(title,content,width,height,cssName){
	if(dialogFirst==true){
		var temp_float=new String;
		temp_float = "<style type=\"text/css\">#floatBoxBg{width:100%;height:100%;background:#000;filter:alpha(opacity=50);opacity:0.5;position:absolute;top:0;left:0;}";
		temp_float += ".floatBox{border:#3cc517 5px solid;width:300px;position:absolute;top:250px;left:40%;}";
		temp_float += ".floatBox .title{height:23px;padding:7px 10px 0;background:#8fc929;color:#fff;}";
		temp_float += ".floatBox .title h4{float:left;padding:0;margin:0;font-size:14px;line-height:16px;}";
		temp_float += ".floatBox .title span{float:right;cursor:pointer;}";
		temp_float += ".floatBox .content{padding:20px 15px;background:#fff;}</style>";
		temp_float+="<div id=\"floatBoxBg\" style=\"height:"+$(document).height()+"px;filter:alpha(opacity=0);opacity:0;\"></div>";
		temp_float+="<div id=\"floatBox\" class=\"floatBox\">";
		temp_float+="<div class=\"title\"><h4></h4><span>关闭</span></div>";
		temp_float+="<div class=\"content\"></div>";
		temp_float+="</div>";
		$("body").append(temp_float);
		dialogFirst=false;
	}
	$("#floatBox .title span").click(function(){		//$("#floatBoxBg").animate({opacity:"0"},"normal",function(){$(this).hide();});
		$('#floatBoxBg').hide();
		$('#floatBox').hide();	//$("#floatBox").animate({top:($(document).scrollTop()+(height=="auto"?300:parseInt(height)))+"px"},"normal",function(){$(this).hide();}); 
	});
	$("#floatBox .title h4").html(title);
	contentType=content.substring(0,content.indexOf(":"));
	content=content.substring(content.indexOf(":")+1,content.length);
	switch(contentType){
	  case "url":
	  var content_array=content.split("?");
	  $("#floatBox .content").ajaxStart(function(){
	    $(this).html("loading...");
	  });
	  $.ajax({
	    type:content_array[0],
	    url:content_array[1],
	    data:content_array[2],
		error:function(){
		  $("#floatBox .content").html("error...");
		},
	    success:function(html){
	      $("#floatBox .content").html(html);
	    }
	  });
	  break;
	  case "text":
	  $("#floatBox .content").html(content);
	  break;
	  case "id":
	  $("#floatBox .content").html($("#"+content+"").html());
	  break;
	  case "iframe":
	  $("#floatBox .content").html("<iframe src=\""+content+"\" width=\"100%\" height=\""+(parseInt(height)-30)+"px"+"\" scrolling=\"auto\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\"></iframe>");
	}
	$("#floatBoxBg").show();
	$("#floatBoxBg").animate({opacity:"0.5"},"normal");
	$("#floatBox").attr("class","floatBox "+cssName);
	$("#floatBox").css({display:"block",left:(($(document).width())/2-(parseInt(width)/2))+"px",top:($(document).scrollTop()+(height=="auto"?300:parseInt(height)))+"px",width:width,height:height});
	$("#floatBox").css({top:($(document).scrollTop()+150)+"px"});
	//$("#floatBox").animate({top:($(document).scrollTop()+150)+"px"},"normal"); 
}
var _subject = new Subject();
var _login_userId = '';
var _login_userName = '';
var _login_type = '';
var _login_otherval = '';