var reqFields = [
				 ['question', 'Klausimas'], 
				 /*['regionVal', 'Savivaldybė, kurios teritorijoje gyvenu'], 
				 ['themeVal', 'Klausimo tema'],*/
				 ['userAnswerTypeVal', 'Atsakymą noriu gauti'],
				 ['userName', 'Vardas ir pavardė']
				];
var themeFields = [
						[ ['undef', 'undef'] ],
						[
							['kvalifikacija', 'Turimas išsilavinimas'], 
							['rajonasVal', 'Savivaldybė, kurios teritorijoje norite mokytis'], 
							['dalykai', 'Noriu mokytis...']
						],
						[
							['paramosSubjektasVal', 'Paramos subjektas']/*, 
							['paramosTipas', 'Prašomos paramos tipas']*/
						]/*,
						[
							['institucijos', 'Kokios institucijos dominas']
						]*/
				  ];
var contactFields = [
			['undef', 'undef'],
			['userEmail', 'E-pašto adresas'],
			['userPhone', 'Telefonas'],
			['userAdress', 'Namų adresas'],
			['userPhone', 'Telefonas']
					];

var TEMA_MOKYTIS = 1;
var TEMA_PARAMA = 2;
var TEMA_INSTITUC = 3;
var TEMA_SVETAINE = 4;
var TEMA_KITA = 5;

function onLoadF(){

}

function hideDiv(id){
	document.getElementById(id).style.display='none';
}

function showDiv(id){
	document.getElementById(id).style.display='inline';
}

function hideAllThemeDivs(){
	hideDiv("theme1");
	hideDiv("theme2");
	hideDiv("theme3");
}

function showField(id) {
	document.getElementById(id + 'Ast').style.display='inline';
}

function hideField(id) {
	document.getElementById(id + 'Ast').style.display='none';
}

function mapToGroup(group, fun) {
	for (i = 0; i < group.length; i++) {
		fun(group[i][0]);
	}
}

function markRequiredFields() {
	var contactFormDefined = false;
	var topicDefined = false;
	var t;
	
	for (i = 0; i < reqFields.length; i++) {
		showField(reqFields[i][0]);
		contactFormDefined = contactFormDefined || (1 == i); //(3 == i)
	}

	topicId = trimAll(document.getElementById("themeVal").value);
	topicDefined = ('' != topicId);
	if (topicDefined) {
		for (j = 1; j < themeFields.length; j++) {
			if (j != topicId) {
				mapToGroup(themeFields[j], hideField);
			} else {
				mapToGroup(themeFields[j], showField);
			}
		}
	}

	if (contactFormDefined) {
		contactId = trimAll(document.getElementById("userAnswerTypeVal").value); //document.getElementById(reqFields[3][0]).value
		fieldId = '';
		for (j = 1; j < contactFields.length; j++) {
			if (j != contactId && contactFields[j][0] != fieldId) {
				hideField(contactFields[j][0]);
			} else {
				showField(contactFields[j][0]);
				fieldId = contactFields[j][0];
			}
		}
		
	}
}

function themeChanged(item){
	hideAllThemeDivs()
	var id = item.value;
	if(id == 1) {
		showDiv("theme1");
	} else if(id == 2) {
		showDiv("theme2");
	} else if(id == 3){
		showDiv("theme3");
	} else {
		hideAllThemeDivs();
	}
	markRequiredFields();
}

function checkField(aField) {
	return _checkField(aField[0], aField[1]);
}

function _checkField(fieldName, fieldLabel, checkFun, checkFunMsg) {
	var val = trimAll(document.getElementById(fieldName).value);
	
	if ('' == val || ' ' == val) {
		valMsg = valMsg + "Laukas '" + fieldLabel + "' neužpildytas.\n";
		return false;
	} else {
		if (null != checkFun) {
			if (! checkFun(val)) {
				valMsg = valMsg + checkFunMsg;
				return false;
			}
		}
	}
	return true;
}

/**
 * field validation result message string
 * augmented by _checkField()
 */
var valMsg;

function validateFields() {

	valMsg = '';
	var contactFormDefined = false;
	var topicDefined = false;
	var t;
	
	for (i = 0; i < reqFields.length; i++) {
		t = checkField(reqFields[i]);
		if (1 == i) {
			contactFormDefined = t;
		}
	}
	
	topicId = trimAll(document.getElementById("themeVal").value);
	topicDefined = ('' != topicId);

	if (topicDefined) {
		val = topicId;
		if (TEMA_INSTITUC != topicId && TEMA_SVETAINE != topicId && TEMA_KITA != topicId) {
			for (i = 0; i < themeFields[val].length; i++) {
				checkField(themeFields[val][i]);
			}
		}
	}

	if (contactFormDefined) {
		val = trimAll(document.getElementById("userAnswerTypeVal").value); // document.getElementById(reqFields[3][0]).value
		if (1 == val) {
			_checkField(contactFields[val][0], contactFields[val][1], echeck, "Klaidinga lauko 'E-pašto adresas' reikšmė.\n");
		} else {
			checkField(contactFields[val]);
		}
	}

	
	if ('' != valMsg) {
		alert("Klaidos:\n\n"+valMsg);
		return false;
	} else {
		return true;
	}
}

function trimAll(sString) {
	while (sString.substring(0,1) == ' ') {
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ') {
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   //alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   //alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    //alert("Invalid E-mail ID")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    //alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }

 		 return true					
	}

function ValidateForm(){
	var emailID=document.frmSample.txtEmail
	
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please Enter your Email ID")
		emailID.focus()
		return false
	}
	if (echeck(emailID.value)==false){
		emailID.value=""
		emailID.focus()
		return false
	}
	return true
 }
