/*Defines an global array to hold  the conference days as well as a list of  conference of the day*/
var confsByDay = new Array(); 
function maxDays(mm, yyyy){
var mDay;
	if((mm == 3) || (mm == 5) || (mm == 8) || (mm == 10)){
		mDay = 30;
  	}
  	else{
  		mDay = 31
  		if(mm == 1){
   			if (yyyy/4 - parseInt(yyyy/4) != 0){
   				mDay = 28
   			}
		   	else{
   				mDay = 29
  			}
		}
  }
return mDay;
}



function ChangeMonthYear(upDown)
{
	var curMon = parseInt(document.getElementById("searchMonth").value)
	var curYr = parseInt(document.getElementById("searchYear").value)
	if (upDown=="next")
	{	
		if (curMon ==12)
		{
		curMon = 1;
		curYr = curYr+1;
		document.getElementById("searchMonth").value = curMon;
		document.getElementById("searchYear").value = curYr;		
		}
		else{
		document.getElementById("searchMonth").value = parseInt(document.getElementById("searchMonth").value)+1;
		}
		
	}
	
	if (upDown=="prev")
	{	
		if (curMon == 1)
		{
		curMon = 12;
		curYr = curYr-1;
		document.getElementById("searchMonth").value = curMon;
		document.getElementById("searchYear").value = curYr;		
		}
		else{
		document.getElementById("searchMonth").value = parseInt(document.getElementById("searchMonth").value)-1;
		}
		
	}
}

/* this function convert month number to month name*/
function ConvertToMonthName(monNum)
{
var monName="";
switch(monNum){
case 0:
monName = "January"
break
case 1:
monName = "February"
break
case 2:
monName = "March"
break
case 3:
monName = "April"
break
case 4:
monName = "May"
break
case 5:
monName = "June"
break
case 6:
monName = "July"
break
case 7:
monName = "August"
break
case 8:
monName = "September"
break
case 9:
monName = "October"
break
case 10:
monName = "November"
break
case 11:
monName = "December"
break
}
return monName;
}

function changeCal(confs){
	//alert(confs[1].start_dd);
	//Sort conf array 
	var ConfsByDays ;
	if (confs!=null){
	var ConfsByDays = fillConfDateHash(confs);
	}
	var strOnclick=""
	var now = new Date
	var dd = now.getDate()
	var mm = now.getMonth()
	var dow = now.getDay()
	var yyyy = now.getFullYear()
	// Be aware! In this function the month arrary index start with 0, not 1
	var currM = parseInt(document.calForm.searchMonth.value)-1
	//var currM = parseInt(document.calForm.selMonth.value)
	var prevM
		if (currM!=0){
			prevM = currM - 1
		}
		else{
			prevM = 11
		}
	var currY = parseInt(document.calForm.searchYear.value)
	//var currY = parseInt(document.calForm.selYear.value)
	var mmyyyy = new Date()
	mmyyyy.setFullYear(currY)
	mmyyyy.setMonth(currM)
	mmyyyy.setDate(1)
	
	var day1 = mmyyyy.getDay()
		if (day1 == 0){
			day1 = 0
		}
	var arrN = new Array(41)
	var aa
		for (ii=0;ii<day1;ii++){
			arrN[ii] = maxDays((prevM),currY) - day1 + ii + 1
		}
		aa = 1
		for (ii=day1;ii<=day1+maxDays(currM,currY)-1;ii++){
			arrN[ii] = aa
			aa += 1
		}
		aa = 1
		for (ii=day1+maxDays(currM,currY);ii<=41;ii++){
			arrN[ii] = aa
			aa += 1
		}
		//for (ii=0;ii<=41;ii++){
		//	document.getElementById("sp0").style.backgroundColor = "#FFFFFF"
		//}
	var dCount = 0
		for (ii=0;ii<=41;ii++){
			sp_id = "sp"+ii
			if (((ii<7)&&(arrN[ii]>20))||((ii>27)&&(arrN[ii]<20))){ //not valid days
				document.getElementById(sp_id).innerHTML = "&nbsp;"
				document.getElementById(sp_id).className = "empty"
			}
			else{
				if (confs!=null && ConfsByDays[arrN[ii]]){
				//if conf day
					//strOnclick = "calRollover('-367','127')"
						
					if (document.getElementById && document.all) { //IE
						var offsetx = document.all(sp_id).offsetTop-375;
						var offsety = document.all(sp_id).offsetLeft+24;
					}
					if (document.getElementById && !document.all) {//FireFox
						var offsetx = document.getElementById(sp_id).offsetTop-375;
						var offsety = document.getElementById(sp_id).offsetLeft+24;
					}
					//var offsetx = document.getElementById(sp_id).offsetTop-375;
					//var offsety = document.getElementById(sp_id).offsetLeft+24;
					var rolloverID = "cal-rollover";
					//var conflist= ConfsByDays[arrN[ii]];
					strOnclick = "calRollover('" + offsetx +"','" + offsety+ "','" + arrN[ii] +"')"
					document.getElementById(sp_id).onclick= new Function(strOnclick); 
					//document.getElementById(sp_id).onclick= calRollover('-320','182', conflist,rolloverID);
					//document.getElementById(sp_id).onclick= function(){calRollover(strOnclick)};
					document.getElementById(sp_id).innerHTML = arrN[ii]
					document.getElementById(sp_id).className = "select"
				}
				else{// no conf day

					document.getElementById(sp_id).onclick= ""; 
					document.getElementById(sp_id).innerHTML = arrN[ii]
						document.getElementById(sp_id).className = "norm"
					
				}
				//if ((arrN[ii]==dd)&&(mm==currM)&&(yyyy==currY)){
				//	document.getElementById(sp_id).style.backgroundColor="#90EE90"
				//}
			}
		dCount += 1
			if (dCount>6){
				dCount=0
			}
			
		}
		document.getElementById("lbMonth").innerHTML = ConvertToMonthName(currM);
		document.getElementById("lbYear").innerHTML=currY;
		
}

function fillConfDateHash(confs){

	//var confsByDay = new Array(); //define array to hold all conferences in a certain day
	//Clear all items in the confsByDay array 
	confsByDay = null;
	confsByDay = new Array();
	for(var j=0;j<confs.length;j++)
	{	confDD = confs[j].start_dd;
		var confObj = new Object();
		confObj.confID = confs[j].conf_id;
		confObj.StartDate = confs[j].start_date;
		confObj.confName = confs[j].conf_name;
		confObj.confdetail = confs[j].conf_city + ' '+ confs[j].conf_state + ' '+ confs[j].conf_country;
		confObj.confstartEnd = confs[j].conf_info;
		
		//create a new conf date array if now such date array exists
		if(!confsByDay[confDD])
		{	
			confsByDay[confDD] =  new Object();	
			confsByDay[confDD].DateKey =  confDD; 
			confsByDay[confDD].items =  new Array();
		}	
		var itemsLength = confsByDay[confDD].items.length;
		confsByDay[confDD].items[itemsLength] = confObj;
	}
return confsByDay;
}


// calendar rollover function
// 'tpos' = top position of rollover box; add or subtract 24 per row for mincal, 58 for cal
// 'lpos' = left position of rollover box; add or subtract 26 per column for mincal, 74 for cal

function calRollover(tpos,lpos,day) {
	drawCalRolloverDiv(day);	
	var rolloverID = "cal-rollover";
	if (document.getElementById && document.all) {
		document.getElementById(rolloverID).style.display = 'block';
		document.getElementById(rolloverID).style.marginTop = tpos + 'px';
		document.getElementById(rolloverID).style.marginLeft = lpos + 'px';
	}
	if (document.getElementById && !document.all) {//firefox
		document.getElementById(rolloverID).style.display = 'block';
		document.getElementById(rolloverID).style.marginTop = tpos + 'px';
		document.getElementById(rolloverID).style.marginLeft = lpos + 'px';
	}
}



function calHide() {
	var rolloverID = "cal-rollover";
	if (document.getElementById) {
		document.getElementById(rolloverID).style.display = 'none';
	}
}

function drawCalRolloverDiv(day) {
	var mm= document.getElementById('searchMonth').value;
	var yy= document.getElementById('searchYear').value.substring(2,4);
	var strConfs = '<h4 id="cal-date">Events on '+mm+'/'+day+'/'+ yy+ '</h4>'
	for (var j=0; j<confsByDay[day].items.length; j++) 
	{
		var confID = confsByDay[day].items[j].confID;
		var confStarEnd = confsByDay[day].items[j].confstartEnd;
		strConfs = strConfs + '<h5><a href="'+ 'conferences/conferencedetails/index.htm?Conf_ID='+ confID+'">' + confsByDay[day].items[j].confName+ '</a></h5>';
		strConfs = strConfs+ '<p class="note">'+ confStarEnd +' Location:'+ confsByDay[day].items[j].confdetail+'</p>'
		strConfs = strConfs + '<p class="no-pad"><img src="groups/webassets/@ieee/@web/@org/documents/images/cal-rollover-divider.gif" width="135" height="8" border="0" alt=""/></p>'
	}
		strConfs = strConfs + '<p><a href="#roll" onclick="calHide()"><img src="groups/webassets/@ieee/@web/@org/documents/images/icon-close.gif" width="12" height="12" border="0" alt="close" class="inline4"/>Close</a></p>'
		
	document.getElementById('cal-rollover-conflist').innerHTML=strConfs;
}

