
function removespace(s){
   var result;
   result = "";
   for (var i=0; i<s.length; i++){
      if (s.charAt(i) != ' '){
         result += s.charAt(i);
      }
   }
   return result;
}

function isRadioChecked(Opt){
  if (Opt.length) {
    for (i=0; i<Opt.length; i++) {
      if (Opt[i].checked) {
          return true;
          break;
      }
    }
    return false;
  } else {
    if (Opt.checked) {
        return true;
    } else {
        return false;
    }
  }
}

function isListSelected(Opt){

  if (opt.selectedIndex>0){
    return true;
  }
  return false;
}


function listSelectedItems(Opt){
   items="";
  if (Opt.length) {
    for (i=0; i<Opt.length; i++) {
      if (Opt[i].checked) {
          items = items + Opt[i].value + "\n";
      }
    }
    return items;
  } else {
    if (Opt.checked) {
        return Opt.value;
    } else {
        return "";
    }
  }
}

function isInteger(x) {
 if (parseInt(x) != x) {
   return false;
 } else {
   return true;
 }
}

function round(number,X) {
// rounds number to X decimal places, defaults to 2
    X = (!X ? 2 : X);
    return Math.round(number*Math.pow(10,X))/Math.round(Math.pow(10,X));
}

function sigFigNo(X, N) {
  var p = Math.pow(10, N-Math.ceil(Math.log(Math.abs(X))/Math.LN10))
  return isFinite(p) ? Math.round(X*p)/p : X 
}

function isValidDate(iYear,iMonth,iDay){
	//for months that have only 30 days
	if  ((iMonth==4)||(iMonth==6)||(i==9)||(i==11)){
        if (iDay>30) {
           return false;
        }	
	}
	//for Feb that may have 28 or 29 days
	else if (iMonth==2)
	{
		if (((iYear%4==0)&&(iYear%100!=0))||(iYear%400==0))
		{
		  //a lead year
		  if (iDay>29){
		     return false;
		  }
		}
		else{
		  //not a lead year
		  if (iDay>28){
		     return false;
		  }
		}
	}
	return true;
}

function MonthName2Num(strMonth){
    var MonthName = new Array;
    MonthName[1] = "jan";
    MonthName[2] = "feb";
    MonthName[3] = "mar";
    MonthName[4] = "apr";
    MonthName[5] = "may";
    MonthName[6] = "jun";
    MonthName[7] = "jul";
    MonthName[8] = "aug";
    MonthName[9] = "sep";
    MonthName[10] = "oct";
    MonthName[11] = "nov";
    MonthName[12] = "dec";
    for (i=1;i<13;i++){
       if (strMonth.substring(0,3).toLowerCase()==MonthName[i]){
          return i;
          break;
       }
    }
    return 0;
}


function Num2Monthname(iMonth){
    var MonthName = new Array;
    MonthName[1] = "January";
    MonthName[2] = "February";
    MonthName[3] = "March";
    MonthName[4] = "April";
    MonthName[5] = "May";
    MonthName[6] = "June";
    MonthName[7] = "July";
    MonthName[8] = "August";
    MonthName[9] = "September";
    MonthName[10] = "October";
    MonthName[11] = "November";
    MonthName[12] = "December";
    return MonthName[iMonth];
}


function BeforeToday(Y,M,D){

    Now = new Date();
    yT = Now.getUTCFullYear();
    mT = Now.getUTCMonth() + 1;
    dT = Now.getUTCDate();

    Today = yT + right("0"+mT,2) + right("0"+dT,2);
    InDate1 = Y + right("0"+M,2)+right("0"+D,2);

    if (Number(InDate1)<Number(Today)){
       return true;
    }else {
       return false;
    }
}


function DateDiff(Y1,M1,D1,Y2,M2,D2){

    InDate1 = Y1 + right("0"+M1,2) + right("0"+D1,2);
    InDate2 = Y2 + right("0"+M2,2) + right("0"+D2,2);
    return (Number(InDate2) - Number(InDate1));
}

function right(inString,iLength){
   return (inString.substring(inString.length-iLength,iLength+1));
}

function openwin(url,w,h){
 window.open(url,'win','width='+w+',height='+h+',scrollbars=no,menubar=no,location=no,toolbar=no,statusbar=no,resizable=no');
}

function openwin2(url,w,h){
	window.open(url,'win2','width='+w+',height='+h+',scrollbars=yes,menubar=no');
}

function openwin3(url,w,h){
 window.open(url,'win3','width='+w+',height='+h+',scrollbars=yes,menubar=no,location=no,toolbar=no,statusbar=no,resizable=yes');
}

function openwin4(url,w,h){
 window.open(url,'win4','width='+w+',height='+h+',scrollbars=yes,menubar=yes,location=no,toolbar=yes,statusbar=no,resizable=yes');
}

function isValidEmail(emailStr) {
         emailStr=emailStr.toLowerCase();
		/* The following variable tells the rest of the function whether or not
		to verify that the address ends in a two-letter country or well-known
		TLD.  1 means check it, 0 means don't. */

		var checkTLD=1;

		/* The following is the list of known TLDs that an e-mail address must end with. */

		var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;

		/* The following pattern is used to check if the entered e-mail address
		fits the user@domain format.  It also is used to separate the username
		from the domain. */

		var emailPat=/^(.+)@(.+)$/;

		/* The following string represents the pattern for matching all special
		characters.  We don't want to allow special characters in the address. 
		These characters include ( ) < > @ , ; : \ " . [ ] */

		var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";

		/* The following string represents the range of characters allowed in a 
		username or domainname.  It really states which chars aren't allowed.*/

		var validChars="\[^\\s" + specialChars + "\]";

		/* The following pattern applies if the "user" is a quoted string (in
		which case, there are no rules about which characters are allowed
		and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
		is a legal e-mail address. */

		var quotedUser="(\"[^\"]*\")";

		/* The following pattern applies for domains that are IP addresses,
		rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
		e-mail address. NOTE: The square brackets are required. */

		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

		/* The following string represents an atom (basically a series of non-special characters.) */

		var atom=validChars + '+';

		/* The following string represents one word in the typical username.
		For example, in john.doe@somewhere.com, john and doe are words.
		Basically, a word is either an atom or quoted string. */

		var word="(" + atom + "|" + quotedUser + ")";

		// The following pattern describes the structure of the user

		var userPat=new RegExp("^" + word + "(\\." + word + ")*$");

		/* The following pattern describes the structure of a normal symbolic
		domain, as opposed to ipDomainPat, shown above. */

		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

		/* Finally, let's start trying to figure out if the supplied address is valid. */

		/* Begin with the coarse pattern to simply break up user@domain into
		different pieces that are easy to analyze. */

		var matchArray=emailStr.match(emailPat);

		if (matchArray==null) {

		/* Too many/few @'s or something; basically, this address doesn't
		even fit the general mould of a valid e-mail address. */

		//alert("Email address seems incorrect (check @ and .'s)");
		return false;
		}
		var user=matchArray[1];
		var domain=matchArray[2];

		// Start by checking that only basic ASCII characters are in the strings (0-127).

		for (i=0; i<user.length; i++) {
			if (user.charCodeAt(i)>127) {
				//alert("Ths username contains invalid characters.");
				return false;
			}
		}
		for (i=0; i<domain.length; i++) {
			if (domain.charCodeAt(i)>127) {
				//alert("Ths domain name contains invalid characters.");
				return false;
			}
		}

		// See if "user" is valid 

		if (user.match(userPat)==null) {
			// user is not valid
			//alert("The username does not seem to be valid.");
			return false;
		}

		/* if the e-mail address is at an IP address (as opposed to a symbolic
		host name) make sure the IP address is valid. */
		var IPArray=domain.match(ipDomainPat);
		if (IPArray!=null) {
		// this is an IP address
			for (var i=1;i<=4;i++) {
				if (IPArray[i]>255) {
					//alert("Destination IP address is invalid!");
					return false;
				}
			}
			return true;
		}

		// Domain is symbolic name.  Check if it's valid.
 
		var atomPat=new RegExp("^" + atom + "$");
		var domArr=domain.split(".");
		var len=domArr.length;
		for (i=0;i<len;i++) {
			if (domArr[i].search(atomPat)==-1) {
				//alert("The domain name does not seem to be valid.");
				return false;
			}
		}

		/* domain name seems valid, but now make sure that it ends in a
		known top-level domain (like com, edu, gov) or a two-letter word,
		representing country (uk, nl), and that there's a hostname preceding 
		the domain or country. */

		if (checkTLD && domArr[domArr.length-1].length!=2 && 
			domArr[domArr.length-1].search(knownDomsPat)==-1) {
			//alert("The address must end in a well-known domain or two letter " + "country.");
			return false;
		}

		// Make sure there's a host name preceding the domain.

		if (len<2) {
			//alert("This e-mail address is missing a hostname!");
			return false;
		}

		// If we have gotten this far, everything's valid!
		return true;
}

function checkFlash() {
  if ((navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.indexOf("Mac") == -1 && navigator.appVersion.indexOf("3.1") == -1) || (navigator.plugins && navigator.plugins["Shockwave Flash"]) || navigator.plugins["Shockwave Flash 5.0"]){
     //Load a pre-defined HTML page with Flash Player in it into the browser window.
      window.location='home.asp';
  }
  else {
    //Load a pre-defined HTML page without Flash Player into the browser window.
    window.location='noflash.asp';
  }
  return false; 
}

function isAlphabetic(string, ignoreWhiteSpace) {
	if (string.search) {
		if ((ignoreWhiteSpace && string.search(/[^a-zA-Z\s]/) != -1) || (!ignoreWhiteSpace && string.search(/[^a-zA-Z]/) != -1)) return false;
	}
	return true;
}

/*
function isValidFolderName(string) {
     //check if it contains : " < > \ | * ?
	if (string.search(/[:\"<>\\\|\*\?/]/gi) == -1) {
           return true;
        } else {
	  return false;
        }
}
*/

function isValidFolderName(inStr) {
     //check if it contains : " < > \ | * ?
   var s=":\"<>\\|*?"
   for (var i=0; i<s.length; i++){
      if (inStr.indexOf(s.charAt(i))>0){
         return false;
      }
   }
   return true;
}


function generate_synonym(keywords){
  if (removespace(keywords.value)=="") { 
	  alert("Description cannot be empty");
	  keywords.focus();
  } else {
      openwin('dictionary_synonym.asp?word='+keywords.value,400,320);
  }
}

function getExtension(filename) {
  return filename.substring(filename.lastIndexOf('.') + 1,filename.length);
}
