/* get elements by class */
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

/* clear default value in input */
clearInput = function(t){
	if(t.defaultValue==t.value){
		t.value = '';
	}
}
resetInput = function(t){
	if(t.value == ''){
		t.value = t.defaultValue;
	}
}

/* form validation */
function validate(form){	
	r = requiredFields(form) ? true : false;
	if(r == false){	return r; }
	r = confirmFields(form) ? r : false;
	return r;	
}
function requiredFields(form){	
	return_var = true;
	msg = "";
	skip_array = Array();	
	for(i=0;i<form.elements.length;i++){
		if(form.elements[i].className.indexOf('req') != -1 && form.elements[i].type == 'radio'){	
			if(!skip_array.in_array(form.elements[i].name)){		
				skip_array.push(form.elements[i].name);
				rad_bool = false;
				for(n=0; n<form[form.elements[i].name].length; n++){					
					if(form[form.elements[i].name][n].checked){
						rad_bool = true;
						break
					}
				}	
				if(!rad_bool){
					msg+= form[form.elements[i].name][0].title + " is required\n";
					return_var = false;
				}			
			}
		}
		if(form.elements[i].className.indexOf('req') != -1 && form.elements[i].type == 'checkbox'){
			if(form.elements[i].className.indexOf('req1') != -1){				
				if(!skip_array.in_array(form.elements[i].name)){
					check_bool = false;
					for(z=0; z<form[form.elements[i].name].length; z++){
						if(form[form.elements[i].name][z].checked){
							check_bool = true;
							break
						}
					}
					if(!check_bool){
						msg+= form.elements[i].title + " is required\n";
						return_var = false;
					}					
					skip_array.push([form.elements[i].name]);
				}				
			}else{
				if(!skip_array.in_array(form.elements[i].name) && form.elements[i].checked == false){
					msg+= form.elements[i].title + " is required\n";
					return_var = false;
					skip_array.push([form.elements[i].name]);
				}
			}
		}
		if(form.elements[i].className.indexOf('req') != -1 && (form.elements[i].value == "" || form.elements[i].value == form.elements[i].defaultValue)){		
			msg+= form.elements[i].title + " is required\n";
			return_var = false;
		}
	}
	if(msg){alert(msg);}
	return return_var;
}
function confirmFields(form){
	for(i=0;i<form.elements.length;i++){
		if(form.elements[i].name.indexOf('confirm_') != -1 && form.elements[i].value != form.elements[form.elements[i].name.substr(8)].value){	
			alert(form.elements[form.elements[i].name.substr(8)].title + " do not match!");
			return false;			
		}
	}
	return true;
}
Array.prototype.in_array = function(v){
	for(value in this){
		if(v == this[value]){
			return value;
			break;
		}
	}
	return false;
}