function checkNotNull(str) {
	try{
		var newstr = str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
		if (newstr != null && newstr != ''){
			return true;
		}
		else
		{
			return false;
		}
	}
	catch(err){
		ExceptionHandler(err, arguments.callee.toString());
		return false;
	}
}
function output_error(obj_id, message){
	try{
		document.getElementById(obj_id).innerHTML = message;
	}catch(err){
		ExceptionHandler(err, arguments.callee.toString(), obj_id);
	}
}
function ExceptionHandler(err, ownName, parameter){
	//var ownName = arguments.callee.toString();
	ownName = ownName.substr('function '.length);        // trim off "function "
	ownName = ownName.substr(0, ownName.indexOf(')')+1);        // trim off everything after the function name
													  
	alert('Error Name: ' + err.name + '\nError Message: ' + err.message + '\nParameter: ' + parameter + '\nLine Number: ' + err.lineNumber + '\nCalleeInfo: ' + ownName);
	return false;
}
function check_contact_form(){
	try{
			if(!checkNotNull(document.getElementById('name').value))
		{
			resetContact();		

			document.getElementById('name').className = 'register-input1';
			document.getElementById('name').style.border = '1px solid red';
			document.getElementById('name').focus();
			output_error('contact_error', 'Please input Your Name.');
			return false;
		}
		if(!checkNotNull(document.getElementById('email').value))
		{
			resetContact();		

			document.getElementById('email').className = 'register-input1';
			document.getElementById('email').style.border = '1px solid red';
			document.getElementById('email').focus();
			output_error('contact_error', 'Please input Email.');
			return false;
		}
		if(!checkNotNull(document.getElementById('phone').value))
		{
			resetContact();		

			document.getElementById('phone').className = 'register-input1';
			document.getElementById('phone').style.border = '1px solid red';
			document.getElementById('phone').focus();
			output_error('contact_error', 'Please input Phone.');
			return false;
		}

	
				if(!checkNotNull(document.getElementById('captcha_code').value))
		{
			resetContact();		

			document.getElementById('captcha_code').className = 'register-input1';
			document.getElementById('captcha_code').style.border = '1px solid red';
			document.getElementById('captcha_code').focus();
			output_error('contact_error', 'Please input Security Code.');
			return false;
		}
		return true;
	}
	catch(err){
		ExceptionHandler(err, arguments.callee.toString());
		return false;
	}
}
	function resetContact(){
	document.getElementById('name').style.border = '1px solid #759871';
	document.getElementById('phone').style.border = '1px solid #759871';
	document.getElementById('email').style.border = '1px solid #759871';
	document.getElementById('captcha_code').style.border = '1px solid #759871';
	}
	
	
	function check_newsletter_form(){
	try{
		if(!checkNotNull(document.getElementById('newsletter_name').value))
		{
			resetNewsletter();		

			document.getElementById('newsletter_name').className = 'register-input1';
			document.getElementById('newsletter_name').style.border = '1px solid red';
			document.getElementById('newsletter_name').focus();
			output_error('newsletter_error', 'Please input Your Name.');
			return false;
		}
		if(!checkNotNull(document.getElementById('newsletter_email').value))
		{
			resetNewsletter();		

			document.getElementById('newsletter_email').className = 'register-input1';
			document.getElementById('newsletter_email').style.border = '1px solid red';
			document.getElementById('newsletter_email').focus();
			output_error('newsletter_error', 'Please input Email.');
			return false;
		}


	
				if(!checkNotNull(document.getElementById('captcha_code').value))
		{
			resetNewsletter();		

			document.getElementById('captcha_code').className = 'register-input1';
			document.getElementById('captcha_code').style.border = '1px solid red';
			document.getElementById('captcha_code').focus();
			output_error('newsletter_error', 'Please input Security Code.');
			return false;
		}
		return true;
	}
	catch(err){
		ExceptionHandler(err, arguments.callee.toString());
		return false;
	}
}
	function resetNewsletter(){
	document.getElementById('newsletter_name').style.border = '1px solid #759871';
	document.getElementById('newsletter_email').style.border = '1px solid #759871';
	document.getElementById('captcha_code').style.border = '1px solid #759871';
	}
	
	
	function check_register_form(){
	try{
		 
			if(!checkNotNull(document.getElementById('member_first_name').value))
		{
			resetRegister();		

			document.getElementById('member_first_name').className = 'register-input1';
			document.getElementById('member_first_name').style.border = '1px solid red';
			document.getElementById('member_first_name').focus();
			output_error('register_error', 'Please input First Name.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_last_name').value))
		{
			resetRegister();		

			document.getElementById('member_last_name').className = 'register-input1';
			document.getElementById('member_last_name').style.border = '1px solid red';
			document.getElementById('member_last_name').focus();
			output_error('register_error', 'Please input Last Name.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_phone').value))
		{
			resetRegister();		

			document.getElementById('member_phone').className = 'register-input1';
			document.getElementById('member_phone').style.border = '1px solid red';
			document.getElementById('member_phone').focus();
			output_error('register_error', 'Please input Phone.');
			return false;
		}


		if(!checkNotNull(document.getElementById('member_email').value))
		{
			resetRegister();		

			document.getElementById('member_email').className = 'register-input1';
			document.getElementById('member_email').style.border = '1px solid red';
			document.getElementById('member_email').focus();
			output_error('register_error', 'Please input Email.');
			return false;
		}
		
		  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
          var member_email = document.getElementById('member_email').value;
          if(reg.test(member_email) == false) {
          output_error('register_error', 'Please input valid Email.');
          return false;
        }
		
		if(!checkNotNull(document.getElementById('member_email2').value))
		{
			resetRegister();		

			document.getElementById('member_email2').className = 'register-input1';
			document.getElementById('member_email2').style.border = '1px solid red';
			document.getElementById('member_email2').focus();
			output_error('register_error', 'Please input Email Confirmation.');
			return false;
		}
		if((document.getElementById('member_email').value!=document.getElementById('member_email2').value))
		{
			resetRegister();		
            document.getElementById('member_email').className = 'register-input1';
			document.getElementById('member_email').style.border = '1px solid red';
			document.getElementById('member_email2').className = 'register-input1';
			document.getElementById('member_email2').style.border = '1px solid red';
			document.getElementById('member_email2').focus();
			output_error('register_error', 'Your email entered do not match.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_add1').value))
		{
			resetRegister();		

			document.getElementById('member_add1').className = 'register-input1';
			document.getElementById('member_add1').style.border = '1px solid red';
			document.getElementById('member_add1').focus();
			output_error('register_error', 'Please input Street Address1.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_city').value))
		{
			resetRegister();		

			document.getElementById('member_city').className = 'register-input1';
			document.getElementById('member_city').style.border = '1px solid red';
			document.getElementById('member_city').focus();
			output_error('register_error', 'Please input City.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_postal').value))
		{
			resetRegister();		

			document.getElementById('member_postal').className = 'register-input1';
			document.getElementById('member_postal').style.border = '1px solid red';
			document.getElementById('member_postal').focus();
			output_error('register_error', 'Please input Postal Code.');
			return false;
		}
		
		 if(!checkNotNull(document.getElementById('member_province').value))
		{
			resetRegister();		

			document.getElementById('member_postal').className = 'register-input1';
			document.getElementById('member_province').style.border = '1px solid red';
			document.getElementById('member_province').focus();
			output_error('register_error', 'Please input Province.');
			return false;
		}
	  
	   
      
		if(!checkNotNull(document.getElementById('member_login').value))
		{
			resetRegister();		

			document.getElementById('member_login').className = 'register-input1';
			document.getElementById('member_login').style.border = '1px solid red';
			document.getElementById('member_login').focus();
			output_error('register_error', 'Please input User Name.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_password').value))
		{
			resetRegister();		

			document.getElementById('member_password').className = 'register-input1';
			document.getElementById('member_password').style.border = '1px solid red';
			document.getElementById('member_password').focus();
			output_error('register_error', 'Please input Password.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_password2').value))
		{
			resetRegister();		

			document.getElementById('member_password2').className = 'register-input1';
			document.getElementById('member_password2').style.border = '1px solid red';
			document.getElementById('member_password2').focus();
			output_error('register_error', 'Please input Confirm Password.');
			return false;
		}
		if((document.getElementById('member_password2').value!=document.getElementById('member_password').value))
		{
			resetRegister();		
            document.getElementById('member_password').className = 'register-input1';
			document.getElementById('member_password').style.border = '1px solid red';
			document.getElementById('member_password2').className = 'register-input1';
			document.getElementById('member_password2').style.border = '1px solid red';
			document.getElementById('member_password2').focus();
			output_error('register_error', 'Your password do not match.');
			return false;
		}
		 var read_privacy = document.getElementById('read_privacy').checked;
		  if(!read_privacy)
	{
		resetRegister();
		document.getElementById('read_privacy').style.border = '1px solid red';
	   document.getElementById('read_privacy').focus();
	   output_error('register_error', 'You must check the checkbox after reading the Privacy & Terms of Use before continuing.');
	   return false;
	}
		if(!checkNotNull(document.getElementById('captcha_code').value))
		{
			resetRegister();		

			document.getElementById('captcha_code').className = 'register-input1';
			document.getElementById('captcha_code').style.border = '1px solid red';
			document.getElementById('captcha_code').focus();
			output_error('register_error', 'Please input Security Code.');
			return false;
		}
		
		return true;
	}
	catch(err){
		ExceptionHandler(err, arguments.callee.toString());
		return false;
	}
}

function resetRegister(){
	document.getElementById('member_first_name').style.border = '1px solid #759871';
	document.getElementById('member_last_name').style.border = '1px solid #759871';
	document.getElementById('member_phone').style.border = '1px solid #759871';
	document.getElementById('member_email').style.border = '1px solid #759871';
	document.getElementById('member_email2').style.border = '1px solid #759871';
    document.getElementById('member_add1').style.border = '1px solid #759871';
	document.getElementById('member_province').style.border = '1px solid #759871';
	document.getElementById('member_city').style.border = '1px solid #759871';
	document.getElementById('member_postal').style.border = '1px solid #759871';
	document.getElementById('member_login').style.border = '1px solid #759871';
	document.getElementById('member_password').style.border = '1px solid #759871';
	document.getElementById('member_password2').style.border = '1px solid #759871';
	document.getElementById('captcha_code').style.border = '1px solid #759871';
	}
	
	
	
	
	function check_card_info(){
	try{
		/*
		 var read_privacy = document.getElementById('read_privacy').checked;
		  if(!read_privacy)
	{
		resetCard();
		document.getElementById('read_privacy').style.border = '1px solid red';
	   document.getElementById('read_privacy').focus();
	   output_error('card_error', 'You must check the checkbox after reading the Privacy & Terms of Use before continuing.');
	   return false;
	}
	*/
        if(!checkNotNull(document.getElementById('member_cardname').value))
		{
			resetCard();		

			document.getElementById('member_cardname').className = 'register-input1';
			document.getElementById('member_cardname').style.border = '1px solid red';
			document.getElementById('member_cardname').focus();
			output_error('card_error', 'Please input Name on Credit Card.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_cardnum').value))
		{
			resetCard();		

			document.getElementById('member_cardnum').className = 'register-input1';
			document.getElementById('member_cardnum').style.border = '1px solid red';
			document.getElementById('member_cardnum').focus();
			output_error('card_error', 'Please input Credit Card Number.');
			return false;
		}
		
		var cardtype = document.getElementsByName('member[member_cardtype]');
		 var i,n=0;
		  for(i=0;i<cardtype.length;i++)
		  if(cardtype[i].checked){n++;}
		  if (n<1){
          resetCard();		
			output_error('card_error', 'Please choose Credit Card Type.');
			return false;
		}
		
		if(!checkNotNull(document.getElementById('member_cvv').value))
		{
			resetCard();		

			document.getElementById('member_cvv').className = 'register-input1';
			document.getElementById('member_cvv').style.border = '1px solid red';
			document.getElementById('member_cvv').focus();
			output_error('card_error', 'Please input CVV.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_expmonth').value))
		{
			resetCard();		

			document.getElementById('member_expmonth').className = '';
			document.getElementById('member_expmonth').style.border = '1px solid red';
			document.getElementById('member_expmonth').focus();
			output_error('card_error', 'Please input Expiration Date.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_expyear').value))
		{
			resetCard();		

			document.getElementById('member_expyear').className = '';
			document.getElementById('member_expyear').style.border = '1px solid red';
			document.getElementById('member_expyear').focus();
			output_error('card_error', 'Please input Expiration Date.');
			return false;
		}

		
		return true;
	}
	catch(err){
		ExceptionHandler(err, arguments.callee.toString());
		return false;
	}
}
function resetCard(){
	document.getElementById('member_cardname').style.border = '1px solid #759871';
	document.getElementById('member_cardnum').style.border = '1px solid #759871';
	document.getElementById('member_cvv').style.border = '1px solid #759871';
	document.getElementById('member_expmonth').style.border = '1px solid #759871';
	document.getElementById('member_expyear').style.border = '1px solid #759871';
	}
	
	
	function check_login_form(){
	try{
			if(!checkNotNull(document.getElementById('username').value))
		{
			resetLogin();		

			document.getElementById('username').className = 'right-login-input';
			document.getElementById('username').style.border = '1px solid red';
			document.getElementById('username').focus();
			output_error('login_error', 'Please input Username.');
			return false;
		}
		if(!checkNotNull(document.getElementById('password').value))
		{
			resetLogin();		

			document.getElementById('password').className = 'right-login-input';
			document.getElementById('password').style.border = '1px solid red';
			document.getElementById('password').focus();
			output_error('login_error', 'Please input Password.');
			return false;
		}
		return true;
	}
	catch(err){
		ExceptionHandler(err, arguments.callee.toString());
		return false;
	}
}
function resetLogin(){
	document.getElementById('username').style.border = '1px solid #759871';
	document.getElementById('password').style.border = '1px solid #759871';
	}
	function check_account_form(){
	try{
		 
			if(!checkNotNull(document.getElementById('member_first_name').value))
		{
			resetAccount();		

			document.getElementById('member_first_name').className = 'register-input1';
			document.getElementById('member_first_name').style.border = '1px solid red';
			document.getElementById('member_first_name').focus();
			output_error('account_error', 'Please input First Name.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_last_name').value))
		{
			resetAccount();		

			document.getElementById('member_last_name').className = 'register-input1';
			document.getElementById('member_last_name').style.border = '1px solid red';
			document.getElementById('member_last_name').focus();
			output_error('account_error', 'Please input Last Name.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_phone').value))
		{
			resetAccount();		

			document.getElementById('member_phone').className = 'register-input1';
			document.getElementById('member_phone').style.border = '1px solid red';
			document.getElementById('member_phone').focus();
			output_error('account_error', 'Please input Phone.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_email').value))
		{
			resetAccount();		

			document.getElementById('member_email').className = 'register-input1';
			document.getElementById('member_email').style.border = '1px solid red';
			document.getElementById('member_email').focus();
			output_error('account_error', 'Please input Email.');
			return false;
		}


		if(!checkNotNull(document.getElementById('member_add1').value))
		{
			resetAccount();		

			document.getElementById('member_add1').className = 'register-input1';
			document.getElementById('member_add1').style.border = '1px solid red';
			document.getElementById('member_add1').focus();
			output_error('account_error', 'Please input Street Address1.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_city').value))
		{
			resetAccount();		

			document.getElementById('member_city').className = 'register-input1';
			document.getElementById('member_city').style.border = '1px solid red';
			document.getElementById('member_city').focus();
			output_error('account_error', 'Please input City.');
			return false;
		}
		if(!checkNotNull(document.getElementById('member_postal').value))
		{
			resetAccount();		

			document.getElementById('member_postal').className = 'register-input1';
			document.getElementById('member_postal').style.border = '1px solid red';
			document.getElementById('member_postal').focus();
			output_error('account_error', 'Please input Postal Code.');
			return false;
		}
		
		 if(!checkNotNull(document.getElementById('member_province').value))
		{
			resetAccount();		

			document.getElementById('member_postal').className = 'register-input1';
			document.getElementById('member_province').style.border = '1px solid red';
			document.getElementById('member_province').focus();
			output_error('account_error', 'Please input Province.');
			return false;
		}
	  
	   
      
		
		if(!checkNotNull(document.getElementById('member_password').value))
		{
			resetAccount();		

			document.getElementById('member_password').className = 'register-input1';
			document.getElementById('member_password').style.border = '1px solid red';
			document.getElementById('member_password').focus();
			output_error('account_error', 'Please input Password.');
			return false;
		}
		
		
		return true;
	}
	catch(err){
		ExceptionHandler(err, arguments.callee.toString());
		return false;
	}
}

function resetAccount(){
	document.getElementById('member_first_name').style.border = '1px solid #759871';
	document.getElementById('member_last_name').style.border = '1px solid #759871';
	document.getElementById('member_phone').style.border = '1px solid #759871';
	document.getElementById('member_email').style.border = '1px solid #759871';
    document.getElementById('member_add1').style.border = '1px solid #759871';
	document.getElementById('member_province').style.border = '1px solid #759871';
	document.getElementById('member_city').style.border = '1px solid #759871';
	document.getElementById('member_postal').style.border = '1px solid #759871';
	document.getElementById('member_password').style.border = '1px solid #759871';

	}
	
	function check_order_form(){
	try{
		var i,n1=0;
		var service_type = document.getElementsByName('service_type');
		for(i=0;i<service_type.length;i++)
		  if(service_type[i].checked){n1++;}
		  if (n1<1){
		output_error('order_error', 'You must choose the service.');
		return false;
		}
		
	return true;
	}
	catch(err){
		ExceptionHandler(err, arguments.callee.toString());
		return false;
	}
}


function check_service_info(){
	try{
		 var read_privacy = document.getElementById('read_privacy').checked;
		  if(!read_privacy)
	{
		resetService();
	   document.getElementById('read_privacy').style.border = '1px solid red';
	   document.getElementById('read_privacy').focus();
	   output_error('card_error', 'You must check the checkbox after reading the Privacy & Terms of Use before continuing.');
	   return false;
	}
        if(!checkNotNull(document.getElementById('service_cardname').value))
		{
			resetService();		

			document.getElementById('service_cardname').className = 'register-input1';
			document.getElementById('service_cardname').style.border = '1px solid red';
			document.getElementById('service_cardname').focus();
			output_error('card_error', 'Please input Name on Credit Card.');
			return false;
		}
		if(!checkNotNull(document.getElementById('service_cardnum').value))
		{
			resetService();		

			document.getElementById('service_cardnum').className = 'register-input1';
			document.getElementById('service_cardnum').style.border = '1px solid red';
			document.getElementById('service_cardnum').focus();
			output_error('card_error', 'Please input Credit Card Number.');
			return false;
		}
		
		var cardtype = document.getElementsByName('service[service_cardtype]');
		 var i,n=0;
		  for(i=0;i<cardtype.length;i++)
		  if(cardtype[i].checked){n++;}
		  if (n<1){
          resetService();		
			output_error('card_error', 'Please choose Credit Card Type.');
			return false;
		}
		
		if(!checkNotNull(document.getElementById('service_cvv').value))
		{
			resetService();		

			document.getElementById('service_cvv').className = 'register-input1';
			document.getElementById('service_cvv').style.border = '1px solid red';
			document.getElementById('service_cvv').focus();
			output_error('card_error', 'Please input CVV.');
			return false;
		}
		if(!checkNotNull(document.getElementById('service_expmonth').value))
		{
			resetService();		

			document.getElementById('service_expmonth').className = '';
			document.getElementById('service_expmonth').style.border = '1px solid red';
			document.getElementById('service_expmonth').focus();
			output_error('card_error', 'Please input Expiration Date.');
			return false;
		}
		if(!checkNotNull(document.getElementById('service_expyear').value))
		{
			resetService();		

			document.getElementById('service_expyear').className = '';
			document.getElementById('service_expyear').style.border = '1px solid red';
			document.getElementById('service_expyear').focus();
			output_error('card_error', 'Please input Expiration Date.');
			return false;
		}

		
		return true;
	}
	catch(err){
		ExceptionHandler(err, arguments.callee.toString());
		return false;
	}
}
function resetService(){
	document.getElementById('service_cardname').style.border = '1px solid #759871';
	document.getElementById('service_cardnum').style.border = '1px solid #759871';
	document.getElementById('service_cvv').style.border = '1px solid #759871';
	document.getElementById('service_expmonth').style.border = '1px solid #759871';
	document.getElementById('service_expyear').style.border = '1px solid #759871';
	}
	


