var providerRegisterControllerRequest = new Request({method: 'post', url: 'providerregcontroller'});

isKeywordAvaliable = function (){
	var errorMsg1 = '<span class="error"><strong>&ldquo;';
	var errorMsg2 = '&rdquo;</strong> is not available.</span>';
	
	var successMsg1 = '<a href="https://www.optit.com/signup?keyword='
	var successMsg2 = '"><span class="success"><strong>&ldquo;';
	var successMsg3 = '&rdquo;</strong> is available!</span><span class="morelink">Register now</span></a>';
	//checkkeywordaval
	var element = document.getElementById("SampleID");
	var alphabeticalRegExp = /^[a-zA-Z]*$/;
	var alphaNumeric = /^[a-zA-Z0-9]*$/;
	var firstChar = element.value.substring(0,1);
	var resP = document.getElementById("keywordsearchresult");
	if(element.value == '' || element.value.length < 4 || !alphabeticalRegExp.test(firstChar) || -1 != element.value.search(' ') || !alphaNumeric.test(element.value)){
		resP.innerHTML = errorMsg1 + htmlSpecialChars(element.value) + errorMsg2;
	}else{
		var params = 'checkkeywordaval=1&keyword=' + element.value;  
		providerRegisterControllerRequest.send(params);
		providerRegisterControllerRequest.onSuccess = function(responseText, responseXML){
			var response = eval('(' +  responseText + ')');
			if(response.res){
				resP.innerHTML = successMsg1 + htmlSpecialChars(element.value) +  successMsg2 + htmlSpecialChars(element.value) + successMsg3;
			}else{
				resP.innerHTML = errorMsg1 + htmlSpecialChars(element.value) + errorMsg2;
			}
		};
	}
};

htmlSpecialChars = function(s){
	var result = s;
	result = result.replace(/&/g, "&amp;");	
	result = result.replace(/</g, "&lt;");
	result = result.replace(/>/g, "&gt;");
	return result;
};

var checkUserRequest = new Request({method: 'post', url: 'providercheckusercontroller'});

checkUserToRemember = function(){
	checkUserRequest.send('rememberUser=1' +'&username=' + $('username').value + '&password=' + $('password').value);
	checkUserRequest.onSuccess = function(responseText,responseXML){
		var response = eval('(' +  responseText + ')');
		if(response.res == 1){
			rememberUser();
		}
		$('loginform').submit();
	}
}

function rememberUser(){
	if($('rememberCh').checked == true){
		setCookie('providerUsername', $('username').value, 365);
	}else{
		setCookie('providerUsername', null, 365);
	}
}

function setCookie(c_name,value,expiredays){
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+
	((expiredays==null) ? "" : ";expires="+exdate.toUTCString());
}

getCookie = function(name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset);
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
};
setUsername = function(){
	var name = getCookie("providerUsername");
	var elementU = document.getElementById("username");
	if (name != null && name!="null"){
		$('rememberCh').checked = true;
		elementU.value = name;
	}
};

var eventsControllerRequest = new Request({method: 'post', url: 'corpcontentcontroller'});

getUpcomingEvents = function(){
	var params = 'action=getupcomingevents';
	eventsControllerRequest.send(params);
	eventsControllerRequest.onSuccess = function(responseText, responseXML){
		var response = eval('(' +  responseText + ')');
		if(response.res){
			var upcomingevents_div_obj = $('upcomingevents');
			var upcomingevents_div_inner = '<ul>';
			var up_events = response.upcomingevents;
			for(var j = 0; j<up_events.length; j++){
				var event_class;
				switch(j){
					case 0:
						event_class = 'first';
						break;
					case 1:
						event_class = 'second';
						break;
					case 2:
						event_class = 'third';
						break;
					case 3:
						event_class = 'fourth';
						break;
				}
				var date_str_arr = up_events[j].date.split(',');
				upcomingevents_div_inner += 
					'<li class="'+event_class+'">'+
						'<span class="date">'+date_str_arr[0]+' <span class="year">'+date_str_arr[1].substring(1)+'</span></span>'+
						'<a href="event/'+up_events[j].url+'" class="title">'+up_events[j].title+'</a>'+
						(up_events[j].location!=''?'<span class="location">'+up_events[j].location+'</span>':'')+
					'</li>';
			}
			upcomingevents_div_inner += '<a href="events" class="morelink">More events &hellip;</a>';
			upcomingevents_div_obj.innerHTML = upcomingevents_div_inner;
			//resP.innerHTML = successMsg1 + htmlSpecialChars(element.value) + successMsg2;
		}
	};
};

clearAvailableKeywordForm = function(){
	if ($('SampleID')){
		$('SampleID').value = '';
	
		$('SampleID').addEvent('keydown', function(event){
			checkKeywordavAvailability(event);
		});
	}
	
}

checkKeywordavAvailability = function(event) {
	if(event.key == 'enter'){
		event.preventDefault();
		isKeywordAvaliable();
	}
}

////////////////////////////////////////////////////////////////////////////

/*Registration - start*/
var providerRegisterControllerRequest = new Request({method: 'post', url: 'providerregcontroller'});

validatePairedFields = function(fieldname){
	var emailPattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	switch(fieldname){
	case 'password':		
		if (!isClickReg){
			$('password_different_error').style.display = 'none';
			if ($('password2_error').style.display == 'none'){
				$('password2_label').removeClass('error');
			}
			if ($('password1_error').innerHTML == '&nbsp;'){
				$('password1_label').removeClass('error');
			}
		}
		break;
	case 'retype_password':
		if (!isClickReg){
			$('password_different_error').style.display = 'none';
			if ($('password2_error').style.display == 'none'){
				$('password2_label').removeClass('error');
			}
			if ($('password1_error').innerHTML == '&nbsp;'){
				$('password1_label').removeClass('error');
			}
		}
		break;
	case 'email1':
		if (!isClickReg){
			$('different_emails_error').style.display = 'none';
			$('different_emails_error_clear').style.display = 'none';
			if($('email2').value==''){
				$('email2_label').removeClass('error');
			}
			if($('email1').value==''){
				$('email1_error').style.display = 'none';
				$('email1_error_clear').style.display = 'none';
				$('email1_error').innerHTML = '&nbsp;';
				$('email1_label').removeClass('error');
			}else{
				if (emailPattern.test($('email1').value)){
					$('email1_error').style.display = 'none';
					$('email1_error').innerHTML = '&nbsp;';
					$('email1_error_clear').style.display = 'none';
					$('email1_label').removeClass('error');
				}
			}
			if ($('email2_error').style.display == 'none'){
				$('email2_label').removeClass('error');
			}
		}
		if ($('email2_error').style.display == 'block'){
			$('email1_error').style.display = 'block';
			$('email1_error_clear').style.display = 'block';
		}
		break;
	case 'email2':
		if (!isClickReg){
			$('different_emails_error').style.display = 'none';
			$('different_emails_error_clear').style.display = 'none';
			if($('email2').value ==''){
				$('email2_error').style.display = 'none';
				$('email2_error_clear').style.display = 'none';
				$('email2_label').removeClass('error');
			}else{
				if (emailPattern.test($('email2').value)){
					$('email2_error').style.display = 'none';
					$('email2_error_clear').style.display = 'none';
					$('email2_label').removeClass('error');
				}
			}
			/*
			if ($('email1_error').innerHTML == '&nbsp;'){
				$('email1_label').removeClass('error');
			}*/
		}
		break;
		
	case 'bmonth':case 'byear':
		if(!isClickReg){
			//$('exp_month_error').style.display = 'none';			
			$('exp_month_error').innerHTML = '&nbsp;';
			//$('expiration_label').addClass('error');
			$('expiration_label').removeClass('error');
		}
		break;	
	case 'phone':
		if (!isClickReg){
			if ($('areacode').value == ''){
				$('areacode_error').style.display = 'none';
				$('areacode_error_clear').style.display = 'none';
			}
			if ($('exchange').value == ''){
				$('exchange_error').style.display = 'none';
				$('exchange_error_clear').style.display = 'none';
			}
			if ($('suffix').value == ''){
				$('line_error').style.display = 'none';
				$('line_error_clear').style.display = 'none';
			}
			if ($('areacode_error').style.display == 'none' &&
					$('exchange_error').style.display == 'none' &&
					$('line_error').style.display == 'none'
				){
				$('phone_label').removeClass('error');
			}
		}		
		break;
	}
};

var namePattern = /^[a-zA-Z0-9 ]+(([\'\.\-][a-zA-Z0-9 ])?[a-zA-Z0-9 ]*)*$/;
                                    
validateFields = function(fieldname, element){
	switch(fieldname){
	
	case 'keyword':
		var divElem = $('keyword_label');		
		if(element.value == ''){
			setEmptyError('keyword_error', $('keyword_div'));
			//var elementNameClear = 'keyword_error' +'_clear';
			if(isClickReg){
				$('keyword_error').style.display = 'block';
				//$(elementNameClear).style.display = 'block';
				$('keyword_error').innerHTML = 'Required field cannot be empty.';
				$(divElem).style.color = '#E7001F';
			}else{
				$('keyword_error').innerHTML = '&nbsp;';
				$('keyword_error').style.display = 'none';
				//$(elementNameClear).style.display = 'none';
				$(divElem).style.color = '#5D5D5D';
			}
			$('keyword_exist').style.display = 'none'; 
			$('keyword_not_exist').style.display = 'none';
			break;
		}
		if(element.value.length < 4){
			 $('keyword_div').addClass('error');
			$(divElem).style.color = '#E7001F';
			$('keyword_exist').style.display = 'none'; 
			$('keyword_not_exist').style.display = 'none';
			$('keyword_error').innerHTML = 'Keyword must be at least 4 characters long.';
			$('keyword_error').style.display = 'block';
			//$('keyword_error_clear').style.display = 'block';
			break;
		}
		var alphabeticalRegExp = /^[a-zA-Z]*$/;
		var alphaNumeric = /^[a-zA-Z0-9]*$/;
		var firstChar = element.value.substring(0,1);
		if (!alphabeticalRegExp.test(firstChar)) {
			 $('keyword_div').addClass('error');
			$(divElem).style.color = '#E7001F';
	    	$('keyword_exist').style.display = 'none'; 
			$('keyword_not_exist').style.display = 'none';
			$('keyword_error').innerHTML = 'Invalid keyword. Keyword must start with a letter and must contain alphanumeric characters.';//'Keyword can\'t start with a number or non alphabetical character';
			$('keyword_error').style.display = 'block';
			//$('keyword_error_clear').style.display = 'block';
	    	break;
	    }
		if( -1 != element.value.search(' ') ){
			 $('keyword_div').addClass('error');
			$(divElem).style.color = '#E7001F';
	    	$('keyword_exist').style.display = 'none'; 
			$('keyword_not_exist').style.display = 'none';
			$('keyword_error').innerHTML = 'Invalid keyword. Keyword must start with a letter and must contain alphanumeric characters.';//'Keyword can\'t contain spaces.';
			$('keyword_error').style.display = 'block';
			//$('keyword_error_clear').style.display = 'block';
		    break;
	    }
		if (!alphaNumeric.test(element.value)) {
			    $('keyword_div').addClass('error');
				$(divElem).style.color = '#E7001F';
		    	$('keyword_exist').style.display = 'none'; 
				$('keyword_not_exist').style.display = 'none';
				$('keyword_error').innerHTML = 'Invalid keyword. Keyword must start with a letter and must contain alphanumeric characters.';//'Keyword can only contain numbers and letters.';
				$('keyword_error').style.display = 'block';
				//$('keyword_error_clear').style.display = 'block';
		    	break;
		   } 
			  var params = 'checkkeyword=1&keyword=' + element.value;  
			  providerRegisterControllerRequest.send(params);
			  providerRegisterControllerRequest.onSuccess = function(responseText, responseXML){
			  var response = eval('(' +  responseText + ')');
			  if(response.res){
			  			$('keyword_exist').style.display = 'none'; 
			  			$('keyword_not_exist').style.display = 'block';
			  			$('keyword_div').removeClass('error');
			  			$(divElem).style.color = '#5D5D5D';
			  		}else{
			  			$('keyword_exist').style.display = 'block'; 
			  			$('keyword_not_exist').style.display = 'none';
			  			$('keyword_div').addClass('error');
			  			$(divElem).style.color = '#E7001F';
			  		}
				};
		  $('keyword_div').removeClass('error');
		  $(divElem).style.color = '#5D5D5D';
		  $('keyword_error').style.display = 'none';
		  //$('keyword_error_clear').style.display = 'none';
		 break;
	
	case 'business_name':
		var elem = $('bname_label');		
		if(element.value == ''){
			setEmptyErrorAllign('bname_error',elem,1);			
			if ($('areacode_error').style.display == 'block'){
				$('bname_error').style.display = 'block';
				$('bname_error_clear').style.display = 'block';
			}
			break;
		}
		var nameWithoutSpaces = element.value.replace(/ /g, '');
		//if (!namePattern.test(nameWithoutSpaces)){
		if (nameWithoutSpaces.length == 0){
			$('bname_error').innerHTML = '&nbsp;Wrong business name.';
			$('bname_error').style.display = 'block';
			$('bname_error').addClass('error');
			$('bname_error_clear').style.display = 'block';
			elem.addClass('error');
	    	break;
	    }
		elem.removeClass('error');
		$('bname_error').style.display = 'none';
		$('bname_error').innerHTML = '&nbsp;';
		$('bname_error').removeClass('error');
		$('bname_error_clear').style.display = 'none';
		if ($('areacode_error').style.display == 'block'){
			$('bname_error').style.display = 'block';
			$('bname_error_clear').style.display = 'block';
		}
		break;
	case 'areacode':
		var tr = $('phone_label');		
		if ($('suffix').value != '' || $('exchange').value != '' || $('areacode').value!= ''){
			if ($('areacode').value == '' ){				
				$('areacode_error').style.display = 'block';
				$('areacode_error_clear').style.display = 'block';
				$('bname_error').style.display = 'block';				
				$('bname_error_clear').style.display = 'block';
				$('areacode_error').innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Required field for area code cannot be empty.';//'Area code is empty.';
				tr.addClass('error');			
			}			
			if ($('exchange').value == ''){				
				$('exchange_error').style.display = 'block';
				$('exchange_error_clear').style.display = 'block';
				$('exchange_error').innerHTML = '&nbsp;Required field for exchange cannot be empty.';//'Exchange is empty.';
				tr.addClass('error');
			}
			if ($('suffix').value == ''){				
				$('line_error').style.display = 'block';
				$('line_error_clear').style.display = 'block';
				$('line_error').innerHTML = '&nbsp;Required field for suffix cannot be empty.';//'Suffix is empty.';
				tr.addClass('error');
			}			
		}
		if(element.value == ''){
			if(isClickReg){
				$('areacode_error').style.display = 'block';
				$('areacode_error_clear').style.display = 'block';
				$('bname_error').style.display = 'block';				
				$('bname_error_clear').style.display = 'block';
				$('areacode_error').innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Required field for area code cannot be empty.';
				tr.addClass('error');
			}else{
				$('areacode_error').style.display = 'none';
				$('areacode_error_clear').style.display = 'none';				
				tr.removeClass('error');
			}
			break;
		}			
		
		if(element.value.length != 3){
			$('areacode_error').innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invalid area code. Area code must match "NNN" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template, where "N" is a number.';
			$('areacode_error').style.display = 'block';
			$('areacode_error_clear').style.display = 'block';
			$('bname_error').style.display = 'block';				
			$('bname_error_clear').style.display = 'block';
			tr.addClass('error');
	    	break;
		}
		var numericPattern = /^[0-9]*$/;
		if (!numericPattern.test(element.value)){
			$('areacode_error').innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invalid area code. Area code must match "NNN" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template, where "N" is a number.';
			$('areacode_error').style.display = 'block';
			$('areacode_error_clear').style.display = 'block';
			$('bname_error').style.display = 'block';				
			$('bname_error_clear').style.display = 'block';
			tr.addClass('error');
		    break;
		} 
		if ($('line_error').style.display == 'block' || $('exchange_error').style.display == 'block'){
			tr.addClass('error');
		}else{
			tr.removeClass('error');
		}
		$('areacode_error').style.display = 'none';
		$('areacode_error_clear').style.display = 'none';		
		break;
	case 'exchange':
		var tr = $('phone_label');		
		if ($('suffix').value != '' || $('exchange').value != '' || $('areacode').value!= '' ){
			if ($('areacode').value == '' ){			
				$('areacode_error').style.display = 'block';
				$('areacode_error_clear').style.display = 'block';
				$('bname_error').style.display = 'block';				
				$('bname_error_clear').style.display = 'block';
				$('areacode_error').innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Required field for area code cannot be empty.';//'Area code is empty.';
				tr.addClass('error');		
			}			
			if ($('exchange').value == ''){			
				$('exchange_error').style.display = 'block';
				$('exchange_error_clear').style.display = 'block';
				$('exchange_error').innerHTML = '&nbsp;Required field for exchange cannot be empty.';//'Exchange is empty.';
				tr.addClass('error');
			}
			if ($('suffix').value == ''){				
				$('line_error').style.display = 'block';
				$('line_error_clear').style.display = 'block';
				$('line_error').innerHTML = '&nbsp;Required field for suffix cannot be empty.';//'Suffix is empty.';
				tr.addClass('error');
			}			
		}
		if(element.value == ''){
			if(isClickReg){
				$('exchange_error').style.display = 'block';
				$('exchange_error_clear').style.display = 'block';
				$('exchange_error').innerHTML = '&nbsp;Required field for exchange cannot be empty.';
				tr.addClass('error');
			}else{
				$('exchange_error').style.display = 'none';
				$('exchange_error_clear').style.display = 'none';				
				tr.removeClass('error');
			}
			break;
		}
		if(element.value.length != 3){
			$('exchange_error').innerHTML = '&nbsp;Invalid exchange. Exchange must match "NNN" template, &nbsp;where "N" is a number.';
			$('exchange_error').style.display = 'block';
			$('exchange_error_clear').style.display = 'block';
			tr.addClass('error');
	    	break;
		}
		var numericPattern = /^[0-9]*$/;
		if (!numericPattern.test(element.value)){
				$('exchange_error').innerHTML = '&nbsp;Invalid exchange. Exchange must match "NNN" template, &nbsp;where "N" is a number.';
				$('exchange_error').style.display = 'block';
				$('exchange_error_clear').style.display = 'block';
				tr.addClass('error');
		    	break;
		}
		if ($('line_error').style.display == 'block' || $('areacode_error').style.display == 'block'){
			tr.addClass('error');
		}else{
			tr.removeClass('error');
		}		
		$('exchange_error').style.display = 'none';
		$('exchange_error_clear').style.display = 'none';
		break;
	case 'line':
		var tr = $('phone_label');		
		if ($('suffix').value != '' || $('exchange').value != '' || $('areacode').value!= ''){
			if ($('areacode').value == '' ){				
				$('areacode_error').style.display = 'block';
				$('areacode_error_clear').style.display = 'block';
				$('bname_error').style.display = 'block';				
				$('bname_error_clear').style.display = 'block';
				$('areacode_error').innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Required field for area code cannot be empty.';//'Area code is empty.';
				tr.addClass('error');	
			}			
			if ($('exchange').value == ''){				
				$('exchange_error').style.display = 'block';
				$('exchange_error_clear').style.display = 'block';
				$('exchange_error').innerHTML = '&nbsp;Required field for exchange cannot be empty.';//'Exchange is empty.';
				tr.addClass('error');
			}
			if ($('suffix').value == ''){				
				$('line_error').style.display = 'block';
				$('line_error_clear').style.display = 'block';
				$('line_error').innerHTML = '&nbsp;Required field for suffix cannot be empty.';//'Suffix is empty.';
				tr.addClass('error');
			}			
		}
		if(element.value == ''){
			if(isClickReg){
				$('line_error').style.display = 'block';
				$('line_error_clear').style.display = 'block';
				$('line_error').innerHTML = '&nbsp;Required field for suffix cannot be empty.';
				tr.addClass('error');
			}else{
				$('line_error').style.display = 'none';
				$('line_error_clear').style.display = 'none';				
				tr.removeClass('error');
			}
			break;
		}
		if(element.value.length != 4){
			$('line_error').innerHTML = '&nbsp;Invalid suffix. Suffix must match "NNNN" template, where &nbsp;"N" is a number.';
			$('line_error').style.display = 'block';
			$('line_error_clear').style.display = 'block';
			tr.addClass('error');
	    	break;
		}
		var numericPattern = /^[0-9]*$/;
		if (!numericPattern.test(element.value)){
				$('line_error').innerHTML = '&nbsp;Invalid suffix. Suffix must match "NNNN" template, where &nbsp;"N" is a number.';
				$('line_error').style.display = 'block';	
				$('line_error_clear').style.display = 'block';
				tr.addClass('error');
		    	break;
		} 
		if ($('areacode_error').style.display == 'block' || $('exchange_error').style.display == 'block'){
			tr.addClass('error');
		}else{
			tr.removeClass('error');
		}
		$('line_error').style.display = 'none';
		$('line_error_clear').style.display = 'none';
		break;
	case 'address':
		var tr = $('address_label');
		if ($('same.tos').checked){
			$('baddress').value = element.value ;
		}
		if(element.value == ''){
			setEmptyError('address_error',tr);
			if ($('city_error').style.display == 'block'){
				$('address_error').style.display = 'block';
				$('address_error_clear').style.display = 'block';
			}
			if ($('same.tos').checked){
				var tr_b = $('baddress_label');
				setEmptyError('baddress_error',tr_b);
				if ($('bcity_error').style.display == 'block'){
					$('baddress_error').style.display = 'block';
					$('baddress_error_clear').style.display = 'block';
				}
			}			
			break;
		}
		var nameWithoutSpaces = element.value.replace(/ /g, '');
		//if (!namePattern.test(nameWithoutSpaces)){
		if (nameWithoutSpaces.length == 0){
			$('address_error').innerHTML = 'Wrong address.';
			$('address_error').style.display = 'block';
			$('address_error_clear').style.display = 'block';
			tr.addClass('error');
			if ($('same.tos').checked){
				$('baddress_error').style.display = 'block';
				$('baddress_error_clear').style.display = 'block';
				$('baddress_error').innerHTML = 'Wrong billing address.';
				$('baddress_label').addClass('error');
			}
	    	break;
	    }
		if ($('same.tos').checked){
			$('baddress_error').style.display = 'none';
			$('baddress_error').innerHTML = '&nbsp;';
			$('baddress_error_clear').style.display = 'none';
			$('baddress_label').removeClass('error');
		}
		tr.removeClass('error');
		$('address_error').style.display = 'none';
		$('address_error').innerHTML = '&nbsp;';
		$('address_error_clear').style.display = 'none';
		if ($('city_error').style.display == 'block'){
			$('address_error_clear').style.display = 'block';
			$('address_error').style.display = 'block';
		}
		break;
	case 'city':
		var tr = $('city_label');	
		if ($('same.tos').checked){
			$('bcity').value = element.value ;
		}
		if(element.value == ''){
			setEmptyErrorAllign('city_error',tr,3);
			if ($('same.tos').checked){
				var tr_b = $('bcity_label');
				setEmptyErrorAllign('bcity_error',tr_b,3);
			}
			break;
		}
		var nameWithoutSpaces = element.value.replace(/ /g, '');		
		if (nameWithoutSpaces.length == 0){
			$('city_error').innerHTML = '&nbsp;&nbsp;&nbsp;Wrong city.';
			$('city_error').style.display = 'block';
			$('city_error_clear').style.display = 'block';	
			
			$('address_error_clear').style.display = 'block';
			$('address_error').style.display = 'block';
			tr.addClass('error');
			if ($('same.tos').checked){
				$('bcity_error').style.display = 'block';
				$('bcity_error_clear').style.display = 'block';
				
				$('baddress_error_clear').style.display = 'block';
				$('baddress_error').style.display = 'block';
				$('bcity_error').innerHTML = '&nbsp;&nbsp;&nbsp;Wrong billing city.';
				$('bcity_label').removeClass('error');
			}
	    	break;
	    }
		if ($('same.tos').checked){
			$('bcity_error').style.display = 'none';
			$('bcity_error_clear').style.display = 'none';
			$('bcity_label').removeClass('error');
		}
		tr.removeClass('error');
		$('city_error').style.display = 'none';
		$('city_error_clear').style.display = 'none';
		break;
		
	case 'state':
		if ($('same.tos').checked){
			$('bstate').value = element.value ;
		}
		break;
	case 'postal_code':
		var tr = $('postal_label');
		if ($('same.tos').checked){
			$('bpostalCode').value = element.value ;
		}
		if(element.value == ''){
			setEmptyErrorAllign('postal_error',tr,3);			
			if ($('same.tos').checked){
				var tr_b = $('bpostal_label');
				setEmptyErrorAllign('bpostal_error',tr_b,3);
			}			
			break;
		}
		var postalPattern = /^([0-9]{5})(-[0-9]{4})?$/i;
		if (!postalPattern.test(element.value)){
			$('postal_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid postal code. Postal code must match either &nbsp;&nbsp;&nbsp;"NNNNN" or "NNNNN-NNNN" template, where "N" is a &nbsp;&nbsp;&nbsp;number.';//'Wrong postal code.';
			$('postal_error').style.display = 'block';
			$('postal_error_clear').style.display = 'block';
			$('state_error').style.display = 'block';
			$('state_error_clear').style.display = 'block';
			tr.addClass('error');
			if ($('same.tos').checked){
				$('bpostal_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid postal code. Postal code must match either &nbsp;&nbsp;&nbsp;"NNNNN" or "NNNNN-NNNN" template, where "N" is a &nbsp;&nbsp;&nbsp;number.';//'Wrong postal code.';
				$('bpostal_error').style.display = 'block';
				$('bpostal_error_clear').style.display = 'block';
				$('bstate_error').style.display = 'block';
				$('bstate_error_clear').style.display = 'block';
				$('bpostal_label').addClass('error');
			}
			break;
		} 
		if ($('same.tos').checked){
			$('bpostal_error').style.display = 'none';
			$('bpostal_label').removeClass('error');
		}
		tr.removeClass('error');
		$('postal_error').style.display = 'none';
		break;
		
	case 'first_name':
		var alphabeticalRegExp = /^[a-zA-Z]+$/;
		var tr = $('first_name_label');	
		
		if(element.value == ''){			
			setEmptyError('first_name_error',tr);
			//$('first_name_error').style.display = 'block';
			//$('first_name_error_clear').style.display = 'block';
			break;
		}
		var nameWithoutSpaces = element.value.replace(/ /g, '');
		if (!alphabeticalRegExp.test(nameWithoutSpaces)){
			$('first_name_error').innerHTML = 'Invalid first name. First name must start with a letter, contain alphabetic characters and can contain spaces.';//'Wrong first name.';
			$('first_name_error').style.display = 'block';
			$('first_name_error_clear').style.display = 'block';
			tr.addClass('error');			
	    	break;
	    }		
		tr.removeClass('error');
		$('first_name_error').style.display = 'none';
		$('first_name_error_clear').style.display = 'none';
		$('first_name_error').innerHTML = '&nbsp;';
		if ( $('last_name_error').style.display == 'block'){
			//$('first_name_error').style.display = 'block';
			//$('first_name_error_clear').style.display = 'block';
		}
		break;
	case 'last_name':
		var alphabeticalRegExp = /^[a-zA-Z]+$/;
		var tr = $('last_name_label');		
		if(element.value == ''){
			setEmptyErrorAllign('last_name_error',tr,3);
			//$('first_name_error').style.display = 'block';
			//$('first_name_error_clear').style.display = 'block';
			break;
		}
		var nameWithoutSpaces = element.value.replace(/ /g, '');
		if (!alphabeticalRegExp.test(nameWithoutSpaces)){
			$('last_name_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid last name. Last name must start with a letter, &nbsp;&nbsp;&nbsp;contain alphabetic characters and can contain spaces.';//'Wrong last name.';
			$('last_name_error').style.display = 'block';
			$('last_name_error_clear').style.display = 'block';
			$('first_name_error').style.display = 'block';
			$('first_name_error_clear').style.display = 'block';
			tr.addClass('error');			
	    	break;
	    }
		tr.removeClass('error');		
		$('last_name_error').style.display = 'none';
		$('last_name_error_clear').style.display = 'none';		
		break;
		
	case 'email':
		var tr = $('email1_label');	
		if(element.value == ''  && $('email2').value == ''){
			setEmptyError('email1_error',tr);
			var tr2 = $('email2_label');
			setEmptyErrorAllign('email2_error',tr2,3);			
			$('different_emails_error').style.display = 'none';	
			$('different_emails_error_clear').style.display = 'none';
			break;
		}
		if($('email2').value != $('email1').value){
			$('different_emails_error').innerHTML = 'Email addresses do not match.';//'Emails are different.';
			$('different_emails_error').style.display = 'block';
			$('different_emails_error_clear').style.display = 'block';
			$('email1_label').addClass('error');
			$('email2_label').addClass('error');
		}else{			
	    	$('different_emails_error').style.display = 'none';
	    	$('different_emails_error_clear').style.display = 'none';
		}
		var emailPattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		if (element.value != ''){
			if ( !emailPattern.test(element.value)){
				$('email1_error').innerHTML = 'Invalid email address. Email address must match "username@hostname" template, e.g. "jblack@mail.com".';//'Wrong email.';
				$('email1_error').style.display = 'block';
				$('email1_error_clear').style.display = 'block';
				tr.addClass('error');
				break;
			}else{
				tr.removeClass('error');
				$('email1_error').style.display = 'none';
				$('email1_error').innerHTML = '&nbsp;';
				$('email1_error_clear').style.display = 'none';
				if (emailPattern.test($('email2').value) && (element.value ==$('email2').value )){
					$('email2_label').removeClass('error');
					$('email2_error').style.display = 'none';					
					$('email2_error_clear').style.display = 'none';
				}
				if ($('email2_error').style.display == 'block'){
					$('email1_error').style.display = 'block';
					$('email1_error_clear').style.display = 'block';
				}
				break;
			}
		}else{
			setEmptyError('email1_error',tr);
			if ($('different_emails_error').style.display == 'block'){
				tr.addClass('error');
			}			
			if($('email2_error').style.display == 'block'){
	    		$('email1_error').style.display = 'block';        	
	        	$('email1_error_clear').style.display = 'block';
	    	}
			break;
		}
    	tr.removeClass('error');
    	$('email1_error').style.display = 'none';
    	$('email1_error').innerHTML = '&nbsp;';
    	$('email1_error_clear').style.display = 'none';
    	if($('email2_error').style.display == 'block'){
    		$('email1_error').style.display = 'block';        	
        	$('email1_error_clear').style.display = 'block';
    	}
    	
    	break;
    	
	case 'email_confirm':
		var tr = $('email2_label');	
		if(element.value == ''  && $('email1').value == ''){
			setEmptyErrorAllign('email2_error',tr,3);
			var tr1 = $('email1_label');
			setEmptyError('email1_error',tr1);
			$('different_emails_error').style.display = 'none';
			$('different_emails_error_clear').style.display = 'none';
			break;
		}
		if($('email2').value != $('email1').value){
			$('different_emails_error').innerHTML = 'Email addresses do not match.';//'Emails are different.';
			$('different_emails_error').style.display = 'block';
			$('different_emails_error_clear').style.display = 'block';
			$('email2_label').addClass('error');
			$('email1_label').addClass('error');
		}else{			
	    	$('different_emails_error').style.display = 'none';
	    	$('different_emails_error_clear').style.display = 'none';
		}
		var emailPattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		if (element.value != ''){
			if (!emailPattern.test(element.value)){
				$('email2_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid email address. Email address must match &nbsp;&nbsp;&nbsp;"username@hostname" template, e.g. &nbsp;&nbsp;&nbsp;"jblack@mail.com".';//'Wrong re-type email.';
				$('email2_error').style.display = 'block';
				$('email2_error_clear').style.display = 'block';
				$('email1_error').style.display = 'block';	
				$('email1_error_clear').style.display = 'block';
				tr.addClass('error');
				break;
			}else{
				tr.removeClass('error');
				$('email2_error').style.display = 'none';
				$('email2_error_clear').style.display = 'none';
				if (emailPattern.test($('email1').value) && (element.value ==$('email1').value )){
					$('email1_label').removeClass('error');
					$('email1_error').style.display = 'none';
					$('email1_error').innerHTML = '&nbsp;';
					$('email1_error_clear').style.display = 'none';
				}			
			}
		}else{
			setEmptyErrorAllign('email2_error',tr,3);			
		}	
		if ($('different_emails_error').style.display == 'none'){
			tr.removeClass('error');
			$('email2_error').style.display = 'none';
			$('email2_error_clear').style.display = 'none';
		}else{
			tr.addClass('error');
		}
    	break;
    	
	case 'username':
		var tr = $('username_label');
		if(element.value == ''){
			if(isClickReg){
				$('username_error').style.display = 'block';				
				$('username_error').innerHTML = 'Required field cannot be empty.';
				tr.addClass('error');				
			}else{				
				$('username_error').style.display = 'none';				
				tr.removeClass('error');
			}
			$('username_exist').style.display = 'none'; 
			$('username_not_exist').style.display = 'none';
			break;
		}
		if(element.value.length < 6 || element.value.length > 12 ){
			tr.addClass('error');
			$('username_exist').style.display = 'none'; 
			$('username_not_exist').style.display = 'none';
			$('username_error').innerHTML = 'Username must be 6-12 characters long.';
			$('username_error').style.display = 'block';
			break;
		}
		var alphabeticalRegExp = /^[a-zA-Z]*$/;
		var alphaNumeric = /^[a-zA-Z0-9]*$/;
		var firstChar = element.value.substring(0,1);
		if(!alphabeticalRegExp.test(firstChar)) {
	    	tr.addClass('error');
	    	$('username_exist').style.display = 'none'; 
			$('username_not_exist').style.display = 'none';
			$('username_error').innerHTML = 'Invalid username. Username must start with a letter and must contain alphanumeric characters.';//'Username can\'t start with a number or non alphabetical character.';
			$('username_error').style.display = 'block';
	    	break;
	    } 
		if( -1 != element.value.search(' ') ){
	    	tr.addClass('error');
	    	$('username_exist').style.display = 'none'; 
			$('username_not_exist').style.display = 'none';
			$('username_error').innerHTML = 'Invalid username. Username must start with a letter and must contain alphanumeric characters.';//'Username can\'t contain spaces.';
			$('username_error').style.display = 'block';
		    break;
	    }
		if(!alphaNumeric.test(element.value)) {
		    tr.addClass('error');
		    $('username_exist').style.display = 'none'; 
			$('username_not_exist').style.display = 'none';
			$('username_error').innerHTML = 'Invalid username. Username must start with a letter and must contain alphanumeric characters.';//'Username can only contain numbers and letters.';
			$('username_error').style.display = 'block';
		    break;
		}
	    
		  var params = 'checkusername=1&username=' + element.value;  
		  providerRegisterControllerRequest.send(params);
		  providerRegisterControllerRequest.onSuccess = function(responseText, responseXML){
		  var response = eval('(' +  responseText + ')');
		  		if(response.res){
		  			$('username_exist').style.display = 'none'; 
		  			$('username_not_exist').style.display = 'block';
		  			tr.removeClass('error');
		  		}else{
		  			$('username_exist').style.display = 'block'; 
		  			$('username_not_exist').style.display = 'none';
		  			tr.addClass('error');
		  		}
			};
		  tr.removeClass('error');
		  $('username_error').style.display = 'none';
		 break;
	case 'password':
		var tr = $('password1_label');
		
		if(element.value == '' && $('password2').value == ''){
			setEmptyError('password1_error',tr);
			var tr2 = $('password2_label');
			setEmptyErrorAllign('password2_error',tr2,3);
			$('password_different_error').style.display = 'none';
			$('password_different_error_clear').style.display = 'none';
			break;
		}
		
		if($('password1').value != $('password2').value && $('password2').value != ''){
			$('password2_label').addClass('error');
			$('password1_label').addClass('error');
			$('password_different_error').innerHTML = 'Passwords do not match.';//'Passwords are different';
			$('password_different_error').style.display = 'block';
			$('password_different_error_clear').style.display = 'block';			
		}else{
			$('password_different_error').style.display = 'none';
			$('password_different_error_clear').style.display = 'none';	
		}
	
		if($('password1').value != ''){
			if ((element.value.length < 6) || (element.value.length > 12)) {
				$('password1_error').innerHTML = 'Password must be 6-12 characters long.';
				$('password1_error').style.display = 'block';
				$('password1_error_clear').style.display = 'block';
				tr.addClass('error');
			}else{
				tr.removeClass('error');
		    	$('password1_error').style.display = 'none';
		    	$('password1_error').innerHTML = '&nbsp;';
		    	$('password1_error_clear').style.display = 'none';
		    	if (($('password2').value.length >= 6) && ($('password2').value.length <= 12) && ($('password1').value == $('password2').value)){
		    		$('password2_label').removeClass('error');
					$('password2_error').style.display = 'none';
					$('password2_error_clear').style.display = 'none';
				}
		    }
			if($('password1').value != $('password2').value && $('password2').value != ''){
				$('password2_label').addClass('error');
				$('password2_label').addClass('error');
				$('password_different_error').innerHTML = 'Passwords do not match.';//'Passwords are different';
				$('password_different_error').style.display = 'block';
				$('password_different_error_clear').style.display = 'block';
			}else{
				$('password_different_error').style.display = 'none';				
			}
		}else{
			setEmptyError('password1_error',tr);
		}
		
		if ($('password_different_error').style.display == 'block'){
			$('password2_label').addClass('error');
			$('password1_label').addClass('error');
		}else{
			
		}		
		break;
	case 'retype_password':
		var tr = $('password2_label');
		
		if(element.value == '' && $('password1').value == ''){
			setEmptyErrorAllign('password2_error',tr,3);
			var tr1 = $('password1_label');
			setEmptyError('password1_error',tr1);
			$('password_different_error').style.display = 'none';
			$('password_different_error_clear').style.display = 'none';
			break;
		}
		
		if($('password1').value != $('password2').value){
			tr.addClass('error');
			$('password2_label').addClass('error');
			$('password1_label').addClass('error');
			$('password_different_error').innerHTML = 'Passwords do not match.';//'Passwords are different';
			$('password_different_error').style.display = 'block';
			$('password_different_error_clear').style.display = 'block';
		}else{
			$('password_different_error').style.display = 'none';
			$('password_different_error_clear').style.display = 'none';	
		}
		
		if($('password2').value != ''){
			if ((element.value.length < 6) || (element.value.length > 12)) {
				$('password2_error').innerHTML = '&nbsp;&nbsp;&nbsp;Password must be 6-12 characters long.';//'Re-type password must be 6-12 characters long.';
				$('password2_error').style.display = 'block';
				$('password2_error_clear').style.display = 'block';				
				tr.addClass('error');
	    	}else{
	    		if (($('password1').value.length >= 6) && ($('password1').value.length <= 12) && ($('password1').value == $('password2').value)){
	    			$('password1_label').removeClass('error');
					$('password1_error').style.display = 'none';
					$('password1_error').innerHTML = '&nbsp;';
					$('password1_error_clear').style.display = 'none';
				}
	    		tr.removeClass('error');
	    		$('password2_error').style.display = 'none';
	    	}
			if($('password1').value != $('password2').value){
				tr.addClass('error');
				$('password2_label').addClass('error');
				
				$('password_different_error').innerHTML = 'Passwords do not match.';//'Passwords are different';
				$('password_different_error').style.display = 'block';
			}else{
				$('password_different_error').style.display = 'none';				
			}
		}else{
			if(isClickReg){
				$('password2_error').style.display = 'block';
				$('password2_error').innerHTML = '&nbsp;&nbsp;&nbsp;Required field cannot be empty.';
				tr.addClass('error');
			}else{
				$('password2_error').style.display = 'none';
				$('password2_error_clear').style.display = 'none';
			}
		}
		if ($('password_different_error').style.display == 'block'){
			tr.addClass('error');
		}else{
			
		}
		break;
	case 'promo_code':
		var tr = $('promo_label');	
		if(element.value == ''){
			tr.removeClass('error');
			$('billing_table').style.display = 'block';
  			//$('price_').innerHTML = '$50.00 for unlimited messages to 0-100 phone numbers<P class="frmdesc">This amount will be billed today and on the 25th of every month for the following month.  The second months fee with be prorated based on the date.</P>';
  			//$('promo_desc').innerHTML = 'Enter a promo code or referer code.';
			$('promo_desc').style.display = 'none';
  			$('promo_not_exist').style.display = 'none';
  			//$('promo_exist').style.display = 'none';
			break;
		}
		
			  var params = 'checkpromocode=1&promocode=' + element.value;  
			  providerRegisterControllerRequest.send(params);
			  providerRegisterControllerRequest.onSuccess = function(responseText, responseXML){
			  var response = eval('(' +  responseText + ')');
			  		if(response.res){
			  			//$('promo_exist').style.display = 'none'; 
			  			$('promo_not_exist').style.display = 'none';
			  			$('promo_desc').style.display = 'block';
			  			$('promo_desc').innerHTML = '<span class="success">' + response.desc + '</span>';
			  			if(response.discount == 100 || response.wsflag == 1){
			  				$('billing_table').style.display = 'none';
			  				//$('price_').innerHTML = '$00.00 for unlimited messages to 0-100 phone numbers<P class="frmdesc">This amount will be billed today and on the 25th of every month for the following month.  The second months fee with be prorated based on the date.</P>';
			  				//$('billing_table').style.display = 'block';
			  			}else{
			  				//var price = 50 - ((response.discount * 50) / 100); 
			  				//$('price_').innerHTML = '$' + price + '.00 for unlimited messages to 0-100 phone numbers<P class="frmdesc">This amount will be billed today and on the 25th of every month for the following month.  The second months fee with be prorated based on the date.</P>';
			  				$('billing_table').style.display = 'block';
			  			}
			  			tr.removeClass('error');
			  		}else{
			  			//$('promo_exist').style.display = 'block'; 
			  			//$('promo_not_exist').style.display = 'none';
			  			$('promo_desc').style.display = 'none';
			  			$('promo_not_exist').style.display = 'block';
			  			$('promo_not_exist').innerHTML = '<span class="error">This is not a valid code. <br /><span>Please enter a valid promo or referral code.</span></span>';
			  			$('billing_table').style.display = 'block';
			  			//$('price_').innerHTML = '$50.00 for unlimited messages to 0-100 phone numbers<P class="frmdesc">This amount will be billed today and on the 25th of every month for the following month.  The second months fee with be prorated based on the date.</P>';
			  			//$('promo_desc').innerHTML = 'Enter a promo code or referer code.';
			  			tr.addClass('error');
			  		}
				};
		  tr.removeClass('error');
		 break;
	
	case 'ccname':
		var tr = $('cardName_label');	
		if(element.value == ''){
			setEmptyError('cardName_error',tr);
			if ($('ccNumber_error').style.display == 'block'){
				$('cardName_error').style.display = 'block';
				$('cardName_error_clear').style.display = 'block';
			}
			break;
		}
		var alphabeticalRegExp = /^[a-zA-Z]+$/;
		var nameWithoutSpaces = element.value.replace(/ /g, '');
		if (!alphabeticalRegExp.test(nameWithoutSpaces)){
			$('cardName_error').innerHTML = 'Invalid name on the card. The name must start with a letter, contain alphabetic characters and can contain spaces.';//'Wrong card name.';
			$('cardName_error').style.display = 'block';
			$('cardName_error_clear').style.display = 'block';
			tr.addClass('error');
	    	break;
	    }
		tr.removeClass('error');
		$('cardName_error').style.display = 'none';
		$('cardName_error').innerHTML = '&nbsp;';
		$('cardName_error_clear').style.display = 'none';
		if ($('ccNumber_error').style.display == 'block'){
			$('cardName_error').style.display = 'block';
			$('cardName_error_clear').style.display = 'block';
		}
		break;
		
	case 'ccnumber':
		var tr = $('cardNumber_label');	
		if(element.value == ''){
			setEmptyErrorAllign('ccNumber_error',tr,3);
			break;
		}
		
		var ccPattern = /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})$/;
		if (!ccPattern.test(element.value)){
				$('ccNumber_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid credit card number.';//'Wrong CC number.';
				$('ccNumber_error').style.display = 'block';
				$('ccNumber_error_clear').style.display = 'block';
				$('cardName_error').style.display = 'block';
				$('cardName_error_clear').style.display = 'block';
				tr.addClass('error');				
		    	break;
		    } 
		tr.removeClass('error');
		$('ccNumber_error').style.display = 'none';
		$('ccNumber_error').innerHTML = '&nbsp;';
		$('ccNumber_error_clear').style.display = 'none';
		break;
	
	case 'bmonth': case 'byear':
		if(($('bMonth').value != 0 && $('bYear').value != 0) ||
				($('bMonth').value == 0 && $('bYear').value == 0)){
			if(isClickReg){
				if($('bMonth').value == 0 && $('bYear').value == 0){
					$('exp_month_error').innerHTML = 'Please select expiration date.';
					$('exp_month_error').style.display = 'block';
					$('exp_month_error_clear').style.display = 'block';
					$('expiration_label').addClass('error');
				}else{
					$('exp_month_error').innerHTML = '&nbsp;';
					$('expiration_label').removeClass('error');
				}
			}else{
				$('exp_month_error').innerHTML = '&nbsp;';
				$('expiration_label').removeClass('error');
			}		
		}else{
			$('exp_month_error').innerHTML = 'Please select expiration date.';
			$('exp_month_error').style.display = 'block';
			$('exp_month_error_clear').style.display = 'block';
			$('expiration_label').addClass('error');
		}	
		
		break;
	/*
	case 'byear':
		if (($('bMonth').value != 0 && $('bYear').value != 0) ||
				($('bMonth').value == 0 && $('bYear').value == 0)){
			if(isClickReg){
				if($('bMonth').value == 0 && $('bYear').value == 0){
					$('exp_month_error').innerHTML = 'Please select expiration date.';
					$('exp_month_error').style.display = 'block';
					$('exp_month_error_clear').style.display = 'block';
					$('expiration_label').addClass('error');
				}else{
					$('exp_month_error').innerHTML = '&nbsp;';
					$('expiration_label').removeClass('error');
				}
			}else{
				$('exp_month_error').innerHTML = '&nbsp;';
				$('expiration_label').removeClass('error');
			}
		}else{
			$('exp_month_error').innerHTML = 'Please select expiration date.';
			$('exp_month_error').style.display = 'block';
			$('exp_month_error_clear').style.display = 'block';
			$('expiration_label').addClass('error');
		}		
		break;
	*/
	case 'security_code':
		var tr = $('pin_label');	
		if(element.value == ''){
			setEmptyErrorAllign('pin_error',tr,2);
			break;
		}
		if(element.value.length < 3 || element.value.length > 4){
			$('pin_error').innerHTML = '&nbsp;&nbsp;Security code must be 3-4 characters long.';
			$('pin_error').style.display = 'block';
			tr.addClass('error');
			break;
		}
		var numericPattern = /^[0-9]*$/;
		if (!numericPattern.test($('pin').value)){
			$('pin_error').innerHTML = '&nbsp;&nbsp;Invalid security code. Security code must match either &nbsp;&nbsp;"NNN" or "NNNN" template, where "N" is a number.';//'Exchange is wrong.';
			$('pin_error').style.display = 'block';
			tr.addClass('error');
			break;
		}
		tr.removeClass('error');
		$('pin_error').style.display = 'none';
		break;

	case 'billing_address':
		var tr = $('baddress_label');	
		if(element.value == ''){
			setEmptyError('baddress_error',tr);
			if ($('bcity_error').style.display == 'block'){
				$('baddress_error').style.display = 'block';
				$('baddress_error_clear').style.display = 'block';
			}
			break;
		}
		var nameWithoutSpaces = element.value.replace(/ /g, '');		
		if (nameWithoutSpaces.length == 0){
			$('baddress_error').innerHTML = 'Wrong billing address.';
			$('baddress_error').style.display = 'block';
			$('baddress_error_clear').style.display = 'block';
			tr.addClass('error');
	    	break;
	    }
		tr.removeClass('error');
		$('baddress_error').style.display = 'none';
		$('baddress_error').innerHTML = '&nbsp;';
		$('baddress_error_clear').style.display = 'none';
		
		if ($('bcity_error').style.display == 'block'){
			$('baddress_error').style.display = 'block';
			$('baddress_error_clear').style.display = 'block';
		}
		break;
		 
	case 'billing_city':
		var tr = $('bcity_label');	
		if(element.value == ''){
			setEmptyErrorAllign('bcity_error',tr,3);
			break;
		}
		var nameWithoutSpaces = element.value.replace(/ /g, '');		
		if (nameWithoutSpaces.length == 0){
			$('bcity_error').innerHTML = 'Wrong billing city.';
			$('bcity_error').style.display = 'block';
			$('bcity_error_clear').style.display = 'block';
			tr.addClass('error');
	    	break;
	    }
		tr.removeClass('error');
		$('bcity_error').style.display = 'none';
		$('bcity_error_clear').style.display = 'none';
		break;
		 
	//case 'billing_state':
	case 'billing_postal':
		var tr = $('bpostal_label');	
		if(element.value == ''){
			setEmptyErrorAllign('bpostal_error',tr,3);
			break;
		}
		var postalPattern = /^([0-9]{5})(-[0-9]{4})?$/i;
		if (!postalPattern.test(element.value)){
			  $('bpostal_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid postal code. Postal code must match either &nbsp;&nbsp;&nbsp;"NNNNN" or "NNNNN-NNNN" template, where "N" is a &nbsp;&nbsp;&nbsp;number.';//'Wrong postal code.';
			  $('bpostal_error').style.display = 'block';
			  $('bpostal_error_clear').style.display = 'block';
			  tr.addClass('error');
		      break;
		    } 
		tr.removeClass('error');
		$('bpostal_error').style.display = 'none';
		$('bpostal_error_clear').style.display = 'none';
		break;
	default: alert(1);
	}
};
var checkUserNameRequest = new Request({method: 'post', url: 'providerregcontroller'});
var checkKeywordRequest = new Request({method: 'post', url: 'providerregcontroller'});

buildRegistrationErrors = function(){
	var errorsHtml = '';
	var errorCount = 0;
		
	if($('businessName').value == ''){
		errorCount += 1;
		$('bname_error').innerHTML = '&nbsp;Required field cannot be empty.';//'Business name is empty.';
		$('bname_error').style.display = 'block';
		$('bname_error_clear').style.display = 'block';
		$('bname_label').addClass('error');
	}else{
		var nameWithoutSpaces = $('businessName').value.replace(/ /g, '');
		
		if (nameWithoutSpaces.length == 0){
			$('bname_error').innerHTML = '&nbsp;Wrong business name.';
			$('bname_error').style.display = 'block';
			$('bname_error_clear').style.display = 'block';
			errorCount += 1;
			$('bname_label').addClass('error');
	    }else{
	    	$('bname_label').removeClass('error');
	    	$('bname_error').style.display = 'none';
	    	$('bname_error').innerHTML = '&nbsp;';
	    	$('bname_error_clear').style.display = 'none';
	    }
	}
	
	if($('areacode').value == ''){
		errorCount += 1;
		$('areacode_error').innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Required field for area code cannot be empty.';//'Area code is empty.';
		$('areacode_error').style.display = 'block';
		$('areacode_error_clear').style.display = 'block';
		$('bname_error').style.display = 'block';
		$('bname_error_clear').style.display = 'block';
		$('phone_label').addClass('error');
	}else{
		var areaPattern = /^[0-9]*$/;
		if (!areaPattern.test($('areacode').value)){
	    	errorCount += 1;
			$('areacode_error').innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invalid area code. Area code must match "NNN" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template, where "N" is a number.';//'Area code is wrong.';
			$('areacode_error').style.display = 'block';
			$('areacode_error_clear').style.display = 'block';
			$('bname_error').style.display = 'block';
			$('bname_error_clear').style.display = 'block';
			$('phone_label').addClass('error');
	    }else{
	    	$('phone_label').removeClass('error');
	    	$('areacode_error').style.display = 'none';
	    	$('areacode_error_clear').style.display = 'none';
		 }		
	}
	if($('exchange').value == ''){
		errorCount += 1;
		$('exchange_error').innerHTML = '&nbsp;Required field for exchange cannot be empty.';//'Exchange is empty.';
		$('exchange_error').style.display = 'block';
		$('exchange_error_clear').style.display = 'block';
		$('phone_label').addClass('error');
	}else{
		var areaPattern = /^[0-9]*$/;
		if ($('exchange').value.length != 3 || !areaPattern.test($('exchange').value)){
	    	errorCount += 1;
			$('exchange_error').innerHTML = '&nbsp;Invalid exchange. Exchange must match "NNN" template, &nbsp;where "N" is a number.';//'Exchange is wrong.';
			$('exchange_error').style.display = 'block';
			$('exchange_error_clear').style.display = 'block';
			$('phone_label').addClass('error');
	    }else{
	    	$('phone_label').removeClass('error');
			$('exchange_error').style.display = 'none';
			$('exchange_error_clear').style.display = 'none';
		 }		
	}
	if($('suffix').value == ''){
		errorCount += 1;
		$('line_error').innerHTML = '&nbsp;Required field for suffix cannot be empty.';//'Suffix is empty.';
		$('line_error').style.display = 'block';
		$('line_error_clear').style.display = 'block';
		$('phone_label').addClass('error');
	}else{
		var areaPattern = /^[0-9]*$/;
		if (!areaPattern.test($('suffix').value)){
	    	errorCount += 1;
			$('line_error').innerHTML = '&nbsp;Invalid suffix. Suffix must match "NNNN" template, where &nbsp;"N" is a number.';//'Suffix is wrong.';
			$('line_error').style.display = 'block';
			$('line_error_clear').style.display = 'block';
			$('phone_label').addClass('error');
	    }else{
	    	$('phone_label').removeClass('error');
	    	$('line_error').style.display = 'none';
	    	$('line_error_clear').style.display = 'none';
		 }		
	}
	
	if($('address').value == ''){
		errorCount += 1;
		$('address_error').innerHTML = 'Required field cannot be empty.';//'Address is empty.';
		$('address_error').style.display = 'block';
		$('address_error_clear').style.display = 'block';
		$('address_label').addClass('error');
	}else{
		var nameWithoutSpaces = $('address').value.replace(/ /g, '');
		//if (!namePattern.test(nameWithoutSpaces)){
		if (nameWithoutSpaces.length == 0){
			$('address_error').innerHTML = 'Wrong address.';
			$('address_error').style.display = 'block';
			$('address_error_clear').style.display = 'block';
			errorCount += 1;
			$('address_label').addClass('error');
	    }else{
	    	$('address_label').removeClass('error');
	    	$('address_error').style.display = 'none';
	    	$('address_error').innerHTML = '&nbsp;';
	    	$('address_error_clear').style.display = 'none';
	    }
	}
	if($('city').value == ''){
		errorCount += 1;
		$('city_error').innerHTML = '&nbsp;&nbsp;&nbsp;Required field cannot be empty.';//'City is empty.';
		$('city_error').style.display = 'block';
		$('city_error_clear').style.display = 'block';
		$('address_error').style.display = 'block';
		$('address_error_clear').style.display = 'block';
		$('city_label').addClass('error');
	}else{
		var nameWithoutSpaces = $('city').value.replace(/ /g, '');		
		if (nameWithoutSpaces.length == 0){
			$('city_error').innerHTML = 'Wrong city.';
			$('city_error').style.display = 'block';
			$('city_error_clear').style.display = 'block';
			$('address_error').style.display = 'block';
			$('address_error_clear').style.display = 'block';
			errorCount += 1;
			$('city_label').addClass('error');
	    }else{
	    	$('city_label').removeClass('error');
	    	$('city_error').style.display = 'none';
	    	$('city_error_clear').style.display = 'none';
	    }
	}
	//state
	if($('postalCode').value == ''){
		errorCount += 1;
		$('postal_error').innerHTML = '&nbsp;&nbsp;&nbsp;Required field cannot be empty.';//'Postal code is empty.';
		$('postal_error').style.display = 'block';
		$('postal_error_clear').style.display = 'block';
		$('postal_label').addClass('error');
	}else{
		var postalPattern = /^([0-9]{5})(-[0-9]{4})?$/i;
		if (!postalPattern.test($('postalCode').value)){
		    	errorCount += 1;
				$('postal_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid postal code. Postal code must match either &nbsp;&nbsp;&nbsp;"NNNNN" or "NNNNN-NNNN" template, where "N" is a &nbsp;&nbsp;&nbsp;number.';//'Wrong postal code.';
				$('postal_error').style.display = 'block';
				$('postal_error_clear').style.display = 'block';
				$('state_error').style.display = 'block';
				$('state_error_clear').style.display = 'block';
				$('postal_label').addClass('error');
		    }else{
		    	$('postal_label').removeClass('error');
		    	$('postal_error').style.display = 'none';
		    	$('postal_error_clear').style.display = 'none';
		    }
	}
	//promo!!!???
	
	if($('firstName').value == ''){
		errorCount += 1;
		$('first_name_error').innerHTML = 'Required field cannot be empty.';//'First name is empty.';
		$('first_name_error').style.display = 'block';
		$('first_name_error_clear').style.display = 'block';
		$('first_name_label').addClass('error');
	}else{
		var alphabeticalRegExp = /^[a-zA-Z]+$/;
		var nameWithoutSpaces = $('firstName').value.replace(/ /g, '');		
		if (!alphabeticalRegExp.test(nameWithoutSpaces)){
			$('first_name_error').innerHTML = 'Invalid first name. First name must start with a letter, contain alphabetic characters and can contain spaces.';//'Wrong first name.';
			$('first_name_error').style.display = 'block';
			$('first_name_error_clear').style.display = 'block';
			errorCount += 1;
			$('first_name_label').addClass('error');
	    }else{
	    	$('first_name_label').removeClass('error');
	    	$('first_name_error').style.display = 'none';
	    	$('first_name_error').innerHTML = '&nbsp;';
	    	$('first_name_error_clear').style.display = 'none';
	    }
	}
	
	if($('lastName').value == ''){
		errorCount += 1;
		$('last_name_error').innerHTML = '&nbsp;&nbsp;&nbsp;Required field cannot be empty.';//'Last name is empty.';
		$('last_name_error').style.display = 'block';
		$('last_name_error_clear').style.display = 'block';
		$('first_name_error').style.display = 'block';
		$('first_name_error_clear').style.display = 'block';
		$('last_name_label').addClass('error');
	}else{
		var alphabeticalRegExp = /^[a-zA-Z]+$/;
		var nameWithoutSpaces = $('lastName').value.replace(/ /g, '');		
		if (!alphabeticalRegExp.test(nameWithoutSpaces)){
			$('last_name_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid last name. Last name must start with a letter, &nbsp;&nbsp;&nbsp;contain alphabetic characters and can contain spaces.';//'Wrong last name.';
			$('last_name_error').style.display = 'block';
			$('last_name_error_clear').style.display = 'block';
			$('first_name_error').style.display = 'block';
			$('first_name_error_clear').style.display = 'block';
			errorCount += 1;
			$('last_name_label').addClass('error');
	    }else{
	    	$('last_name_label').removeClass('error');
	    	$('last_name_error').style.display = 'none';
	    	$('last_name_error_clear').style.display = 'none';
	    }
	}
	if($('email1').value == ''){
		errorCount += 1;
		$('email1_error').innerHTML = 'Required field cannot be empty.';//'Email is empty.';
		$('email1_error').style.display = 'block';
		$('email1_error_clear').style.display = 'block';
		$('email1_label').addClass('error');
	}else{
		var emailPattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		if (!emailPattern.test($('email1').value)){
			$('email1_error').innerHTML = 'Invalid email address. Email address must match "username@hostname" template, e.g. "jblack@mail.com".';//'Wrong email.';
			$('email1_error').style.display = 'block';
			$('email1_error_clear').style.display = 'block';
			errorCount += 1;
			$('email1_label').addClass('error');
	    }else{
	    	$('email1_label').removeClass('error');
	    	$('email1_error').style.display = 'none';
	    	$('email1_error').innerHTML = '&nbsp;';
	    	$('email1_error_clear').style.display = 'none';
	    }
	}
	if($('email2').value == ''){
		errorCount += 1;
		$('email2_error').innerHTML = '&nbsp;&nbsp;&nbsp;Required field cannot be empty.';//'Re-type email is empty.';
		$('email2_error').style.display = 'block';
		$('email2_error_clear').style.display = 'block'
		$('email1_error').style.display = 'block';
		$('email1_error_clear').style.display = 'block';
		$('email2_label').addClass('error');
	}else{
		var emailPattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		if (!emailPattern.test($('email2').value)){
			$('email2_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid email address. Email address must match &nbsp;&nbsp;&nbsp;"username@hostname" template, e.g. &nbsp;&nbsp;&nbsp;"jblack@mail.com".';//'Wrong re-type email.';
			$('email2_error').style.display = 'block';
			$('email2_error_clear').style.display = 'block';
			$('email1_error').style.display = 'block';
			$('email1_error_clear').style.display = 'block';
			errorCount += 1;
			$('email2_label').addClass('error');
	    }else{
	    	$('email2_label').removeClass('error');
	    	$('email2_error').style.display = 'none';
	    	$('email2_error_clear').style.display = 'none';
	    }
	}
	if($('email2').value != $('email1').value /*&& $('email1').value != '' && $('email2').value != ''*/){
    	errorCount += 1;
    	$('email1_label').addClass('error');
    	$('email2_label').addClass('error');
		$('different_emails_error').innerHTML = 'Email addresses do not match.';//'Emails are different.';
		$('different_emails_error').style.display = 'block';
		$('different_emails_error_clear').style.display = 'block';
	}else{
		$('different_emails_error').style.display = 'none';
		$('different_emails_error_clear').style.display = 'none';
	}
	
	if($('user_name').value == ''){
		errorCount += 1;
		$('username_error').innerHTML = 'Required field cannot be empty.';//'Username is empty.';
		$('username_error').style.display = 'block';
		$('username_label').addClass('error');
	}else if($('user_name').value.length < 6 || $('user_name').value.length > 12 ){
		errorCount += 1;
		$('username_error').innerHTML = 'Username must be 6-12 characters long.';
		$('username_error').style.display = 'block';
		$('username_label').addClass('error');
	}else{
		var alphabeticalRegExp = /^[a-zA-Z]*$/;
		var alphaNumeric = /^[a-zA-Z0-9]*$/;
		var firstChar = $('user_name').value.substring(0,1);
		if(!alphabeticalRegExp.test(firstChar)) {
			errorCount += 1;
			$('username_error').innerHTML = 'Invalid username. Username must start with a letter and must contain alphanumeric characters.';//'Username can\'t start with a number or non alphabeticalcharacter.';
			$('username_error').style.display = 'block';
			$('username_label').addClass('error');
		}else if( -1 != $('user_name').value.search(' ') ){
			errorCount += 1;
			$('username_error').innerHTML = 'Invalid username. Username must start with a letter and must contain alphanumeric characters.';//'Username can\'t contain spaces.';
			$('username_error').style.display = 'block';
			$('username_label').addClass('error');
		}else if(!alphaNumeric.test($('user_name').value)) {
			errorCount += 1;
			$('username_error').innerHTML = 'Invalid username. Username must start with a letter and must contain alphanumeric characters.';//'Username can\'t contain non alphanumberic characters.';
			$('username_error').style.display = 'block';
			$('username_label').addClass('error');
	    }else{
	    	  var params = 'checkusername=1&username=' + $('user_name').value;  
		  	  checkUserNameRequest.send(params);
		  	  checkUserNameRequest.onSuccess = function(responseText, responseXML){
			  var response = eval('(' +  responseText + ')');
			  		if(response.res){
			  			$('username_exist').style.display = 'none';
			  			$('username_label').removeClass('error');
			  		}else{
			  			errorCount += 1;			  			
			  			$('username_exist').style.display = 'block';
			  			$('username_label').addClass('error');
			  		}
				};
		    }
	}
	
	if($('password1').value == ''){
		errorCount += 1;
		$('password1_error').innerHTML = 'Required field cannot be empty.';//'Password is empty.';
		$('password1_error').style.display = 'block';
		$('password1_error_clear').style.display = 'block';
		$('password1_label').addClass('error');
	}else if($('password1').value.length < 6 || $('password1').value.length > 12){
    	errorCount += 1;
		$('password1_error').innerHTML = 'Password must be 6-12 characters long.';
		$('password1_error').style.display = 'block';
		$('password1_error_clear').style.display = 'block';
		$('password1_label').addClass('error');
	}else{
		$('password1_label').removeClass('error');
		$('password1_error').style.display = 'none';
		$('password1_error').innerHTML = '&nbsp;';
		$('password1_error_clear').style.display = 'none';
	}
	
	if($('password2').value == ''){
		errorCount += 1;
		$('password2_error').innerHTML = '&nbsp;&nbsp;&nbsp;Required field cannot be empty.';//'Re-type password is empty.';
		$('password2_error').style.display = 'block';
		$('password2_error_clear').style.display = 'block';
		$('password1_error').style.display = 'block';
		$('password1_error_clear').style.display = 'block';
		$('password2_label').addClass('error');
	}else if($('password2').value.length < 6 || $('password1').value.length > 12){
    	errorCount += 1;
		$('password2_error').innerHTML = '&nbsp;&nbsp;&nbsp;Password must be 6-12 characters long.';//'Re-type password must be 6-12 characters long.';
		$('password2_error').style.display = 'block';
		$('password2_error_clear').style.display = 'block';
		$('password1_error').style.display = 'block';
		$('password1_error_clear').style.display = 'block';
		$('password2_label').addClass('error');
	}else{
		$('password2_label').removeClass('error');
		$('password2_error').style.display = 'none';
		$('password2_error_clear').style.display = 'none';
	}
	
	if($('password1').value != $('password2').value){
    	errorCount += 1;
		$('password_different_error').innerHTML = 'Passwords do not match.';//'Passwords are different.';
		$('password_different_error').style.display = 'block';
		$('password_different_error_clear').style.display = 'block';
		$('password1_label').addClass('error');
		$('password2_label').addClass('error');
	}else{
		$('password_different_error').style.display = 'none';
	}
	
	if($('keyword').value == ''){
		errorCount += 1;
		$('keyword_error').innerHTML = 'Required field cannot be empty.';//'Keyword is empty.';
		$('keyword_error').style.display = 'block';
		//$('keyword_error_clear').style.display = 'block';
		$('keyword_div').addClass('error');
		$('keyword_label').style.color = '#E7001F';
	}else if($('keyword').value.length < 4){
		errorCount += 1;
		$('keyword_error').innerHTML = 'Keyword must be at least 4 characters long.';
		$('keyword_error').style.display = 'block';
		//$('keyword_error_clear').style.display = 'block';
		$('keyword_div').addClass('error');
		$('keyword_label').style.color = '#E7001F';
	}else{
		var alphabeticalRegExp = /^[a-zA-Z]*$/;
		var alphaNumeric = /^[a-zA-Z0-9]*$/;
		var firstChar = $('keyword').value.substring(0,1);
		if (!alphabeticalRegExp.test(firstChar)) {
			errorCount += 1;
			$('keyword_error').innerHTML = 'Invalid keyword. Keyword must start with a letter and must contain alphanumeric characters.';//'Keyword can\'t start with a number .';
			$('keyword_error').style.display = 'block';
			//$('keyword_error_clear').style.display = 'block';
			$('keyword_div').addClass('error');
			$('keyword_label').style.color = '#E7001F';
		}else if( -1 != $('keyword').value.search(' ') ){
			errorCount += 1;
			$('keyword_error').innerHTML = 'Invalid keyword. Keyword must start with a letter and must contain alphanumeric characters.';//'Keyword can\'t contain spaces.';
			$('keyword_error').style.display = 'block';
			//$('keyword_error_clear').style.display = 'block';
			$('keyword_div').addClass('error');
			$('keyword_label').style.color = '#E7001F';
		}else if(!alphaNumeric.test($('keyword').value)) {
			errorCount += 1;
			$('keyword_error').innerHTML = 'Invalid keyword. Keyword must start with a letter and must contain alphanumeric characters.';//'Keyword can only contain numbers and letters.';
			$('keyword_error').style.display = 'block';
			//$('keyword_error_clear').style.display = 'block';
			$('keyword_div').addClass('error');
			$('keyword_label').style.color = '#E7001F';
	    }else{
		    	var params = 'checkkeyword=1&keyword=' + $('keyword').value;  
		    	checkKeywordRequest.send(params);
		    	checkKeywordRequest.onSuccess = function(responseText, responseXML){
			  var response = eval('(' +  responseText + ')');
			  		if(response.res){
			  			$('keyword_div').removeClass('error');
			  			$('keyword_label').style.color = '#5D5D5D';
			  			$('keyword_exist').style.display = 'none';
			  		}else{
				    	errorCount += 1;				    	
				    	$('keyword_exist').style.display = 'block';
				    	$('keyword_div').addClass('error');
				    	$('keyword_label').style.color = '#E7001F';
			  		}
				};
		    }
	}
	
if($('billing_table').style.display != 'none'){
	
	if($('cardName').value == ''){
		errorCount += 1;
		$('cardName_error').innerHTML = 'Required field cannot be empty.';//'Card name is empty.';
		$('cardName_error').style.display = 'block';
		$('cardName_error_clear').style.display = 'block';
		$('cardName_label').addClass('error');
	}else{
		var alphabeticalRegExp = /^[a-zA-Z]+$/;
		var nameWithoutSpaces = $('cardName').value.replace(/ /g, '');
		if (!alphabeticalRegExp.test(nameWithoutSpaces)){
			$('cardName_error').innerHTML = 'Invalid name on the card. The name must start with a letter, contain alphabetic characters and can contain spaces.';//'Wrong card name.';
			$('cardName_error').style.display = 'block';
			$('cardName_error_clear').style.display = 'block';
			errorCount += 1;
			$('cardName_label').addClass('error');
	    }else{
	    	$('cardName_label').removeClass('error');
	    	$('cardName_error').style.display = 'none';
	    	$('cardName_error').innerHTML = '&nbsp;';
	    	$('cardName_error_clear').style.display = 'none';
	    }
	}
	
	if($('ccNumber').value == ''){
		errorCount += 1;
		$('ccNumber_error').innerHTML = '&nbsp;&nbsp;&nbsp;Required field cannot be empty.';//'CC Number is empty.';
		$('ccNumber_error').style.display = 'block';
		$('ccNumber_error_clear').style.display = 'block';
		$('cardName_error').style.display = 'block';
		$('cardName_error_clear').style.display = 'block';
		$('cardNumber_label').addClass('error');
	}else{
		var ccNumberPattern = /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})$/;
		if (!ccNumberPattern.test($('ccNumber').value)){
		    	errorCount += 1;
				$('ccNumber_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid credit card number.';//'Wrong CC number.';
				$('ccNumber_error').style.display = 'block';
				$('ccNumber_error_clear').style.display = 'block';
				$('cardName_error').style.display = 'block';
				$('cardName_error_clear').style.display = 'block';
				$('cardNumber_label').addClass('error');
		    }else{
				$('ccNumber_error').style.display = 'none';
				$('ccNumber_error_clear').style.display = 'none';
				$('cardNumber_label').removeClass('error');
		    }
	}
	
	if($('bMonth').value == 0 || $('bYear').value == 0){
		errorCount+=2;
		$('exp_month_error').innerHTML = 'Please select expiration date.';
		$('exp_month_error').style.display = 'block';
		$('exp_month_error_clear').style.display = 'block';
		$('expiration_label').addClass('error');
	}else{
		//$('exp_month_error').style.display = 'none';
		//$('exp_month_error_clear').style.display = 'none';
		$('exp_month_error').innerHTML = '&nbsp;';
		$('expiration_label').removeClass('error');
	}
	
	if($('pin').value == ''){
		errorCount += 1;
		$('pin_error').innerHTML = '&nbsp;&nbsp;Required field cannot be empty.';//'Security code is empty.';
		$('pin_error').style.display = 'block';
		$('pin_error_clear').style.display = 'block';
		$('pin_label').addClass('error');
	}else if($('pin').value.length < 3 || $('pin').value.length > 4){
		errorCount += 1;
		$('pin_error').innerHTML = '&nbsp;&nbsp;Security code must be 3-4 characters long.';
		$('pin_error').style.display = 'block';
		$('pin_error_clear').style.display = 'block';
		$('pin_label').addClass('error');
	}else{
		var numericPattern = /^[0-9]*$/;
		if (!numericPattern.test($('pin').value)){
	    	errorCount += 1;
			$('pin_error').innerHTML = '&nbsp;Invalid security code. Security code must match either &nbsp;&nbsp;"NNN" or "NNNN" template, where "N" is a number.';//Exchange is wrong.';
			$('pin_error').style.display = 'block';
			$('pin_error_clear').style.display = 'block';
			$('pin_label').addClass('error');
	    }else{
	    	$('pin_label').removeClass('error');
			$('pin_error').style.display = 'none';
			$('pin_error_clear').style.display = 'none';
		 }
	}
	
	/*!*/
	if($('baddress').value == ''){
		errorCount += 1;
		$('baddress_error').innerHTML = 'Required field cannot be empty.';//'Billing address is empty';
		$('baddress_error').style.display = 'block';
		$('baddress_error_clear').style.display = 'block';
		$('baddress_label').addClass('error');
	}else{
		var nameWithoutSpaces = $('baddress').value.replace(/ /g, '');		
		if (nameWithoutSpaces.length == 0){
			$('baddress_error').innerHTML = 'Wrong billing address.';
			$('baddress_error').style.display = 'block';
			$('baddress_error_clear').style.display = 'block';
			errorCount += 1;
			$('baddress_label').addClass('error');
	    }else{
	    	$('baddress_label').removeClass('error');
	    	$('baddress_error').style.display = 'none';
	    	$('baddress_error').innerHTML = '&nbsp;';
	    	$('baddress_error_clear').style.display = 'none';
	    }		
	}
	
	if($('bcity').value == ''){
		errorCount += 1;
		$('bcity_error').innerHTML = '&nbsp;&nbsp;&nbsp;Required field cannot be empty.';//'Billing city is empty';
		$('bcity_error').style.display = 'block';
		$('bcity_error_clear').style.display = 'block';
		$('baddress_error').style.display = 'block';
		$('baddress_error_clear').style.display = 'block';
		$('bcity_label').addClass('error');
	}else{
		var nameWithoutSpaces = $('bcity').value.replace(/ /g, '');		
		if (nameWithoutSpaces.length == 0){
			$('bcity_error').innerHTML = '&nbsp;&nbsp;&nbsp;Wrong billing city.';
			$('bcity_error').style.display = 'block';			
			$('bcity_error_clear').style.display = 'block';
			$('baddress_error').style.display = 'block';
			$('baddress_error_clear').style.display = 'block';
			errorCount += 1;
			$('bcity_label').addClass('error');
	    }else{
	    	$('bcity_label').removeClass('error');
	    	$('bcity_error').style.display = 'none';
	    	$('bcity_error_clear').style.display = 'none';
	    }
	}
	
	if($('bpostalCode').value == ''){
		errorCount += 1;
		$('bpostal_error').innerHTML = '&nbsp;&nbsp;&nbsp;Required field cannot be empty.';//'Billing postal code is empty.';
		$('bpostal_error').style.display = 'block';
		$('bpostal_error_clear').style.display = 'block';
		$('bstate_error').style.display = 'block';
		$('bstate_error_clear').style.display = 'block';
		$('bpostal_label').addClass('error');
	}else{
		var postalPattern = /^([0-9]{5})(-[0-9]{4})?$/i;
		if (!postalPattern.test($('bpostalCode').value)){
		    	errorCount += 1;
				$('bpostal_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid postal code. Postal code must match either &nbsp;&nbsp;&nbsp;"NNNNN" or "NNNNN-NNNN" template, where "N" is a &nbsp;&nbsp;&nbsp;number.';//'Wrong postal code.';
				$('bpostal_error').style.display = 'block';
				$('bpostal_error_clear').style.display = 'block';
				$('bstate_error').style.display = 'block';
				$('bstate_error_clear').style.display = 'block';
				$('bpostal_label').addClass('error');
		    }else{
		    	$('bpostal_label').removeClass('error');
		    	$('bpostal_error').style.display = 'none';
		    	$('bpostal_error').style.display = 'none';
		    	$('bpostal_error_clear').style.display = 'none';
		    }
	}
}
	
	if(!$('s.tos').checked){
    	errorCount += 1;
		$('tos_error').innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Please agree Terms and Conditions.';
		$('tos_error').style.display = 'block';
	}else{
		$('tos_error').style.display = 'none';
	}
	return errorCount;
};

checkProviderRegForm = function(){
	isClickReg = true;
	var errorCount = buildRegistrationErrors();
	if(errorCount > 0){		
		$('regerrors').innerHTML = 'There was an error creating your account. Please correct the red highlighted fields below.';
		$('regerrors').style.display = 'block';
		$('regerrors_clear').style.display = 'block';
		scroll(0,0);
		return;	
	}else{
		$('regerrors').style.display = 'none';
		$('regerrors_clear').style.display = 'none';
		$('regerrors').innerHTML = '';
	}
	var providerForm = $('providerregform');
	var params = 'register=1&' + providerForm.toQueryString();
		
		if($('cardName').disabled){
			 params += '&cardName=' + $('cardName').value;
		}
		if($('baddress').disabled){
			params += '&baddress=' + $('baddress').value;
		}
		if($('bcity').disabled){
			params += '&bcity=' + $('bcity').value;
		}
		if($('bstate').disabled){
			params += '&bstate=' + $('bstate').value;
		}
		if($('bpostalCode').disabled){
			params += '&bpostalCode=' + $('bpostalCode').value;
		}		 
		if ($('perMessage').checked){
			params += '&plan=1';			
		}
		if ($('unlimited').checked){
			params += '&plan=2';			
		}
		providerRegisterControllerRequest.send(params);
		providerRegisterControllerRequest.onSuccess = function(responseText, responseXML){
		 var response = eval('(' +  responseText + ')');
		  		if(response.res){
		  			window.location = 'provider_registration_success';
		  		}else{
		  			if(response.bname_error){
		  				$('bname_error').innerHTML = '&nbsp;Wrong business name.';
		  				$('bname_error').style.display = 'block';
		  				$('bname_error_clear').style.display = 'block';
		  				$('bname_label').addClass('error');
		  			}
		  			if(response.areacode_error){
		  				$('areacode_error').innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invalid area code. Area code must match "NNN" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template, where "N" is a number.';//'Wrong areacode.';
		  				$('areacode_error').style.display = 'block';
		  				$('areacode_error_clear').style.display = 'block';
		  				$('bname_error').style.display = 'block';
		  				$('bname_error_clear').style.display = 'block';
		  				$('phone_label').addClass('error');
		  			}
		  			if(response.exchange_error){
		  				$('exchange_error').innerHTML = '&nbsp;Invalid exchange. Exchange must match "NNN" template, &nbsp;where "N" is a number.';//'Wrong exchange.';
		  				$('exchange_error').style.display = 'block';
		  				$('exchange_error_clear').style.display = 'block';
		  				$('phone_label').addClass('error');
		  			}
		  			if(response.line_error){
		  				$('line_error').innerHTML = '&nbsp;Invalid suffix. Suffix must match "NNNN" template, where &nbsp;"N" is a number.';//'Wrong suffix.';
		  				$('line_error').style.display = 'block';
		  				$('line_error_clear').style.display = 'block';
		  				$('phone_label').addClass('error');
		  			}
		  			if(response.city_error){
		  				$('city_error').innerHTML = '&nbsp;&nbsp;&nbsp;Wrong city.';
		  				$('city_error').style.display = 'block';
		  				$('city_error_clear').style.display = 'block';
		  				$('address_error').style.display = 'block';
		  				$('address_error_clear').style.display = 'block';
		  				$('city_label').addClass('error');
		  			}
		  			if(response.email1_error){
		  				$('email1_error').innerHTML = 'Invalid email address. Email address must match "username@hostname" template, e.g. "jblack@mail.com".';//'Wrong email.';
		  				$('email1_error').style.display = 'block';
		  				$('email1_error_clear').style.display = 'block';
		  				$('email1_label').addClass('error');
		  			}
		  			if(response.email2_error){
		  				$('email2_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid email address. Email address must match &nbsp;&nbsp;&nbsp;"username@hostname" template, e.g. &nbsp;&nbsp;&nbsp;"jblack@mail.com".';//'Wrong re-type email.';
		  				$('email2_error').style.display = 'block';
		  				$('email2_error_clear').style.display = 'block';
		  				$('email1_error').style.display = 'block';
		  				$('email1_error_clear').style.display = 'block';
		  				$('email2_label').addClass('error');
		  			}
		  			if(response.first_name_error){
		  				$('first_name_error').innerHTML = 'Invalid first name. First name must start with a letter, contain alphabetic characters and can contain spaces.';//'Wrong first name.';
		  				$('first_name_error').style.display = 'block';
		  				$('first_name_error_clear').style.display = 'block';
		  				$('first_name_label').addClass('error');
		  			}
		  			if(response.last_name_error){
		  				$('last_name_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid last name. Last name must start with a letter, &nbsp;&nbsp;&nbsp;contain alphabetic characters and can contain spaces.';//'Wrong last name.';
		  				$('last_name_error').style.display = 'block';
		  				$('last_name_error_clear').style.display = 'block';
		  				$('first_name_error').style.display = 'block';
		  				$('first_name_error_clear').style.display = 'block';
		  				$('last_name_label').addClass('error');
		  			}
		  			if(response.password1_error){
		  				$('password1_error').innerHTML = 'Wrong password.';
		  				$('password1_error').style.display = 'block';
		  				$('password1_error_clear').style.display = 'block';
		  				$('password1_labe2').addClass('error');
		  			}
		  			if(response.password2_error){
		  				$('password2_error').innerHTML = '&nbsp;&nbsp;&nbsp;Wrong re-type password.';
		  				$('password2_error').style.display = 'block';
		  				$('password2_error_clear').style.display = 'block';	
		  				$('password1_error').style.display = 'block';
		  				$('password1_error_clear').style.display = 'block';
		  				$('password2_label').addClass('error');
		  			}
		  			if(response.postal_error){
		  				$('postal_error').innerHTML = '&nbsp;&nbsp;Invalid postal code. Postal code must match either &nbsp;&nbsp;&nbsp;"NNNNN" or "NNNNN-NNNN" template, where "N" is a &nbsp;&nbsp;&nbsp;number.';//'Wrong postal.';
		  				$('postal_error').style.display = 'block';
		  				$('postal_error_clear').style.display = 'block';
		  				$('state_error').style.display = 'block';
		  				$('state_error_clear').style.display = 'block';
		  				$('postal_label').addClass('error');
		  			}
		  			if(response.keyword_exist){
		  				$('keyword_exist').innerHTML = 'Keyword is exist.';
		  				$('keyword_exist').style.display = 'block';
		  				$('keyword_div').addClass('error');
		  				$('keyword_label').style.color = '#E7001F';
		  			}
		  			//!
		  			if(response.promo_exist){
		  				$('promo_not_exist').innerHTML = '<span class="error">This is not a valid code. <br /><span>Please enter a valid promo or referral code.</span></span>';
		  				$('promo_not_exist').style.display = 'block';
		  				$('promo_desc').style.display = 'none';
		  				$('promo_label').addClass('error');
		  			}
		  			if(response.username_error){
		  				$('username_error').innerHTML = 'Invalid username. Username must start with a letter and must contain alphanumeric characters.';//'Wrong username.';
		  				$('username_error').style.display = 'block';
		  				$('username_label').addClass('error');
		  			}
		  			if(response.username_exist){
		  				$('username_exist').style.display = 'block';
		  				$('username_label').addClass('error');
		  			}
		  			if(response.cardName_error){
		  				$('cardName_error').innerHTML = 'Invalid name on the card. The name must start with a letter, contain alphabetic characters and can contain spaces.';//'Wrong CC name.';
		  				$('cardName_error').style.display = 'block';
		  				$('cardName_error_clear').style.display = 'block';
		  				$('cardName_label').addClass('error');
		  			}
		  			if(response.ccNumber_error){
		  				$('ccNumber_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid credit card number.';//'Wrong CC number.';
		  				$('ccNumber_error').style.display = 'block';
		  				$('ccNumber_error_clear').style.display = 'block';
		  				$('cardName_error').style.display = 'block';
		  				$('cardName_error_clear').style.display = 'block';
		  				$('cardNumber_label').addClass('error');
		  			}
		  			if(response.exp_month_error){
		  				$('exp_month_error').innerHTML = 'Please select exp month.';
		  				$('exp_month_error').style.display = 'block';
		  				$('exp_month_error_clear').style.display = 'block';
		  				$('exp_month').parentNode.parentNode.childNodes[1].addClass('error');
		  			}
		  			if(response.exp_year_error){
		  				$('exp_month_error').innerHTML = 'Please select exp year.';
		  				$('exp_month_error').style.display = 'block';
		  				$('exp_month_error_clear').style.display = 'block';
		  				$('exp_month').parentNode.parentNode.childNodes[1].addClass('error');
		  			}
		  			if(response.bcity_error){
		  				$('bcity_error').innerHTML = '&nbsp;&nbsp;&nbsp;Wrong billing city.';
		  				$('bcity_error').style.display = 'block';
		  				$('bcity_error_clear').style.display = 'block';
		  				$('baddress_error').style.display = 'block';
		  				$('baddress_error_clear').style.display = 'block';
		  				$('bcity_label').addClass('error');
		  			}
		  			if(response.bpostal_error){
		  				$('bpostal_error').innerHTML = '&nbsp;&nbsp;&nbsp;Invalid postal code. Postal code must match either &nbsp;&nbsp;&nbsp;"NNNNN" or "NNNNN-NNNN" template, where "N" is a &nbsp;&nbsp;&nbsp;number.';//'Wrong billing postal.';
		  				$('bpostal_error').style.display = 'block';
		  				$('bpostal_error_clear').style.display = 'block';
		  				$('bstate_error').style.display = 'block';
		  				$('bstate_error_clear').style.display = 'block';
		  				$('bpostal_label').addClass('error');
		  			}
		  			if(response.pin_error){
		  				$('pin_error').innerHTML = '&nbsp;&nbsp;Invalid security code. Security code must match either &nbsp;&nbsp;"NNN" or "NNNN" template, where "N" is a number.';//'Wrong security code.';
		  				$('pin_error').style.display = 'block';
		  				$('pin_error_clear').style.display = 'block';
		  				$('pin_label').addClass('error');
		  			}
		  		}
			};
};

setBillAsBuissness = function(chckbox){
	
	if(chckbox.checked){
		$('baddress').value = $('address').value;
		$('bcity').value = $('city').value;
		$('bpostalCode').value = $('postalCode').value;
		$('bstate').value = $('state').value;		
		disableinputs($('BillingAddressSection'));		
				
		/*if ($('address_error').innerHTML != '&nbsp;' ){
			if($('baddress').value == ''){
				$('baddress_error').innerHTML = 'Required field cannot be empty.';//'Billing address is empty.';
			}else{
				$('baddress_error').innerHTML = 'Wrong billing address.';
			}
			$('baddress_error').style.display = 'block';
			$('baddress_error_clear').style.display = 'block';
			$('baddress_label').addClass('error');
		}else*/{
			$('baddress_label').removeClass('error');
	    	$('baddress_error').style.display = 'none';
	    	$('baddress_error').innerHTML = '&nbsp;';
	    	$('baddress_error_clear').style.display = 'none';
		}
				
		/*if ($('city_error').innerHTML != '&nbsp;' ){
			if($('bcity').value == ''){
				$('bcity_error').innerHTML = 'Required field cannot be empty.';//'Billing city is empty.';
			}else{
				$('bcity_error').innerHTML = 'Wrong billing city.';
			}
			$('baddress_error').style.display = 'block';
			$('baddress_error_clear').style.display = 'block';
			$('bcity_error').style.display = 'block';
			$('bcity_error_clear').style.display = 'block';
			$('bcity_label').addClass('error');
		}else*/{
			$('bcity_label').removeClass('error');
	    	$('bcity_error').style.display = 'none';
		}
				
		if ($('postal_error').style.display == 'block'){
			if($('bpostalCode').value ==''){
				$('bpostal_error').innerHTML = 'Required field cannot be empty.';//'Billing postal code is empty.';
			}else{
				$('bpostal_error').innerHTML = 'Invalid postal code. Postal code must match either &nbsp;&nbsp;&nbsp;"NNNNN" or "NNNNN-NNNN" template, where "N" is a &nbsp;&nbsp;&nbsp;number.';//'Wrong billing postal code.';
			}		
			$('bpostal_error').style.display = 'block';
			$('bpostal_error_clear').style.display = 'block';
			$('bpostal_label').addClass('error');
		}else{
			$('bpostal_label').removeClass('error');
	    	$('bpostal_error').style.display = 'none';
	    	$('bpostal_error_clear').style.display = 'none';
		}		
	}else{
		$('baddress').value = '';
		$('bcity').value = '';
		$('bpostalCode').value = '';
		//$('bstate').value = 'none';
		enableinputs($('BillingAddressSection'));
		setEmptyError('baddress_error', $('baddress_label'));
		setEmptyError('bcity_error', $('bcity_label'));
		setEmptyError('bpostal_error', $('bpostal_label'));
	}
};

setEmptyError = function(elementName, divElem){
	//var elementNameClear = elementName +'_clear';
	if(isClickReg){
		$(elementName).style.display = 'block';
		//$(elementNameClear).style.display = 'block';
		$(elementName).innerHTML = 'Required field cannot be empty.';
		$(divElem).addClass('error');
	}else{
		$(elementName).innerHTML = '&nbsp;';
		$(elementName).style.display = 'none';
		//$(elementNameClear).style.display = 'none';
		$(divElem).removeClass('error');
	}
};

setEmptyErrorAllign = function(elementName, divElem, allignNum){
	//var elementNameClear = elementName +'_clear';
	var allign = '';
	for(i=0;i<allignNum;i++)
		allign += '&nbsp;';
	
	if(isClickReg){
		$(elementName).style.display = 'block';
		//$(elementNameClear).style.display = 'block';
		$(elementName).innerHTML = allign + 'Required field cannot be empty.';
		$(divElem).addClass('error');
	}else{
		$(elementName).innerHTML = '&nbsp;';
		$(elementName).style.display = 'none';
		//$(elementNameClear).style.display = 'none';
		$(divElem).removeClass('error');
	}
};

disableAlert = function(el){
	if(el.checked){
		$('tos_error').style.display = 'none';
	}
}
/*Registration - end*/

