			var progressWindow;
			/* set up xmlhttp object */
			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') {
			    xmlhttp = new XMLHttpRequest();
			    xmlhttp.overrideMimeType('text/xml');
			}
			
	//Calendar
            var cal1 = new CalendarPopup("testdiv1");
            //cal1.setCssPrefix("TEST");


			function CallService(zipCode) {


			    xmlhttp.abort();
			    var URL = "GetCityStateProxy.aspx?zipCode=" + zipCode;
			    xmlhttp.open('GET', URL, true);
			    xmlhttp.send(null);

			    //document.write(response.City + "<br />");
			    //document.write(response.State);

			    //return response;

			    // Create result handler
			    xmlhttp.onreadystatechange = function X() {

			        if (xmlhttp.readyState == 4) {
			            //result.innerText = xmlhttp.responseText;
			            var response = eval('(' + xmlhttp.responseText + ')').d;
			            //alert(xmlhttp.responseText);
			            //alert(response.City);
			            //alert(response.State);
			            var cityTexBox = document.getElementById("city");
			            cityTexBox.value = response.City;
			            var stateTextBox = document.getElementById("state");
			            stateTextBox.value = response.State;
			            var countryTextBox = document.getElementById("country");
			            countryTextBox.value = response.Country;
			        }
			        
			    }



			}    
			
			function StartUpload(formObj)
			{
			    if (validate("contactFirstName", "First Name")
			        && validate("contactLastName", "Last Name")
			        && validate("emailAddress", "Email Address")
			        && validate("phoneNumber", "Phone Number")
			        && validate("companyName", "Company Name")
			        && validate("zip", "Zip")
			        && validateInt("quoteQuantity1")
			        && validateDate("quoteDate1")
			        && validateInt("quoteQuantity2")
			        && validateDate("quoteDate2")
			        && validateInt("quoteQuantity3")
			        && validateDate("quoteDate3")
			        ) 
			    {

			        if (typeof (formObj) == "string")
			            formObj = document.getElementById(formObj);
			        //Show Cancel button
			        var CancelButton = document.getElementById("CancelButton");
			        if (CancelButton && PowUploadCanCancel())
			            CancelButton.style.visibility = "visible";

			        //Generate new ID, show progress bar, add ID to FORM action parameter. 	
			        var uniqueID = Math.floor(Math.random() * 10000000) + (new Date()).getTime() % 1000000000;
			        progressWindow = ShowProgressInNewWindow(uniqueID, 'Progress.aspx', 600, 200);

			        thePos = formObj.action.indexOf("UploadID");
			        //Cut earlier added UploadID.
			        if (thePos >= 1)
			            formObj.action = formObj.action.substring(0, thePos - 1);
			        if (formObj.action.indexOf("?") == -1)
			            formObj.action += '?UploadID=' + uniqueID
			        else
			            formObj.action += '&UploadID=' + uniqueID;
			        formObj.submit();
			        return true;
			    }
			    else 
			    {
			        return false;
			    }
	        }
			
			function validate(inputField, message) 
			{
                var control = document.getElementById(inputField);
                if (control.value == '') {
                    alert(message + ' is a required field. Please try again.');
                    control.focus();
                    return false;
                }
                else 
                {
                    if (inputField == "emailAddress") 
                    {
                        if(validateEmail(control))
                        {
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                    return true;
                }

            }

            function validateEmail(emailaddressfield) {
                //Validating the email field
                var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
                if (!emailaddressfield.value.match(re)) {
                    alert("Invalid email address.");
                    emailaddressfield.focus();
                    emailaddressfield.select();
                    return (false);
                }
                return (true);
            }

            function isInteger(s) {
                var i;

                if (isEmpty(s))
                    if (isInteger.arguments.length == 1) return 0;
                else return (isInteger.arguments[1] == true);

                for (i = 0; i < s.length; i++) {
                    var c = s.charAt(i);

                    if (!isDigit(c)) return false;
                }

                return true;
            }

            function isEmpty(s) {
                return ((s == null) || (s.length == 0))
            }

            function isDigit(c) {
                return ((c >= "0") && (c <= "9"))
            }

            function validateInt(fieldId) {
                var o = document.getElementById(fieldId);
                var result = false;
                if (o.value != "") {
                    switch (isInteger(o.value)) {
                        case true:
                            if (o.value < 1) {
                                alert("Qty must be at least 1.");
                                o.focus();
                                result = false;
                                break;
                            }
                            //alert(o.value + " is an integer")
                                result = true;
                                break;

                        case false:
                            alert("Qty " + o.value + " Must be a whole number.");
                            o.focus();
                            result = false;
                    }
                }
                else 
                {
                    result = true;
                }
                return result;
            }

            function validateDate(fieldId) 
            {
                var fld = document.getElementById(fieldId);
                var result = false;
                
                if (fld.value == '') 
                {
                    result = true;
                }
                else 
                {
                    var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
                    var errorMessage = 'Please enter valid date in the following format mm/dd/yyyy.';
                    if ((fld.value.match(RegExPattern)) && (fld.value != '')) 
                    {
                        //alert('Date is OK');
                        result = true;
                    }
                    else 
                    {
                        alert(errorMessage);
                        fld.focus();
                        result = false;
                    }
                }
                return result;
            }

   
