function FormController() {}
FormController.prototype.CollectFormValues=
function(formContainer, parameters) {
///<summary>Collects the form values using the formcontainer name and returns the entity</summary>
var formContainerEl=$G(formContainer);
if (parameters ==
null) parameters =
new IshaiHachlili.MyTakeOnDotNet.Entities.SearchParameters();
for (
var index=0; index<formContainerEl.getElementsByTagName(
"INPUT").length; index++) {
var el=formContainerEl.getElementsByTagName("INPUT")[index];
this.GetInputControlValue(el, parameters);
}
for (
var index=0; index<formContainerEl.getElementsByTagName(
"TEXTAREA").length; index++) {
var el=formContainerEl.getElementsByTagName("TEXTAREA")[index];
this.GetInputControlValue(el, parameters);
}
for (
var index=0; index<formContainerEl.getElementsByTagName(
"SELECT").length; index++) {
var el=formContainerEl.getElementsByTagName("SELECT")[index];
this.GetInputControlValue(el, parameters);
}
return parameters;
}
FormController.prototype.GetInputControlValue =
function(el, formParameters) {
if (el.tagName ==
'INPUT') {
var fieldName =
this.GetFieldName(el.name);
var fieldType = el.getAttribute(
'fieldType');
var fieldValue =
'';
switch (el.type) {
case "text":
fieldValue=this.ConvertValueToType(el.value,true);
this.addFormField(formParameters, fieldName, fieldType, fieldValue);
break;
case "hidden":
fieldValue=this.ConvertValueToType(el.value,false);
this.addFormField(formParameters, fieldName, fieldType, fieldValue);
break;
case "radio":
if (el.checked) {
fieldValue=el.value;
this.addFormField(formParameters, fieldName, fieldType, fieldValue);
}
break;
case "checkbox":
fieldValue=el.checked;
this.addFormField(formParameters, fieldName, fieldType, fieldValue);
break;
}
}
else if (el.tagName ==
'TEXTAREA') {
var fieldName = this.GetFieldName(el.name);
var fieldType = el.getAttribute('fieldType');
var fieldValue = el.value;
this.addFormField(formParameters, fieldName, fieldType, fieldValue);
}
else if (el.tagName ==
'SELECT') {
var fieldName = this.GetFieldName(el.name);
var fieldType = el.getAttribute('fieldType');
var fieldValue = this.getSelectedValues(el);
this.addFormField(formParameters, fieldName, fieldType, fieldValue);
}
}
FormController.prototype.addFormField =
function(formParameters, fieldName, fieldType, fieldValue) {
var formField = new IshaiHachlili.MyTakeOnDotNet.Entities.QueryParameter();
formField.FieldName=fieldName;
formField.FieldValue=fieldValue;
formField.FieldType=fieldType;
if (!formParameters.Parameters) formParameters.Parameters=[];
formParameters.Parameters.push(formField);
}
FormController.prototype.GetFieldName =
function(controlID) {
var firstPos=controlID.lastIndexOf('$')+1;
var lastPos=controlID.length-firstPos;
return controlID.substr(firstPos, lastPos);
}
FormController.prototype.ConvertValueToType =
function(value, isText) {
if (isInteger(value)) {
if (isText) return value;
return this.ConvertToNum(value);
}
else if(isDate(value)) {
return this.ConvertToDate(value);
}
else {
return value;
}
}
FormController.prototype.ConvertToNum =
function(value) {
return eval(value + '+0');
}
FormController.prototype.ConvertToDate =
function(value) {
aDateParts=value.split('/');
var oDate = new Date(aDateParts[2],aDateParts[1]-1,aDateParts[0]);
oDate.setMinutes(oDate.getMinutes() - oDate.getTimezoneOffset());
return oDate;
}
FormController.prototype.getSelectedValues =
function(select) {
var r =
new Array();
for (
var i = 0; i < select.options.length; i++)
if (select.options[i].selected)
r[r.length] = select.options[i].value;
return r.join(
",");
}