var data = {"h":"getAccount()","f":"aspnetForm","fA":"id","d":"","mL":[{"T":"zf","fcTag":null,"fcAd":null,"fcSAtN":null,"fcSAtV":null,"fcUw":null,"fcUa":null,"paID":"24842","paN":"pers","isM":false,"dV":"True","CV":null},{"T":"f","fcTag":"input","fcAd":"radio","fcSAtN":"name","fcSAtV":"ctl00$ctl00$cphMain$cphContent$ctl02$rblGender","fcUw":"UseAttributeName","fcUa":"value","paID":"75","paN":"Gender","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"checkbox","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_chkCoreNetworkServices","fcUw":"UseAttributeName","fcUa":"checked","paID":"25897","paN":"corens","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"checkbox","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_chkNetworkManagement","fcUw":"UseAttributeName","fcUa":"checked","paID":"25899","paN":"NETWMAN","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"text","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_txtCompany","fcUw":"UseAttributeName","fcUa":"value","paID":"77","paN":"Company","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"text","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_txtFirstname","fcUw":"UseAttributeName","fcUa":"value","paID":"73","paN":"FirstName","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"text","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_txtInfix","fcUw":"UseAttributeName","fcUa":"value","paID":"1881","paN":"Middlename","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"text","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_txtLastName","fcUw":"UseAttributeName","fcUa":"value","paID":"74","paN":"LastName","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"text","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_txtFunction","fcUw":"UseAttributeName","fcUa":"value","paID":"3627","paN":"FUNCTIE","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"text","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_txtEmail","fcUw":"UseAttributeName","fcUa":"value","paID":"94","paN":"EmailAddress1","isM":true,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"text","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_txtPhoneNumber","fcUw":"UseAttributeName","fcUa":"value","paID":"87","paN":"phone","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"checkbox","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_chkWorkshops","fcUw":"UseAttributeName","fcUa":"checked","paID":"2292","paN":"Events","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"checkbox","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_chkNetworking","fcUw":"UseAttributeName","fcUa":"checked","paID":"21893","paN":"Networking","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"checkbox","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_chkSecurity","fcUw":"UseAttributeName","fcUa":"checked","paID":"10187","paN":"security","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"checkbox","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_chkStorageVirtualizationApplicationDelivery","fcUw":"UseAttributeName","fcUa":"checked","paID":"25733","paN":"Storage","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"checkbox","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_chkUnifiedCommunications","fcUw":"UseAttributeName","fcUa":"checked","paID":"25901","paN":"UNIFIEDCOM","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"checkbox","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_chkUnifiedComputing","fcUw":"UseAttributeName","fcUa":"checked","paID":"25900","paN":"UCOMPUTING","isM":false,"dV":null,"CV":null},{"T":"f","fcTag":"input","fcAd":"checkbox","fcSAtN":"id","fcSAtV":"ctl00_ctl00_cphMain_cphContent_ctl02_chkIPManagement","fcUw":"UseAttributeName","fcUa":"checked","paID":"25818","paN":"IPManagement","isM":false,"dV":null,"CV":null},{"T":"zf","fcTag":null,"fcAd":null,"fcSAtN":null,"fcSAtV":null,"fcUw":null,"fcUa":null,"paID":"-1","paN":"EmailPermission","isM":false,"dV":true,"CV":null}],"lA":["109151"],"lR":[],"lWF":["277901"],"fEP":false,"pF":false}; var webFormCheckerURL = 'http://zcwi.custapps.net/zcwi/cda/webformchecker.aspx'; var cda = new PartCDA(); var addremovecompleted = false; var lookupcompleted = false; var elsBlur = new Array(); var timerAddRemove = null; var customerForm; function JolSubmitManager(targetForm) { var allSubmitEvents = []; var nativeAttach; customerForm = document.getElementById(data.f); if (!customerForm) return; // OnSubmit Handler customerForm.onSubmitHandler = customerForm.onsubmit; customerForm.onsubmit = fakeOnSubmit; // Submit Handler customerForm.SubmitHandler = customerForm.submit; customerForm.submit = fakeSubmit; //alert(customerForm.addEventListener); //alert('window.attachEvent: ' + window.attachEvent); //alert('window.addEventListener: ' + window.addEventListener); //alert('onSubmitResult: ' + customerForm.onSubmitResult); if (browser.msie) { customerForm.nativeAttach = customerForm.attachEvent; customerForm.attachEvent = function(eventName, eventFunction) { if (eventName == 'onsubmit') { //alert('pushed ie'); allSubmitEvents.push(eventFunction); } else customerForm.nativeAttach(eventName, eventFunction); } } else { customerForm.nativeAttach = customerForm.addEventListener; customerForm.addEventListener = function(eventName, eventFunction, useCapture) { if (eventName == 'submit') { //alert('pushed firefox'); allSubmitEvents.push(eventFunction); } else customerForm.nativeAttach(eventName, eventFunction, useCapture); } } function fakeOnSubmit(customerForm) { //alert('fake onsubmit'); return false; } function fakeSubmit() { //alert('fake submit'); checkProspect(); } var realSubmitEvent = function(event) { //alert('in real submit'); //var onSubmitResult = customerForm.onSubmitHandler(); var onSubmitResult = (customerForm.onSubmitHandler != null ? customerForm.onSubmitHandler() : null); if (onSubmitResult == null) onSubmitResult = true; // event handlers var realResult = innerSubmit(event); if (realResult == null) realResult = true; //alert('realResult ' + realResult); //alert('window.attachEvent: ' + window.attachEvent); //alert('onSubmitResult: ' + customerForm.onSubmitResult); if (!onSubmitResult) return; // for firefox if (browser.mozilla && onSubmitResult) { fakeSubmit(); //customerForm.submit(); } // ie else if (browser.msie && realResult && onSubmitResult) { //alert('fake submit ie'); fakeSubmit(); //customerForm.submit(); } // opera else if (onSubmitResult) { fakeSubmit(); } } var innerSubmit = function(event) { var lastResult = true; for (var i = 0; i < allSubmitEvents.length; i++) { lastResult = allSubmitEvents[i](event); } return lastResult; } // Depending on the browser, make nativeAttach if (browser.msie) customerForm.nativeAttach("onsubmit", realSubmitEvent); else if (browser.mozilla || browser.opera || browser.safari) { //alert('here1'); //alert('realSubmitEvent: ' + realSubmitEvent); //alert('nativeAttach: ' + nativeAttach); customerForm.nativeAttach("submit", realSubmitEvent, false); //alert('here2'); } } // web browser definition var userAgent = navigator.userAgent.toLowerCase(); var browser = { version: (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1], safari: /webkit/.test(userAgent), opera: /opera/.test(userAgent), msie: /msie/.test(userAgent) && !/opera/.test(userAgent), mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent) }; var currentFormSubmitManager = new JolSubmitManager(customerForm); onReady = (function(ie) { if ( document.addEventListener && !browser.opera) document.addEventListener( "DOMContentLoaded", ie, false ); if ( browser.msie && window == top ) (function(){ try { document.documentElement.doScroll("left"); } catch( error ) { setTimeout( arguments.callee, 0 ); return; } ie(); })(); if ( browser.opera ) document.addEventListener( "DOMContentLoaded", function () { for (var i = 0; i < document.styleSheets.length; i++) if (document.styleSheets[i].disabled) { setTimeout( arguments.callee, 0 ); return; } ie(); }, false); if ( browser.safari ) { var numStyles; (function(){ if ( document.readyState != "loaded" && document.readyState != "complete" ) { setTimeout( arguments.callee, 0 ); return; } if ( document.styleSheets.length != numStyles ) { setTimeout( arguments.callee, 0 ); return; } ie(); })(); } }); onReady(function() { setTimeout(start, 50); }); function start() { prefill(); } function waitForAddRemoveSent() { //alert('we are here'); if (addremovecompleted) { //clearInterval(timerAddRemove); //alert('Script done'); //customerForm.onsubmit = true; //customerForm.formSubmitHandler(); customerForm.SubmitHandler(); } } function prefill() { var pref = data.pF; if (!pref) return; // Make prefill form var p = param(); // Collect searchable fields var seachableFields = new Array(); var index = 0; for (var i = 0; i < data.mL.length; i++) if (data.mL[i].isM && data.mL[i].T == 'f') seachableFields[index++] = data.mL[i].paN; // Fields are collected, no now // determine is querystring has everything to // lookup. (Case 1) var case1 = true; for (var i = 0; i < seachableFields.length; i++) { var local = p[seachableFields[i].toLowerCase()] != null; case1 = case1 && local; } if (case1) { var sendData = new SendData(); sendData.a = 'lookup'; data.h = getAccount(); data.d = window.location.hostname.toString(); var dataToSend = new Match(); dataToSend.h = data.h; dataToSend.d = data.d; dataToSend.lA = 'null'; dataToSend.lR = 'null'; dataToSend.lWF = 'null'; // Do prefill for (var i = 0; i < data.mL.length; i++) { if (data.mL[i].T == 'f') { if (data.mL[i].isM && data.mL[i].T == 'f') { data.mL[i].CV = p[data.mL[i].paN.toLowerCase()][0]; } else data.mL[i].CV = ''; var matchData = new MD(); matchData.fcV = data.mL[i].CV; matchData.paN = data.mL[i].paN; matchData.s = data.mL[i].isM; dataToSend.M[i] = matchData; } } sendData.M = dataToSend; /* Data to send */ cda.getresponse = true; //alert(sendData); cda.input = objectToXml(sendData); cda.splitInput(); // Prepare var el = document.createElement("script"); el.src = prepareScriptURL(); document.body.appendChild(el); //var el; //(el = document.getElementsByTagName('script')[0].cloneNode(true)).src = prepareScriptURL(); //el.type = 'text/javascript'; //document.body.appendChild(el); //alert(prepareScriptURL().length); return; } // Case 2 if (lookupcompleted) return; // Collect controls collectSearchableFields(); // Attach events for (var i = 0; i < data.mL.length; i++) if (data.mL[i].isM && data.mL[i].T == 'f') listen('blur', document.getElementById(data.mL[i].fcSAtV), blurCaught); } function prepareScriptURL() { //alert("length: " + cda.data.length); if (cda.data.length == 1) { var dataToSend = "" + cda.data[0] + ""; return webFormCheckerURL + "?data=" + Encoder.encodeURI(dataToSend) + "&last=true&gr=" + cda.getresponse; } else if (cda.data.length > 1) { var dataToSend = "" + cda.data[0] + "" + cda.data.length + "true"; //alert("dataToSend: " + dataToSend.length); //alert("Encoded: " + Encoder.encodeURI(dataToSend).length); return webFormCheckerURL + "?data=" + Encoder.encodeURI(dataToSend) + "&last=false&gr=" + cda.getresponse; } } function complete(cdaobj) { //alert('history changed: ' + cdaobj.historyChangedCount); processLookupResponse(cdaobj.response); } /* Checks Prospect */ function checkProspect() { //alert('check prospect started'); data.h = getAccount(); data.d = window.location.hostname.toString(); var dataToSend = new Match(); dataToSend.h = data.h; dataToSend.d = data.d; dataToSend.lA = data.lA; dataToSend.lR = data.lR; dataToSend.lWF = data.lWF; for (var i = 0; i < data.mL.length; i++) { // Check if current match is of emailpermission attribute if (data.mL[i].T == 'zf') data.mL[i].CV = data.mL[i].dV; else data.mL[i].CV = getControlValue( data.mL[i].fcTag, data.mL[i].fcAd, data.mL[i].fcSAtN, data.mL[i].fcSAtV, data.mL[i].fcUw == "UseAttributeName" ? data.mL[i].fcUa : ''); if (data.mL[i].paID == -1 && data.mL[i].paN.toLowerCase() == "emailpermission" && data.fEP) if (typeof (data.mL[i].CV) == 'boolean') data.mL[i].CV = !data.mL[i].CV; var matchData = new MD(); matchData.fcV = data.mL[i].CV; matchData.paN = data.mL[i].paN; matchData.s = data.mL[i].isM; dataToSend.M[i] = matchData; } var sendData = new SendData(); sendData.a = 'addremove'; sendData.M = dataToSend; /* Data to send */ addremovecompleted = false; /* Data to send */ cda.getresponse = true; cda.input = objectToXml(sendData); cda.splitInput(); // Prepare var el = document.createElement("script"); el.src = prepareScriptURL(); //alert('befire sending'); // Set script event if (browser.msie) { el.onreadystatechange = function() { if ('loaded' == this.readyState) waitForAddRemoveSent(); } timerAddRemove = setInterval(waitForAddRemoveSent, 2000); } else if (browser.mozilla) { listen('load', el, waitForAddRemoveSent); timerAddRemove = setInterval(waitForAddRemoveSent, 2000); } else { //alert('timer set'); timerAddRemove = setInterval(waitForAddRemoveSent, 2000); } addremovecompleted = true; document.body.appendChild(el); return false; } function collectSearchableFields() { var index = 0; for (var i = 0; i < data.mL.length; i++) if (data.mL[i].isM && data.mL[i].fcSAtN && data.mL[i].fcTag != '') { elsBlur[index] = { control: document.getElementById(data.mL[i].fcSAtV), blur: false }; index++; } } function areAllSearchableBlur() { var allBlur = true; for (var i = 0; i < elsBlur.length; i++) allBlur = allBlur && elsBlur[i].blur; return allBlur; } function listen(evnt, elem, func) { if (elem == null) return; if (elem.addEventListener) // W3C DOM elem.addEventListener(evnt, func, false); else if (elem.attachEvent) { // IE DOM var r = elem.attachEvent("on" + evnt, func); return r; } } function blurCaught(el) { for (var i = 0; i < elsBlur.length; i++) { var ct = (browser.msie) ? event.srcElement : el.currentTarget; if (elsBlur[i].control == this || elsBlur[i].control == ct) { elsBlur[i].blur = true; if (areAllSearchableBlur() && (!lookupcompleted)) { // Do Request data.h = getAccount(); data.d = window.location.hostname.toString(); var dataToSend = new Match(); dataToSend.h = data.h; dataToSend.d = data.d; dataToSend.lA = null; dataToSend.lR = null; dataToSend.lWF = null; for (var i = 0; i < data.mL.length; i++) { if (data.mL[i].T == 'f') { if (data.mL[i].isM && data.mL[i].T == 'f') { data.mL[i].CV = getControlValue( data.mL[i].fcTag, data.mL[i].fcAd, data.mL[i].fcSAtN, data.mL[i].fcSAtV, data.mL[i].fcUw == "UseAttributeName" ? data.mL[i].fcUa : ''); } else data.mL[i].CV = ''; var matchData = new MD(); matchData.fcV = data.mL[i].CV; matchData.paN = data.mL[i].paN; matchData.s = data.mL[i].isM; dataToSend.M[i] = matchData; } } var sendData = new SendData(); sendData.a = 'lookup'; sendData.M = dataToSend; lookupcompleted = true; /* Data to send */ cda.getresponse = true; cda.input = objectToXml(sendData); //alert(cda.input); cda.splitInput(); // Prepare var el = document.createElement("script"); el.src = prepareScriptURL(); document.body.appendChild(el); } } } } function forcedLookup() { // Do Request data.h = getAccount(); data.d = window.location.hostname.toString(); var dataToSend = new Match(); dataToSend.h = data.h; dataToSend.d = data.d; dataToSend.lA = null; dataToSend.lR = null; dataToSend.lWF = null; for (var i = 0; i < data.mL.length; i++) { if (data.mL[i].T == 'f') { if (data.mL[i].isM && data.mL[i].T == 'f') { data.mL[i].CV = getControlValue( data.mL[i].fcTag, data.mL[i].fcAd, data.mL[i].fcSAtN, data.mL[i].fcSAtV, data.mL[i].fcUw == "UseAttributeName" ? data.mL[i].fcUa : ''); } else data.mL[i].CV = ''; var matchData = new MD(); matchData.fcV = data.mL[i].CV; matchData.paN = data.mL[i].paN; matchData.s = data.mL[i].isM; dataToSend.M[i] = matchData; } } var sendData = new SendData(); sendData.a = 'lookup'; sendData.M = dataToSend; /* Data to send */ cda.getresponse = true; cda.input = objectToXml(sendData); //alert(cda.input); cda.splitInput(); // Prepare var el = document.createElement("script"); el.src = prepareScriptURL(); document.body.appendChild(el); } function processLookupResponse(response) { var r; eval("r = " + response); if (response == "null") return; for (var i = 0; i < data.mL.length; i++) { if (data.mL[i].fcSAtN == 'id' || data.mL[i].fcSAtN == 'name') { if (data.mL[i].fcUw == 'UseAttributeName') { var rValue; try { rValue = r.Attributes[data.mL[i].paN.toLowerCase()]; if (rValue != null) setControlValue(data.mL[i].fcTag, data.mL[i].fcAd, data.mL[i].fcSAtN, data.mL[i].fcSAtV, data.mL[i].fcUa, rValue); } catch (e) { } } } } lookupcompleted = true; } function setControlValue(tagName, type, searchIdentifier, searchIdentifierValue, attrToSet, value) { var control; if (searchIdentifier.toLowerCase() == 'id') { control = document.getElementById(searchIdentifierValue); if (control.tagName.toLowerCase() == 'input') { switch (type.toLowerCase()) { case 'text': case 'password': attr(control, attrToSet, value); break; case 'checkbox': control.checked = (value.toLowerCase() == 'false' || value == '') ? '' : 'checked'; break; } } else if (control.tagName.toLowerCase() == 'select') { var valueSet = false; // Get through the value fields for (var i = 0; i < control.options.length; i++) { //alert("Option value: " + control.options[i].value + " , value: " + value); if (control.options[i].value == value) { control.value = value; valueSet = true; break; } } if (valueSet) return; // If failed through the value field, do the same with innerHTML for (var i = 0; i < control.options.length; i++) { //alert("InnerHTML: " + control.options[i].innerHTML + " , value: " + value); if (control.options[i].innerHTML == value) { control.options[i].selected = true; break; } } } } else if (searchIdentifier.toLowerCase() == 'name') { var rbGroup; eval("rbGroup = document.getElementById(data.f)." + searchIdentifierValue); for (var i = 0; i < rbGroup.length; i++) { if (rbGroup[i].value.toLowerCase() == value.toLowerCase()) { rbGroup[i].checked = true; break; } } } } function getControlValue(tagName, type, searchIdentifier, searchIdentifierValue, attributeToGet) { var control; if (searchIdentifier == "id") { control = document.getElementById(searchIdentifierValue); } else { // Special case "multiple radio" if (tagName == 'input' && type == 'radio') { control = getRadioListValue(searchIdentifierValue); } else // Not implemented yet return null; } if (tagName == '') return attr(control, attributeToGet) else return text(control, attributeToGet); } function getRadioListValue(nameValue) { var radioButtons = document.getElementsByTagName('input'); for (var i = 0; i < radioButtons.length; i++) { if (attr(radioButtons[i], 'type') == 'radio' && attr(radioButtons[i], 'name') == nameValue) { if (radioButtons[i].checked) { return radioButtons[i]; } } } return null; } /* A Generic Function for Retreiving the Text Contents of an Element */ function text(e, attributeToGet) { if (!e) return ''; switch (e.tagName.toLowerCase()) { case "input": return getInputValue(e, attributeToGet); break; case "select": return e.value; break; case "span": case "div": case "label": case "p": case "td": case "textarea": default: return attr(e, attributeToGet); } } /* Gets Input Value */ function getInputValue(e, attributeToGet) { switch (e.type.toLowerCase()) { case "text": case "button": case "checkbox": case "radio": case "password": if (attributeToGet == 'checked') return e.checked; return attr(e, attributeToGet); default: return null; } } /* Getting and Setting the Values of Element Attributes */ function attr(elem, name, value) { // Make sure that a valid name was provided if (!name || name.constructor != String) return ''; // Figure out if the name is one of the weird naming cases name = { 'for': 'htmlFor', 'class': 'className'}[name] || name; // If the user is setting a value, also if (typeof value != 'undefined') { // Set the quick way first elem[name] = value; // If we can, use setAttribute if (elem.setAttribute) elem.setAttribute(name, value); } // Return the value of the attribute return elem[name] || elem.getAttribute(name) || ''; } function getCheckedValue(radioObj) { if (!radioObj) return ""; var radioLength = radioObj.length; if (radioLength == undefined) if (radioObj.checked) return radioObj.value; else return ""; for (var i = 0; i < radioLength; i++) { if (radioObj[i].checked) { return radioObj[i].value; } } return ""; } function objectToXml(obj, param) { var sa = new Array(''), se = new Array(''); if (!param) param = obj._tagName || 'object'; for (var i in obj) { if (obj.hasOwnProperty(i) && i.charAt(0) != '_') { var v = obj[i]; switch (typeof v) { case 'undefined': case 'function': case 'unknown': break; case 'object': if (v != null) { if (v instanceof Array) se.push(arrayToXml(v, i)); else se.push(objectToXml(v, i)); } break; case 'string': v = stringToXml(v); default: sa.push(' ' + i + '="' + v + '"'); } } } var s = se.join(''); return '<' + param + sa.join('') + '>' + s + '' + ''; } function arrayToXml(obj, param) { var s = new Array(), i, l = obj.length, v; var t2 = (param.charAt(param.length - 1) == 's') ? param.substring(0, param.length - 1) : param; for (i = 0; i < l; i++) { v = obj[i]; switch (typeof v) { case 'undefined': case 'function': case 'unknown': break; case 'object': if (v != null) { if (v instanceof Array) s.push(arrayToXml(v, t2)); else s.push(objectToXml(v, t2)); } break; case 'string': v = stringToXml(v); default: s.push('<' + t2 + '>' + v + '' + ''); } } return '<' + param + '>' + s.join('') + '' + ''; } function stringToXml(obj) { return obj.replace('&', '&'). replace('<', '<').replace('>', '>'). replace('\'', ''').replace('"', '"'); } ///////////////////////////////////////////////////////////////////////////////// function SendData() { this.a = ''; this.M = ''; } function Match() { this.h = ''; this.d = ''; this.M = new Array(); this.lA = new Array(); this.lR = new Array(); this.lWF = new Array(); } function MD() { this.fcV = ''; this.paN = ''; this.s = false; } //////////////////////////////////////////////////////////////////////////////// function ptq(q) { /* parse the query */ /* semicolons are nonstandard but we accept them */ var x = q.replace(/;/g, '&').split('&'), i, name, t; /* q changes from string version of query to object */ for (q = {}, i = 0; i < x.length; i++) { t = x[i].split('=', 2); name = unescape(t[0]).toLowerCase(); if (!q[name]) q[name] = []; if (t.length > 1) { q[name][q[name].length] = unescape(t[1]); } /* next two lines are nonstandard */ else q[name][q[name].length] = true; } return q; } function param() { return ptq(location.search.substring(1).replace(/\+/g, ' ')); } function paramHash() { return ptq(location.hash.substring(1).replace(/\+/g, ' ')); } function qsPart() { this.name = ''; this.value = ''; } //////////////////////////////////////////////////////////////////////////////// function PartCDA() { var index = 0; var key = null; var timer = null; this.partLength = 1000; this.response = null; this.responseArray = new Array(); this.data = new Array(); this.oncomplete = null; this.input = ""; this.getresponse = true; } PartCDA.prototype.splitInput = function() { var endUp = Math.floor(this.input.length / this.partLength) == 0 ? 1 : Math.floor(this.input.length / this.partLength); for (var i = 0; i <= endUp; i++) { this.data[i] = Base64.encode(this.input.substr(this.partLength * i, this.partLength)); } } ///////////////////////////////////////////////////////////////////// var Base64 = { // private property _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", // public method for encoding encode: function(input) { var output = ""; var chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; input = Base64._utf8_encode(input); while (i < input.length) { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64; } else if (isNaN(chr3)) { enc4 = 64; } output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4); } return output; }, // public method for decoding decode: function(input) { var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (i < input.length) { enc1 = this._keyStr.indexOf(input.charAt(i++)); enc2 = this._keyStr.indexOf(input.charAt(i++)); enc3 = this._keyStr.indexOf(input.charAt(i++)); enc4 = this._keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) { output = output + String.fromCharCode(chr2); } if (enc4 != 64) { output = output + String.fromCharCode(chr3); } } output = Base64._utf8_decode(output); return output; }, // private method for UTF-8 encoding _utf8_encode: function(input) { input = input.replace(/\r\n/g, "\n"); var utftext = ""; for (var n = 0; n < input.length; n++) { var c = input.charCodeAt(n); if (c < 128) { utftext += String.fromCharCode(c); } else if ((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; }, // private method for UTF-8 decoding _utf8_decode: function(utftext) { var string = ""; var i = 0; var c = c1 = c2 = 0; while (i < utftext.length) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if ((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i + 1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i + 1); c3 = utftext.charCodeAt(i + 2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; } } var Encoder = { encodeURI: function(input) { return encodeURIComponent(Base64.encode(input)); //return Base64.encode(input); }, decodeURI: function(input) { return Base64.decode(input); } }