var DHTMLSuite=new Object();DHTMLSuite.formUtil=function()
{}
DHTMLSuite.getEl=function(elRef){if(typeof elRef=='string'){if(document.getElementById(elRef))return document.getElementById(elRef);if(document.forms[elRef])return document.forms[elRef];if(document[elRef])return document[elRef];if(window[elRef])return window[elRef];}
return elRef;}
DHTMLSuite.formUtil.prototype={getFamily:function(el,formRef)
{var els=formRef.elements;var retArray=new Array();for(var no=0;no<els.length;no++){if(els[no].name==el.name)retArray[retArray.length]=els[no];}
return retArray;},hasFileInputs:function(formRef)
{var els=formRef.elements;for(var no=0;no<els.length;no++){if(els[no].tagName.toLowerCase()=='input'&&els[no].type.toLowerCase()=='file')return true;}
return false;},getValuesAsArray:function(formRef)
{var retArray=new Object();formRef=DHTMLSuite.getEl(formRef);var els=formRef.elements;for(var no=0;no<els.length;no++){if(els[no].disabled)continue;var tag=els[no].tagName.toLowerCase();switch(tag){case"input":var type=els[no].type.toLowerCase();if(!type)type='text';switch(type){case"text":case"image":case"hidden":case"password":retArray[els[no].name]=els[no].value;break;case"checkbox":var boxes=this.getFamily(els[no],formRef);if(boxes.length>1){retArray[els[no].name]=new Array();for(var no2=0;no2<boxes.length;no2++){if(boxes[no2].checked){var index=retArray[els[no].name].length;retArray[els[no].name][index]=boxes[no2].value;}}}else{if(els[no].checked)retArray[els[no].name]=els[no].value;}
break;case"radio":if(els[no].checked)retArray[els[no].name]=els[no].value;break;}
break;case"select":var string='';var mult=els[no].getAttribute('multiple');if(mult||mult===''){retArray[els[no].name]=new Array();for(var no2=0;no2<els[no].options.length;no2++){var index=retArray[els[no].name].length;if(els[no].options[no2].selected)retArray[els[no].name][index]=els[no].options[no2].value;}}else{retArray[els[no].name]=els[no].options[els[no].selectedIndex].value;}
break;case"textarea":retArray[els[no].name]=els[no].value;break;}}
return retArray;},getValue:function(formEl)
{switch(formEl.tagName.toLowerCase()){case"input":case"textarea":return formEl.value;case"select":return formEl.options[formEl.selectedIndex].value;}},areEqual:function(input1,input2)
{input1=DHTMLSuite.getEl(input1);input2=DHTMLSuite.getEl(input2);if(this.getValue(input1)==this.getValue(input2))return true;return false;}}
DHTMLSuite.variableStorage=new Object();DHTMLSuite.variableStorage.arrayDSObjects=new Array();DHTMLSuite.form=function(propArray)
{var formRef;var method;var responseEl;var action;var responseFile;var formUtil;var objectIndex;var sackObj;var coverDiv;var layoutCSS;var iframeName;this.method='POST';this.sackObj=new Array();this.formUtil=new DHTMLSuite.formUtil();this.layoutCSS='form.css';this.objectIndex=DHTMLSuite.variableStorage.arrayDSObjects.length;DHTMLSuite.variableStorage.arrayDSObjects[this.objectIndex]=this;if(propArray)this.__setInitProperties(propArray);}
DHTMLSuite.form.prototype={submit:function()
{this.__createCoverDiv();var index=this.sackObj.length;if(this.formUtil.hasFileInputs(this.formRef)){this.__createIframe();this.formRef.submit();}else{this.__createSackObject(index);this.__populateSack(index);this.sackObj[index].runAJAX();}
this.__positionCoverDiv();return false;},__createIframe:function()
{if(this.iframeName)return;var ind=this.objectIndex;var div=document.createElement('DIV');document.body.appendChild(div);this.iframeName='DHTMLSuiteForm'+this.getUniqueId();div.innerHTML='<iframe style="visibility:hidden;width:5px;height:5px" id="'+this.iframeName+'" name="'+this.iframeName+'" onload="parent.DHTMLSuite.variableStorage.arrayDSObjects['+ind+'].__getIframeResponse()"></iframe>';this.formRef.method=this.method;this.formRef.action=this.action;this.formRef.target=this.iframeName;if(!this.formRef.enctype)this.formRef.enctype='multipart/form-data';},getUniqueId:function()
{var no=Math.random()+'';no=no.replace('.','');var no2=Math.random()+'';no2=no2.replace('.','');return no+no2;},__getIframeResponse:function()
{if(this.responseEl){if(this.responseFile){if(!this.responseEl.id)this.responseEl.id='DHTMLSuite_formResponse'+DHTMLSuite.getUniqueId();var dynContent=new DHTMLSuite.dynamicContent();dynContent.loadContent(this.responseEl.id,this.responseFile);}else{this.responseEl.innerHTML=self.frames[this.iframeName].document.body.innerHTML;this.__evaluateJs(this.responseEl);this.__evaluateCss(this.responseEl);}}
this.coverDiv.style.display='none';this.__handleCallback('onComplete');},__positionCoverDiv:function()
{if(!this.responseEl)return;try{var st=this.coverDiv.style;st.left=this.getLeftPos(this.responseEl)+'px';st.top=this.getTopPos(this.responseEl)+'px';st.width=this.responseEl.offsetWidth+'px';st.height=this.responseEl.offsetHeight+'px';st.display='block';}catch(e){}},__createCoverDiv:function()
{if(this.coverDiv)return;this.coverDiv=document.createElement('DIV');var el=this.coverDiv;el.style.overflow='hidden';el.style.zIndex=1000;el.style.position='absolute';document.body.appendChild(el);var innerDiv=document.createElement('DIV');innerDiv.style.width='105%';innerDiv.style.height='105%';innerDiv.className='DHTMLSuite_formCoverDiv';innerDiv.style.opacity='0.2';innerDiv.style.filter='alpha(opacity=20)';el.appendChild(innerDiv);var ajaxLoad=document.createElement('DIV');ajaxLoad.className='DHTMLSuite_formCoverDiv_ajaxLoader';el.appendChild(ajaxLoad);},__createSackObject:function(ajaxIndex)
{var ind=this.objectIndex;this.sackObj[ajaxIndex]=new sack();this.sackObj[ajaxIndex].requestFile=this.action;this.sackObj[ajaxIndex].method=this.method;this.sackObj[ajaxIndex].onCompletion=function(){DHTMLSuite.variableStorage.arrayDSObjects[ind].__getResponse(ajaxIndex);}},__getResponse:function(ajaxIndex)
{if(this.responseEl){if(this.responseFile){if(!this.responseEl.id)this.responseEl.id='DHTMLSuite_formResponse'+DHTMLSuite.getUniqueId();var dynContent=new DHTMLSuite.dynamicContent();dynContent.loadContent(this.responseEl.id,this.responseFile);}else{this.responseEl.innerHTML=this.sackObj[ajaxIndex].response;this.__evaluateJs(this.responseEl);this.__evaluateCss(this.responseEl);}}
this.coverDiv.style.display='none';this.sackObj[ajaxIndex]=null;this.__handleCallback('onComplete');},isArray:function(el)
{if(el.constructor.toString().indexOf("Array")!=-1)return true;return false;},__populateSack:function(ajaxIndex)
{var els=this.formUtil.getValuesAsArray(this.formRef);for(var prop in els){if(this.isArray(els[prop])){for(var no=0;no<els[prop].length;no++){var name=prop+'['+no+']';if(prop.indexOf('[')>=0){name=prop.replace('[','['+no);}
this.sackObj[ajaxIndex].setVar(name,els[prop][no]);}}else{this.sackObj[ajaxIndex].setVar(prop,els[prop]);}}},__setInitProperties:function(props)
{if(props.formRef)this.formRef=DHTMLSuite.getEl(props.formRef);if(props.method)this.method=props.method;if(props.responseEl)this.responseEl=DHTMLSuite.getEl(props.responseEl);if(props.action)this.action=props.action;if(props.responseFile)this.responseFile=props.responseFile;if(props.callbackOnComplete)this.callbackOnComplete=props.callbackOnComplete;if(!this.action)this.action=this.formRef.action;if(!this.method)this.method=this.formRef.method;},__handleCallback:function(action)
{var callbackString='';switch(action){case"onComplete":callbackString=this.callbackOnComplete;break;}
if(callbackString){if(callbackString.indexOf('(')==-1)callbackString=callbackString+'("'+this.formRef.name+'")';eval(callbackString);}},__evaluateJs:function(obj)
{obj=DHTMLSuite.getEl(obj);var scriptTags=obj.getElementsByTagName('SCRIPT');var string='';var jsCode='';for(var no=0;no<scriptTags.length;no++){if(scriptTags[no].src){var head=document.getElementsByTagName("head")[0];var scriptObj=document.createElement("script");scriptObj.setAttribute("type","text/javascript");scriptObj.setAttribute("src",scriptTags[no].src);}else{if(DHTMLSuite.clientInfoObj.isOpera){jsCode=jsCode+scriptTags[no].text+'\n';}
else
jsCode=jsCode+scriptTags[no].innerHTML;}}
if(jsCode)this.__installScript(jsCode);},__installScript:function(script)
{try{if(!script)
return;if(window.execScript){window.execScript(script)}else if(window.jQuery&&jQuery.browser.safari){window.setTimeout(script,0);}else{window.setTimeout(script,0);}}catch(e){}},__evaluateCss:function(obj)
{obj=DHTMLSuite.getEl(obj);var cssTags=obj.getElementsByTagName('STYLE');var head=document.getElementsByTagName('HEAD')[0];for(var no=0;no<cssTags.length;no++){head.appendChild(cssTags[no]);}},getLeftPos:function(el)
{if(document.getBoxObjectFor){if(el.tagName!='INPUT'&&el.tagName!='SELECT'&&el.tagName!='TEXTAREA')return document.getBoxObjectFor(el).x}
var returnValue=el.offsetLeft;while((el=el.offsetParent)!=null){if(el.tagName!='HTML'){returnValue+=el.offsetLeft;if(document.all)returnValue+=el.clientLeft;}}
return returnValue;},getTopPos:function(el)
{if(document.getBoxObjectFor){if(el.tagName!='INPUT'&&el.tagName!='SELECT'&&el.tagName!='TEXTAREA')return document.getBoxObjectFor(el).y}
var returnValue=el.offsetTop;while((el=el.offsetParent)!=null){if(el.tagName!='HTML'){returnValue+=(el.offsetTop-el.scrollTop);if(document.all)returnValue+=el.clientTop;}}
return returnValue;}}
