function callRouter(next,form,errormessage)
	{ 
		var req = null;
			
		if(errormessage == '')
		{
			errormessage = 'There are no surveys available at this time. Please check back again soon.';
		} 
		if (window.XMLHttpRequest)
		{
 			req = new XMLHttpRequest();
			if (req.overrideMimeType) 
			{
				req.overrideMimeType('text/xml');
			}
		} 
		else if (window.ActiveXObject) 
		{
			try {
				req = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e)
			{
				try {
					req = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
	        	}



		req.onreadystatechange = function()
		{ 
			if(req.readyState == 4)
			{				
				if(req.status == 10000)
				{				   
					window.open("app?cmd=Login&_ec=30","_self");
					return;
				}
				else if(req.status == 200)
				{
					document.getElementById("router").innerHTML  =  req.responseText;	
				}				
				else	
				{
					document.getElementById("router").innerHTML  =  errormessage;
				}	
			} 
		}; 
		req.open("POST", next, true); 
		req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		var parameters;
		parameters = "cmd=Router";		
		
		for(i=0; form!=null && i<form.elements.length; i++)
		{
			//alert(form.elements[i].name+'  type : '+form.elements[i].type);
			var type=form.elements[i].type;
			if(type == 'select-multiple')
			{
				//alert('length :'+form.elements[i].length);
				for (j=0; j<form.elements[i].length;j++)
				{
					if (form.elements[i].options[j].selected||form.elements[i].options[j].checked)
					{
						parameters += "&"+form.elements[i].name +"[]="+ encodeURIComponent(form.elements[i].options[j].value);
						//alert('multiselect : '+ parameters);
					}
				}
			}
			else if(type == 'radio'|| type == 'checkbox')
			{
				//alert(type+' is checked');
				if (form.elements[i].checked)
				{
					parameters += "&"+form.elements[i].name +"="+ encodeURIComponent(form.elements[i].value);
					//alert(type +' : '+ parameters);
				}
			
			}
			else
			{
				
				parameters += "&"+form.elements[i].name +"="+ encodeURIComponent(form.elements[i].value);
			}			
		}
		req.send(parameters); 
		
	} 
	
	function getCookie(c_name)
	{
		//alert('cookie :'+document.cookie);
		if (document.cookie.length>0)
  		{	
  			c_start=document.cookie.indexOf(c_name + "=");
  			if (c_start!=-1)
    		{
    			c_start=c_start + c_name.length+1;
    			c_end=document.cookie.indexOf(";",c_start);
    			if (c_end==-1) c_end=document.cookie.length;
    			return unescape(document.cookie.substring(c_start,c_end));
    		}
  		}
		return "";
	}
	
	function checkSelections(form,incompletedata,invalidZip)
	{
		//alert('check selections start');
		
		if(incompletedata=='')
		{
			incompletedata='WAIT!  Make sure you entered all of the information before you click submit. This way, you will avoid these annoying error messages.';
		}
		
		
		if(invalidZip =='')
		{
			invalidZip = 'Sorry, but we can\'t find that Zip code.  Maybe just a typo.Give it another shot.';
		}
		var preName = '';
		var flag = false;
		var preType = '';
		for(i=0; form!=null && i<form.elements.length; i++)
		{
			
			
			var type=form.elements[i].type;
			if(preType == '')
			{
				preType = type;
			}
			var name = form.elements[i].name;
			if (preName == '')
			{	
				preName = name;
		  }
		 
		  if(preName != name)
			{
				if(flag == false && (preType == 'radio'|| preType == 'checkbox'))
				{
				//	alert('no item selected for '+preName+'  type : '+preType);
					alert(incompletedata);					
					return false;
				}
				else
				{
					preName = name;
					flag = false;
				}
			}
						
			if(type == 'select-multiple')
			{	
				var cnt = 0;			
				for (j=0; j<form.elements[i].length;j++)
				{
					if (form.elements[i].options[j].selected)
					{
						cnt++;
					}
				}
				if(cnt == 0)
				{
					//alert('no item selected for '+form.elements[i].name+'  type : '+form.elements[i].type);
					alert(incompletedata);
					return false;
				}
				else
				{
					//alert(form.elements[i].name+'  type : '+form.elements[i].type+' no of selected items : '+ cnt);
				}
			}
			else if(type == 'radio'|| type == 'checkbox')
			{			
			  if(form.elements[i].checked)
			  {
			  //	alert(form.elements[i].value+'  is checked.');
			  	flag = true;
			  }
			}
			else if(type == 'hidden')
			{
			  
			}
			else
			{			
				
				if(form.elements[i].value == null || form.elements[i].value == '' ||form.elements[i].value==-1)
				{
					//alert('no item selected for '+form.elements[i].name+'  type : '+form.elements[i].type);
					alert(incompletedata);
					return false;
				}
				else
				{
					//alert(form.elements[i].name+'  type : '+form.elements[i].type+' value : '+ form.elements[i].value);
				}
		
			}	
			//alert('form.demo8s value : '+form.demo8s.value);
			if((form.demo8s!=null && form.demo8s.value!=null && form.demo8s.value==41198) || (form.demo2585s!=null && form.demo2585s.value!=null && form.demo2585s.value==54069))
			{
					//alert('checking zip code');
					if(form.POSTAL_CODE!=null && form.POSTAL_CODE.value!=null)
					{
						if(form.POSTAL_CODE.value.length!=5 || form.POSTAL_CODE.value.match("\\D")!=null ||form.POSTAL_CODE.value.match("\\d{5}")==null|| form.POSTAL_CODE.value=="00000" || form.POSTAL_CODE.value=="11111" )
						{//if US as a country selected
							alert(invalidZip);
							return false;
						}
					}
			}		
			
			if(preType != type)
			{
				preType = type;
			}		
		}
		return true;
		 
	}