/*
 *   File: user_manager.js
 *
 */

RE_NAME     = new RegExp(/[^A-Z^a-z^ ^\.\^]$/);
RE_EMAIL    = new RegExp(/^[A-Za-z0-9](([_|\.|\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([_|\.|\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/);
RE_USERNAME = new RegExp(/^[a-z0-9\_]+$/);
RE_DECIMAL  = new RegExp(/^[0-9]{1,8}([\.]{1}[0-9]{1,2})?$/);
//RE_NUMBER   = new RegExp(/^[0-9]+$/);
RE_NUMBER   = new RegExp(/^[a-z0-9]+$/);
RE_PHONE    = new RegExp(/^((\d\d\d)|(\(\d\d\d\)))?\s*[\.-]?\s*(\d\d\d)\s*[\.-]?\s*(\d\d\d\d)$/);
RE_ZIP      = new RegExp(/^[0-9]{5}(([\-\ ])?[0-9]{4})?$/);

function setupForm(frm)
{
   with (frm)
   {
      setRequiredField(first_name,   'textbox',   'first_name');
      setRequiredField(last_name,    'textbox',   'last_name');
      setRequiredField(email,        'textbox',   'email');  
	  setRequiredField(address,      'textbox',  'address');  
	  setRequiredField(state,        'textbox',   'state');  
	  
      setRequiredField(city, 		 'textbox',   'city');      
      setRequiredField(postal_code,  'textbox',   'postal_code');
      setRequiredField(country,  	 'textbox',   'country');
	  setRequiredField(password,  	 'textbox',   'password');
	  
   }
}

function validateFields(frm)
{
   with(frm)
   {
      if (RE_NAME.exec(first_name.value))
      {
         highlightTableColumn('first_name');
         alert(ERROR_NAME);
         return false;
      }
      else if (RE_NAME.exec(last_name.value))
      {
         highlightTableColumn('last_name');
         alert(ERROR_NAME);
         return false;
      }
      else if (!RE_EMAIL.exec(email.value))
      {
         highlightTableColumn('email');
         alert(ERROR_EMAIL);
         return false;
      }
	  else if (!RE_NUMBER.exec(postal_code.value))
      {
         highlightTableColumn('postal_code');
         alert(ERROR_NUMBER);
         return false;
      }
	  
     
   }

   if((frm.password.value != '' || frm.conf_pass.value != '') && frm.password.value != frm.conf_pass.value)
   {
      highlightTableColumn('password');
      highlightTableColumn('conf_pass');
      alert(ERROR_PASS_MATCH);
      return false;
   }

   return true;
}

function doFormSubmit( )
{
  
  requiredFields.length = 0;

   var errCnt = 0;
   var frm = document.frmMemberRegistration;

  // return false;

// Setup required fields
   setupForm(frm);
	
   // Validate form for required fields
   
   errCnt = validateForm(frm);

   if (errCnt)
   {
      alert(MISSING_REQUIRED_FIELDS);
      return false;
   }

   else
   {
      if(validateFields(frm))
      {
         return true;
      }
      else
         return false;
   }
}

function doFormSubmitForPass()
{	
	var frm = document.frmRetrivePass;
	with(frm)
	{
		if(email.value == ''){
			alert("Please Enter Email address");
			return false;
		}
		else if (!RE_EMAIL.exec(email.value))
		  {			 
			 alert('Please Enter valid Email Address');
			 return false;
		  }
			
	}
	return true;
}

function showAddressInfo()
{
   var frm= document.userManagerForm;

   if(frm.user_type.value=='Employee')
   {
     showDiv('addressInfo');
   }

   else
   {
     hideDiv('addressInfo');
   }
}

function checkDuplicateUser()
{
   var userName = document.userManagerForm.username.value;
   cpaintCall('SELF', 'POST', 'checkusername', userName, uid, callbackCheckDuplicateUser);
}

function callbackCheckDuplicateUser(val)
{
	if(val==1)
	{
     highlightTableColumn('username');
     alert(DUPLICATE_USERNAME);
     document.userManagerForm.username.focus();
	}
  else
     resetTableColumn('username');
}

function checkDuplicateEmail()
{
   var primaryEmail = document.userManagerForm.email.value;
   cpaintCall('SELF', 'POST', 'checkUserEmail', primaryEmail, uid, callbackCheckDuplicateEmail);
}

function callbackCheckDuplicateEmail(val)
{
	if(val == 1)
	{
     highlightTableColumn('email');
     alert(DUPLICATE_EMAIL);
     document.userManagerForm.email.focus();
	}
  else
     resetTableColumn('email');
}


function showChangeProfileDiv(value)
{
	//alert(value);
	if(value == 'profile') {
		document.getElementById('editProfile').style.display = 'inline';
		document.getElementById('editPassword').style.display = 'none';
		document.getElementById('editShippingAddr').style.display = 'none';		  
	}
	else if(value == 'pass') {
		document.getElementById('editProfile').style.display = 'none';
		document.getElementById('editPassword').style.display = 'inline';
		document.getElementById('editShippingAddr').style.display = 'none';		  
	}
	else{
		document.getElementById('editProfile').style.display = 'none';
		document.getElementById('editPassword').style.display = 'none';
		document.getElementById('editShippingAddr').style.display = 'inline';		  
	} 
	
	
}