var ns4 = document.layers;
var ie = document.all;
var ns6 = document.getElementById && !document.all;
var alertboxmessage = "";
var frm;

function Question(type,name,divid,pattern,message)
{
	this.type=type;
	this.name=name;
	this.divid=divid;
	this.pattern=pattern;
	this.message=message;
}

function getElement(id)
{
	if (ie)
	{
		obj = document.all[id];
	}
		else if (ns6)
	{
		obj = document.getElementById(id);
	}

	if (!obj) 
	{
		return null;
	}
	else
	{
		return obj;
	}
}

function getValue(q)
{
	//check if form element is valid

	if (q.type=="text")
	{
		return frm.elements[q.name].value;
	}

	if (q.type=="select")
	{
		var pickedindex=frm.elements[q.name].selectedIndex;
		return frm.elements[q.name].options[pickedindex].value;
	}
}





function validateForm(FormName)
{
var validform=true;
frm=document.forms[FormName];

//define question parameters
//question type, field name, field error div id, regular expression, alertbox message
var questions = new Array();
questions[0]=new Question('text','first_name','first_name_error','[\\S]+','Please enter your first name.');
questions[1]=new Question('text','last_name','last_name_error','[\\S]+','Please enter your last name.');
questions[2]=new Question('text','description','question_error','[\\S]+','Please enter your question or need.');
questions[3]=new Question('select','00N30000001Goqh','subject_error','[\\S]+','Please select the subject of your question.');
questions[4]=new Question('select','00N30000001UlfP','country_error','[\\S]+','Please select your country.');
questions[7]=new Question('select','00N30000001Gopo','role_error','[\\S]+','Please select your function.');
questions[5]=new Question('text','phone','phone_error','\\d.*\\d.*\\d.*\\d.*\\d.*\\d.*\\d.*\\d','Please enter your phone number.');
questions[6]=new Question('text','email','email_error','^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*\\.(\\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$','Please enter a valid e-mail address.');


var testotherprod = frm.elements['other_products'].value;
if(testotherprod != '' && testotherprod != null){
frm.elements['description'].value = 'Other Product Selected :'+testotherprod+frm.elements['description'].value;
}

// Management of the Multiple Value Picklist ...
var testproduct = false;
for (var z=0;z<frm.elements['00N30000001adan'].length;++z){
if (frm.elements['00N30000001adan'][z].checked){
testproduct = true;
}
}
if(testproduct == false){
validform=false;
showError('products_error','Please select your Product.');
}else{
hideWarning('products_error');
}

//hide previous warnings
alertboxmessage="";
for (var x=0;x<questions.length;++x)
{
	hideWarning(questions[x].divid);
	
}

//loop through question array
for (var x=0;x<questions.length;++x)
{
	if (checkValue(questions[x])==false)
	{
		validform=false;
	}
}



if (validform==true)
{
	return validform;
}
else if (ns4)
{
	alert(alertboxmessage);
	return validform;
}
else
{
	showError("submit_error","");
	self.scroll(0,200);
	return validform;
}

}

function checkValue(qst)
{
	var RegEx = new RegExp(qst.pattern);

	if (RegEx.test(getValue(qst)))
	{
		return true;
	}
	else
	{
		showError(qst.divid,qst.message);
		return false;
	}
	return true;
}


function showError(id,message)
{
	alertboxmessage=alertboxmessage +"\n" + message;
	obj=getElement(id);
	if (!obj) 
	{
		return false;
	}
	else
	{
		obj.style.display = "inline";
		return true;
	}
}


function hideWarning(id)
{
	obj=getElement(id);
	if (!obj)
	{
		return false;
	}
	else
	{
		obj.style.display = "none";
		return true;
	}
}