String.prototype.trim = function() {return this.replace(/^\s+|\s+$/g,"");};String.prototype.ltrim = function() {return this.replace(/^\s+/,"");};String.prototype.rtrim = function() {return this.replace(/\s+$/,"");};String.prototype.bool = function() {if (this == "")return false;else if ( (/^false$/i).test(this) )return false;else return true;};var JSPro_Browser = {init: function () {this.Name = this.searchString(this.dataBrowser) || "An unknown browser";this.Version = this.searchVersion(navigator.userAgent)|| this.searchVersion(navigator.appVersion)|| "an unknown version";this.OS = this.searchString(this.dataOS) || "an unknown OS";},searchString: function (data) {for (var i=0;i<data.length;i++){var dataString = data[i].string;var dataProp = data[i].prop;this.versionSearchString = data[i].versionSearch || data[i].identity;if (dataString) {if (dataString.indexOf(data[i].subString) != -1)return data[i].identity;}else if (dataProp)return data[i].identity;}},searchVersion: function (dataString) {var index = dataString.indexOf(this.versionSearchString);if (index == -1) return;return parseFloat(dataString.substring(index+this.versionSearchString.length+1));},dataBrowser: [{string: navigator.userAgent,subString: "Chrome",identity: "Chrome"},{ string: navigator.userAgent,subString: "OmniWeb",versionSearch: "OmniWeb/",identity: "OmniWeb"},{string: navigator.vendor,subString: "Apple",identity: "Safari",versionSearch: "Version"},{prop: window.opera,identity: "Opera"},{string: navigator.vendor,subString: "iCab",identity: "iCab"},{string: navigator.vendor,subString: "KDE",identity: "Konqueror"},{string: navigator.userAgent,subString: "Firefox",identity: "Firefox"},{string: navigator.vendor,subString: "Camino",identity: "Camino"},{string: navigator.userAgent,subString: "Netscape",identity: "Netscape"},{string: navigator.userAgent,subString: "MSIE",identity: "Explorer",versionSearch: "MSIE"},{string: navigator.userAgent,subString: "Gecko",identity: "Mozilla",versionSearch: "rv"},{ string: navigator.userAgent,subString: "Mozilla",identity: "Netscape",versionSearch: "Mozilla"}],dataOS : [{string: navigator.platform,subString: "Win",identity: "Windows"},{string: navigator.platform,subString: "Mac",identity: "Mac"},{string: navigator.platform,subString: "Linux",identity: "Linux"}]};var JSPro_Screen = {init:function(){},FindX:function(obj){var curleft = 0;if(obj.offsetParent) {while(1) {curleft += obj.offsetLeft;if(!obj.offsetParent)break;obj = obj.offsetParent;}} else if(obj.x) {curleft += obj.x;}obj.style.position = "static";return curleft;},FindY : function(obj){var curtop = 0;if(obj.offsetParent) {while(1) {curtop += obj.offsetTop;if(!obj.offsetParent)break;obj = obj.offsetParent;}} else if(obj.y) {curtop += obj.y;}return curtop;}};var JSPro_Events ={init: function(){},onLoadFunctions: [],OnLoadAdd: function(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { if (oldonload) { oldonload(); } func(); };}this.onLoadFunctions[this.onLoadFunctions.length] = func;return this.onLoadFunctions.length;},OnLoadRemove: function(functionID){window.onload = function(){};var onLoadFunctions = this.onLoadFunctions;this.onLoadFunctions = new Array();for(var i in onLoadFunctions){if ((i != "count")&&(i != (functionID-1)))this.OnLoadAdd(onLoadFunctions[i]);}}};var JSPro_FormValidation ={init: function(){},schemes: [],CreateLogicScheme: function(name) { this.schemes[name] = [];this.schemes[name]["Type"] = "Logic";},CreateUnionScheme: function(name, schemes) { this.schemes[name] = [];this.schemes[name]["Type"] = "Union";this.schemes[name]["Schemes"] = schemes;},AddRequiredField: function(scheme, controlName, msg){this.schemes[scheme][this.schemes[scheme].length] = [];this.schemes[scheme][this.schemes[scheme].length - 1]["Type"] = "RequiredField";this.schemes[scheme][this.schemes[scheme].length - 1]["ControlName"] = controlName;this.schemes[scheme][this.schemes[scheme].length - 1]["Message"] = msg;},AddFixedLengthField: function(scheme, controlName, msg){this.schemes[scheme][this.schemes[scheme].length] = [];this.schemes[scheme][this.schemes[scheme].length - 1]["Type"] = "FixedLengthField";this.schemes[scheme][this.schemes[scheme].length - 1]["ControlName"] = controlName;this.schemes[scheme][this.schemes[scheme].length - 1]["Message"] = msg;},AddEmailField: function(scheme, controlName, msg){this.schemes[scheme][this.schemes[scheme].length] = [];this.schemes[scheme][this.schemes[scheme].length - 1]["Type"] = "EmailField";this.schemes[scheme][this.schemes[scheme].length - 1]["ControlName"] = controlName;this.schemes[scheme][this.schemes[scheme].length - 1]["Message"] = msg;},AddTypedFields: function(scheme, controlNames, msg){this.schemes[scheme][this.schemes[scheme].length] = [];this.schemes[scheme][this.schemes[scheme].length - 1]["Type"] = "TypedFields";this.schemes[scheme][this.schemes[scheme].length - 1]["ControlNames"] = controlNames;this.schemes[scheme][this.schemes[scheme].length - 1]["Message"] = msg;},ValidateForm: function(formID, scheme){var formControl;var formIDAttrib = formID.split("_");if ((formIDAttrib.length> 2)&&(formIDAttrib[1] == "fx")){if (document.forms.length < formIDAttrib[2])return false;else formControl = document.forms[formIDAttrib[2] - 1];}else formControl = JSPro.getElementById(formID);var oldonsubmit = formControl.onsubmit; if (typeof formControl.onsubmit != 'function')formControl.onsubmit = function(){return JSPro.FormValidation.Validate(scheme);}; else { formControl.onsubmit = function() { if (JSPro.FormValidation.Validate(scheme)){if (oldonsubmit) return oldonsubmit();else return true;}else return false;};}},Validate: function(scheme){for(var i in this.schemes){if ((i != "count")&&(i == scheme)){switch(this.schemes[i]["Type"]){case "Logic":return this.ValidateLogicSheme(i);break;case "Union":var unionSchemes = this.schemes[i]["Schemes"].split(";");for(var p in unionSchemes){if (p != "count")if (!this.Validate(unionSchemes[p]))return false;}break;}}}return true;},ValidateLogicSheme: function(scheme){var message = "";var validation = true;for(var i in this.schemes){if ((i != "count")&&(i == scheme)){if (this.schemes[i]["Type"] != "Logic")break;this.ClearAssignedEvents();JSPro.Globals["_validations"] = [];JSPro.Globals["_validations"][scheme] = [];JSPro.Globals["_validations"][scheme]["controls"] = [];JSPro.Globals["_validations"][scheme]["minVal"] = [];JSPro.Globals["_validations"][scheme]["maxVal"] = [];JSPro.Globals["_validations"][scheme]["emptyOrFixed"] = [];JSPro.Globals["_validations"][scheme]["compareVal"] = [];JSPro.Globals["_validations"][scheme]["regEmail"] = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;for(var ii in this.schemes[i]){if (ii != "count")switch(this.schemes[i][ii]["Type"]){case "RequiredField":var control = document.getElementsByName(this.schemes[i][ii]["ControlName"])[0];JSPro.Globals["_validations"][scheme]["minVal"][control.name] = minValue;JSPro.Globals["_validations"][scheme]["maxVal"][control.name] = maxValue;if ((control.value.trim() == "")&&(!control.disabled)){var l = JSPro.Globals["_validations"][scheme]["controls"].length;JSPro.Globals["_validations"][scheme]["controls"][l] = control.name; control.style.border = "2px solid red";control.onblur = function(e){var target;if (!e) {e = window.event;target = e.srcElement;} else target = e.target;if (target.value.trim() == "")target.style.border = "2px solid red";else target.style.border = "2px solid blue";};message += this.schemes[i][ii]["Message"] + "\n";validation = false;}break;case "FixedLengthField":var options = this.schemes[i][ii]["ControlName"].split(";");var control = document.getElementsByName(options[0])[0];var minValue = 0;var maxValue = 0;var proceedCheck = true;if (options.length> 1)maxValue = options[1];if (options.length > 2)minValue = options[2];if (options.length > 2){var emptyOrFixed = options[3].bool();if ((emptyOrFixed)&&(control.value.trim() == ""))proceedCheck = false;}if (control.disabled)proceedCheck = false;JSPro.Globals["_validations"][scheme]["minVal"][control.name] = minValue;JSPro.Globals["_validations"][scheme]["maxVal"][control.name] = maxValue;JSPro.Globals["_validations"][scheme]["emptyOrFixed"][control.name] = emptyOrFixed;if ((maxValue > 0)&&(proceedCheck)&&((control.value.trim().length < minValue)|| (control.value.trim().length> maxValue))){var l = JSPro.Globals["_validations"][scheme]["controls"].length;JSPro.Globals["_validations"][scheme]["controls"][l] = control.name; control.style.border = "2px solid red";control.onblur = function(e){var target;if (!e) {e = window.event;target = e.srcElement;} else target = e.target;var minValue = JSPro.Globals["_validations"][scheme]["minVal"][target.name];var maxValue = JSPro.Globals["_validations"][scheme]["maxVal"][target.name];var emptyOrFixed = JSPro.Globals["_validations"][scheme]["emptyOrFixed"][control.name];var proceedCheck = true;if ((emptyOrFixed)&&(target.value.trim() == ""))proceedCheck = false;if ((maxValue > 0)&&(proceedCheck)&&((target.value.trim().length < minValue)|| (target.value.trim().length> maxValue)))target.style.border = "2px solid red";else target.style.border = "2px solid blue";};message += this.schemes[i][ii]["Message"] + "\n";validation = false;}break;case "TypedFields":var controlNames = this.schemes[i][ii]["ControlNames"].split(";");if (controlNames.length > 1){var compareValue = "";var checkFailed = false;for(p in controlNames){if (p == 0){compareValue = document.getElementsByName(controlNames[p])[0].value;}else if (p != "count"){var control = document.getElementsByName(controlNames[p])[0];var l = JSPro.Globals["_validations"][scheme]["controls"].length;JSPro.Globals["_validations"][scheme]["controls"][l] = control.name;if ((control.value != compareValue)&&(!control.disabled)){control.style.border = "2px solid red";control.onblur = function(e){var target;if (!e) {e = window.event;target = e.srcElement;} else target = e.target;if (target.value != JSPro.Globals["_validations"][scheme]["compareVal"][target.name])target.style.border = "2px solid red";else target.style.border = "2px solid blue";};JSPro.Globals["_validations"][scheme]["compareVal"][control.name] = compareValue;checkFailed = true;}}}if (checkFailed){message += this.schemes[i][ii]["Message"] + "\n";validation = false;}}break;case "EmailField":var control = document.getElementsByName(this.schemes[i][ii]["ControlName"])[0];if(JSPro.Globals["_validations"][scheme]["regEmail"].test(control.value) == false){var l = JSPro.Globals["_validations"][scheme]["controls"].length;JSPro.Globals["_validations"][scheme]["controls"][l] = control.name; control.style.border = "2px solid red";control.onblur = function(e){var target;if (!e) {e = window.event;target = e.srcElement;} else target = e.target;if (JSPro.Globals["_validations"][scheme]["regEmail"].test(target.value) == false)target.style.border = "2px solid red";else target.style.border = "2px solid blue";};message += this.schemes[i][ii]["Message"] + "\n";validation = false;}break;}}}}if (validation)return true;else{alert(message);return false;}},ClearAssignedEvents: function(){if ((typeof(JSPro.Globals["_validations"]) != "undefined")&&(JSPro.Globals["_validations"] != null)){for(var i in JSPro.Globals["_validations"]){if (i != "count"){for (var ii in JSPro.Globals["_validations"][i]["controls"]){if (ii != "count"){var control = document.getElementsByName(JSPro.Globals["_validations"][i]["controls"][ii])[0];if (typeof(control) != "undefined")control.onblur = function(){};}}}}}}};var JSPro ={init: function (){this.Screen = JSPro_Screen;this.Browser = JSPro_Browser;this.Events = JSPro_Events;this.FormValidation = JSPro_FormValidation;this.Screen.init();this.Browser.init();this.Events.init();this.FormValidation.init();},Globals: [],getElementById: function(objectID,oDoc){if( document.getElementById )return document.getElementById(objectID);if( document.all )return document.all[objectID];if( !oDoc )oDoc = document;if( document.layers ) {if( oDoc.layers[objectID] )return oDoc.layers[objectID];else {for( var x = 0, y; !y && x < oDoc.layers.length; x++ ) {y = getRefToDiv(objectID,oDoc.layers[x].document);}return y; } }return false;},getElementByTagName: function(tag){return document.getElementsByTagName(tag)[0];},getElementsByTagName: function(tag){return document.getElementsByTagName(tag);},getElementByName: function(name){return document.getElementsByName(name)[0];},getElementsByName: function(name){return document.getElementsByName(name);},LoadCSSFile: function(src, appendToElementID){var fileref = document.createElement("link");fileref.setAttribute("rel", "stylesheet");fileref.setAttribute("type", "text/css");fileref.setAttribute("href", src);var element;if (appendToElementID == null)element = this.getElementByTagName("head");else element = this.getElementById(appendToElementID);element.appendChild(fileref);},LoadJSFile: function(src, appendToElementID){var fileref = document.createElement('script');fileref.setAttribute("type","text/javascript");fileref.setAttribute("src", src);var element;if (appendToElementID == null)element = this.getElementByTagName("head");else element = this.getElementById(appendToElementID);element.appendChild(fileref);},GET: function(name){name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS = "[\\?&]"+name+"=([^&#]*)";var regex = new RegExp( regexS );var results = regex.exec( window.location.href );if( results == null )return "";else return unescape(results[1]);},GetMembersOf: function(object){var msg = "";for(var i in object)msg += i + "\n";return msg;}};JSPro.init();
