// JavaScript Document

// Get the HTTP Object

function getHTTPObject(){

	if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
	else if (window.XMLHttpRequest) return new XMLHttpRequest();
	else {
		alert("Your browser does not support AJAX.");
		return null;
	}
}

// Change the value of the outputText field

function setOutput(){

	if(httpObject.readyState == 4){
		document.getElementById('outputText').value = httpObject.responseText;
	}
}

// Implement business logic

function doWork(){

	httpObject = getHTTPObject();

	if (httpObject != null) {
		httpObject.open("GET", "upperCase.php?inputText=" + document.getElementById('inputText').value, true);
		httpObject.send(null);
		httpObject.onreadystatechange = setOutput;
	}

}



function compareDates(value) {
	var currentTime = new Date()
	var month = currentTime.getMonth() 
	var day = currentTime.getDate() 
	var year = currentTime.getFullYear()
	var now1 = month + "/" + day + "/" + year;
	if (now1 > value) {
		return false;
	}
	return true;
}




function validateRequired(value){
	try{
  		if (value == null || value == ""){
			return false;
		}
		else{
			return true;
		}
		
		
  	}
	catch(err){
  		txt = "There was an error on this page.\n\n";
  		txt += "Error description: " + err.description + "\n\n";
  		txt += "Click OK to continue.\n\n";
  		alert(txt);
		return false;
  	}
	
}

function validateEmail(value){
	try{
  		apos = value.indexOf("@");
		dotpos = value.lastIndexOf(".");
		if (apos < 1 || dotpos - apos < 2) {
			return false;
		}
		else {
			return true;
		}

  	}
	catch(err){
  		txt = "There was an error on this page.\n\n";
  		txt += "Error description: " + err.description + "\n\n";
  		txt += "Click OK to continue.\n\n";
  		alert(txt);
		return false;
  	}
		
}

function validatePhone(value){
	var re =/^[01]?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$/;
	
	try{
  		return (re.test(value));
	}
	catch(err){
  		txt = "There was an error on this page.\n\n";
  		txt += "Error description: " + err.description + "\n\n";
  		txt += "Click OK to continue.\n\n";
  		alert(txt);
		return false;
  	}

	
}

function validateZip(value){
	var re = /^(\d{5}-\d{4}|\d{5}|\d{9})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$/;
	
	try{
  		return (re.test(value));
	}
	catch(err){
  		txt = "There was an error on this page.\n\n";
  		txt += "Error description: " + err.description + "\n\n";
  		txt += "Click OK to continue.\n\n";
  		alert(txt);
		return false;
  	}

	
}

function validateDate(value){
	var re = /^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$/;
	
	try{
  		return (re.test(value));
		
		
  	}
	catch(err){
  		txt = "There was an error on this page.\n\n";
  		txt += "Error description: " + err.description + "\n\n";
  		txt += "Click OK to continue.\n\n";
  		alert(txt);
		return false;
  	}

	
}


function validateDateIsNotTodayOrBefore(value){
	
	try{
		var vDate = Date.parse(value);
		var today = new Date();
		if(vDate <= today){
			return false;
		}
		else{ return true;}
		
	}
	catch(err){
	}
	
}




function valdiateForm(){
	var strerror = "";
	 stripElements();
	 
	//httpObject = getHTTPObject();
	//alert('httpObject: ' + httpObject + "\r\n" + 'ReadyState: ' + httpObject.readyState);
	
	//alert(document.getElementById('ddServiceType').value);
	
	
	if (validateRequired(document.getElementById('txtName').value) == false){
		strerror = strerror + "Name is required"  + "\r\n" ;
	}
	else{
		var temp = document.getElementById('txtName').value;
		if (temp.indexOf(" ") < 0){
			strerror = strerror + "First and Last Name are required"  + "\r\n" ;
		}
		
	}
		
		
	if (validateRequired(document.getElementById('txtEmail').value) == false){
		strerror = strerror + "Email is required"  + "\r\n" ;
	}
	else{
		if (validateEmail(document.getElementById('txtEmail').value) == false){
		strerror = strerror + "Email is incorrect"  + "\r\n" ;
		}
	}
	
	if (validateRequired(document.getElementById('txtPhone').value) == false){
		strerror = strerror + "Phone is required"  + "\r\n" ;
	}
	else{
		if (validatePhone(document.getElementById('txtPhone').value) == false){
		strerror = strerror + "Phone is incorrect"  + "\r\n" ;
		}
	}
		
		
		
	if (document.getElementById('ddServiceType').value  == "0") {
		strerror = strerror + "Service Type is required"  + "\r\n" ;
	}
	else if (document.getElementById('ddServiceType').value  == "RM") {
		
		if (validateRequired(document.getElementById('txtMoveDate').value) == false){
			strerror = strerror + "Moving Date is required"  + "\r\n" ;
		}
		else{
			if (validateDate(document.getElementById('txtMoveDate').value) == false){
				strerror = strerror + "Moving Date is incorrect"  + "\r\n" ;
			}
			else{
				if (validateDateIsNotTodayOrBefore(document.getElementById('txtMoveDate').value) == false){
					strerror = strerror + "Moving Date must be past today's date"  + "\r\n" ;
				}	
			}
			
		}
		
		if (validateRequired(document.getElementById('txtPickupZIP').value) == false){
			strerror = strerror + "Pickup Zip is required"  + "\r\n" ;
		}
		else{
			if (validateZip(document.getElementById('txtPickupZIP').value) == false){
				strerror = strerror + "Pickup Zip is incorrect"  + "\r\n" ;
			}
		}
		
		if (validateRequired(document.getElementById('txtDeliveryZIP').value) == false){
			strerror = strerror + "Delivery Zip is required"  + "\r\n" ;
		}
		else{
			if (validateZip(document.getElementById('txtDeliveryZIP').value) == false){
				strerror = strerror + "Delivery Zip is incorrect"  + "\r\n" ;
			}
		}
		
		if (document.getElementById('ddMoveType').value  == "0") {
			strerror = strerror + "Move Type is required"  + "\r\n" ;
		}

	}
	
	else if (document.getElementById('ddServiceType').value  == "IM") {
		if (validateRequired(document.getElementById('txtMoveDate').value) == false){
			strerror = strerror + "Moving Date is required"  + "\r\n" ;
		}
		else{
			if (validateDate(document.getElementById('txtMoveDate').value) == false){
				strerror = strerror + "Moving Date is incorrect"  + "\r\n" ;
			}
			else{
				if (validateDateIsNotTodayOrBefore(document.getElementById('txtMoveDate').value) == false){
					strerror = strerror + "Moving Date must be past today's date"  + "\r\n" ;
				}	
			}
			
		}
		
	
		if (validateRequired(document.getElementById('txtOriginCountry').value) == false){
			strerror = strerror + "Origin Country is required"  + "\r\n" ;
		}
		
		
		if (validateRequired(document.getElementById('txtDestinationCountry').value) == false){
			strerror = strerror + "Destination Country is required"  + "\r\n" ;
		}
		
		
		if (document.getElementById('ddMoveType').value  == "0") {
			strerror = strerror + "Move Type is required"  + "\r\n" ;
		}

	}
	else if (document.getElementById('ddServiceType').value  == "CM") {
		
		
		if (validateRequired(document.getElementById('txtComents').value) == false){
			strerror = strerror + "Comments is required"  + "\r\n" ;
		}
		
		
		if (validateRequired(document.getElementById('txtCompany').value) == false){
			strerror = strerror + "Company Name is required"  + "\r\n" ;
		}
	
	}
	else if (document.getElementById('ddServiceType').value  == "CR") {
		
		if (validateRequired(document.getElementById('txtComents').value) == false){
			strerror = strerror + "Comments is required"  + "\r\n" ;
		}
		
		
		if (validateRequired(document.getElementById('txtCompany').value) == false){
			strerror = strerror + "Company Name is required"  + "\r\n" ;
		}
	
	}
	else if (document.getElementById('ddServiceType').value  == "LO") {
		
		
		if (validateRequired(document.getElementById('txtComents').value) == false){
			strerror = strerror + "Comments is required"  + "\r\n" ;
		}
		
		if (validateRequired(document.getElementById('txtCompany').value) == false){
			strerror = strerror + "Company Name is required"  + "\r\n" ;
		}
		
		if (document.getElementById('ddTypeOfSolution').value  == "0") {
			strerror = strerror + "Type Of Solution is required"  + "\r\n" ;
		}
		
	
	}
	
	if (strerror != ""){
		strerror = "Errors have been found. Please correct:" + "\r\n" + strerror;
		alert(strerror);
		return false;
	} 
	else {
		return true;
	}
}

function toggleDiv(divid){
    if(document.getElementById(divid).style.display == 'none'){
      document.getElementById(divid).style.display = 'block';
    }else{
      document.getElementById(divid).style.display = 'none';
    }
}

function clearForm(){
	try{
  		document.getElementById('txtPickupZIP').value = "";
		document.getElementById('txtMoveDate').value = "MM/DD/YYYY";
		document.getElementById('txtDeliveryZIP').value = "";
		document.getElementById('txtOriginCountry').value = "";
		document.getElementById('txtDestinationCountry').value = "";
		document.getElementById('ddTypeOfSolution').value = "0";
		document.getElementById('ddMoveType').value = "0";
		document.getElementById('txtCompany').value = "";
		document.getElementById('txtComents').value = "";
		
		
  	}
	catch(err){
  		txt = "There was an error on this page.\n\n";
  		txt += "Error description: " + err.description + "\n\n";
  		txt += "Click OK to continue.\n\n";
  		alert(txt);
		return false;
  	}


return true;
}



function onChange(dropdown)
{
	clearForm();
	var myindex  = dropdown.selectedIndex
    var SelValue = dropdown.options[myindex].value
	
 	if (SelValue == "RM") {
		
		try{
  		
			//RM
			document.getElementById('movedate').style.display = '';
			document.getElementById('movetype').style.display = '';
			document.getElementById('zipcode').style.display = '';
		
			//IM
			document.getElementById('international').style.display = 'none';
		
			//LO
			document.getElementById('companyname').style.display = 'none';
			document.getElementById('comments').style.display = 'none';
			document.getElementById('solution').style.display = 'none';
		
		}
		catch(err){
			txt = "There was an error on this page.\n\n";
			txt += "Error description: " + err.description + "\n\n";
			txt += "Click OK to continue.\n\n";
			alert(txt);
		}
	}
	else if (SelValue == "IM") {
		
		try{
  		
			//RM
			document.getElementById('movedate').style.display = '';
			document.getElementById('movetype').style.display = '';
			document.getElementById('zipcode').style.display = 'none';
		
			//IM
			document.getElementById('international').style.display = '';
		
			//LO
			document.getElementById('companyname').style.display = 'none';
			document.getElementById('comments').style.display = 'none';
			document.getElementById('solution').style.display = 'none';
		
		}
		catch(err){
			txt = "There was an error on this page.\n\n";
			txt += "Error description: " + err.description + "\n\n";
			txt += "Click OK to continue.\n\n";
			alert(txt);
		}
	}
	
	else if (SelValue == "CM") {
		
		try{
  		
			//RM
			document.getElementById('movedate').style.display = 'none';
			document.getElementById('movetype').style.display = 'none';
			document.getElementById('zipcode').style.display = 'none';
		
			//IM
			document.getElementById('international').style.display = 'none';
		
			//LO
			document.getElementById('companyname').style.display = 'block';
			document.getElementById('comments').style.display = '';
			document.getElementById('solution').style.display = 'none';
		
		}
		catch(err){
			txt = "There was an error on this page.\n\n";
			txt += "Error description: " + err.description + "\n\n";
			txt += "Click OK to continue.\n\n";
			alert(txt);
		}
	}
	else if (SelValue == "CR") {
		
		try{
  		
			//RM
			document.getElementById('movedate').style.display = 'none';
			document.getElementById('movetype').style.display = 'none';
			document.getElementById('zipcode').style.display = 'none';
		
			//IM
			document.getElementById('international').style.display = 'none';
		
			//LO
			document.getElementById('companyname').style.display = 'block';
			document.getElementById('comments').style.display = '';
			document.getElementById('solution').style.display = 'none';
		
		}
		catch(err){
			txt = "There was an error on this page.\n\n";
			txt += "Error description: " + err.description + "\n\n";
			txt += "Click OK to continue.\n\n";
			alert(txt);
		}
	}
	else if (SelValue == "LO") {
		
		try{
  		
			//RM
			document.getElementById('movedate').style.display = 'none';
			document.getElementById('movetype').style.display = 'none';
			document.getElementById('zipcode').style.display = 'none';
		
			//IM
			document.getElementById('international').style.display = 'none';
		
			//LO
			document.getElementById('companyname').style.display = 'block';
			document.getElementById('comments').style.display = '';
			document.getElementById('solution').style.display = '';
		
		}
		catch(err){
			txt = "There was an error on this page.\n\n";
			txt += "Error description: " + err.description + "\n\n";
			txt += "Click OK to continue.\n\n";
			alert(txt);
		}
	}
	
    return true;
}

function stripElements(){
	try{
  		document.getElementById('txtOriginCountry').value =  stripText(document.getElementById('txtOriginCountry').value);
		document.getElementById('txtDestinationCountry').value =  stripText(document.getElementById('txtDestinationCountry').value);
		document.getElementById('txtCompany').value =  stripText(document.getElementById('txtCompany').value);
		document.getElementById('txtComents').value =  stripText(document.getElementById('txtComents').value);
		document.getElementById('txtOriginCountry').value = stripText(document.getElementById('txtOriginCountry').value);
	
  	}
	catch(err){
  		txt = "There was an error on this page.\n\n";
  		txt += "Error description: " + err.description + "\n\n";
  		txt += "Click OK to continue.\n\n";
  		alert(txt);
		return false;
  	}

}

function stripText(value){
	try{
		value = value.replace(/(<([^>]+)>)/ig, "");
  		value = value.replace(/\'/ig, "&#039;");
		value = value.replace(/\[/ig, "&#091;");
		value = value.replace(/\]/ig, "&#093;");
		value = value.replace(/\%/ig, "&#037;");
		value = value.replace(/\-/ig, "&#095;");
		
		return value;
		
  	}
	catch(err){
  		txt = "There was an error on this page.\n\n";
  		txt += "Error description: " + err.description + "\n\n";
  		txt += "Click OK to continue.\n\n";
  		alert(txt);
		return false;
  	}


}
