
function checkForm()
{
	var flag = true;
	var category = 0;
	var region = 0;
	var isok = 0;

	if( ! $("#agreementcheckbox").attr('checked') )
	{
		alert('你必须同意 "同意服务条款" 才能进行注册. ');
		return false;
	}

	if ( $('#username').val().length < 4 )
	{
		alert('登录名长度过短.');
		return false;
	}
	else if ( $('#username').val().length > 16 )
	{
		alert('登录名长度过长.');
		return false;
	}
	else
	{
		if ( ! /^[a-z][A-Za-z0-9]+$/.test($('#username').val()) )
		{
			alert('无效的登录名.');
			return false;
		}
		/*
		if ( checkName () )
		{
			alert('登录名已经被注册, 请重新选择.');
			return false;
		}
		*/
	}

	if ( $('#password').val().length < 6 )
	{
		alert('密码长度过短.');
			return false;
	}
	else if ( $('#password').val().length > 16 )
	{
		alert('密码长度过长.');
			return false;
	}
	if ( $('#password').val() !=  $('#password2').val() )
	{
		alert('两次输入的密码不匹配.');
		return false;
	}
	if ( /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test( $('#email').val() ) )
	{
		/*
		isok = checkEmail();

		if ( isok == 1)
		{
			alert('电子邮箱已注册, 请重新输入.');
			return false;
		}
		else if ( isok == -1)
		{
			alert('电子邮箱格式不正确.');
			return false;
		}
		*/
	}
	else
	{
		alert('电子邮箱格式不正确.');
		return false;
	}

	if ( $('#mobile').val() )
	{

		if ( $('#mobileArea').val() == '+852' || $('#mobileArea').val() == '+853' )
		{
			re = /^\d{8}$/;
		}
		else
		{
			re = /^1[358]\d{9}$/;
		}

		if ( ! re.test( $('#mobile').val() ) )
		{
			alert('手机号码不正确.');
			return false;
		}
	}
	else
	{
		alert('请输入手机号码.');
		return false;
	}

	if ( $('#authkey').val() )
	{
		/*
		isok = 0;

		$.get('authkey.php', { action: 'check', telphone: $('#mobile').val(), message: $('#authkey').val() }, function(data) {
			isok = (parseInt(data))
		  }
		);

		if ( ! isok )
		{
			alert('验证码不正确, 请重新输入.');
			return false;
		}
		*/
	}
	else
	{
		alert('请输入验证码.');
		return false;
	}

	// 商业用户验证
	if ( $("input[@type=radio][@checked]").val() == 3 )
	{
		if ( ! $('#companyname').val() )
		{
			alert('请填写 "公司名称"');
			return false;
		}
		if ( ! $('#address').val() )
		{
			alert('请填写 "公司地址"');
			return false;
		}
		if ( ! $('#zipcode').val() )
		{
			alert('请填写 "邮政编码"');
			return false;
		}
		if ( ! $('#contact').val() )
		{
			alert('请填写 "联系人"');
			return false;
		}
		if ( ! $('#tel1').val() )
		{
			alert('请填写 "电话"');
			return false;
		}
		/*
		if ( ! $('#briefintro ').val() )
		{
			alert('请填写 "公司简介"');
			return false;
		}
		*/
		$('.region').each(function() {

			if ( $(this).val() == 0 )
			{
				region = 0 ;
				return false;
			}
			region += '|' + $(this).val() ;
		});

		if ( region == 0 )
		{
			alert('请选择公司区域.');
			return false;
		}

		$('.category').each(function() {
			if ( $(this).val() == 0 )
			{
				category = 0;
				return false;
			}
			category += '|' + $(this).val() ;
		});

		if ( category == 0 )
		{
			alert('请选择行业分类.');
			return false;
		}
		$("#category").val(category);
		$("#region").val(region);
	}
	$("form").submit();
}

function toggleCompanyInfo( obj )
{
	if ( obj.value == 3 )
	{
		$('#companyInfo').show();
	}
	else
	{
		$('#companyInfo').hide();
	}
}
function validateName( f )
{
	if ( $('#username').val().length < 4 )
	{
		alert('登录名长度过短.');
	}
	else if ( $('#username').val().length > 16 )
	{
		alert('登录名长度过长.');
	}
	else
	{
		if ( ! /^[a-z][A-Za-z0-9]+$/.test($('#username').val()) )
		{
			alert('登录名无效.');
		}
		else
		{
			if ( ! checkName () )
			{
				alert('登录名可使用.');
			}
			else
			{
				alert('登录名已被注册, 请重新选择一个!');
			}
		}
	}

	return;
}
function genAuthkey ()
{
	if ( $('#mobile').val() )
	{

		if ( $('#mobileArea').val() == '+852' || $('#mobileArea').val() == '+853' )
		{
			re = /^\d{8}$/;
		}
		else
		{
			re = /^1[358]\d{9}$/;
		}

		if ( re.test( $('#mobile').val() ) )
		{
			telphone = $('#mobileArea').val() + '' + $('#mobile').val();

			$.get('authkey.php', { action: 'send', telphone: telphone, message: $('#authkey').val() }, function(data) {
				alert('短信已发送, 请查看序号[' + data + ']的验证码, 并填写.');
			  }
			);
		}
		else
		{
			alert('手机号码不正确.');
			return false;
		}
	}
	else
	{
		alert('请输入手机号码.');
		return false;
	}
}

function checkEmail ()
{
	var isused = -1;

	if ( $('#email').val() )
	{
		$.get('register.php', { action: 'validateEmail', email: $('#email').val() }, function(data) {
			isused = (parseInt(data));
		  }
		);
	}
	return isused;
}

function checkName ()
{
	var isused = false;

		jQuery.ajax({
			url: 'register.php',
			data: 'action=validateName&username=' + $('#username').val(),
			type: 'POST',
			async: false,
			beforeSend: function() {},
			error: function(request) {
				$('#messageBox').show().html(request.responseText);
			},
			success: function(data) {
				isused = (parseInt(data));
			}
		});

	return isused;
}

function getRegion( ev ) {
	$(ev.target).nextAll('select').remove();

	$.get('region.php', {'id': $(ev.target).val()}, function( data ) { 
		if( data.length > 2 ) {
			data = jQuery.trim( data );
			var myJSON = eval( '(' + data + ');' );
			var oSelect = $( '<select class="region"></select>' );
			oSelect.change( getRegion );
			oSelect.append( $('<option value="0">请选择</option>') );

			for( var i in myJSON )
			{
				var option = $('<option value="' + myJSON[i].addrcode+'">' + myJSON[i].addrname + '</option>');
				oSelect.append(option);
			}
			$(ev.target).after(oSelect);
		}
	});
}

function getCat( ev ) {
	$(ev.target).nextAll('select').remove();

	$.get('catjson.php', {'id': $(ev.target).val()}, function( data ) { 
		if( data.length > 2 ) {
			data = jQuery.trim( data );
			var myJSON = eval( '(' + data + ');' );
			var oSelect = $( '<select class="category"></select>' );
			oSelect.change( getCat );
			oSelect.append( $('<option value="0">请选择</option>') );

			for( var i in myJSON )
			{
				var option = $('<option value="' + myJSON[i].catcode+'">' + myJSON[i].catname + '</option>');
				oSelect.append(option);
			}
			$(ev.target).after(oSelect);
		}
	});
}

function Initialization(obj, str)	// 初始化多级联动框，适合编辑和修改的情况下使用
{ 
	if( str != "" )
	{   
		var ind = str.indexOf( "|" );
		var str1 = str.substring(0, ind);
		var str2 = str.substring( ind + 1 );

		obj.val( str1 ).change();
		setArea(obj, str2);
	}
}
   
function setArea(obj, strs)	// 判断是否生成下级，如果生成，继续初始化，否则继续判断
{
	if( obj.next().val() )
	{
		Initialization(obj.next(), strs);
	}
	else
	{
		window.setTimeout(setArea, 50, obj, strs);
	}
}
   
// 以下为重写 window.setTimeout
var __sto = setTimeout;
window.setTimeout = function( callback, timeout, param )
{
    var args = Array.prototype.slice.call(arguments, 2);
    var _cb = function()
    {
        callback.apply(null, args);
    }
    __sto(_cb, timeout);
}