// $Id: RegisterIndividual.js 5434 2007-06-20 08:54:19Z cmora $
var reg = {
    url : "",
    tuser:"",
	temail:"",
	init:function()
	{
		$("tsusername")["onclick"] = function(){
			var tusername = $("freg-username");
			var data = [];	
			data['username']= tusername.value;
			var regex = /^[a-zA-Z0-9\-\_]*$/;
			tusername.value = reg.strip(tusername.value);
			if(isNaN(tusername.value) && tusername.value.length >=6){
    			reg.tuser = tusername.value;
    			if(!regex.test(tusername.value)){
    			    reg.validate("freg-username","Username",true,"Value is invalid. Combination of a-z, 0-9 and underscore (_) only.");
    			}else{
    				httpPost(reg.url+"username",data,function(resp){
    					reg.validate("freg-username",resp,false);				    
    				});					
    			}
			}
		};
		$("tsemail")["onclick"] = function(){
			var temail = $("freg-email");
			var data = [];
			data['email'] = temail.value;
			var regex =	/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z])+$/;
            temail.value = reg.strip(temail.value);
            reg.temail = temail.value;
			if(!regex.test(temail.value)){
				reg.validate("freg-email","email",true,"Value is not a valid email address.");
			}else{
                httpPost(reg.url+"email",data,function(resp){
					reg.validate("freg-email",resp,false);				    
				});					                    
			}
		};
	},
	validate:function(id,res,t,msg)
	{
	    var el =  $(id+"-row");
	 	var elm = $(id+"-msg");
        el.style.display = "";	 	
		if(t){
			elm.innerHTML = "<strong>"+(reg.strip($(id).value) || res )+"<\/strong> "+msg;
		}else{
			elm.innerHTML = "<strong>"+reg.strip($(id).value)+"<\/strong>"+((res.indexOf("no")!= -1) ? " is available.":" is already registered.");
		}		
	},
	strip:function(str){
        str = str.replace(new RegExp(/^\s+/),""); // START
        str = str.replace(new RegExp(/\s+$/),""); // END
        return str;
    }
}


function register_init()
{
    $("reg_individual")["onsubmit"] = function(){
        v1 = isvalidUsername();
        v2 = legal_age();
        v3 = primary_phone();
        v4 = isLegal();
        return v1 && v2 && v3 && v4;     
    }
    register_setup();
    toggleShowProfiles();
    addEvent($('freg-username'),'blur',isvalidUsername);
	addEvent($('freg-password'),'blur',isvalidPass);    
    addEvent($("freg-year"),'blur',legal_age);
    addEvent($("rdbDisplayInfoNo"),'click',toggleShowProfiles);
    addEvent($("rdbDisplayInfoYes"),'click',toggleShowProfiles);
    setTimeout('reg.init()');    
}

/* show profile */
function toggleShowProfiles(){
	var showYes = $("rdbDisplayInfoYes").checked;
	var showNo	= $("rdbDisplayInfoNo").checked;
	var cellFullName = $("showFullName");
	var cellGender = $("showGender");
	var cellProvince	= $("showProvince");
	if(showNo){
		cellFullName.style.display='none';
//		cellGender.style.display='none';
		cellProvince.style.display='none';
	} else {
		cellProvince.style.display='';
		cellFullName.style.display='';
//		cellGender.style.display='';
	}
}


function register_setup()
{
    var regfields = {
        "freg-username"     :{'l':'Username','f':'alphanum','e':'blur','mn':'6','mx':'16','r':true},
        "freg-password"     :{'l':'Password','f':'alphanum','e':'blur','mn':'6','mx':'32','r':true},         
        "freg-password2"    :{'l':'Confirm Password','m':'freg-password','f':'alphanum','e':'blur','r':true},
        "freg-firstname"    :{'l':'First Name','f':'add','e':'blur','r':true},
        "freg-lastname"     :{'l':'Last Name','f':'add','e':'blur','r':true},
        "freg-male"         :{'l':'Gender','h':'sex','e':'blur','r':true},
        "freg-female"       :{'l':'Gender','h':'sex','e':'blur','r':true},                
        "date_m"            :{'l':'Month','h':'dateofbirth','e':'blur','r':true},
        "date_d"            :{'l':'Day','h':'dateofbirth','e':'blur','r':true},
        "freg-email"        :{'l':'Email','f':'eml','e':'blur','r':true},
        "freg-email2"       :{'l':'Confirm Email','m':'freg-email','f':'eml','e':'blur','r':true},        
        "homeAddress"       :{'l':'Label Address','h':'addressName','e':'blur','r':true},  
        "workAddress"       :{'l':'Label Address','h':'addressName','e':'blur','r':true},  
        "schoolAddress"     :{'l':'Label Address','h':'addressName','e':'blur','r':true},  
        "freg-address1"     :{'l':'Street Address','f':'add','e':'blur','r':true},
        "freg-address2"     :{'l':'Barangay','f':'add','e':'blur','r':true},
        "freg-province"     :{'l':'Province','e':'blur','r':true},
        "freg-city"         :{'l':'City','e':'blur','r':true},
//        "freg-zip"          :{'l':'Zip Code','e':'blur','r':true},
        "home_tel_ac"       :{'l':'Primary Area Code','h':'primaryphone','f':'num','e':'blur','mn':'1','mx':'4','r':true},        
        "home_tel_no"       :{'l':'Primary Phone#','h':'primaryphone','f':'num','e':'blur','mn':'7','mx':'8','r':true}}
    DV.init('reg_individual',regfields,'error');    
}

function isvalidUsername()
{
	var username = $('freg-username').value;
	var password = $('freg-password').value;
	var msg = "";	
	var obj = "freg-username";
	var regex = /^[a-zA-Z0-9\-\_]*$/;
	
	if(!isNaN(username)){
	    msg = "Username must be a combination of a-z, 0-9 and underscore (_)."
	}
	else if (username.length < 6) {
		msg = "Username must be a six (6) to sixteen (16) characters long."
	}
	else if (!regex.test(username)){
    	msg = "Username must be a combination of a-z, 0-9 and underscore (_) only."	
	}
	
	DV.showMsg(obj,msg);  
    return (msg) ? false:true;		
}

function isvalidPass() {
	var username = $('freg-username').value;
	var password = $('freg-password').value;
	var msg = "";	
	var obj = "freg-password";   
	
	if(username && password){
		if(username == password){
			msg = "Password must be unique and not equal to Username."
		}
	}else if (username) {
		msg = "Password is required."
	}
	
	if(password.length < 6){
	    msg = "Password must be Six(6) to Sixteen characters long."        
	}
	
	DV.showMsg(obj,msg);  
    return (msg) ? false:true;	
}

function isLegal(){
    var msg = "";
    if(!$("legal_age").checked){
        msg = 'Please check "I have read and agree to abide by.." below before continuing.';
    }
    DV.showMsg("iagree",msg);            
    return (msg) ? false:true;
}

function legal_age()
{
	var server = new Date(server_date);
    var user_age_el = $("freg-year","date_m","date_d");	
	var age = new Date(user_age_el[0].value+'/'+user_age_el[1].value+'/'+user_age_el[2].value);
	var min = 1900;
	var msg = "";
	server.setYear(Number(server_date.substr(0,4))-18);
	if(Number(user_age_el[0].value)>min){
	    if(age.getMonth() != (Number(user_age_el[1].value)-1)){
	        msg = "Month for Date of Birth is invalid."
	    }else if(age > server){
			msg = "Must be 18 years and above to be able to register.";
	    }	
	}else{
		msg ='Date of Birth is invalid.';
	}
    DV.showMsg("dateofbirth",msg);
    return (msg) ? false:true;     
}

function security_question()
{
    var sec_question = $("sec_question");    
    var sec_answer = $("sec_answer");    
    var msg = "";
    if(sec_answer.value && sec_question.selectedIndex ==0){
        msg = "Please select a Security Question."
    }    
    DV.showMsg("sec_question",msg);            
    return (msg) ? false:true;
}

function security_answer()
{
    var sec_question = $("sec_question");    
    var sec_answer = $("sec_answer");    
    var msg = "";
    if(sec_question.selectedIndex >0 && !sec_answer.value){
        msg = "Please specify a Security Answer."
    }    
    DV.showMsg("sec_answer",msg);            
    return (msg) ? false:true;
}

function primary_phone()
{
    var phones_ar = $("home_tel_ac","home_tel_no");
    var msg = "";
    if(!phones_ar[0].value || !phones_ar[1].value){
        msg = "Primary Phone# is required.";        
    }
    DV.showMsg("primaryphone",msg)
    return (msg)? false:true;
}

addEvent(window,'load',register_init);