/* 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;
				}			
			}
		}else 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]);
				}
			}
		}else 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(form.elements[i].className.indexOf('email') != -1 && form.elements[i].className.indexOf('req') != -1){
			if(form.elements[i].value.search(/([^\/.]+)@([^\/.]+)\.([^\/.]+)/) == -1){
				msg+= form.elements[i].title + " is not valid\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;
}
/* fade function*/
_in = function(){
	var i = Math.ceil((this.tarOpac-(this.objct.style.opacity*100))/this.speed)+(this.objct.style.opacity*100);
	this.objct.style.opacity = i/100;
	this.objct.style.filter = 'alpha(opacity='+i+')';
	if(i >= this.tarOpac){
		clearInterval(this.fadeIn_int);
	}
}
_out = function(){
	var i = Math.floor((0 - (this.objct.style.opacity*100))/this.speed)+(this.objct.style.opacity*100);
	this.objct.style.opacity = i/100;
	this.objct.style.filter = 'alpha(opacity='+i+')';
	if(i<= 0){
		clearInterval(this.fadeOut_int);
		if(this.remove){
			this.objct.parentNode.removeChild(this.objct);	
		}
	}
}
fadeIn = function(objct, tarOpac){
	this.objct = objct;
	this.speed = 5;
	this.tarOpac = tarOpac;	
	this.objct.style.opacity = 0;
	this.objct.style.visibility = 'visible';
	this.objct.style.filter = "alpha(opacity=0)";	
	tf = this;
	this.fadeIn_int = setInterval("tf._in()", 20);
}
fadeOut = function(objct, remove){
	if(this.fadeIn_int){ clearInterval(this.fadeIn_int);}
	this.objct;
	this.speed = 3;
	tf = this;
	this.remove = remove;
	this.fadeOut_int = setInterval("tf._out()", 20);
}
/* grow */
_expand = function(){
	var i = Math.ceil((this.obj['scroll'+this.dimCap] - (parseInt(this.obj.style[this.dim])))/this.speed) + (parseInt(this.obj.style[this.dim]));
	this.obj.style[this.dim] = i+'px';
	if(i >= this.obj['scroll'+this.dimCap]){
		clearInterval(this._int);	
	}
}
_shrink = function(){
	var i = Math.floor((0 - (parseInt(this.obj.style[this.dim])))/this.speed) + (parseInt(this.obj.style[this.dim]));
	this.obj.style[this.dim] = i+'px';
	if(i <= 0){
		clearInterval(this._int);	
	}	
}
expand = function(obj, dim){
	this.obj = obj;
	this.speed = 3;
	if(!this.obj.style[dim]){
		this.obj.style[dim] = 0;
	}
	this.obj.style.display = 'block';
	this.dim = dim;
	this.dimCap = dim.charAt(0).toUpperCase() + dim.substr(1).toLowerCase();
	me = this;
	clearInterval(this._int);
	if(parseInt(this.obj.style[dim]) < 1){
		this._int = setInterval('me._expand()', 20);
	}else{
		this._int = setInterval('me._shrink()', 20);
	}
}







