/**
 *  Generate a number select list, (help to display date)
 *  @param start - The start number
 *  @param end   - The end number
 *  @param selected - The select number
 *  @see  Sample code in /community/viewEvents.jsp
 */
function genNumberSelectList(start,end,selected)
{
	for(var i=start;i<=end;i++){
		if(i!=selected)
			document.write('<option value='+i+'>'+i+'</option>');
		else
			document.write('<option value='+i+' selected>'+i+'</option>');
	}
}

/**
 * Relase a key value in a url.
 * @param url - The original url
 * @param key - The key to be replaced
 * @param val - The new value for the key
 * @return  The new url
 * @author Chen Jianwu
 */
function URLReplace(url,key,val)
{
	var start;
	while((start=url.indexOf(key))>0){
		var last=url.charAt(start-1);
		if(last=='&'||last=='?')
			break;   //find it
	}
	if(start<0){  //this is a new key
		url+=((url.indexOf("?")<0)?"?":"&")+key+"="+val;
		return url;
	}
	var end=url.indexOf('&',start);
	return url.substring(0,start)+key+"="+val+(end>0?url.substring(end):"");
}

/**
 *The following 2 functions is only for compatible with Nescape(<5.0)
 */
function setSelectedItems(select,items)
{
	var opt=select.options;
	for(var i=0;i<opt.length;i++){
		var selected=false;
		for(var j=0;j<items.length;j++){
			if(opt[i].value==items[j]){
				selected=true;
				break;
			}
		}
		opt[i].selected=selected;
	}
}

/**
 *  @param select - The select object
 *  @return - the selected item
 */
function getSelectedItem(select)
{
//	return select.options[select.selectedIndex];  //this statements only work for IE
	var opt=select.options;
	for(var i=0;i<opt.length;i++){
		if(opt[i].selected)
			return opt[i];
	}
}

// return today day (in string 3 chars format).
// eg: Sun, Mon,..Sat.
function getToday() {
	var today=new Date();
	var ar = new Array();
	ar[0] = "Sun";
	ar[1] = "Mon";
	ar[2] = "Tue";
	ar[3] = "Wed";
	ar[4] = "Thu";
	ar[5] = "Fri";
	ar[6] = "Sat";

	return ar[today.getDay()];
}

// return today day (date).
// eg: 1, 2,...31.
function getDay() {
	var today=new Date();
	var day = today.getDate();

	return day;
}

// return today day (date) suffix.
// eg: st, nd, rd, th.
function getDaySuffix() {
	var today=new Date();
	var day = today.getDate();
	var daySuffice = "th";

	if (day==1) {
		daySuffice = "st"
	} else if (day==2) {
		daySuffice = "nd"
	} else if (day==3)  {
		daySuffice = "rd"
	}
	return daySuffice;
}

// return the current mth (in string 3 chars format).
// eg: Jan, Feb,...Dec.
function getMth() {
	var today=new Date();
	var month = today.getMonth()+1;

	if (month==1) {
		month = "Jan"
	} else if (month==2) {
		month = "Feb"
	} else if (month==3) {
		month = "Mar"
	} else if (month==4) {
		month = "Apr"
	} else if (month==5) {
		month = "May"
	} else if (month==6) {
		month = "Jun"
	} else if (month==7) {
		month = "Jul"
	} else if (month==8) {
		month = "Aug"
	} else if (month==9) {
		month = "Sep"
	} else if (month==10) {
		month = "Oct"
	} else if (month==11) {
		month = "Nov"
	} else {
		month = "Dec"
	}

	return month;
}

// return the current year (in numeric 4 digits format).
// eg: 2001, 2002....
function getYear() {
	var today=new Date();
	var year = today.getFullYear();
	return year;
}

// return the current time hour in numeric 2 digits max 12 hour format.
// eg: 1,2,..12.
function getHour() {
	var today=new Date();
	var hours = today.getHours();

	if (hours>12) {
		hours = hours - 12;
	}

	if (hours==0) hours = 12;
	return hours;
}

// return the current time minute in numeric 2 digits format.
// eg: 00,01,..29.
function getMin() {
	var today=new Date();
	var minutes = today.getMinutes();

	if (minutes<=9) minutes = "0" + minutes;

	return minutes;
}

// return the current time second in numeric 2 digits format.
// eg: 00,01,..59.
function getSec() {
	var today=new Date();
	var seconds = today.getSeconds();

	if (seconds<=9) seconds = "0" + seconds;

	return seconds;
}

// return a time with "AM/PM" format.
// eg: AM, PM.
function getTimeSuffix() {
	var today=new Date();
	var hours = today.getHours();
	var amOrPm = "AM";

	if (hours>12) {
		amOrPm = "PM";
	}

	return amOrPm;
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
