//Various JavaScript functions for forms and form checking!
function onKeyDownRestrain(evt, elem, charCountElem, minLength, maxLength){
	var enteredText = elem.value;
	var len = enteredText.length;
	if ( len >= maxLength && evt.keyCode != 8 && evt.keyCode != 46){
		return false;
	}
}

function onKeyUpRestrain(evt, elem, charCountElem, minLength, maxLength){
	var enteredText = elem.value;
	var len = enteredText.length;	
	charCountElem.innerHTML = (maxLength - len).toString();
}

function getPreval(name){
	for ( var i = 0; i < prevalFields.length ; i++ ){
		if ( prevalFields[i].field_name == name ){
			return prevalFields[i].label;
		}
	}
}

function fillPrevalFields(actuallyDoIt){
	if ( !actuallyDoIt ){
		setTimeout("fillPrevalFields(true)",500);
		return;
	}
	for ( var i = 0; i < prevalFields.length; i++ ){
		var preval = prevalFields[i];
		var field = document.getElementById(preval.field_name);
		if ( field.value == "" ){
			if ( preval.password ){
				document.getElementById(preval.field_name + '_label_fake').value = preval.label;
			}else{
				field.value = preval.label;
			}
		}
		if ( preval.password ){
			document.getElementById(preval.field_name + '_label_fake').onfocus = function(){this.style.display="none";document.getElementById(this.name.replace("_label_fake","")).focus()};
			field.onblur = function(){if(this.value==''){document.getElementById(this.name+'_fake').style.display='block';}};
			field.onfocus = function(){document.getElementById(this.name+'_label_fake').style.display='none';};
			field.onchange = function(){document.getElementById(this.name+'_label_fake').style.display='none';};
		}else{
			field.onblur = function(){if(!this.value){this.value=getPreval(this.name)}};
			field.onfocus = function(){if(this.value==getPreval(this.name)){this.value='';}};
		}
	}
}

function showPage(pageId){
	fields = pagesFields[pageId];
	for ( i = 0; i < fields.length; i++ ){
		if ( document.getElementById(fields[i]) )
			document.getElementById(fields[i]).style.visibility = 'visible';
			
		if ( document.getElementById(fields[i]+'_day') )
			document.getElementById(fields[i]+'_day').style.visibility = 'visible';
		if ( document.getElementById(fields[i]+'_month') )
			document.getElementById(fields[i]+'_month').style.visibility = 'visible';
		if ( document.getElementById(fields[i]+'_year') )
			document.getElementById(fields[i]+'_year').style.visibility = 'visible';
			
		if ( document.getElementById('label'+fields[i]) )
			document.getElementById('label'+fields[i]).style.visibility = 'visible';
		if ( document.getElementById('error'+fields[i]) )
			document.getElementById('error'+fields[i]).style.visibility = 'visible';
		if ( document.getElementById('comment'+fields[i]) )
			document.getElementById('comment'+fields[i]).style.visibility = 'visible';
		
	}
	for ( j = 1; j < pagesFields.length; j++ ){
		fields = pagesFields[j];
		if ( j != pageId ){
			for ( i = 0; i < fields.length; i++ ){
				if ( document.getElementById(fields[i]) )
					document.getElementById(fields[i]).style.visibility = 'hidden';

				if ( document.getElementById(fields[i]+'_day') )
					document.getElementById(fields[i]+'_day').style.visibility = 'hidden';
				if ( document.getElementById(fields[i]+'_month') )
					document.getElementById(fields[i]+'_month').style.visibility = 'hidden';
				if ( document.getElementById(fields[i]+'_year') )
					document.getElementById(fields[i]+'_year').style.visibility = 'hidden';

				if ( document.getElementById('label'+fields[i]) )
					document.getElementById('label'+fields[i]).style.visibility = 'hidden';
				if ( document.getElementById('error'+fields[i]) )
					document.getElementById('error'+fields[i]).style.visibility = 'hidden';
				if ( document.getElementById('comment'+fields[i]) )
					document.getElementById('comment'+fields[i]).style.visibility = 'hidden';
			
			}
		}
	}
}

