/*********************************\
|* 阿假笨笨表单注册认证JS           *|
|* www.webhulian.com             *|
|* @author songs@webhulian.com   *|
|* QQ:79648914                   *|
|* Email:ss423@163.com           *|
\*********************************/
function Form() {
	this.form = null;
	this.container = [];
	this.error_no = [];
};

Form.prototype.include = function(path) {
	var head = document.getElementsByTagName("head")[0];
	var script = document.createElement("script");
	script.src = path;
	head.appendChild(script);
}

Form.prototype.getText = function(_tag) {
	return this.form[_tag].value;
}

Form.prototype.setText = function(_tag,_value) {
	this.form[_tag].value = _value;
}

Form.prototype.getSelect = function(_tag) {
	return this.form[_tag].value;
}

Form.prototype.getRadio = function(_tag) {
	var _num = this.form[_tag].length;
	for (var i = 0; i < _num; i++) {
		if (this.form[_tag][i].checked) {
			return this.form[_tag][i].value;
		}
	}
}

Form.prototype.getCheckbox = function(_tag) {
	var _result = [];
	
	_tag += '[]';
	var _num = this.form[_tag].length;
	for (var i = 0; i < _num; i++) {
		if (this.form[_tag][i].checked) {
			//_result[_result.length] = this.form[_tag][i].value;
			_result.push(this.form[_tag][i].value);
		}
	}
	
	return _result;
}

Form.prototype.setSelect = function(_tag,_value) {
	var _options = this.form[_tag].options;
	var _num = _options.length;
	for (var i = 0; i < _num; i++) {
		if (_options[i].value == _value) {
			_options[i].selected = true;
		}
	}
}

Form.prototype.setRadio = function(_tag,_value) {
	if (_value == '') {
		return;
	}
	
	var _num = this.form[_tag].length;
	for (var i = 0; i < _num; i++) {
		this.form[_tag][i].checked = false;
		if (this.form[_tag][i].value == _value) {
			this.form[_tag][i].checked = true;
		}
	}
}

Form.prototype.setCheckbox = function(_tag,_arr) {
	_tag += '[]';
	var _num = this.form[_tag].length;
	for (var i = 0; i < _num; i++) {
		if (this.inArray(this.form[_tag][i].value,_arr)) {
			this.form[_tag][i].checked = true;
		}
	}
}

Form.prototype.echoOptions = function(_tag,_from,_to,_default) {
	for (var i = _from; i <= _to; i++) {
		var _length = this.form[_tag].options.length;
		this.form[_tag].options[_length] = new Option(i,i);
		if (i == _default) {
			this.form[_tag].options[_length].selected = true;
		}
	}
}

Form.prototype.hiddenAll = function() {
	var _num = this.container.length;
	for (var i = 0; i < _num; i++) {
		try {
			document.getElementById('error_' + this.container[i][0]).style.display = 'none';
		} catch(e) {
			alert('error_' + this.container[i][0] + ' can not be found');
		}
	}
}

Form.prototype.writeErr = function(_str,_tag) {
	this.setContainer(_tag);
	
	try {
		document.getElementById('error_' + _tag).style.display = '';
	} catch(e) {
		alert('error_' + _tag + ' not be found');
	}
	
	this.writeMsg(_str,'msg_' + _tag);
}

Form.prototype.writeMsg = function(_str,_tag) {
	try {
		document.getElementById(_tag).innerHTML = _str;
	} catch(e) {
		alert(_tag + ' not be found');
	}
}

Form.prototype.setContainer = function(_id) {
	var _page = this.page;
	var _obj = [_id,_page];
	if (!this.inArray(_obj,this.container)) {
		//this.container[this.container.length] = [_id,_page];
		this.container.push(_obj);
	}
}

Form.prototype.setErrorNo = function(_err) {
	if (!this.inArray(_err,this.error_no)) {
		//this.error_no[this.error_no.length] = _err;
		this.error_no.push(_err);
	}
}

Form.prototype.inArray = function(_mix,_array) {
	var _num = _array.length;
	for (var i = 0; i < _num; i++) {
		if (_array[i] == _mix) {
			return true;
		}
	}
	
	return false;
}

Form.prototype.get_ajax = function() {
	try { return new ActiveXObject("Msxml2.XMLHTTP");  } catch(e) {} //IE
	try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
	try { return new XMLHttpRequest();          } catch(e) {} //Native Javascript
	
	return null;
}
	
Form.prototype.getXML = function(_url) {
	var _ajax = this.get_ajax();
	if (!_ajax) {
		return '';
	}
	
	var _html = '';
	
	try {
		_ajax.open("GET",_url,false);
		_ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); 
		_ajax.send(null);
		if (_ajax.readyState == 4 && _ajax.status == 200) {
			_html = _ajax.responseText;
		}
	} catch(e) {}
	
	return _html;
}

Form.prototype.str2int = function(_str) {
	return parseInt(_str,10);
}

Form.prototype.trim = function(_str) {
	return _str.replace(/(^\s+)|(\s+$)/g,'');
}


/* form validation funtion begin */
Form.prototype.isEmail = function(_str) {
	var _pattern = /^([\w\.-]{1,31})@([\w-]+(\.[\w-]+)+)$/;
	return _pattern.test(_str);
}

Form.prototype.isUsername = function(_str) {
	var _pattern = /^[a-zA-Z][\w\.\-]{3,11}$/;
	return _pattern.test(_str);
}

Form.prototype.isDomain = function(_str) {
	var _pattern = /^[\w-]+(\.[\w-]+)+$/;
	return _pattern.test(_str);
}

Form.prototype.isPassword = function(_str) {
	var _pattern = /^[\w\.\-]{4,12}$/;
	return _pattern.test(_str);
}

Form.prototype.isCheckcode = function(_str) {
	var _pattern = /^[a-zA-Z0-9]{6}$/;
	return _pattern.test(_str);
}

Form.prototype.isTelephone = function(_str) {
	var _pattern = /^\+?(\d{3,4})+\d{8}$/;
	return _pattern.test(_str);
}

/* form validation funtion end */

