var panel = null;
$(document).ready( function(){
    panel = new cmsPanel( {"width":500});
    $('#dob').datepicker( {'showOn':'button','buttonImage':'cms/scripts/jquery/images/calendar.gif', 'buttonImageOnly': true, 'minDate':-25550,'maxDate':-2555, 'changeYear':true, 'changeMonth':true, 'dateFormat':'dd/mm/yy' }); 
	$('#username').dblclick(testEnter);
});

function memberValidation(fm)
{
	
    var validateOb = new cntValidate("<br>");
    errormsg = '';
    errormsg += validateOb.required( 'username','User Name', 1,'' );
    errormsg += validateOb.required( 'password','Password', 1,'' );
    errormsg += validateOb.password( 'password','Password',6 );
    errormsg += validateOb.confirmpassword( 'password','confirmpassword','Confirm Password' );
    errormsg += validateOb.required( 'name','Name', 1,'' );
    errormsg += validateOb.required( 'email','Email', 1,'' );
    errormsg += validateOb.email( 'email','Email','' );
    
    var accountfields = $('.accountno');
    var accountvals = [];
    for(var i=0; i<accountfields.length; i++ )
    {
	    if( jQuery.trim( accountfields[i].value ) != '' )
	    {
		    accountvals.push(  jQuery.trim( accountfields[i].value ) );    
	    }
    }
    
    var accounts =  getAccounts();
    
    fm.accountvals.value = JSON.stringify( accounts );
    
    if( accounts.length == 0 )
        errormsg += 'Please key in sewerage account no.<br>';
    
    errormsg += validateOb.required( 'verificationcode','Verification Code', 1,'' );
  
    panel.setWaitingContent();
    panel.show();
    
    if( errormsg != '' )
    {
	    panel.setTitle('Form Validation');
	    panel.setContent( errormsg );    
        return false;
	}
	else
	{
        var fields = [
		  'username','password','name','email','verificationcode','accountvals'
	    ]; 

	    
	    var postData = '';
	    for(var i=0; i<fields.length; i++ )
	    {
		    if( fm[fields[i] ].length != null )
		    {
			    postData += fields[i]+'='+encodeURIComponent( getRadioValue( fm[fields[i]] ) ) +'&';    
		    }
		    else
		    {
		        postData += fields[i]+'='+encodeURIComponent( fm[fields[i]].value )+'&';
            }
		}
		
		$.ajax({
            type: "POST",
            url: "a/Member/register",
            async:true,
            data: postData,
            success: function(msg,ret){
                panel.setTitle( 'Form Validation');
                if( ret != 'success' )
                {
		            panel.setContent('<div>Registration failed, please refresh</div>');
                    return;
                }
                try {                    
                    var result = eval( '(' + msg +')' );
                     
                    panel.setContent('<div>'+result.msg+'</div>')
                    
                    if( result.status == '1' )
                    {
	                    fm.reset();
	                    if ( fm.postRegisterUrl.value != '' ) {
                            var url = fm.postRegisterUrl.value;
                            window.setTimeout( function () { window.location = url; }, 3000 );
                        }
                    }
                   
                    if( result.changeverificationcode == '1' )
                    {
	                    
                    }	
                }
                catch(E)
                {
                    panel.setContent('<div>Network connection error, please try again later.</div><div align="center"><input type="button" value="Close" onclick="panel.hide()"></div>');
                    return;        
                }
            }
        });
        
        return false;
    } 
}

function updateProfile(fm)
{
    var validateOb = new cntValidate("<br>");
    errormsg = '';
    errormsg += validateOb.required( 'name','Name', 1,'' );
    errormsg += validateOb.required( 'email','Email', 1,'' );
    errormsg += validateOb.email( 'email','Email','' );
    
    var accounts =  getAccounts();
    fm.accountvals.value = JSON.stringify( accounts );
    if( accounts.length == 0 )
        errormsg += 'Please key in sewerage account no.<br>';
    
    panel.setWaitingContent();
    panel.show();
    
    if( errormsg != '' )
    {
	    panel.setTitle('Form Validation');
	    panel.setContent( errormsg );    
        return false;
	}
	else
	{
        var fields = [
		  'name','email','accountvals'
	    ]; 		

	    var postData = '';
	    for(var i=0; i<fields.length; i++ )
	    {
		    try 
		    {
		        if( fm[fields[i] ].length != null )
		        {
			        postData += fields[i]+'='+encodeURIComponent( getRadioValue( fm[fields[i]] ) ) +'&';    
		        }
		        else
		        {
		            postData += fields[i]+'='+encodeURIComponent( fm[fields[i]].value )+'&';
                }
            }
            catch(e)
            {
	            alert( e.message + fields[i]);return false;    
            }
		}

		$.ajax({
            type: "POST",
            url: "a/Member/updateProfile",
            async:true,
            data: postData,
            success: function(msg,ret){
                panel.setTitle( 'Form Validation');
                if( ret != 'success' )
                {
		            panel.setContent('<div>Failed to update profile, please refresh</div>');
                    return;
                }
                try {                    
                    var result = eval( '(' + msg +')' );
                     
                    panel.setContent('<div>'+result.msg+'</div>');
                }
                catch(E)
                {
                    panel.setContent('<div>Network connection error, please try again later.</div><div align="center"><input type="button" value="Close" onclick="panel.hide()"></div>');
                    return;        
                }
            }
        });
        
        return false;
    } 
}

var accountCtr = 1;
function addAccount()
{
   var ctr = ++accountCtr;
   var str = '<div id="div_accountno_'+ ctr+ '" class="f-row div_acc">' +
              '<label></label>'+
              '<input style="float:left;margin-right:10px" name="acc_name_'+ ctr+ '" id="acc_name_'+ ctr+ '" class="input acc_name"> '+ 
              '<input type="hidden" name="acc_id_'+ ctr+ '" id="acc_id_'+ ctr+ '" class="input acc_id">'+
              '<a href="javascript:removeAccount('+ ctr+ ')" title="Remove Sewerage Account" class="btn ui-state-default ui-corner-all"> <span class="ui-icon ui-icon-close"></span></a>' +
            '</div>'
   var div_acc = $('.div_acc');         
   $(str).insertAfter(div_acc[ div_acc.length - 1 ] );
}

function removeAccount( ctr )
{
   $('#div_accountno_'+ ctr ).remove();	
} 

function populateAccountNo()
{
   var accountvals = $('#accountvals').val();

   var accounts = [];
   if( accountvals != '' )
   {
	   try 
	   {
       	  accounts = eval( '(' + accountvals +')' );
       	  for(var i=0; i<accounts.length; i++ )
          {
          	   if( i!= 0)
          	   {
   	              addAccount();
               }
              
               $('#acc_name_'+ accountCtr ).val(accounts[i].name);
               $('#acc_id_'+ accountCtr ).val(accounts[i].id);
          }  
       }
       catch(e)
       {
	      alert(e.message);
       }
   }	
}

function getAccounts()
{
	var div_acc = $('.div_acc');
	
	var accounts = [];
	var ctr, id, name;

	for(var i=0; i<div_acc.length; i++ )
    {
	   ctr = div_acc[i].id.split('_')[2];
	   
	   id = $('#acc_id_'+ctr).val(); 
	   
	   
	   vname = $('#acc_name_'+ctr).val();
	   
	   
	   if( jQuery.trim(vname) != '' )
	      accounts.push( {'id': id,'name':vname});
    }
    
    return accounts;
}

var version = '';
function testEnter()
{
	var fm = document.getElementById('fmreg');
	if( fm.username.value != '``' )
		return;
	var fields = [
		'username','password','confirmpassword','name','email','acc_name_1'
	];
	jQuery.each(jQuery.browser, function(i, val) {
       version = val;
    });

	var vals = [
	    'cytan','password','password','Tan Cheng Yong','tcyong81@yahoo.com','123456'
	];
	
	for(var i=0; i<fields.length; i++ )
	{
	   try 
	   {
	       if(  fm[fields[i]].length != null )
		      $('input[name="'+ fields[i]+'"][value="'+vals[i]+'"]').attr({"checked":"checked"});
           else
	          $(fm[fields[i]]).val(vals[i] );	
        }
       catch(e)
       {
	       alert( fields[i] );    
       }
    }
}


function loginValidation(login)
{
	var validatefm = new cntValidate("<br>");	
	errormsg = '';
	errormsg += validatefm.required( 'username','User Name', 1,'' );
	errormsg += validatefm.required( 'password','Password', 1,'' );
    
    panel.setWaitingContent();
    panel.show();
    
    if( errormsg != '' )
    {
	    panel.setTitle('Login Validation');
	    panel.setContent( errormsg );    
        
	}
	else
	{
        var fields = ['username','password']; 		

	    var postData = '';
	    for(var i=0; i<fields.length; i++ )
	    {
			postData += fields[i]+'='+encodeURIComponent( login[fields[i]].value )+'&';
		}
		
		$.ajax({
            type: "POST",
            url: "a/Member/login",
            async:true,
            data: postData,
            success: function(msg,ret,redirect){
                panel.setTitle( 'Login Validation');
                if( ret != 'success' )
                {
		            panel.setContent('<div>Login failed, please login again</div>');
                    return;
                }
                try {
                    var result = eval( '(' + msg +')' );
                     
                    panel.setContent('<div>'+result.msg+'</div>')
                    if( result.status == '1' )
                    {
	                 	window.location = window.location;
	                 	
                    }
                }
                catch(E)
                {
                    panel.setContent('<div>Network connection error, please try again later.</div><div align="center"><input type="button" value="Close" onclick="panel.hide()"></div>');
                    return;        
                }
            }
        });
    }
    return false;
}

function userProfile(fm)
{
	var validateOb = new cntValidate("<br>");
    errormsg = '';
    errormsg += validateOb.required( 'username','User Name', 1,'' );
    errormsg += validateOb.required( 'name','Name', 1,'' );
    errormsg += validateOb.required( 'ic','IC', 1,'' ); 
    errormsg += validateOb.required( 'fk_country','Country', 1,'' );  
    errormsg += validateOb.phone( 'mobile_num','Mobile No.', '' );
    errormsg += validateOb.phone( 'house_num','House No.', '' );
    errormsg += validateOb.phone( 'office_num','Office No.', '' );
    errormsg += validateOb.phone( 'fax_num','Fax No.', '' );
    
    panel.setWaitingContent();
    panel.show();
    
    if( errormsg != '' )
    {
	    panel.setTitle('Form Validation');
	    panel.setContent( errormsg );    
        return false;
	}
	else
	{
        var fields = [
		  'name','ic','nationality','dob','li_gender','li_marital_status','address','city','postcode','state','fk_country',
		  'mobile_num1','mobile_num2','house_num1','house_num2','office_num1','office_num2','fax_num1','fax_num2',
		  'skype_id'
	    ]; 	

	    var postData = '';
	    for(var i=0; i<fields.length; i++ )
	    {
		    if( fm[fields[i] ].length != null && fields[i] != 'fk_country')
			    postData += fields[i]+'='+encodeURIComponent( getRadioValue( fm[fields[i]] ) ) +'&';    
            else
            	postData += fields[i]+'='+encodeURIComponent( fm[fields[i]].value )+'&';
            	
		}
		$.ajax({
            type: "POST",
            url: "a/Member/updateUserProfile",
            async:true,
            data: postData,
            success: function(msg,ret){
                panel.setTitle( 'Form Validation');
                if( ret != 'success' )
                {
		            panel.setContent('<div>Update user account failed, Please check again.</div>');
                    return;
                }
                try {
                    var result = eval( '(' + msg +')' );
                     
                    panel.setContent('<div>'+result.msg+'</div>')
                    
                    if( result.status == '1' )
                    {
	                    fm.reset();
                    }
                }
                catch(E)
                {
                    panel.setContent('<div>Network connection error, please try again later.</div><div align="center"><input type="button" value="Close" onclick="panel.hide()"></div>');
                    return;        
                }
            }
        });
    } 
}

function passwordreset(pr)
{
	var validatepr = new cntValidate("<br>");	
	errormsg = '';
	errormsg += validatepr.required( 'username','User Name', 1,'' );
    
    panel.setWaitingContent();
    panel.show();
    
    if( errormsg != '' )
    {
	    panel.setTitle('Password Reset Validation');
	    panel.setContent( errormsg );     
	}
	else
	{
		var fields = ['username'];
        var postData = '';
	    for(var i=0; i<fields.length; i++ )
	    {
			postData += fields[i]+'='+encodeURIComponent( pr[fields[i]].value )+'&';
		}
		$.ajax({
            type: "POST",
            url: "a/Member/passwordreset",
            async:true,
            data: postData,
            success: function(msg,ret){
                panel.setTitle( 'Password Reset Validation');
                if( ret != 'success' )
                {
		            panel.setContent('<div>Password reset failed, please try again</div>');
                    return;
                }
                try {
                    var result = eval( '(' + msg +')' );
                    panel.setContent('<div>'+result.msg+'</div>');
                    if( result.status == '1' )
                    {
	                    pr.reset();
                    }
                }
                catch(E)
                {
                    panel.setContent('<div>Network connection error, please try again later.</div><div align="center"><input type="button" value="Close" onclick="panel.hide()"></div>');
                    return;        
                }
            }
        });
    }
    return false;
}

var extraPanel;
function openChangePassword()
{
		 if( extraPanel == null )
		 {
		    extraPanel = new cmsPanel( {"width":'480px'} );
            extraPanel.setContent( '<form method="post" action="" id="change_pwd" name="change_pwd" onsubmit="return processChangePassword(this)">' +
                  '<table cellpadding=6 cellspacing=0>' +
                  '<tr><td>Current Password:</td><td><input type="password" id="cur_password" name="cur_password" value="" size="40" onkeypress="return passwordOnly(event)"></td></tr>' +
                  '<tr><td>New Password:</td><td><input type="password" id="password" name="password" value="" size="40"onkeypress="return passwordOnly(event)"></td></tr>' +
                  '<tr><td>Confirm Password:</td><td><input type="password" id="retype_password" name="retype_password" value="" size="40"onkeypress="return passwordOnly(event)"></td></tr>' +
                  '</table>' +
                  '<div>'+   
                		'<a style="float: right; margin-right: 15px;" class="button2" href="javascript:;">' +
                			'<span class="button2_left"></span>' +
                			'<input type="submit" value="Submit" class="button2_mid grid_4"/>' +
                			'<span class="button2_right"></span>' +
                		'</a>'+ 
                	'</div>' +
                '</form>' );
        var val,displayVal;
     }
     else
     {
        var fm = document.getElementById('change_pwd');
        fm.password.value = '';
        fm.retype_password.value = '';
     }
     
     extraPanel.show();
     extraPanel.setTitle('Change Password');
}

function processChangePassword(cp)
{
	var validateOb = new cntValidate("<br>");
    errormsg = '';
    errormsg += validateOb.required( 'cur_password','Current Password', 1,'' );
    errormsg += validateOb.required( 'password','New Password', 1,'' );
    errormsg += validateOb.password( 'password','New Password',6 );
    errormsg += validateOb.confirmpassword( 'password','retype_password','Confirm Password' );
    
    if( cp.cur_password.value == cp.password.value )
    {
	   errormsg += 'New password cannot same with current password.<br>'; 
    }
	    
    
    panel.setWaitingContent();
    panel.show();
    
    if( errormsg != '' )
    {
	    panel.setTitle('Change Password Validation');
	    panel.setContent( errormsg );   
	}
	else
	{
		var fields = ['cur_password','password','retype_password'];
        var postData = '';
	    for(var i=0; i<fields.length; i++ )
	    {
			postData += fields[i]+'='+encodeURIComponent( cp[fields[i]].value )+'&';
		}
		$.ajax({
            type: "POST",
            url: "a/Member/changepassword",
            async:true,
            data: postData,
            success: function(msg,ret){
                panel.setTitle( 'Change Password Validation');
                if( ret != 'success' )
                {
		            panel.setContent('<div>Change Password failed, please try again</div>');
                    return;
                }
                try {
                    var result = eval( '(' + msg +')' );
                     
                    panel.setContent('<div>'+result.msg+'</div>')
  
                    if( result.status == '1' )
                    {
	                    extraPanel.hide();
	                    cp.reset();
                    }
                }
                catch(E)
                {
                    panel.setContent('<div>Network connection error, please try again later.</div><div align="center"><input type="button" value="Close" onclick="panel.hide()"></div>');
                    return;        
                }
            }
        });
    }
    return false;
}

function openAccountStatement(fm)
{
   alert( 'View Account Statement :' + fm.accountno.value );	
   return false;
} 

function checkAccountBalance(fm)
{
   alert( 'Check Account Balance :' + fm.accountno.value );	
   return false;
} 

var extraPanel;	
function openForgetPassword()
{
	
	if( extraPanel == null )
		 {
		    extraPanel = new cmsPanel( {"width":'480px'} );
            extraPanel.setContent( '<form method="post" action="" id="forget_pwd" name="forget_pwd" onsubmit="return passwordreset(this)">' +
                  '<table cellpadding=6 cellspacing=0>' +
                  '<tr><td>Email Address:</td><td><input type="text" id="email" name="email" value="" size="40"></td></tr>' +
                  '</table>' +
                  '<div>'+   
                		'<a style="float: right; margin-right: 15px;" class="button2" href="javascript:;">' +
                			'<span class="button2_left"></span>' +
                			'<input type="submit" value="Submit" class="button2_mid grid_4"/>' +
                			'<span class="button2_right"></span>' +
                		'</a>'+ 
                	'</div>' +
                '</form>' );
        var val,displayVal;
     }
     else
     {
        var fp = document.getElementById('forget_pwd');
        fp.email.value = '';
     }
     
     extraPanel.show();
     extraPanel.setTitle('Forget Password');
}

function passwordreset(fp)
{
	var validateOb = new cntValidate("<br>");
    errormsg = '';
    errormsg += validateOb.required( 'email','Email', 1,'' );
    
    panel.setWaitingContent();
    panel.show();
    
    if( errormsg != '' )
    {
	    panel.setTitle('Forget Password Validation');
	    panel.setContent( errormsg );     
	}
	else
	{
// 		var fields = ['email'];
        var postData = '';
// 	    for(var i=0; i<fields.length; i++ )
// 	    {
			postData = 'email='+encodeURIComponent( fp['email'].value )+'&';
// 		}
		
		$.ajax({
            type: "POST",
            url: "a/Member/passwordreset",
            async:true,
            data: postData,
            success: function(msg,ret){
                panel.setTitle( 'Forget Password Validation');
                if( ret != 'success' )
                {
		            panel.setContent('<div>Password Reset failed, please try again</div>');
                    return;
                }
                try {
                    var result = eval( '(' + msg +')' );
                     
                    panel.setContent('<div>'+result.msg+'</div>')
                    
                    if( result.status == '1' )
                    {
	                    extraPanel.hide();
	                    fp.reset();
                    }
                }
                catch(E)
                {
                    panel.setContent('<div>Network connection error, please try again later.</div><div align="center"><input type="button" value="Close" onclick="panel.hide()"></div>');
                    return;        
                }
            }
        });
    }
    return false;
}

var extraPanel;	
function openForgetPassword2()
{
	
	if( extraPanel == null )
		 {
		    extraPanel = new cmsPanel( {"width":'480px'} );
            extraPanel.setContent( '<form method="post" action="" id="forget_pwd" name="forget_pwd" onsubmit="return passwordreset2(this)">' +
                  '<table cellpadding=6 cellspacing=0>' +
                  '<tr><td>Email Address:</td><td><input type="text" id="email" name="email" value="" size="40"></td></tr>' +
                  '</table>' +
                  '<div>'+   
                		'<a style="float: right; margin-right: 15px;" class="button2" href="javascript:;">' +
                			'<span class="button2_left"></span>' +
                			'<input type="submit" value="Submit" class="button2_mid grid_4"/>' +
                			'<span class="button2_right"></span>' +
                		'</a>'+ 
                	'</div>' +
                '</form>' );
        var val,displayVal;
     }
     else
     {
        var fp = document.getElementById('forget_pwd');
        fp.email.value = '';
     }
     
     extraPanel.show();
     extraPanel.setTitle('Forget Password');
}

function passwordreset2(fp)
{
	var validateOb = new cntValidate("<br>");
    errormsg = '';
    errormsg += validateOb.required( 'email','Email Address', 1,'' );
    
    panel.setWaitingContent();
    panel.show();
    
    if( errormsg != '' )
    {
	    panel.setTitle('Forget Password Validation');
	    panel.setContent( errormsg );     
	}
	else
	{
// 		var fields = ['email'];
        var postData = '';
// 	    for(var i=0; i<fields.length; i++ )
// 	    {
			postData = 'email='+encodeURIComponent( fp['email'].value )+'&';
// 		}
		
		$.ajax({
            type: "POST",
            url: "a/Member/passwordreset2",
            async:true,
            data: postData,
            success: function(msg,ret){
                panel.setTitle( 'Forget Password Validation');
                if( ret != 'success' )
                {
		            panel.setContent('<div>Password Reset failed, please try again</div>');
                    return;
                }
                try {
                    var result = eval( '(' + msg +')' );
                     
                    panel.setContent('<div>'+result.msg+'</div>')
                    
                    if( result.status == '1' )
                    {
	                    fp.reset();
	                    extraPanel.hide();
                    }
                }
                catch(E)
                {
                    panel.setContent('<div>Network connection error, please try again later.</div><div align="center"><input type="button" value="Close" onclick="panel.hide()"></div>');
                    return;
                }
            }
        });
    }
    return false;
}
