
flow = function(){};

flow.need_block = function () {
	var day 			= new Date();
	var super_passport	= '|dj_test|';
	
	return day.getFullYear() == 2011 && day.getMonth() == 5 && ((day.getDate() == 1 && day.getHours() >= 21) || (day.getDate() == 2 && day.getHours() < 9)) && super_passport.indexOf('|'+$('#passport').val()+'|') == -1;
}

//验证通行证格式
flow.isPP = function(passport)
{
    var passport = $.trim(passport);
    
    var pattern1 = /^[0-9a-zA-Z]{1}[0-9a-zA-Z_\.@-]{3,30}$/;
    if(pattern1.test(passport))
    {
        return [1,'OK'];
    }
    else
    {
        pattern2 = /^[0-9a-zA-Z]+/;
        pattern3 = /[^0-9a-zA-Z_\.@]/;
        if( passport.length <4 || passport.length > 31 )
        {
            return [0,"通行证长度错误"];  
        }
        else if( !pattern2.test(passport) )
        {
            return [0,"通行证必须以英文和数字开头"];
        }
        else if( pattern3.test(passport) )
        {
            return [0,"通行证必须由英文，数字，下划线，点或者@组成"];
        }
    }
    
    return [0,"通行证格式错误"];
    
}

//验证通行证是否存在
flow.checkUname = function(uname)
{

    $.post('ajax.php',{act:'is_uname',uname:uname}, function(msg)
    {

        if( msg == "1000" )
        {
        	if(is_ajax_err)
        	{
	            $("#im3_5_3").text( '' );
	            $("#im3_5_3").hide( "normal" ); 
	            is_ajax_err = false;
        	}
        }
        else if( msg == "1227" )
        {
        	is_ajax_err = true;
            $("#im3_5_3").text( '该帐号不存在' );
            $("#im3_5_3").show( "normal" );  

        }
        else    //发生调用ajax错误时忽略验证
        {
        	if(is_ajax_err)
        	{
	            $("#im3_5_3").text( '' );
	            $("#im3_5_3").hide( "normal" ); 
	            is_ajax_err = false;
        	}
        }     
        
    });

}

//验证值是否相等
flow.isEq = function(val1,val2){

    var val1 = $.trim(val1);
    var val2 = $.trim(val2);
    
    if(val1 == val2)
    {
        return true;
    }
    
    return false;
}

//验证邮箱
flow.isemail = function( email )
{
    var email = $.trim(email);
    
    var pattern1 = /^\w+([-+\.]\w+)*@\w+([-\.]\w+)*\.\w+([-\.]\w+)*$/;
    if(pattern1.test(email))
    {
        return [1, "OK"];
    }
    else
    {
        return [0, "邮箱格式错误"];
    }
        	        
}

//验证手机号
flow.isPhone = function( phone, phone_flag )
{
    var phone = $.trim(phone);
	
	if (phone.length == 11 && flow.need_block() && !/^1(3[4-9]|5[0-27-9]|8[78]|4[7])\d{8}$/.test(phone)) {
		alert('因系统维护，联通、电信用户无法在6月1日21:00--6月2日09:00时段内充值。给您带来的不便，我们深表歉意。');
		return [0, "请输入移动的手机号码"];
	}
	
    switch (phone_flag)
	{
		case 0	:	var preg = /^1(3[0-9]|4[57]|5[0-35-9]|8[06-9])\d{8}$/;
					if(preg.test(phone))
                    {
                        return [1, "OK"];
                    }
                    else
                    {
                        return [0, "请输入正确的手机号码"];
                    }
					break;					//全部
		case 1	:	var preg = /^1(3[4-9]|5[0-27-9]|8[78]|4[7])\d{8}$/;
					if(preg.test(phone))
                    {
                        return [1, "OK"];
                    }
                    else
                    {
                        return [0, "请输入移动的手机号码"];
                    }
					break;	//移动
		case 2	:	var preg = /^1(3[0-2]|5[56]|8[56]|4[5])\d{8}$/;
					if(preg.test(phone))
                    {
                        return [1, "OK"];
                    }
                    else
                    {
                        return [0, "请输入联通的手机号码"];
                    }
					break;		//联通
		case 3	:	var preg = /^1(33|53|8[09])\d{8}$/;
					if(preg.test(phone))
                    {
                        return [1, "OK"];
                    }
                    else
                    {
                        return [0, "请输入联通的手机号码"];
                    }
					break;		//电信
		default	:	/^1(3[0-9]|4[57]|5[0-35-9]|8[689])\d{8}$/;
					if(preg.test(phone))
                    {
                        return [1, "OK"];
                    }
                    else
                    {
                        return [0, "请输入正确的手机号码"];
                    }
					break;
	}

        	        
}

//验证一卡通卡号
flow.isKscardsn = function( kscard_sn )
{
    var kscard_sn = $.trim(kscard_sn);
    
    var pattern1 = /^[0-9]{12,13}$/;
    
    var rt = [1,''];
    if(pattern1.test(kscard_sn))
    {
        rt = [1, "OK"];
    }
    else
    {
        rt = [0, "一卡通卡号格式错误"];
    }   
   
    return rt;       
}
//验证一卡通密码
flow.isKscardpw = function( kscard_pw )
{
    var kscard_pw = $.trim(kscard_pw);

    var pattern2 = /^[0-9a-zA-Z]{9}$/;
    
    var rt = [1,''];

    if(pattern2.test(kscard_pw))
    {
        rt = [1, "OK"];
    }
    else
    {
        rt = [0, "一卡通密码格式错误"];
    }
    return rt;       
}

//验证正版用户卡卡号
flow.isZbcardsn = function( zbcard_sn )
{
    var zbcard_sn = $.trim(zbcard_sn);
    
    var pattern1 = /^[a-zA-Z0-9]{9,31}$/;
    
    var rt = [1,''];
    if(pattern1.test(zbcard_sn))
    {
        rt = [1, "OK"];
    }
    else
    {
        rt = [0, "卡号格式错误"];
    }   
   
    return rt;       
}
//验证正版用户卡密码
flow.isZbcardpw = function( zbcard_pw )
{
    var zbcard_pw = $.trim(zbcard_pw);

    var pattern2 = /^[a-zA-Z0-9]{9,31}$/;
    
    var rt = [1,''];

    if(pattern2.test(zbcard_pw))
    {
        rt = [1, "OK"];
    }
    else
    {
        rt = [0, "卡密码格式错误"];
    }
    return rt;       
}

//操作页面
flow.check = function(){ var default_error_title = "未知错误!"};

flow.check.checkUname = function()
{
	var uname = $("#uname").val() || $("#passport").val() ;

	if( !uname )
	{
		$("#im3_5_3").text( "请输入帐号");
        $("#im3_5_3").show( "normal" );
        return false;
	}
    var isPP = flow.isPP( uname );

    if( !isPP[0] )
    {
    	var isEmail = flow.isemail( uname );
    	
    	if(!isEmail[0])
    	{
    		$("#im3_5_3").text( isEmail[1] ? "帐号不正确" : default_error_title);
            $("#im3_5_3").show( "normal" );
            return false;
    	}
    	else
    	{
    		$("#im3_5_3").text( '' );
    	    $("#im3_5_3").hide( "normal" );
    	}
    }
    else
    {
       $("#im3_5_3").text( '' );
       $("#im3_5_3").hide( "normal" );       
    }
    
    if($("#uname2").length >0  && $("#uname2").val().length )
    {
    	if( !flow.isEq( uname , $("#uname2").val() ) )
        {
            $("#im3_5_3").text( "两次输入的帐号不一样" );
            $("#im3_5_3").show( "normal" );
            return false;
        }
    	flow.checkUname( uname );  
    }
    else
    {
    	flow.checkUname( uname );  
    }
    return true;

}
flow.check.checkUname2 = function()
{
    if( !flow.isEq( $("#uname").val(), $("#uname2").val() ) )
    {
        $("#im3_5_3").text( "两次输入的帐号不一样" );
        $("#im3_5_3").show( "normal" );
        return false;
    }
    else
    {	
    	var isPP = flow.isPP( $("#uname").val() );
        
        if( !isPP[0] )
        {
        	var isEmail = flow.isemail( $("#uname").val() );
        	
        	if(!isEmail[0])
        	{
        		$("#im3_5_3").text( isflag[1] ? "帐号不正确" : default_error_title);
                $("#im3_5_3").show( "normal" );
                return false;
        	} 
        	else
        	{
        		$("#im3_5_3").text( '' );
        	    $("#im3_5_3").hide( "normal" );
        	}
        }
        else
        {
           $("#im3_5_3").text( '' );
           $("#im3_5_3").hide( "normal" );       
        }
    }
    flow.checkUname( $("#uname").val() );  

    return true;
}

flow.check.checkEmail = function()
{
    if( $("#send_email").val() ==  document.getElementById("send_email").defaultValue )
    {
        $("#send_email").val('');   
    }
    var is_flag = flow.isemail( $("#send_email").val() );
    
    if( $("#is_send_email:checked").val() && !is_flag[0] )
    {
        alert(is_flag[1]);
        return false;
    }
    return true;
}


flow.check.isPhone = function(phone, flag)
{
    var isflag = flow.isPhone( phone, flag);
    
    if( !isflag[0] )
    {
        $("#im3_5_3").text( isflag[1] ? isflag[1] : default_error_title);
        $("#im3_5_3").show( "normal" );
        return false;
    }
    else
    {
       $("#im3_5_3").text( '' );
       $("#im3_5_3").hide( "normal" );       
    }
    return true;
}

flow.check.checkKscardsn = function ()
{
    isflag = flow.isKscardsn( $("#kscard_sn").val());
  
    if( !isflag[0] )
    {
        $("#im3_5_3").text( isflag[1] ? isflag[1] : default_error_title);
        $("#im3_5_3").show( "normal" );
        return false;
    }
    else
    {
       $("#im3_5_3").text( '' );
       $("#im3_5_3").hide( "normal" );       
    }
    return true;
}

flow.check.checkKscardpw = function ()
{

    var isflag = flow.isKscardpw( $("#kscard_pw").val() );

    if( !isflag[0] )
    {
        $("#im3_5_3").text( isflag[1] ? isflag[1] : default_error_title);
        $("#im3_5_3").show( "normal" );
        return false;
    }
    else
    {
       $("#im3_5_3").text( '' );
       $("#im3_5_3").hide( "normal" );       
    }
    return true;
}


flow.check.checkZbcardsn = function ()
{
    isflag = flow.isZbcardsn( $("#zbcard_sn").val());
  
    if( !isflag[0] )
    {
        $("#im3_5_3").text( isflag[1] ? isflag[1] : default_error_title);
        $("#im3_5_3").show( "normal" );
        return false;
    }
    else
    {
       $("#im3_5_3").text( '' );
       $("#im3_5_3").hide( "normal" );       
    }
    return true;
}

flow.check.checkZbcardpw = function ()
{

    var isflag = flow.isZbcardpw( $("#zbcard_pw").val() );

    if( !isflag[0] )
    {
        $("#im3_5_3").text( isflag[1] ? isflag[1] : default_error_title);
        $("#im3_5_3").show( "normal" );
        return false;
    }
    else
    {
       $("#im3_5_3").text( '' );
       $("#im3_5_3").hide( "normal" );       
    }
    return true;
}

//自动填充passport
flow.autofill = function(){};
flow.autofill.getSearch = function ()
{
	return  document.location.search;
}
flow.autofill.getPassport = function(search)
{
    var begin = search.indexOf('pp=');
    if( begin != -1)
    {
        end = search.indexOf('&',begin+3);
        if(end  == -1)
        {
            var passport = search.substr(begin+3);
        }
        else
        {
            var passport = search.substr(begin+3, end-(begin+3));
        }
    
        return passport;

    }
    else
    {
    	begin = search.indexOf('passport=');
    	if( begin != -1)
	    {
	        end = search.indexOf('&',begin+9);
	        if(end  == -1)
	        {
	            var passport = search.substr(begin+9);
	        }
	        else
	        {
	            var passport = search.substr(begin+9, end-(begin+9));
	        }
	    
	        return passport;
	
	    }
    }
    return false;
 
}
flow.autofill.fillPp = function (pp,flag)
{
	var pp1 = $('#uname');
	var pp2 = $('#uname2');
	pp1.val(pp);
	pp2.val(pp);
	if(flag == true)
	{	  
		pp1.attr({readOnly:true});
	    pp2.attr({readOnly:true});  
	    pp1.blur();	    
	}
	else
	{
	    pp1.attr({readOnly:false});
	    pp2.attr({readOnly:false});
	}
}
flow.autofill.handle = function (is_allow)
{

	var search = flow.autofill.getSearch();
	var passport = flow.autofill.getPassport(search);
	if( passport )
	{
		flow.autofill.fillPp(passport,is_allow);
	}
}

