﻿        
        function getNow(){
            var szRet = "";
            var currentTime = new Date();
            var iMonth = currentTime.getMonth() + 1;
            var iDay = currentTime.getDate();
            var iYear = currentTime.getFullYear();
            szRet = iMonth.toString() + "/" + iDay.toString() + "/" + iYear.toString();
            return szRet;
        }
        
        function mxDayDiff(szDate1, szDate2) {//Must pass in only string dates, no time...
            var iRet = 0;
            // The number of milliseconds in one day
            var ONE_DAY = 1000 * 60 * 60 * 24;
            // Convert both dates to milliseconds
            var d1 = Date.parse(szDate1);
            var d2 = Date.parse(szDate2);
            // Calculate the difference in milliseconds
            var difference_ms = d2 - d1;
            // Convert back to days and return
            iRet = difference_ms / ONE_DAY;
            return iRet;
        }
        
        function showElement(szElement){
            document.getElementById(szElement).style.display = "inline";   
        }
        function hideElement(szElement){
            document.getElementById(szElement).style.display = "none";   
        }
        function getEleVal(szEle){
            try{var szRet = document.getElementById(szEle).value;
                return szRet;}
            catch(e){return "";}
        }
        function setEleVal(szEle,szVal){
            try{var szRet = document.getElementById(szEle).value = szVal;}
            catch(e){}
        }
        function setEleHTML(szEle,szVal){
            try{var szRet = document.getElementById(szEle).innerHTML = szVal;}
            catch(e){}
        }
        function appendOption(szOption, eElement){
            eOption = document.createElement("option");
            eOption.text = szOption;
            try{
              eElement.add(eOption);} // IE only
            catch(e){
              eElement.add(eOption,null);} // standards compliant
        }
        
        
        
        function setLocationWithTimeout(szLocation, iTimeout){
            window.setTimeout("setLocationWithTimeout2('" + szLocation +  "')", iTimeout);
        }
        
        function setLocationWithTimeout2(szLocation){
            window.location = szLocation;
        }
        
        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        // get X of an element
        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
        function getX(szElementID){
            var iReturnValue = 0;
            var oElement = document.getElementById(szElementID);
            while( oElement != null ) {
                iReturnValue += oElement.offsetLeft;
                oElement = oElement.offsetParent;
            }
            return iReturnValue;
        }
        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        // get Y of an element
        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
        function getY(szElementID){
            var iReturnValue = 0;
            var oElement = document.getElementById(szElementID);
            while( oElement != null ) {
                iReturnValue += oElement.offsetTop;
                oElement = oElement.offsetParent;
            }
            return iReturnValue;
        }
        
        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        // get a query string
        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
        function getQueryVar(variable){  
	        var retstr = "";
	        var query = window.location.search.substring(1);  
	        var vars = query.split("&");  
	        for (var i=0;i<vars.length;i++) 
		        {    
			        var pair = vars[i].split("=");    
			        if (pair[0] == variable) 
				        {
					        retstr = pair[1];    
					        break;
				        } 
		        }   
	        return retstr;
        }
        
        function getWindowSize() {
            var myWidth = 0, myHeight = 0;
            var iSize = new Array(0, 0);
            if
            ( 
                typeof( window.innerWidth ) == 'number' ) {
                //Non-IE
                myWidth = window.innerWidth;
                myHeight = window.innerHeight;
            } 
            else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
                //IE 6+ in 'standards compliant mode'
                myWidth = document.documentElement.clientWidth;
                myHeight = document.documentElement.clientHeight;
            } 
            else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                //IE 4 compatible
                myWidth = document.body.clientWidth;
                myHeight = document.body.clientHeight;
            }
            iSize[0] = myWidth;
            iSize[1] = myHeight;
            return iSize;
        }
        
        function toggleTxtColor(szElement, szColor){
            document.getElementById(szElement).style.backgroundColor = szColor;
        }
    
    
    		//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// trim 
		//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 
		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+$/,"");
		}
		//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		
		//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		//			EMAIL CHECK FUNCTION
		//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		function emailCheck(emailStr){
			var checkTLD=1;
			var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
			var emailPat=/^(.+)@(.+)$/;
			var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
			var validChars="\[^\\s" + specialChars + "\]";
			var quotedUser="(\"[^\"]*\")";
			var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
			var atom=validChars + '+';
			var word="(" + atom + "|" + quotedUser + ")";
			var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
			var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
			var matchArray=emailStr.match(emailPat);

			if (matchArray==null) 
					return false;

			var user=matchArray[1];
			var domain=matchArray[2];
			for (i=0; i<user.length; i++) {
				if (user.charCodeAt(i)>127) 
						return false;
				}
			for (i=0; i<domain.length; i++) {
				if (domain.charCodeAt(i)>127) 
						return false;
				}

			if (user.match(userPat)==null) 
				return false;
 
			var IPArray=domain.match(ipDomainPat);
			if (IPArray!=null) {
				for (var i=1;i<=4;i++) 
				{
					if (IPArray[i]>255) 
						return false;
				}
				return true;
			}
			
			var atomPat=new RegExp("^" + atom + "$");
			var domArr=domain.split(".");
			var len=domArr.length;
			for (i=0;i<len;i++)
				{
				if (domArr[i].search(atomPat)==-1) 
					return false;
				}

			if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) 
				return false;

			if (len<2) 
				return false;

			return true;
		}
				
		//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Email Validator
		//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		function mxvalidateemail(validationdiv, control_){	
		    var bRet = false;
		    try{
			
			var email = "";
		    email = document.getElementById(control_).value;
			email = email.trim();
			email = email.toLowerCase();
			document.getElementById(control_).value = email;
			
			var disp = "none";
						
			if (emailCheck(email))
				bRet = true;
			
			if (!bRet)
				disp = "inline";	
			
			document.getElementById(validationdiv).style.display = disp;
			//UpdateValidationStructure(control_,bret);
			
			}
			catch (er) {alert(er);}
			
			return bRet;
		}
		//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// validates that text is present
		//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 
		function mxvalidatetxt(validationdiv,control_){
			var bRet = mxvalidatetext(validationdiv,control_);
			return bRet;
		}
		
		function mxvalidatetext(validationdiv,control_){	
		    var bRet = false;
		    try{
			    var stext = "";
		        stext = document.getElementById(control_).value;
			    stext = stext.trim();
			    document.getElementById(control_).value = stext;
    			var disp = "none";
    		    if (stext.length == 0){	
			        bRet = false;
			        disp = "inline";
			    }	
			    else    
			        bRet = true;
			        
			    document.getElementById(validationdiv).style.display = disp;
			    //UpdateValidationStructure(control_,hastext);
			}
			catch (er) {}
			return bRet;
		}
		//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		
		function toInt(szNumber){
		    var iRet = 0;
		    try{
		        iRet= parseInt(szNumber);}
            catch(e){}
            return iRet;
		}
		
		function isWholeNumber(szNumber){
            //get the inputStr of the input string
	        str = szNumber.toString();
        	if (szNumber.length == 0)
        	    return false;
	        //now we need to loop through the length
	        //of the input value
	        for (var i = 0; i < str.length; i++){
	            //use charAt to get the current value
		        var curValue = str.charAt(i);
        		//check the value of the current value, if it's less
		        //than 0 (zero) and more than 9 we know the value
		        //isnt a whole number
		        if(curValue < "0" || curValue > "9")
		            return false;	
		    }
	        return true;
        }
