function getOuterHTML(element) { var myOuter = ''; if( undefined == element.outerHTML ) { myOuter += '<' + element.tagName; for(var i = 0; i < element.attributes.length; i++) { myOuter += ' ' + element.attributes[i].name + '=\'' + element.attributes[i].value + '\''; } myOuter += '>' myOuter += element.innerHTML; myOuter += ''; } else { myOuter = element.outerHTML; } return myOuter; } function IsValidTab(tabNum) { var isValid = true; // Are any required form elements empty? var tabData = GetTabElements(tabNum); for(var i=0;i < tabData.length; i++) { // is every field complete? var input = tabData[i].GetValue(tabNum); if(tabData[i].required && !tabData[i].IsEntryComplete(input)) { isValid = false; break; } // is every complete field valid? if(!tabData[i].IsValid(input)) { isValid = false; break; } // Are any fields too large? if(tabData[i].IsValid(input) && tabData[i].IsToLarge(input)) { isValid = false; break; } } return isValid; } function GetTabErrors(tabNum) { var validationErrors=''; // Are any required form elements empty? var tabData = GetTabElements(tabNum); for(var i=0;i < tabData.length; i++) { var input = tabData[i].GetValue(tabNum); if(tabData[i].required && !tabData[i].IsEntryComplete(input)) validationErrors+= "'" + tabData[i].name + "' on the " + tabData[i].sectionName + " tab is required!\n"; // is every complete field valid? if(!tabData[i].IsValid(input)) validationErrors += "'" + tabData[i].name + "' on the " + tabData[i].sectionName + " tab must have the form: '" + tabData[i].formatDisplay + "'\n"; // Is every complete field small enough? -- hack for small money (max 214,748.36) if(tabData[i].IsValid(input) && tabData[i].IsToLarge(input)) validationErrors += "'" + tabData[i].name + "' on the " + tabData[i].sectionName + " tab is too large.\n";//(" + tabData[i].ToString(input) + "). It has a maximum value of: " + tabData[i].maxSize + "\n"; } return validationErrors; } function GetTabElements(tabNum) { // Get data for the current tab var tabData = new Array(); var j, k for(j=0; j < top.formData.length; j++) { for(k=0; k < top.formData[j].length; k++) { if( top.formData[j][k].section == tabNum ) tabData.push(top.formData[j][k]); } } return tabData; } function CreateNewLayerFieldData(tabNum, lCnt) { var tabData = GetTabElements(tabNum); for( var i = 0; i < tabData.length; i++) { if(!tabData[i].id.match(/\|\d*$/)) { var newItem = top.GetFieldDataElement(tabData[i].InputType); newItem['id'] = tabData[i].id + '|' + lCnt; newItem['required'] = tabData[i].required; newItem['dataType'] = tabData[i].dataType; newItem['dataLength'] = tabData[i].dataLength; newItem['InputType'] = tabData[i].InputType; newItem['name'] = tabData[i].name + ' number ' + (lCnt + 1); newItem['canAddMore'] = tabData[i].canAddMore; newItem['section'] = tabData[i].section; newItem['dataTest']= tabData[i].dataTest; newItem['formatDisplay'] = tabData[i].formatDisplay; eval('top.section_' + tabNum + '.push(newItem)'); } } } function GetFormElement(tabNum, name) { var retval = undefined; var isMulti = false; for(var i = 0; i < top.multiLayers.length; i++ ) { if( top.multiLayers[i] == tabNum ) { isMulti = true; break; } } if(isMulti) { retval = GetFrameContent('SFrame' + tabNum).getElementById(name); } else { retval = top.document.getElementById(name); } if( undefined != retval && "radio" == retval.type ){ if(isMulti) { retval = GetFrameContent('SFrame' + tabNum).getElementsByName(name); } else { retval = top.document.getElementsByName(name); } } return retval; } function GetFrameContent(frame) { var retval = undefined; var frame = top.document.getElementById(frame); if(frame.contentDocument) { retval = frame.contentDocument; } else { retval = frame.contentWindow.document; } return retval; } function GetStyle(element) { var retval = undefined; if( undefined != element.getAttribute("Style").cssText) { retval = element.getAttribute("Style").cssText; } else { retval = element.getAttribute("Style"); } return retval; } function SetStyle(element, myStyle) { if(undefined != element.style.cssText) { element.style.cssText = myStyle; } else { element.setAttribute("style",myStyle); } } function processForm(act,submit) { // validate all fields if(AreAllTabsValid() // validate move in stuff && ValidateOthers()){ // Parse and save all data from frames. MoveFrameDataToTop(); // do not required an email address to submit an application if ( 'Y' != submit && !chkLoginData() ) { viewHideLayers('email','save'); return; } raf.action="VWRentalApp_ProcessForm.aspx?action=" + act; raf.submit(); } } function saveOnly(act) { // if no data is entered on the first tab, then do not save if( !IsValidTab(1) ) { var tabData = GetTabElements(1); alert("The required fields on the \"" + tabData[0].sectionName + "\" tab must be completed before you can submit your data."); } else { if(act=="saveonly") { if(chkLoginData()) { // Parse and save all data from frames. MoveFrameDataToTop(); raf.action="VWRentalApp_ProcessForm.aspx?action=saveonly"; raf.submit(); } } else { if(''!='') { //existing app so just save // Parse and save all data from frames. MoveFrameDataToTop(); raf.action="VWRentalApp_ProcessForm.aspx?action=saveonly"; raf.submit(); } else {//new rental app //Now we need user email and password before submitting viewHideLayers('email','saveonly'); } } } } function AreAllTabsValid() { var retval = true; // do validations for(var i = 0; i < top.sectionNumbers.length;i++) { if( !IsValidTab(top.sectionNumbers[i]) ) { retval = false; break; } } // Create and display validation messages if(!retval ) { alert(GetAllTabErrors()); } return retval; } function GetAllTabErrors() { var retval = ''; for(var i = 0; i < top.sectionNumbers.length;i++) { retval += GetTabErrors(top.sectionNumbers[i]); } return retval; } function MoveFrameDataToTop(){ for(var i = 0; i < top.multiLayers.length;i++) { var topFormElement = ''; var frameElements = GetTabElements(top.multiLayers[i]); var currentObj = 0; var nextObj = -1; var dataList = new Array(); var tmpObj = new Object(); for(var j = 0; j < frameElements.length; j++ ) { var fieldData = frameElements[j]; var matches = fieldData.id.match(/\|(\d*$)/); var currentObj = null != matches ? matches[1] : "0"; if( currentObj != nextObj ) { if( currentObj != 0 ) { dataList.push(tmpObj); tmpObj = new Object(); } nextObj = currentObj; } var value = fieldData.GetValue(top.multiLayers[i]); value = fieldData.ToString(value); tmpObj[fieldData.name] = value; } dataList.push(tmpObj); GetFormElement(0, 'updsql' + top.multiLayers[i]).value = Stringify(dataList); } } function Stringify( list ) { var retval = undefined; if(typeof(JSON) != "undefined"){ retval = JSON.stringify(list); } else { retval = YAHOO.lang.JSON.stringify(list); } return retval; } function ValidateOthers() { var retval = true; if(!raf.elements['15FF0146'].checked) { alert('Before you continue,\nyou must agree to the terms and conditions.'); goPageLayer('fin'); raf.elements['15FF0146'].focus(); retval = false; } // validate that raf.moveinyr.value, raf.moveinmo & raf.moveinday are not in the past if(''=='') { } return retval; } function tabSwitchNotify(tabTo) { var session = 'ozgptiy13bgwr3blor2sosmv'; try { var xmlhttp = false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { try { xmlhttp = new XMLHttpRequest(); } catch (e) { xmlhttp=false; } } if (!xmlhttp && window.createRequest) { try { xmlhttp = window.createRequest(); } catch (e) { xmlhttp=false; } } xmlhttp.open("GET", "tabTracker.ashx?tabTo=" + tabTo + "&ServerSessionID=" + session /*"tabTracker.aspx"*/,true); xmlhttp.send(null); } catch (err) { // Keep on truckin' } } function updateDOMinnerHTML(doc) { try { var l_i=doc.getElementsByTagName('input'); var l_s=doc.getElementsByTagName('select'); var l_t=doc.getElementsByTagName('textarea'); var l_field_sets=Array(l_i,l_s,l_t); var l_set, l_input, l_count=0, l_sel; for(var x=0;x