//-----------------------------------------------------------------------------------------------------------
/* JSForm constructor */
function JSForm(){}
/* set prototype */
JSFormPrototype = JSForm.prototype;
//-----------------------------------------------------------------------------------------------------------
JSFormPrototype.getPath = function(form_name) {
	return "document.forms['" + form_name + "']";	
}

JSFormPrototype.getElemPath = function(form_name, elem_name, index) {
	var path 	= this.getPath(form_name);
	var subpath	= (index !== false) ? '[]' : '';
	path 		+= ".elements['" + elem_name + subpath + "']";
	return path;
}
//-----------------------------------------------------------------------------------------------------------
JSFormPrototype.isObject = function(form_name) {
	var path = this.getPath(form_name);
	return (eval(path)) ? true : false;
}

JSFormPrototype.getObject = function(form_name) {
	return layerByPath(this.getPath(form_name));	
}
//-----------------------------------------------------------------------------------------------------------
JSFormPrototype.isElemObject = function(form_name, elem_name, index) {
	var path = this.getElemPath(form_name, elem_name, index);
	return (eval(path)) ? true : false;
}

JSFormPrototype.getElemObject = function(form_name, elem_name, index) {
	var path = this.getElemPath(form_name, elem_name, index);
	return layerByPath(path);
}
//-----------------------------------------------------------------------------------------------------------
JSFormPrototype.getInput = function(form_name, elem_name, index) {
	var elem_object = this.getElemObject(form_name, elem_name, index);
	if (elem_object.object) {
		if (index !== false) return elem_object.object[index];	
		else return elem_object.object;		
	} else return null;	
}

JSFormPrototype.getFormElemsCount = function(form_name, elem_name) {
	var elem_object = this.getElemObject(form_name, this.getArrElemName(elem_name), true);
	if (elem_object.object) return Number(elem_object.object.length);
	else return false;		
}	
//-----------------------------------------------------------------------------------------------------------
JSFormPrototype.getArrElemName = function(elem_name) {
	return 'form[' + elem_name + ']';
}
//-----------------------------------------------------------------------------------------------------------
JSFormPrototype.setAction = function(form_name, action_name, action_phase) {
	var action_name_obj = this.getElemObject(form_name, 'action[name]', false);
	var action_phase_obj = this.getElemObject(form_name, 'action[phase]', false);
	if (action_name_obj.object && action_phase_obj.object) {
		action_name_obj.object.value = String(action_name);
		action_phase_obj.object.value = String(action_phase);
		return true;
	} else return false;
}

JSFormPrototype.setConfirmAction = function(form_name, action_name, action_phase, message) {
	if (this.confirm(message)) {
		this.setAction(form_name, action_name, action_phase);
		return true;
	} else return false;	
}
//-----------------------------------------------------------------------------------------------------------
JSFormPrototype.submit = function(form_name, action_name, action_phase, redirect) {
	var form_obj = this.getObject(form_name);
	if (form_obj.object) {
		if (this.setAction(form_name, action_name, action_phase)) {
			if (redirect) form_obj.object.redirect.value = redirect;
			form.object.submit();
			return true;
		} else return false;	
	} else return false;	
}
//-----------------------------------------------------------------------------------------------------------
JSFormPrototype.assignChkBoxElemToDiv = function(form_name, elem_name, div_name, flag, index) {
	var input 	= this.getInput(form_name, this.getArrElemName(elem_name), index);
	var div_obj = layer(div_name);
	if (input && div_obj) {
		
		if ((input.checked && flag) || (!input.checked && !flag)) div_obj.css.display = 'block';
		else div_obj.css.display = 'none';
	}	
}
//-----------------------------------------------------------------------------------------------------------
JSFormPrototype.assignChkBoxElemToCalendar = function(form_name, elem_name, calendar_elem_name, index) {
	var elem_obj = this.getElemObject(form_name, this.getArrElemName(elem_name), index);
	var calendar_label_obj = this.getElemObject(form_name, this.getArrElemName(calendar_elem_name + '_label'), index);
	var calendar_button_obj = this.getElemObject(form_name, this.getArrElemName(calendar_elem_name + '_button'), index);
	if (elem_obj.object && calendar_label_obj.object && calendar_button_obj.object) {
		if (elem_obj.object.checked) {
			calendar_label_obj.object.disabled = true;
			calendar_button_obj.object.disabled = true;	
		} else {
			calendar_label_obj.object.disabled = false;
			calendar_button_obj.object.disabled = false;
		}		
	}
}
//-----------------------------------------------------------------------------------------------------------
JSFormPrototype.confirm = function(message) {
	return confirm(message);	
}	
//-----------------------------------------------------------------------------------------------------------