function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  var h = window.open(theURL,winName,features);
  h.focus();
}

function MM_popupMsg(msg) { //v1.0
  alert(msg);
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function printPage() { print(document); }

/* 
	@description Sets the value of sortBy and sortOrder properties
	of the given form, then submits the form to the server
	@author jcg
*/
function MM_sort(formName, sortby, sortorder) {
	var form = window.document.forms[formName];

	if (form.sortBy.value == sortby) { // toggle if the same orderBy
		if (sortorder=="") form.sortOrder.value = "0";
		else if (sortorder=="0") form.sortOrder.value = "1";
		else if (sortorder=="1") form.sortOrder.value = "0";
	} else { // default orderBy is 0 or ASC
		form.sortOrder.value = "0";
	}

	form.sortBy.value = sortby;
	form.submit();
}

	function MM_sort2(formName, sortby, sortorder, popup) {
		var form = window.document.forms[formName];
		if (form.sortBy.value == sortby) { // toggle if the same orderBy
			if (sortorder=="") form.sortOrder.value = "0";
			else if (sortorder=="0") form.sortOrder.value = "1";
			else if (sortorder=="1") form.sortOrder.value = "0";
		} else { // default orderBy is 0 or ASC
			form.sortOrder.value = "0";
		}
		form.sortBy.value = sortby;
		form.popup.value = popup;
		form.submit();
	}

/* 
	@description toggles all the check boxes in a form.
	@author gta
*/
function checkAll(param,formname){
   var ml = eval('document.'+formname);
	var len = ml.elements.length;
    var status = false;
    switch (param){
    case 'deleteParameters':
       if(ml.selectAllParam.checked){      
			 status=true;
	}
	break;
	case 'deleteResults':
       if(ml.selectAll.checked){      
			 status=true;
	}
	break;
	case 'deleteBookmarks':
       if(ml.selectAll.checked){      
			 status=true;
	}
	break;
	case 'deleteArticles':
       if(ml.selectAll.checked){      
			 status=true;
	}
	break;
	case 'toView':
        if(ml.toViewAll.checked){     
			status=true;
		}
		if(ml.toViewAllTop.checked){      
			 status=true;
		}
	break;
	case 'toBasket':
        if(ml.toBasketAll.checked){      
			 status=true;
		}
        if(ml.toBasketAllTop.checked){      
			 status=true;
		}		
    }

        for (var i = 0; i < len; i++) {
	         var e = ml.elements[i];
	            if (e.name == param) { e.checked = status;
					}
	    }
	
return true;
}

function checkAtLeastOne(param,formname)
{
 //check if at least one checkbox is selected
    var ml = eval('document.'+formname);
	var len = ml.elements.length;
    for (var i = 0; i < len; i++) {
	         var e = ml.elements[i];
	         if (e.name == param) { 
				 if(e.checked){
					// alert ('e.checked='+e.checked);
				    return true;
				 }
				}
	   }

   return false;
}

function checkOne(param,formname,displaytext){
 //check if at least one checkbox is selected
    var ml = eval('document.'+formname);
	var len = ml.elements.length;
    for (var i = 0; i < len; i++) {
	         var e = ml.elements[i];
	         if (e.name == param) { 
				 if(e.checked){										
				    return true;
				 }
				}
	   }
   alert(displaytext);
   return false;
}

function checkOneDelete(param,formname,displaytext){	
	if (checkOne(param,formname,displaytext)){		
		return confirm('Are you sure you want to delete?');		 
	} else {
		return false;
	}
}

function validateMultipleEntry(param,formname,displaytext) {
	var field = eval('document.'+formname+'.'+param);
	var separator = ",";
	var tokens = new Array();
	var issueId;

	tokens = tokenize(field.value, separator);

    if (tokens.length == 0 || tokens[0] == "") {
		alert(displaytext);
		return false;
	}

	for(var i=0; i<tokens.length; i++) {
		issueId = trim(tokens[i]);
		
		if (!isValidNumber(issueId)) {
			alert(tokens[i] + ' is not a number.');
			return false;
		}		
	}
	
	return true;
}

function validateArray(param,formname,displaytext){
	var field = eval('document.'+formname+'.'+param);
	var issueId;
   
	for(var i=0; i<field.length; i++) {
		data = field[i].value;
		
		if (data != ""){
			if (!isValidNumber(data)) {
				alert(field[i].value + ' is not a number.');
				return false;
			}
			return true;
		}		
	}
	alert(displaytext);
	return false;
} 

function validateSubno(param,formname,displaytext){
	var field = eval('document.'+formname+'.'+param);
	var issueId;
   	data = field.value;
		if (data != ""){
			if (!isValidNumber(data)) {
				alert(field.value + ' is not a number.');
				return false;
			}
			return true;
		}		
	alert(displaytext);
	return false;
}

	function wasAdded(form, componentfield, componentIdValue) {
		var ml = form;
		var len = ml.elements.length;

		for (var i = 0; i < len; i++) {
			var elem = ml.elements[i].name;
			
			if (elem.indexOf(componentfield) > -1) {
				var newElem = ml.elements[i];
				if (newElem.value == componentIdValue) {
					return true;
				}
			}
		}
		
		return false;
	}


function tokenize(input, separator) {
	var indexOfSeparator = input.indexOf(separator);
	var index = 0;

	var tokens = new Array();
	
	if (indexOfSeparator > -1) {
		while(input.length > 0) {
			temp = input.substring(0, indexOfSeparator);
			//alert("temp: " + temp);
			
			if (temp != '' || temp.length > 0) {
				tokens[index] = temp;
				index++;
			}
			
			input = input.substring(temp.length + 1, input.length);
			//alert("input: " + input);
			
			indexOfSeparator = input.indexOf(separator);

			if (indexOfSeparator == -1) {
				if (input != '' || input.length > 0) {
					tokens[index] = input;
				}
				break;
			}
		}
	} else {
		temp = input;
		tokens[index] = temp;
	}
	
	return tokens;
}


function validateInputDate(elem) {
	var input = elem.value;
	var len = input.length;
	
	var day;
	var month;
	var year;

	if (len == 8) {
		input = '0' + input;
		len = input.length;
	}

	if (len == 0) {
		return true;
	} else if (len < 9 || len > 9) {
		return false;
	} else {
		day = input.substring(0, 2);
		month = input.substring(2, 5);
		year = input.substring(5, len);

		return isInputDateValid(day, convertMonth(month), year);
	}
}

function isInputDateValid(day, month, year) {

	if (!isValidNumber(day) || !isValidNumber(year)) {
		return false;
	}

	if (month < 1 || month > 12) {
		return false;
	}

	if (day < 1 || day > 31) {
    	return false;
	}
    
    if ((month == 4 || month == 6 || month == 9 || month == 11) &&
    	(day == 31)) {
		return false;
	}
    
    if (month == 2) {
    	var leap = (year % 4 == 0 &&
        (year % 100 != 0 || year % 400 == 0));

		if (day>29 || (day == 29 && !leap)) {
        	return false;
		}
	}
	return true;
}

function isValidNumber(sText) {
	/* var validChars = "0123456789";
	var isNumber=true;
	var Char;

	for (i = 0; i < sText.length && isNumber == true; i++)    { 
		Char = sText.charAt(i);
		if (validChars.indexOf(Char) == -1) {
			isNumber = false;
			break;
		}
	}
	return isNumber; */
	
	var PNum = new String(sText);
	var regex = /[^0-9]/;
	return !regex.test(PNum);
}

function isAllDigits(argvalue) {
	argvalue = argvalue.toString();
    var validChars = "0123456789";
    var startFrom = 0;
        
    if (argvalue.substring(0, 2) == "0x") {
    	validChars = "0123456789abcdefABCDEF";
        startFrom = 2;
	} else if (argvalue.charAt(0) == "0") {
       	validChars = "01234567";
        startFrom = 1;
	} else if (argvalue.charAt(0) == "-") {
       	startFrom = 1;
	}
                
	for (var n = startFrom; n < argvalue.length; n++) {
       	if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
	}
	return true;
}

function isInRange(argValue, min, max) {
	var isValid = true;
	var fValue = parseFloat(argValue);
	var fMin = parseFloat(min);
	var fMax = parseFloat(max);
		
	if (!(fValue >= fMin && fValue <= fMax)) {
		isValid = false;
	}
		
	return isValid;
}


function convertMonth(month) {
	var monthValue = -1;
				
	var months = new Array();
	months[0] = 'Jan';
	months[1] = 'Feb';
	months[2] = 'Mar';
	months[3] = 'Apr';
	months[4] = 'May';
	months[5] = 'Jun';
	months[6] = 'Jul';
	months[7] = 'Aug';
	months[8] = 'Sep';
	months[9] = 'Oct';
	months[10] = 'Nov';
	months[11] = 'Dec';
	
	for (i = 0; i<months.length; i++) {
		if (months[i].toUpperCase() == month.toUpperCase()) {
			monthValue = (i + 1);
			break;
		}
	}

	if ((monthValue > 0) && (monthValue < 10)) {
		monthValue = '0' + monthValue;
	}
				
	//alert('monthValue: ' + monthValue);
	return monthValue;
}

function setAllCheckBoxes(displaytext){

	var issue = document.getElementsByName("issue");
	var forthcoming = document.getElementsByName("forthcoming");
	var len = issue.length;
	var len2 = forthcoming.length;
	
		for (var i = 0; i < len; i++) {
	         var e = issue[i];
	         
	         var indexOfSeparator = e.value.indexOf("-");
			 var temp = e.value.substring(0, indexOfSeparator);

	         	if (temp == displaytext) { 
					e.checked = true;
				}
		}
		
		if (document.manageContentAlertsForm.typeForthcoming.checked){
			for (var i = 0; i < len2; i++) {
		         var e = forthcoming[i];
		         
		         var indexOfSeparator = e.value.indexOf("-");
				 var temp = e.value.substring(0, indexOfSeparator);
	
		         	if (temp == displaytext) { 
						e.checked = true;
					}
			}
		}
}

function validateManageContent(formname){
	var field = eval('document.'+formname);

	if (field.type[0].checked){
		field.issueFrequency.value = '';		
	}
	
	if (field.type[1].checked){
		if (field.issueFrequency.value == ''){
			alert('Please input number of days.');
			field.issueFrequency.focus();
			return false;
		}else{
			if (!isValidNumber(field.issueFrequency.value)) {
				alert(field.issueFrequency.value + ' is not a number.');
				field.issueFrequency.focus();
				return false;
			}
		}	
	}
	
	if (field.typeForthcoming.checked){
		if (field.forthcomingFrequency.value == ''){
			alert('Please input number of days.');
			field.issueFrequency.focus();
			return false;
		}else{
			if (!isValidNumber(field.forthcomingFrequency.value)) {
				alert(field.forthcomingFrequency.value + ' is not a number.');
				field.forthcomingFrequency.focus();
				return false;
			}
		}
	}else{
		field.forthcomingFrequency.value = '';
	}
	
	return confirm('Are you sure you want to make these changes?');

}

//added by rjc 022205
function MM_sort_consortiaOwnIP(formName, ownSortBy, ownSortOrder) {
	var form = window.document.forms[formName];
	if (form.ownSortBy.value == ownSortBy) { // toggle if the same orderBy
		if (ownSortOrder=="") form.ownSortOrder.value = "0";
		else if (ownSortOrder=="0") form.ownSortOrder.value = "1";
		else if (ownSortOrder=="1") form.ownSortOrder.value = "0";
	} else { // default orderBy is 0 or ASC
		form.ownSortOrder.value = "0";
	}
	form.ownSortBy.value = ownSortBy;
	form.submit();
}

//added by rjc 022205
function MM_sort_consortiaOrgIP(formName, orgSortBy, orgSortOrder) {
	var form = window.document.forms[formName];
	if (form.orgSortBy.value == orgSortBy) { // toggle if the same orderBy
		if (orgSortOrder=="") form.orgSortOrder.value = "0";
		else if (orgSortOrder=="0") form.orgSortOrder.value = "1";
		else if (orgSortOrder=="1") form.orgSortOrder.value = "0";
	} else { // default orderBy is 0 or ASC
		form.orgSortOrder.value = "0";
	}
	form.orgSortBy.value = orgSortBy;
	form.submit();
}

function validateLogo(form){

	if (trim(document.forms[form].logo.value).length == 0){
		alert("Image file is required");
		return false;
	}	
}

function trim(s){
	return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}

function sendCountry(formName){
	var form = document.forms[formName];
	form.action = form.action + "#country";
	form.submit();
}

function evalCountry(formName,countryId) {
	var form = document.forms[formName];
	var action = form.action;

	form.action = action + "?submitCountry=" + countryId + "#country";
	
	form.submit();
}

function addToList(formName, includedList, selectField, newElem) {
	
	var form = window.opener.document.forms[formName];
	//alert('form.name: ' + form.name);
	
	var list = form.elements[includedList].value;
	//alert('list: ' + list);
	
	var elem = document.getElementsByName(selectField);
	//alert(selectField + ', elem.length: ' + elem.length);
	
	var ctr = 0;
	
	if (null != elem || elem.length > 0) {
		var len = elem.length;
		
		for (var i = 0; i < len; i++) {
			if (elem[i].checked) {
				ctr = 1;
				
				if (included(list, elem[i].value)) {
					alert(elem[i].value + " already in the list to be added.");
					return false;
				} else {
					var temp = form.elements[newElem].value;
					if ('' == temp || null == temp) {
						form.elements[newElem].value = elem[i].value;
					} else {
						temp += (',' + elem[i].value);
						form.elements[newElem].value = temp;
					}
					window.close();
				}
			}
		}
	}
	
	if (ctr == 0) {
		alert('Please tick a box before clicking the button.');
	}
}

function included(includedList, newId) {

	var elem = tokenize(includedList, ',');
	if (null != elem) {
		var len = elem.length;
		for (var i = 0; i < len; i++) {
			if (elem[i] == newId) {
				return true;
			}
		}
	}
	return false;
}




	



