framework.datamodel={_dataMapper:{},createDataObject:function(objectId,dataString){if(!framework.util.isType(objectId,framework.DataType.STRING)||!framework.util.isType(dataString,framework.DataType.STRING)){return framework.Status.UNDEFINED_ARGUMENT;}if(framework.util.isEmpty(objectId)){return framework.Status.INVALID_ARGUMENT_VALUE;
}if(framework.util.isEmpty(dataString)){return framework.Status.INVALID_ARGUMENT_VALUE;}var dataObjectString=objectId+" = {"+dataString+"}";try{eval(dataObjectString);}catch(e){return framework.Status.COULD_NOT_CREATE_DATA_OBJECT;}return framework.Status.SUCCESS;},_getDataObjectAsString:function(objectId){var object=eval(objectId);
var resultString="";var count=0;for(var member in object){var dataMember=member.toString();var tempObj=object[dataMember];if(framework.util.isType(tempObj,framework.DataType.OBJECT)){if(!framework.util.isEmpty(resultString)){resultString=resultString+framework.Separator.COMMA+framework.Separator.SPACE;
}resultString=resultString+member.toString()+framework.Separator.COLON+framework.Separator.OBJECT_NOTATION_OPEN+framework.datamodel._getDataObjectAsString(objectId+"."+dataMember)+framework.Separator.OBJECT_NOTATION_CLOSE;continue;}if(count!==0){resultString=resultString+framework.Separator.COMMA+framework.Separator.SPACE;
}var subElement=member.toString();switch(typeof(object[member])){case framework.DataType.STRING:resultString=resultString+subElement+framework.Separator.COLON+framework.Separator.DOUBLE_QUOTE+object[member]+framework.Separator.DOUBLE_QUOTE;break;default:resultString=resultString+subElement+framework.Separator.COLON+object[member]+framework.Separator.EMPTY_STRING;
break;}count+=1;}return(resultString);},getDataObjectAsString:function(a){if(!framework.util.isType(a,framework.DataType.STRING)){return framework.Status.UNDEFINED_ARGUMENT;}if(framework.util.isEmpty(a)){return framework.Status.INVALID_ARGUMENT_VALUE;}if(!window[a]){return framework.Status.UNDEFINED_DATA_OBJECT;
}return framework.datamodel._getDataObjectAsString(a);},bindData:function(b,a){if(!framework.util.isType(b,framework.DataType.STRING)||!framework.util.isType(a,framework.DataType.STRING)){return framework.Status.UNDEFINED_ARGUMENT;}if(framework.util.isEmpty(b)){return framework.Status.INVALID_ARGUMENT_VALUE;
}if(framework.util.isEmpty(a)){return framework.Status.INVALID_ARGUMENT_VALUE;}if(!framework.util.isUndefinedOrNull(framework.datamodel._dataMapper[a])){framework.datamodel._dataMapper[a]=framework.datamodel._dataMapper[a]+framework.Separator.DATA_BIND_ELEMENT+b;}else{framework.datamodel._dataMapper[a]=b;
}return framework.Status.SUCCESS;},getDataMapAsString:function(){var a="";for(var b in framework.datamodel._dataMapper){a=a+b.toString()+framework.Separator.COLON+framework.datamodel._dataMapper[b]+framework.Separator.SPACE;}return(a);},_clearDataObject:function(objectId){var object=eval(objectId);for(var member in object){var dataMember=member.toString();
var tempObj=object[dataMember];if(framework.util.isType(tempObj,framework.DataType.OBJECT)){framework.datamodel._clearDataObject(objectId+"."+dataMember);continue;}var dataMemberQualifier=objectId+"."+dataMember;if(framework.util.isUndefinedOrNull(framework.datamodel._dataMapper[dataMemberQualifier])){continue;
}var htmlElementIds=framework.datamodel._dataMapper[dataMemberQualifier].split(framework.Separator.DATA_BIND_ELEMENT);for(var idIndex=0;idIndex<htmlElementIds.length;idIndex+=1){var htmlElement=document.getElementById(htmlElementIds[idIndex]);var htmlElementsString;if(framework.datamodel._dataMapper[dataMemberQualifier].split(framework.Separator.COMMA).length>1){htmlElementsString=framework.datamodel._dataMapper[dataMemberQualifier];
htmlElement=document.getElementById(framework.datamodel._dataMapper[dataMemberQualifier].split(framework.Separator.COMMA)[0]);}if(!framework.util.isUndefinedOrNull(htmlElement)){if(framework.util.isUndefinedOrNull(htmlElement.type)){if(htmlElement.getAttribute("type")==framework.InputElementType.CALENDAR){htmlElement.type=framework.InputElementType.CALENDAR;
}return framework.Status.INVALID_ELEMENT_TYPE;}switch(htmlElement.type){case framework.InputElementType.TEXT:case framework.InputElementType.TEXTAREA:case framework.InputElementType.HIDDEN:htmlElement.value=object[dataMember]=framework.Separator.EMPTY_STRING;break;case framework.InputElementType.CHECKBOX:htmlElement.checked=object[dataMember]=false;
break;case framework.InputElementType.SELECT_ONE:htmlElement.selectedIndex=0;object[dataMember]=htmlElement.value;break;case framework.InputElementType.RADIO:var radioButtonsIds=htmlElementsString.split(framework.Separator.COMMA);for(var index=0;index<radioButtonsIds.length;index+=1){var element=document.getElementById(radioButtonsIds[index]);
if(!framework.util.isUndefinedOrNull(element)){element.checked=false;}}object[dataMember]=framework.Separator.EMPTY_STRING;break;case framework.InputElementType.CALENDAR:framework.widget.calendar.resetSelectedDateObject(htmlElement.id);object[dataMember]=framework.Separator.EMPTY_STRING;break;}}else{}}}return framework.Status.SUCCESS;
},clearDataObject:function(a){if(!framework.util.isType(a,framework.DataType.STRING)){return framework.Status.UNDEFINED_ARGUMENT;}if(framework.util.isEmpty(a)){return framework.Status.INVALID_ARGUMENT_VALUE;}if(!window[a]){return framework.Status.UNDEFINED_DATA_OBJECT;}return framework.datamodel._clearDataObject(a);
},_populateDataObjectFromElements:function(objectId){var object=eval(objectId);for(var member in object){var dataMember=member.toString();var tempObj=object[dataMember];if(framework.util.isType(tempObj,framework.DataType.OBJECT)){framework.datamodel._populateDataObjectFromElements(objectId+"."+dataMember);
continue;}var dataMemberQualifier=objectId+"."+dataMember;if(framework.util.isUndefinedOrNull(framework.datamodel._dataMapper[dataMemberQualifier])){continue;}var htmlElementIds=framework.datamodel._dataMapper[dataMemberQualifier].split(framework.Separator.DATA_BIND_ELEMENT);var htmlElement=document.getElementById(htmlElementIds[0]);
var htmlElementsString;if(framework.datamodel._dataMapper[dataMemberQualifier].split(framework.Separator.COMMA).length>1){htmlElementsString=framework.datamodel._dataMapper[dataMemberQualifier];htmlElement=document.getElementById(framework.datamodel._dataMapper[dataMemberQualifier].split(framework.Separator.COMMA)[0]);
}if(!framework.util.isUndefinedOrNull(htmlElement)){if(framework.util.isUndefinedOrNull(htmlElement.type)){if(htmlElement.getAttribute("type")==framework.InputElementType.CALENDAR){htmlElement.type=framework.InputElementType.CALENDAR;}return framework.Status.INVALID_ELEMENT_TYPE;}switch(htmlElement.type){case framework.InputElementType.TEXT:case framework.InputElementType.TEXTAREA:case framework.InputElementType.SELECT_ONE:case framework.InputElementType.HIDDEN:if(typeof(object[dataMember])==framework.DataType.STRING){object[dataMember]=htmlElement.value;
}break;case framework.InputElementType.CHECKBOX:if(typeof(object[dataMember])==framework.DataType.BOOLEAN){object[dataMember]=htmlElement.checked;}break;case framework.InputElementType.RADIO:if(typeof(object[dataMember])==framework.DataType.STRING){var radioButtonsIds=htmlElementsString.split(framework.Separator.COMMA);
for(var index=0;index<radioButtonsIds.length;index+=1){var element=document.getElementById(radioButtonsIds[index]);if((element)&&(element.checked)){object[dataMember]=element.value;break;}}}break;case framework.InputElementType.CALENDAR:if(typeof(object[dataMember])==framework.DataType.STRING){var date=framework.widget.calendar.getSelectedDateObject(htmlElement.id);
object[dataMember]=framework.widget.calendar.setDateFormat("%mm/%dd/%yyyy",date);}break;default:break;}}}return framework.Status.SUCCESS;},populateDataObjectFromElements:function(a){if(!framework.util.isType(a,framework.DataType.STRING)){return framework.Status.UNDEFINED_ARGUMENT;}if(framework.util.isEmpty(a)){return framework.Status.INVALID_ARGUMENT_VALUE;
}if(!window[a]){return framework.Status.UNDEFINED_DATA_OBJECT;}return framework.datamodel._populateDataObjectFromElements(a);},_populateElementsFromDataObject:function(objectId){var object=eval(objectId);for(var member in object){var dataMember=member.toString();var tempObj=object[dataMember];if(framework.util.isType(tempObj,framework.DataType.OBJECT)){framework.datamodel._populateElementsFromDataObject(objectId+"."+dataMember);
continue;}var dataMemberQualifier=objectId+"."+dataMember;if(framework.util.isUndefinedOrNull(framework.datamodel._dataMapper[dataMemberQualifier])){continue;}var htmlElementIds=framework.datamodel._dataMapper[dataMemberQualifier].split(framework.Separator.DATA_BIND_ELEMENT);for(var idIndex=0;idIndex<htmlElementIds.length;
idIndex+=1){var htmlElement=document.getElementById(htmlElementIds[idIndex]);var htmlElementsString;if(framework.datamodel._dataMapper[dataMemberQualifier].split(framework.Separator.COMMA).length>1){htmlElementsString=framework.datamodel._dataMapper[dataMemberQualifier];htmlElement=document.getElementById(framework.datamodel._dataMapper[dataMemberQualifier].split(framework.Separator.COMMA)[0]);
}if(!framework.util.isUndefinedOrNull(htmlElement)){if(framework.util.isUndefinedOrNull(htmlElement.type)){if(htmlElement.getAttribute("type")==framework.InputElementType.CALENDAR){htmlElement.type=framework.InputElementType.CALENDAR;}return framework.Status.INVALID_ELEMENT_TYPE;}switch(htmlElement.type){case framework.InputElementType.TEXT:case framework.InputElementType.TEXTAREA:case framework.InputElementType.HIDDEN:htmlElement.value=object[dataMember];
break;case framework.InputElementType.CHECKBOX:htmlElement.checked=object[dataMember];break;case framework.InputElementType.SELECT_ONE:var found=false;for(var index=0;index<htmlElement.options.length;index+=1){if(object[dataMember]==htmlElement.options[index].value){htmlElement.value=object[dataMember];
found=true;break;}}if(!found){htmlElement.selectedIndex=0;}break;case framework.InputElementType.RADIO:var radioButtonsIds=htmlElementsString.split(framework.Separator.COMMA);for(index=0;index<radioButtonsIds.length;index+=1){var element=document.getElementById(radioButtonsIds[index]);if(!framework.util.isUndefinedOrNull(element)){if(element.value==object[dataMember]){element.checked=true;
}else{element.checked=false;}}}break;case framework.InputElementType.CALENDAR:if(typeof(object[dataMember])==framework.DataType.STRING){var date=new Date(object[dataMember]);framework.widget.calendar.setSelectedDateObject(htmlElement.id,date);}break;default:break;}}else{}}}return framework.Status.SUCCESS;
},populateElementsFromDataObject:function(objectId){if(!framework.util.isType(objectId,framework.DataType.STRING)||framework.util.isUndefinedOrNull(objectId)){return framework.Status.UNDEFINED_ARGUMENT;}if(framework.util.isEmpty(objectId)){return framework.Status.INVALID_ARGUMENT_VALUE;}if(!window[objectId]){return framework.Status.UNDEFINED_DATA_OBJECT;
}var object=eval(objectId);return framework.datamodel._populateElementsFromDataObject(objectId);},loaded:true};