
String.prototype.trim = function()
 {
	return this.replace(/^\s+|\s+$/g,"");
 }
 
String.prototype.replaceAll = function(find,repl)
 {
    var temp = this;
    var index = temp.indexOf(find);
	
	while(index != -1)
	 {
		temp = temp.replace(find,repl);
		index = temp.indexOf(find);
	 }
	
    return temp;
 }


function verify()
 {
	if (verifyPhone("contacttelephone") == false)
	 {
		alert("Please enter a valid company telephone number.");
		return false;
	 }
	 
	if (verifyPhone("clienttelephone") == false)
	 {
		alert("Please enter a valid client telephone number.");
		return false;
	 }
	
	if (verifyEmail("contactemail") == false)
	 {
		alert("Please enter a valid company email address.");
		return false;
	 }
	 
	if (verifyEmail("clientemail") == false)
	 {
		alert("please enter a valid client email address.");
		return false;
	 }
	
	var r1 = window.document.getElementById("moving");
	var r2 = window.document.getElementById("relocation");
	
	if ((r1.checked == false) && (r2.checked == false))
	 {
		alert("Please indicate if you are moving or relocating.");
		return false;
	 }
	
	if (verifyDate("movedate") == false)
	 {
		alert("Please enter a valid move date (dd/mm/yyyy).");
		return false;
	 }
	 
	if (verifyDate("deliverydate") == false)
	 {
		alert("Please enter a valid delivery date (dd/mm/yyyy).");
		return false;
	 }
	
	if (verifyOption("originaddress","") == false)
	 {
		alert("Please select an origin address.");
		return false;
	 }
	 
	if (verifyOption("deliveryaddress","") == false)
	 {
		alert("Please select a destination addresss.");
		return false;
	 }
	
	return true;
 }

function verifyPhone(id)
 {
	var o = window.document.getElementById(id);
	var dec = "0123456789";
	
	if (o !== null)
	 {
		var v = o.value;
		v = v.replaceAll(" ","");
		v = v.replaceAll("(","");
		v = v.replaceAll(")","");
		v = v.replaceAll("+","");
		v = v.replaceAll("-","");
		var i = 0;
		
		if (v.length == 0)
		 {
			return false;
		 }
		
		for (i = 0; i < v.length; i = i + 1)
		 {
			if (dec.indexOf(v.charAt(i)) == -1)
			 {
				return false;
			 }
		 }
	 }
	 
	return true;
 }

function verifyEmail(id)
 {
	var o = window.document.getElementById(id);
	
	if (o !== null)
	 {
		var v = o.value.trim();
		var i = 0;
		
		if ((v.length == 0) || (v.indexOf("@") == -1))
		 {
			return false;
		 }
		
		var p = v.split("@");
		
		if (p.length != 2)
		 {
			return false;
		 }
		
		if (!((p[0].length > 1) && (p[1].length > 4)))
		 {
			return false;
		 }
		
		if (p[1].indexOf(".") == -1)
		 {
			return false;
		 }
		
		p = p[1].split(".");
		
		for (i = 0; i < p.length; i = i + 1)
		 {
			if (p[i].length < 2)
			 {
				return false;
			 }
		 }
	 }
	 
	return true;
 }

/* dd/mm/yyyy */
function verifyDate(id)
 {
	var o = window.document.getElementById(id);
	var dec = "0123456789";
	var days = [0,31,28,31,30,31,30,31,31,30,31,30,31];
	var maxfuture = 10;
	
	if (o !== null)
	 {
		var v = o.value.trim();
		
		if (v.length == 0)
		 {
			return false;
		 }
		
		var p = v.split("/");
		
		if (p.length != 3)
		 {
			return false;
		 }
		else
		 {
			if (p[0].charAt(0) == '0') { p[0] = p[0].substring(1); }
			if (p[1].charAt(0) == '0') { p[1] = p[1].substring(1); }
			
			var d = parseInt(p[0]);
			var m = parseInt(p[1]);
			var y = parseInt(p[2]);
			
			if (y != (y - 0)) /* NaN check */
			 {
				 return false;
			 }
			
			/* Leap year */
			if ((y % 4) == 0)
			 {
				days[2] = 29;
			 }
			
			var now = new Date();
			
			if ((d < 1) || (d > days[m]))
			 {
				return false;
			 }
			
			if ((m < 1) || (m > 12))
			 {
				return false;
			 }
		 }
	 }
	
	return true;
 }
 
/* Accept only if the default item is not selected */
function verifyOption(id,def)
 {
	var o = window.document.getElementById(id);
	
	if (o !== null)
	 {
		if (((o.options[o.selectedIndex].text) && (o.options[o.selectedIndex].text == def)) || ((!o.options[o.selectedIndex].text) && (def == "")))
		 {
			return false;
		 }
	 }
	 
	return true;
 }
