// GENERAL JAVASCRIPT FUNCTIONS

function validateForm(){
	var firstToFail = false;
	var container = window.document.getElementById('dynamicform');
	var divs = container.getElementsByTagName('div');
	var divlen = divs.length;
	for(var i = 0; i < divlen; i++){
		if(divs[i].className != 'validation') continue;
		var spanobjs = divs[i].getElementsByTagName('span');
		var spanlen = spanobjs.length;
		var valtype = '';
		var valparam = '';
		var objId = '';
		for(x = 0; x < spanlen; x++){
			if(spanobjs[x].className == 'type'){
				valtype = spanobjs[x].innerHTML;
			} else if(spanobjs[x].className == 'param'){
				valparam = spanobjs[x].innerHTML;
			} else if(spanobjs[x].className == 'id'){
				objId = spanobjs[x].innerHTML;
			}
		}
		
		var obj = window.document.getElementById(objId);
		if(!obj) window.alert(objId+' NOT FOUND');
		
		if(validation(objId, valtype, valparam)==false){
			divs[i].style.display = 'block';
			if(firstToFail == false){
				firstToFail = true;
				obj.focus();
			}
		} else {
			divs[i].style.display = 'none';
		}
	}
	if(firstToFail == false) return true;
	return false;
}

function validation(fieldId, valType, valParam){
	
	if(!valParam) valParam = 1;
	
	var fieldObj = window.document.getElementById(fieldId);
	
	if(fieldObj){
		var val = fieldObj.value;
		
		switch(valType){
			case 'MINLEN':
				if(val.length >= valParam){
					return true;
				}
			break;
			case 'EMAIL':
				if(isValidEmail(val)){
					return true;
				}
			break;
			default:
				// VALTYPE NOT CORRECTLY SET
		}
		
	}
	
	return false;
}

function isValidEmail(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
		return false
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false
	}
	if (str.indexOf(at,(lat+1))!=-1){
		return false
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false
	}
	if (str.indexOf(dot,(lat+2))==-1){
		return false
	}
	if (str.indexOf(" ")!=-1){
		return false
	}
	return true;
}

$(window).load(function(){
	var parent = window.document.getElementById('contact-key-ppl');
	if(parent)
	{
		$('#contact-key-ppl h3').click(function() 
		{
			$(this).next().toggle('slow');
			var symbol = $('#contact-key-ppl h3 span')[0];
			symbol.innerHTML = (symbol.innerHTML == '+') ? '-' : '+';
			return false;
		}).next().hide();
	}
});

