// ################################################## //
// ===============JavaScript Document================ //
// The belo functions validate different input fields //
// ========created by santrooper@gmail.com=========== //
// ################################################## //

function jstrim(strToTrim){
	return strToTrim.replace(/^\s+|\s+$/g,"");
}

function getDomain(rootDir){
   //var domain = 'http://' +document.domain;
   var domain =(jstrim(rootDir)!='')?'http://'+window.location.hostname+'/'+rootDir:'http://'+window.location.hostname;
   return(domain);
}

function isEmptyField(fldval){
	rtnval=(jstrim(fldval)=='')?true:false;
	return(rtnval);
}

function validInput(checktype,fieldval){
	fieldval=jstrim(fieldval);
	switch(checktype){
		case 'number':
			chrpool=/^[0-9]+$/;
		break;
		case 'character':
			chrpool=/^[A-Za-z]+$/;
		break;
		case 'alphanumeric':
			chrpool=/^[A-Za-z0-9]+$/;
		break;
		case 'url':
			chrpool=/^(?:http:\/\/)?(?:[\w-]+\.)+[a-z]{2,6}$/i;
		break;
		case 'email':
			chrpool=/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
		break;
		default:
			chrpool=/^[A-Za-z0-9]+$/;
		break;
	}
	var trgexpr = new RegExp(chrpool);
	rtnval=(trgexpr.test(fieldval))?true:false;
	return(rtnval);
}

function getItemsGroupedByIdPrefix(idprefix){
	var inputObjArr = document.getElementsByTagName('input');
	var requiredObjArr=new Array();
	var x=0;
	var prefixlength=idprefix.length;
	
	for(var i=0; i<inputObjArr.length; i++){
		currantid=inputObjArr[i].id;
		if(currantid.substr(0,prefixlength)==idprefix){
			requiredObjArr[x]=currantid;
			x++;
		}
	}
	
	return(requiredObjArr);
}

function hasCheckedItemAmongGroupedByIdPrefix(idprefix){
	var requiredObjArr=getItemsGroupedByIdPrefix(idprefix);
	var ischecked=false;
	
	if(requiredObjArr.length>0){
		for(p=0;p<requiredObjArr.length;p++){
			if(document.getElementById(requiredObjArr[p]).checked){
				ischecked=true;
				break;
			}
		}
	}
	return(ischecked);
}

function validateContactForm(){
	errorCount = 0;
	errorArray = new Array();
	
	nameVal = document.getElementById('name').value;
	phoneVal = document.getElementById('phone').value;
	messageVal = document.getElementById('message').value;
	dateVal = document.getElementById('date_of_event').value;
	locationVal = document.getElementById('location_of_event').value;
	emailVal = document.getElementById('email').value;
	callVal = document.getElementById('best_time_to_contact').value;
	
	eventTypeChecked = hasCheckedItemAmongGroupedByIdPrefix('event_');
	entertainChecked = hasCheckedItemAmongGroupedByIdPrefix('entertain_');
	
	if( jstrim(nameVal)=='' ){
		errorArray.push('Please enter name');
		errorCount++;
	}
	else if( jstrim(phoneVal)=='' || !validInput('number',jstrim(phoneVal)) ){
		errorArray.push('Please enter valid phone number');
		errorCount++;
	}
	else if( jstrim(messageVal)=='' ){
		errorArray.push('Please enter message');
		errorCount++;
	}
	else if( jstrim(dateVal)=='' ){
		errorArray.push('Please enter date of event');
		errorCount++;
	}
	else if( jstrim(locationVal)=='' ){
		errorArray.push('Please enter location of event');
		errorCount++;
	}
	else if( !eventTypeChecked ){
		errorArray.push('Please select event type');
		errorCount++;
	}
	else if( !entertainChecked ){
		errorArray.push('Please select entertainment type');
		errorCount++;
	}
	else if( jstrim(emailVal)=='' || !validInput('email',jstrim(emailVal)) ){
		errorArray.push('Please enter valid email');
		errorCount++;
	}
	else if( jstrim(callVal)=='' ){
		errorArray.push('Please enter best time to call');
		errorCount++;
	}
	
	//////////////////////////////////
	
	if( errorCount==0 && errorArray.length==0 ){
		formObj = document.getElementById('contactform');
		formObj.submit();
	}
	else{
		alert(errorArray.toString());
		return(false);
	}
}

