<!--

var reWhitespace = /^\s+$/;
var submitcount=0;

function validateform(){
	if ( submitcount == 0) {

		// Validate search date interval
		if (!validateComplete(document.srchform)){
			return false;
		}
		submitcount++;
		return true;
	} else {
		alert("You have already submitted a search request, please wait ...");
		return false;
	}
}
function validateQform(){
	if ( submitcount == 0) {
		// Validate search date interval
		if (!validateQComplete(document.srchform)){
			return false;
		}
		submitcount++;
		return true;
	} else {
		alert("You have already submitted a search request, please wait ...");
		return false;
	}
}

function validateQComplete(formObj){

	if ( Number(howMany(formObj.pubsel)) > 1){
		alert("Maximum number of publications allowed per a free search is 1, please change your selection");
		return false;
	}

	if ( Number(howMany(formObj.pubsel)) == 0){
		alert("No publications have been selected");
		return false;
	}
	
	return true;
}

function validateComplete(formObj){

	reCustom = / /i;

	if ( Number(howMany(formObj.pubsel)) > 10){
		alert("Maximum number of publications allowed per search is 10, please change your selection");
		return false;
	}

	if ( Number(howMany(formObj.pubsel)) == 0){
		alert("No publications have been selected");
		return false;
	}

	// custom date interval
	if ( (typeof(formObj.DateFrom) != 'undefined' && !emptyField(formObj.DateFrom)) 
		|| (typeof(formObj.datetype) == 'undefined') 
		|| ( (typeof(formObj.datetype[7]) != 'undefined') &&  (formObj.datetype[7].checked == 1) )
		|| ( formObj.datetype.value == 'custom') ) {
		if (emptyField(formObj.DateFrom)){
			alert("Please enter search start date");
		} else if (!isValidDate(formObj.DateFrom.value)) {
			formObj.DateFrom.focus();
		} else if (!isValidDate(formObj.DateTo.value)) {
			formObj.DateTo.focus();
		} else if (!emptyField(formObj.DateTo) && !validInterval(formObj.DateFrom.value,formObj.DateTo.value)) {
			alert("Invalid search interval, start date must precede end date");
		} else {
			return true;
		}

		return false;
	} 
	return true;
}

function howMany(selectObject) {   
	var numberSelected=0   
	for (var i=0; i < selectObject.options.length; i++) {      
		if (selectObject.options[i].selected==true)         
			numberSelected++   
	}   
	return numberSelected
}

function emptyField(textObj){
	if (textObj.value.length==0) return true;
	for (var i=0; i<textObj.value.length; ++i) {
		var ch = textObj.value.charAt(i);
		if (ch != ' ' && ch != '\t') return false;
	}
	return true;
}

function isValidDate(dateStr) {

	var datePat = /^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null) {
		alert("Date is not in a valid format.")
		return false;
	}
	month = matchArray[3];
	day = matchArray[1];
	year = matchArray[4];
	if (month < 1 || month > 12) { // check month range
		alert("Month must be between 1 and 12.");
		return false;
	}
	if (day < 1 || day > 31) {
		alert("Day must be between 1 and 31.");
		return false;
	}
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		alert("Month "+month+" doesn't have 31 days!")
		return false
	}
	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {
			alert("February " + year + " doesn't have " + day + " days!");
			return false;
		}
	}
	return true;  // date is valid
}

function validInterval(DateFrom, DateTo){

// ensure that start date always precede end date
	var datePat = /^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/;
	var matchArray = DateFrom.match(datePat);
	var FromMM = matchArray[3];
	var FromYY = matchArray[4];
	var FromDD = matchArray[1];

	var matchArray = DateTo.match(datePat);
	var ToMM = matchArray[3];
	var ToYY = matchArray[4];
	var ToDD = matchArray[1];

	if ( Number(FromYY) > Number(ToYY) ) {
		return false;
	} else if ( Number(FromYY) == Number(ToYY) && Number(FromMM) > Number(ToMM)){
		return false;
	} else if ( Number(FromYY) == Number(ToYY) && Number(FromMM) == Number(ToMM) && Number(FromDD) > Number(ToDD)){
		return false;
	}

	return true;
}


function isEmpty(s){   
	return ((s == null) || (s.length == 0));
}

function isWhitespace (s){   // Is s empty?
	return (isEmpty(s) || reWhitespace.test(s));
}

function displaystatus(ccount,mess){
	if (isWhitespace (mess)){
	} else { 
	   alert(mess);
	   return false;
	} 
	if (isWhitespace (ccount)){
	} else if (ccount < 10) {
	   alert('Please note that you have ' + ccount + ' credits left in your account.\nTo increase your account click on the TOP UP link on the top banner.');
	   return false;
	}
}

function SelectAllBtns(selectObject) {   
	for (var i=0; i < selectObject.length; i++) {      
		if (selectObject[i].checked==false)         
			selectObject[i].checked = 1  
	}   
}
function UnSelectAllBtns(selectObject) {   
	for (var i=0; i < selectObject.length; i++) {      
		if (selectObject[i].checked==true)         
			selectObject[i].checked = 0  
	}   
}

// -->

