// JavaScript Document
function isNotEmpty(elem) {
    var str = elem.value;
    var re = /.+/;
    if(!str.match(re)) {
        //alert("Please fill in the required field.");
        return false;
    } else {
        return true;
    }
}


function isNumber(elem) {
    var str = elem.value;
    var re = /^[-]?\d*\.?\d*$/;
    str = str.toString( );
    if (!str.match(re)) {
        //alert("Enter only numbers into the field.");
        return false;
    }
    return true;
}

function isEMailAddr(elem) {
    var str = elem.value;    
    var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;    
    if (!str.match(re)) {
        //alert("Verify the email address format.");//
        return false;
    } else {
        return true;
    }
}

function isURLAddr(elem) {
    var str = elem.value;    
    var re = /^(https?):\/\/(www\.)?[a-z0-9]{2,}[a-z0-9\-\.]{2,}\.[a-z]{2,4}\/?$/;    
    if (!str.match(re)) {
        //alert("Verify the url address format.");//
        return false;
    } else {
        return true;
    }
}

function validateForm(frm) {
	var error = 0;
	
	// Reset
	var elems = frm.elements;
	for (var i = 0; i < elems.length; i++) {
		var spanElm = document.getElementById(elems[i].id + '_status');
		if (spanElm) {
			spanElm.innerHTML = "&nbsp;";
		}		
	}
	
	// Validasi Required
	if (reqFields.length > 0) {
    	var arrReq = reqFields.split(",");	
    	
    	for (var i = 0; i < arrReq.length; i++) {
    		var elem = document.getElementById(arrReq[i]);
    		if (!isNotEmpty(elem)) {
    			var spanElm = document.getElementById(elem.id + '_status');
    			if (spanElm) {
    				spanElm.innerHTML = "Required";
    			}
    			error++;	
    		}
    	}	
	}
	
	// Validasi Email
	if (emailFields.length > 0) {
    	var arrEmail = emailFields.split(",");
    	
    	for (var i = 0; i < arrEmail.length; i++) {
    		var elem = document.getElementById(arrEmail[i]);
    		var spanElm = document.getElementById(elem.id + '_status');
    		
    		if (spanElm) {
    			if (spanElm.innerHTML == "&nbsp;") {
    				if (!isEMailAddr(elem)) {						
    					spanElm.innerHTML = "Invalid email address";
    					error++;					
    				}			
    			}
    		}
    	}	
	}
	
	// Validasi URL
	if (urlAddrs.length > 0) {
	
    	var arrURL = urlAddrs.split(",");
    	
    	for (var i = 0; i < arrURL.length; i++) {
    		var elem = document.getElementById(arrURL[i]);
    		var spanElm = document.getElementById(elem.id + '_status');
    		
    		if (spanElm) {
    			if (spanElm.innerHTML == "&nbsp;") {
    			    if (elem.value.length > 0) {
        				if (!isURLAddr(elem)) {						
        					spanElm.innerHTML = "Invalid url address";
        					error++;					
        				}			    			    
    			    }
    			}
    		}
    	}		
	}
	
	// Validasi Nominal
	if (numFields.length > 0) {

    	var arrNum = numFields.split(",");
    	    	
    	for (var i = 0; i < arrNum.length; i++) {
    		var elem = document.getElementById(arrNum[i]);
    		var spanElm = document.getElementById(elem.id + '_status');
    		
    		if (spanElm) {
    			if (spanElm.innerHTML == "&nbsp;") {
    				if (!isNumber(elem)) {
    					spanElm.innerHTML = "Invalid numeric";						
    					error++;					
    				}			
    			}
    		}				
    	}	 	
	}	

	
	if (error == 0)
		return confirm('Anda yakin untuk mengirimkan data-data ini ?');
	else 
		return false;
}
