
var AgatXML={getXML:function(select_as_inner_text){var doc=document;function xml_escape(str){var ent_table={"<":"&lt;",">":"&gt;","&":"&amp;"};str=str.toString().replace(/[<>&]/g,function(ch){return ent_table[ch];});return str;}
var seen_names={};function make_element(tag,val,attrName,attrValue){if(attrName!=null&&attrName!=""){return"<"+xml_escape(tag)+" "+attrName+"=\""+attrValue+"\" >"
+xml_escape(val)+"</"+xml_escape(tag)+">\n";}
else{return"<"+xml_escape(tag)+">"
+xml_escape(val)+"</"+xml_escape(tag)+">\n";}}
function make_text_element(tag,val,textAttribute){return make_element(tag,val,"text",textAttribute);}
var handle_input_elem=function(inp){switch(inp.type.toLowerCase()){case"text":case"hidden":case"password":if($(inp).tfsDataType()=="attachment"){}
var val="";if($(inp).hasAttribute("tfsLookUpWindow")){if($(inp).hasAttribute("tfsValue"))
val=$(inp).attr("tfsValue");else if($(inp).hasAttribute("text"))
val=$(inp).attr("text");else
val=$(inp).attr("value");return make_text_element(inp.id,val,inp.value);}
else{return make_element(inp.id,inp.value);}
return make_element(inp.id,inp.value);case"radio":if(!(("*"+inp.name)in seen_names)){seen_names["*"+inp.name]=true;var radiolist=doc.getElementsByName(inp.name);var val="";for(var i=0;i<radiolist.length;i++){var elem=radiolist[i];if(elem.checked){val=elem.value;break;}}
return make_element(inp.name,val);}else{return"";}
case"checkbox":return make_element(inp.id,inp.checked?"true":"false");default:return"";}}
var handle_select_elem=function(inp){var index=inp.selectedIndex;var contents;if(index!=-1){contents=inp.getElementsByTagName("option")[index].innerHTML;}
else{contents=""}
if(select_as_inner_text){if(contents!=""){return make_text_element(inp.id,contents);}else{return"";}}else{return make_text_element(inp.id,inp.value,contents);}};var handle_textarea_elem=function(inp){return make_element(inp.id,inp.value);};var handle_generic_elem=function(elem){return make_element(elem.id,elem.innerHTML);};var handle_table_elem=function(table){var tablexml="";var rows=table.rows;for(var i=0;i<rows.length;i++){var row=rows[i];var rowxml=process_elements(row,"tfsrowdata");if(rowxml!=""){tablexml+="<"+xml_escape(table.id)+">\n"+
rowxml+"</"+xml_escape(table.id)+">\n";}}
return tablexml;};var elem_types={"input":handle_input_elem,"select":handle_select_elem,"textarea":handle_textarea_elem,"span":handle_generic_elem,"div":handle_generic_elem,"table":handle_table_elem};var process_elements=function(root,magic_attr){var res="";for(var tag in elem_types){var func=elem_types[tag];var nodelist=root.getElementsByTagName(tag);for(var i=0;i<nodelist.length;i++){var inp=nodelist[i];if(inp.id&&$(inp).hasAttribute(magic_attr)){res+=func(inp);}}}
return res;};var xmlstr="<?xml version='1.0'?>\n";xmlstr+="<root>\n<form>\n";xmlstr+=process_elements(doc,"tfsdata");xmlstr+="</form>\n</root>\n";return xmlstr;},importXML:function(xml){function setImportedValue(elem,dataElem){if($(elem).hasAttribute("tfsDoNotImportByToolbar")){return;}
if(elem.tagName=="TABLE"){handleTableRow(elem,dataElem);return;}
if(dataElem.textContent)var value=dataElem.textContent;else if(dataElem.text)var value=dataElem.text;else var value="";if(elem.tagName=="INPUT"){switch(elem.type.toLowerCase()){case"radio":elem.checked=(elem.value==value);break;case"checkbox":elem.checked=(value.toLowerCase()=="true");break;default:elem.value=value;break;}}else if(elem.tagName=="DIV"||elem.tagName=="SPAN"){elem.innerHTML=value;}else if(elem.tagName=="TEXTAREA"){elem.value=value;}else if(elem.tagName=="SELECT"){elem.value=value;}else{}}
var seenTables=new AgatDictionary();function handleTableRow(formTableElem,rowDataElem){var formRowElem;if(seenTables.contains(formTableElem.id)){formRowElem=AgatTables.addTableRow($(formTableElem))[0];}else{seenTables.set(formTableElem.id,"1");var firstRow=0;if(formTableElem.tHead)firstRow+=formTableElem.tHead.rows.length;formRowElem=formTableElem.rows[firstRow];}
for(var i=0;i<formRowElem.cells.length;i++){var cell=formRowElem.cells[i];var cellElems=cell.getElementsByTagName("*");for(var j=0;j<cellElems.length;j++){var formElem=cellElems[j];if(formElem.nodeType!=1||!formElem.id||!$(formElem).hasAttribute("tfsRowData"))continue;var elems=rowDataElem.getElementsByTagName(formElem.id);if(!elems.length){continue;}
var dataElem=elems[0];setImportedValue(formElem,dataElem);}}}
var formDoc=document;var xmlDoc=AgatUtils.parseXMLFromString(xml);if(!xmlDoc){AgatEngine.displayMsgBox("IMPORT_UNVALID_XML");return;}
AgatTables.clearAllTables(formDoc);$("root form *",xmlDoc).each(function(){var dataElem=this;$("#"+$(dataElem)[0].tagName+":tfsdata,input[name='"+$(dataElem)[0].tagName+"']:tfsdata").each(function(){setImportedValue(this,dataElem);});});AgatValidator.evalDynamicExpressions();}};