// VARS
var months_ar = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
// INITIAL FUNCTIONS
function IsNumeric(strString) {
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
}

function calsort(a,b) {
	// sort by start date, then by start time/all day.
	
	if(a[2]==1&&b[2]!=1) return -1; // a is all day
	if(a[2]!=1&&b[2]==1) return 1;
	
	if(a[0]>b[0]) return 1;
	if(a[0]<b[0]) return -1;
	
	if(a[3]>b[3]) {
		return 1; }// starttime.
	if(a[3]<b[3]) {
		return -1;}



	return 0;
}

function sortabletime(time)
{
	//	8:00am 
	var timear = time.split(":");
	var hour = parseInt(timear[0])*100;
	var minute = parseInt(timear[1].slice(0,2));
	var ampm = timear[1].slice(2);
	if (ampm == 'pm' && hour!=1200 ) hour += 1200;
	else if (hour==1200) hour = 0;
	time = parseInt(hour+minute);
	return time;
}

function multiSort(ar,index,flag) {
	var returnArray = new Array();
	if (ar.length==0) return returnArray;
	var temp = new Array();
	for(i=0;i<ar.length;i++) {
		temp.push(Array(ar[i][index],i,ar[i][20],sortabletime(ar[i][18]) )); // 20 = allday, 18 = starttime.
	}
	
	if (index==13 && flag!=0) {temp.sort(calsort);}
	
	if(typeof(temp[0][0]) == "string" && !IsNumeric(temp[0][0])) {
		temp.sort(charOrdA);
	}
	else temp.sort(sortFunction);
	for(n=0;n<temp.length;n++) {
		returnArray.push(ar[temp[n][1]]);
	}
	return returnArray;
}



function sortFunction(a,b) {
	return a[0]-b[0];
}

function charOrdA(a, b) {
	a[0] = a[0].toLowerCase(); b[0] = b[0].toLowerCase();
	if (a[0]>b[0]) return 1;
	if (a[0] <b[0]) return -1;
	return 0; 
}
function datalistnav(listtotal,datalistvar,functionset,displaytype) {
   var monthset = document.getElementById(datalistvar+'_monthset').value;
   monthset = parseFloat(monthset);
   var yearset = document.getElementById(datalistvar+'_yearset').value;
   yearset = parseFloat(yearset);
   var dayset = document.getElementById(datalistvar+'_dayset').value;
   dayset = parseFloat(dayset);
   var weekar=setWeekArray(monthset,dayset,yearset);
   // CREATE PAGE LIST
   
   // CREATE BACK / NEXT BUTTONS
   var backbutton='';
   var backmin='';
   var yearmin='';
   var nextbutton='';
   var nextmin='';
   var nextyear='';
   var backday='';
   var nextday='';
   if (displaytype==0||displaytype==3) {
	   backmin=monthset-1;
	   yearmin=yearset;
	   backday=1;
	   nextmin=(monthset+1);
	   nextyear=yearset; 
	   nextday=1;
	   if (backmin==0) {
		  backmin=12;
		  yearmin=yearset-1;
	   } 
	   if (nextmin==13) {
		  nextmin=1;
		  nextyear=yearset+1;
	   }
   } else if (displaytype==1) {
	   backmin=monthset;
	   yearmin=yearset;
	   backday=(dayset-1);
	   nextmin=monthset;
	   nextyear=yearset;
	   nextday=(dayset+1);
	   if (backday==0) {
	      backmin=backmin-1;
		  if (backmin==0) {
		     backmin=12; 
			 yearmin=yearset-1;
		  }
		  backday=getDaysInMonth(backmin,yearmin);
	   }
	   if (nextday>getDaysInMonth(backmin,yearmin)) {
	      nextmin=nextmin+1;
		  if (nextmin==13) {
		     nextmin=1;
			 nextyear=yearset+1;
		  }
		  nextday=1;
	   }
   } else if (displaytype==2) {
	   backdayar = weekar[0].split('/');
	   backday=(parseFloat(backdayar[1])-1);
	   backmin=parseFloat(backdayar[0]);
	   yearmin=parseFloat(backdayar[2]);
	   nextdayar = weekar[6].split('/');
	   nextday=(parseFloat(nextdayar[1])+1);
	   nextmin=parseFloat(nextdayar[0]);
	   nextyear=parseFloat(nextdayar[2]);
	   if (backday==0) {
	      backmin=backmin-1;
		  if (backmin==0) {
		     backmin=12; 
			 yearmin=yearmin-1;
		  }
		  backday=getDaysInMonth(backmin,yearmin);
	   }
	   if (nextday>getDaysInMonth(backmin,yearmin)) {
	      nextmin=nextmin+1;
		  if (nextmin==13) {
		     nextmin=1;
			 nextyear=nextyear+1;
		  }
		  nextday=1;
	   }
   }
   backbutton='<a href="javascript:setdatevars(\''+datalistvar+'\',\''+backmin+'\',\''+yearmin+'\',\''+backday+'\');'+functionset+'(\''+datalistvar+'\','+displaytype+');scrollTo(0,0);"><img src="/goodirector/contentdirector/pages/calendar/images/navarrow_left.gif" border="0"> Back </a>'; 
   nextbutton='<a href="javascript:setdatevars(\''+datalistvar+'\',\''+nextmin+'\',\''+nextyear+'\',\''+nextday+'\');'+functionset+'(\''+datalistvar+'\','+displaytype+');scrollTo(0,0);"> Next <img src="/goodirector/contentdirector/pages/calendar/images/navarrow_right.gif" border="0"></a>'; 

   // DISPLAY TYPE
   var pageid = document.getElementById('page_id').value;
   if (goo_readCookie('goo_cal_view_'+pageid)) { displaytype = goo_readCookie('goo_cal_view_'+pageid); }
   var dis_select1 = '';
   var dis_select2 = '';
   var dis_select3 = '';
   var dis_select4 = '';
   if (!displaytype || displaytype==0) {
      dis_select1 = 'checked="checked"';   
   } else if (displaytype==1) {
	  dis_select2 = 'checked="checked"';   
   } else if (displaytype==2) {
	  dis_select3 = 'checked="checked"';   
   } else if (displaytype==3) {
	  dis_select4 = 'checked="checked"';   
   }
   // SHOWING SETUP
   var d = new Date();
   var seasummary='';
   if (displaytype==0||displaytype==3) {
      var monheader=months_ar[monthset-1]+' '+yearset;
   } else if (displaytype==1) {
	  var monheader=months_ar[monthset-1]+' '+dayset+', '+yearset; 
   } else if (displaytype==2) {
	  var dater1 = weekar[0].split('/');
	  var dater2 = weekar[6].split('/');
	  var monheader=months_ar[dater1[0]-1]+' '+dater1[1]+', '+dater1[2]+' - '+months_ar[dater2[0]-1]+' '+dater2[1]+', '+dater2[2];  
   }
   var showing='<span class="date">'+monheader+'</span>';
   showing+='<span class="info">&nbsp;</span><span class="info2"><input type="radio" id="displaytyper1" name="displaytyper" value="0" '+dis_select1+' onclick="displayPagesList(\''+datalistvar+'\',0)">List<input type="radio" id="displaytyper2" name="displaytyper" value="1" '+dis_select2+' onclick="displayPagesList(\''+datalistvar+'\',1)">Day<input type="radio" id="displaytyper3" name="displaytyper" value="2" '+dis_select3+' onclick="displayPagesList(\''+datalistvar+'\',2)">Week<input type="radio" id="displaytyper4" name="displaytyper" value="3" '+dis_select4+' onclick="displayPagesList(\''+datalistvar+'\',3)">Month</span><span class="info">&nbsp;</span><span class="info2">'+backbutton+nextbutton+'</span>';
   var showing2='<span class="info">'+backbutton+nextbutton+'</span>';
   document.getElementById(datalistvar+'_listnav').innerHTML = showing;	
   document.getElementById(datalistvar+'_listnav2').innerHTML = showing2;
}
function setdatevars(datalistvar,mon,year,day) {
   document.getElementById(datalistvar+'_monthset').value=mon;	
   document.getElementById(datalistvar+'_yearset').value=year;
   document.getElementById(datalistvar+'_dayset').value=day;
}
function createsortdd(datalistvar) {
   var optionset='';
   var sortindex=document.getElementById(datalistvar+'_view').value;
   // NAME / COMPANY
   var name = sidebarDisplay(1,datalistvar,0,1);
   if (name) {
	  if (sortindex=="1,1") {
         optionset+="<option value='1,2'>"+headertitle(datalistvar)+" Z-A</option>"; 
	  } else {
		 optionset+="<option value='1,1'>"+headertitle(datalistvar)+" A-Z</option>"  
	  }
   }
   // ADDRESS 1
   var add1 = sidebarDisplay(3,datalistvar,0,1);
   if (add1) {
	  if (sortindex=="3,1") {
         optionset+="<option value='3,2'>"+fieldlabels[2]+" Z-A</option>"; 
	  } else {
		 optionset+="<option value='3,1'>"+fieldlabels[2]+" A-Z</option>"  
	  }
   }
   return(optionset);
   // ADDRESS 2
   var add2 = sidebarDisplay(4,datalistvar,0,1);
   if (add2) {
	  if (sortindex=="4,1") {
         optionset+="<option value='4,2'>"+fieldlabels[3]+" Z-A</option>"; 
	  } else {
		 optionset+="<option value='4,1'>"+fieldlabels[3]+" A-Z</option>"  
	  }
   }
   return(optionset);
}
function headertitle(datalistvar) {
   var header = document.getElementById(datalistvar+'_header').value;
   if (header==0) {
      headerset=fieldlabels[0];   
   } else if (header==1) {
	  headerset=fieldlabels[1]; 
   }
   return(headerset);
}
// LOAD DATA
// PAGES --------------------------------------------------------------------------------------------------------------------------------------]
var pagesHeaderArray = Array(',0','Date,1','Company,0',',0');
var pagesListArray = Array();
var maxPagesDisplay = 20;
var curPages = 0;
var fieldlabels=Array();
function updatePagesList() {
    pagesListArray = Array();
	resetPagesHeader();
	goojax_load_data('shoppingcart_data.php','shoppingcartdisplay=10');
}

function fixtimeformat(time)
{
if (time == '') time = '12';
else if (time=='00:00am') time = ''; // don't display unset time.
else{
time = time.replace('pm', 'p');
time = time.replace('am', '');
time = time.replace(':00', '');
}
return '<span style="font-weight:bold">'+time+'</span>';
}

function equals(event1, event2)
//check to see if two events are equal
{
	if(event1[0] != event2[0]) return false; // id
	if(event1[12] != event2[12]) return false; //start month
	if(event1[13] != event2[13]) return false; //startday
	if(event1[14] != event2[14]) return false; //startyear
/*	if(event1[15] != event2[15]) return false; //end month
	if(event1[16] != event2[16]) return false; //end day
	if(event1[17] != event2[17]) return false; //end year */
	return true;
}

function pushrepeatingevent(pagesListArray, i, caldate){

	var repeat_temp = new Array();
	for (var x=0; x < pagesListArray[i].length; x++)repeat_temp[x] = pagesListArray[i][x];
	repeat_temp[23] = 0; //push a non-repeating copy.
	//change the date.
	repeat_temp[12] = caldate.getMonth()+1; //start month
	repeat_temp[13] = caldate.getDate(); //start day
	repeat_temp[14] = caldate.getFullYear(); //start year

	
	for(var j = 0; j < pagesListArray.length; j++)
	{
		if (equals(repeat_temp, pagesListArray[j]))
		{
			return pagesListArray; // event has already been pushed.
		}
	}
	
	pagesListArray.push(repeat_temp);
	return pagesListArray;
}

function addrepeatingevents(pagesListArray, displaytype, dayset, monthset, yearset)
{
var caldate = new Date();
caldate.setFullYear(yearset, monthset-1, dayset);

//determine size of window:
var days = 0;
if (displaytype==0||displaytype==3) 
//monthly views
{
caldate.setDate(caldate.getDate()-caldate.getDate()+1); //reset the pointer to the beginning of the month.
days = getDaysInMonth(monthset,yearset);
}
if (displaytype==1) days = 1;
if (displaytype==2) 
{
caldate.setDate(caldate.getDate()-caldate.getDay()); //reset the pointer to the beginning of the week.
days = 7;
}
// go through the pagesListArray, find the repeating events, and add copies to them at the end of the PLA, checking for duplicates.
var plalength = pagesListArray.length; //no need to check the added events
for(var j=0;j<days; j++)
{ 
	for(var e=0; e<plalength;e++) {
		if(repeatingevent(pagesListArray[e], caldate)) 
		{
			pagesListArray = pushrepeatingevent(pagesListArray, e, caldate);
		}
	}
caldate.setDate(caldate.getDate()+1); // increment the date by a day.

}
return pagesListArray;
}

function checkdate(caldate, eventdate, eventArray, repeattype)
{
	if (!eventArray[25]) 
	{
		if(repeattype==2) if (caldate.getDay() == eventdate.getDay()) return true;
		if(repeattype==3) if (caldate.getDate() == eventdate.getDate()) return true;
		if(repeattype==4) if ((caldate.getMonth() == eventdate.getMonth()) && caldate.getDate() == eventdate.getDate()) return true;
		return false;
	}
	
	var selecteddays = eventArray[25].split(',');
	for (i=0; i < selecteddays.length; i++)
	{
		if(repeattype==2)if(selecteddays[i]==caldate.getDay()) return true;
		if(repeattype==3)if(selecteddays[i]==caldate.getDate()) return true;
		if(repeattype==4)if((selecteddays[i]==caldate.getMonth()) && caldate.getDate() == eventdate.getDate()) return true;
	}
	return false;
}


function repeatingevent(eventArray, caldate)
//returns true of false, based on whether an event is repeating within the window
{
	
	var eventdate = new Date();
	eventdate.setFullYear(eventArray[14], eventArray[12]-1, eventArray[13]);
	var stopdate = new Date();
	stopdate.setFullYear(eventArray[17], eventArray[15]-1, eventArray[16]);
	//	var caldate = new Date();
	//caldate.setFullYear(yearset, monthset, dayset);
	// selected date is before the event.
	if (caldate <= eventdate || caldate > stopdate) 
	{
		return false;
	}
	var repeat = 23;
	var intervalindex = 24;
	
	// repeat type: 0 none, 1 daily, 2 weekly, 3 monthly, 4 yearly
	// no repetition
	if (eventArray[repeat]==0 ) return false;
	//daily repetition
	if (eventArray[repeat]==1 ) 
	{
		//check the interval
		if (eventArray[intervalindex]<=1) return true; 		
		var tempdate = eventdate;
		var counter = 0;
		while (tempdate < caldate)
		{
			tempdate.setDate(tempdate.getDate()+1); // increment the tempdate by a day.
			counter+=1;
		}
		if ((counter%(eventArray[intervalindex]))==0) {
			return true;	
		}
	}
	// now check for long interval repetitons which may hit on the day:
	//weekly repetition
	if (eventArray[repeat]==2  && checkdate(caldate, eventdate, eventArray, eventArray[repeat])) {
		//check the interval
		if (eventArray[intervalindex]<=1) return true; 		
		var tempdate = eventdate;
		tempdate.setDate(tempdate.getDate()-tempdate.getDay()); //reset to Sunday.
		tempdate.setDate(tempdate.getDate()+7); // increment the tempdate by a week.
		var counter = 0;
		while (tempdate <= caldate)
		{
			tempdate.setDate(tempdate.getDate()+7); // increment the tempdate by a week.
			counter+=1;
		}
		if ((counter%(eventArray[intervalindex]))==0) return true;	
	}

	//monthly repetition
	if (eventArray[repeat]==3  && checkdate(caldate, eventdate, eventArray, eventArray[repeat])) {
	
	//caldate.getDate() == eventdate.getDate()) {
		//check the interval
		if (eventArray[intervalindex]<=1) return true; 		
		var tempdate = eventdate;
		tempdate.setDate(1); //reset to the 1st day of the month
		tempdate.setMonth(tempdate.getMonth()+1); // increment the tempdate by a month.
		var counter = 0;
		while (tempdate <= caldate)
		{
			tempdate.setMonth(tempdate.getMonth()+1); // increment the tempdate by a month.
			counter+=1;
		}
		if ((counter%(eventArray[intervalindex]))==0) {
			return true;	
		}
	}
	//yearly repetition
	if (eventArray[repeat]==4  && checkdate(caldate, eventdate, eventArray, eventArray[repeat])) {
//		(caldate.getMonth() == eventdate.getMonth() && caldate.getDate() == eventdate.getDate())) {
		//check the interval
		if (eventArray[intervalindex]<=1) return true; 		
		var tempdate = eventdate;
		tempdate.setFullYear(tempdate.getFullYear()+1); // increment the tempdate by a year.
		var counter = 0;
		while (tempdate <= caldate)
		{
			tempdate.setFullYear(tempdate.getFullYear()+1); // increment the tempdate by a year.
			counter+=1;
		}
		if ((counter%(eventArray[intervalindex]))==0) return true;	
		
	}
	// no repeated event on day.
	return false;
}


// comment.

function displayPagesList(datalistvar,displaytype) {
	
	var caldata = [];
	var popupdata = [];
	var datalistvar=document.getElementById('goo_datalistvar').value;
	var sidebarhide = document.getElementById(datalistvar+'_view').value;
	var monthset = document.getElementById(datalistvar+'_monthset').value;
	var yearset = document.getElementById(datalistvar+'_yearset').value;
	var dayset = document.getElementById(datalistvar+'_dayset').value;
	var dayhead='';
	var curdayhead='';
	var filledids = Array();
	// SETUP COOKIE
    var pageid = document.getElementById('page_id').value;
    goo_createCookie('goo_cal_month_'+pageid,monthset);
    goo_createCookie('goo_cal_year_'+pageid,yearset);
	goo_createCookie('goo_cal_day_'+pageid,dayset);
	
	var gridcol = 1;
	var gridcolnum = 4;
	monthset = parseFloat(monthset);
	yearset = parseFloat(yearset);
	goodate=new Date();
	if (document.getElementById('displaytyper1')&&!displaytype) {
	   if (document.getElementById('displaytyper1').checked) {
	      displaytype = 0;   
	   }
	   if (document.getElementById('displaytyper2').checked) {
		  displaytype = 1;
	   }
	   if (document.getElementById('displaytyper3').checked) {
		  displaytype = 2;
	   }
	   if (document.getElementById('displaytyper4').checked) {
		  displaytype = 3;
	   }
	}
	if (!displaytype) {
	   displaytype=0;	
	}
	document.getElementById('goo_displaytype').value = displaytype;
	goo_createCookie('goo_cal_view_'+pageid,displaytype);
	
	pagesListArray = addrepeatingevents(pagesListArray, displaytype, dayset, monthset, yearset);
	pagesListArray = multiSort(pagesListArray,13,1); // sort by start date, then by start time
	
	//alert(pagesListArray);
	// alert(pagesListArray);	
	// DISPLAY TABLE CLASS
	if (displaytype!=3 && displaytype!=2) {
	   displaytableid = 'goo_calendar_result_table';	
	
	} 
	else {
	   displaytableid = 'goo_calendar_result_table_grid';	
	}
	
	var displaytableclass = '';
	if (displaytype==2) {
		displaytableclass = 'goo_calendar_result_table_week_grid';
	}
	
	curPages = monthset;
	newHTML = "";
	folderid = document.getElementById(datalistvar+'_foldernav').value;
	if (sidebarhide!=2) {
	   var newHTML = '<div id="goo_calendar_result_sidebar">'+goo_calendar_sidebar(3,datalistvar,displaytype)+'</div>';
	}
	// LIST HEADER
	if (displaytype!=3 && displaytype!=2 ) {
		newHTML += '<table id="'+displaytableid+'" class="'+displaytableclass+'" cellspacing="0" cellpadding="0">';
	}
	if (displaytype!=3 && displaytype!=2 && pagesListArray.length>0) {
       newHTML += '<tr class="header-row">';
	   for(n=0;n<pagesHeaderArray.length;n++) {
		 
	      var arrow = '';
		  var headarr = pagesHeaderArray[n].split(",");
		     if(headarr[1] == "0") { 
                   arrow = '<img border="0" style="margin-left:3px;" src="/goodirector/search/images/sortarrow_down.gif">';  
                   headclass = "toprow";
                   mouseoutset = "listshade1.jpg";
		     } else if(headarr[1] == "1") {
                   arrow = '<img border="0" style="margin-left:3px;" src="/goodirector/search/images/sortarrow_down.gif">'; 
                   headclass = "toprowon"; 
                   mouseoutset = "listshade1_on.jpg";
		     } else if(headarr[1] == "2") {
                   arrow = '<img border="0" style="margin-left:3px;" src="/goodirector/search/images/sortarrow_up_on.gif">';
				   headclass = "toprowon"; 
                   mouseoutset = "listshade1_on.jpg";
                }	
		   // CORRECT HEADER
		   if (n==2) {
		      headarr[0]=headertitle(datalistvar);   
		   }
		   if (n==1) {
		      sortn=21;	   
		   } else {
			  sortn=n;   
		   }
		   if (displaytype!=3) {
			 if (n!=3) {
		        newHTML += '<td nowrap="nowrap" class="bodytext-white '+headclass+'" onmouseover="this.style.className=\'toprow\';" onmouseout="" onclick="sortPages('+n+','+sortn+',this,\''+datalistvar+'\','+displaytype+')" >'+headarr[0]+' '+arrow+'</td>';
			 } else {
				newHTML += '<td nowrap="nowrap" class="bodytext-white '+headclass+'"></td>';
			 }
		  }
	   }
	   newHTML += '</tr>';
	}
	
	var superWeekArray = Array();
	
	var noevents='';
	var weekar=setWeekArray(monthset,dayset,yearset);
	for(i=0;i<pagesListArray.length;i++) {
		if(i >= pagesListArray.length) break;
		if(pagesListArray[i][18]=='')pagesListArray[i][18]= '12:00';
		//decide which events to display.
		if (displaytype==0) {
		   if((pagesListArray[i][12]!=monthset||pagesListArray[i][14]!=yearset )) continue;
		   
		} else if (displaytype==1) {
		   if((pagesListArray[i][12]!=monthset||pagesListArray[i][14]!=yearset||pagesListArray[i][13]!=dayset )) continue;

		} else if (displaytype==2) { //week view.
		   chkdate=pagesListArray[i][12]+'/'+pagesListArray[i][13]+'/'+pagesListArray[i][14];
		   if(checkarray(weekar,chkdate)==-1 ) continue; //skip the event if it's not in the week.
		// else push the event into the super week array.

		superWeekArray=superWeekArrayPush(superWeekArray, pagesListArray[i]);

		}

        
		noevents=1;
		var newClass = i%2 == 0 ? '' : 'listrow';
		var tdonclick = 'onclick="checkrowbox(\''+datalistvar+'_'+j+'\',\''+newClass+'\',\''+datalistvar+'_row'+j+'\')"';
		var tdclass = 'class="goo_calendar_result_title listrows1"';
		var imgspot = '<div class="goothmimgbox_hid"></div>';
		// CORRECT IMAGES
		if (pagesListArray[i][1]) {
		   var imgfile=pagesListArray[i][1].split(',');
		   if (imgfile[1]==1) {      
			  if (displaytype!=3) {
			     var imgspot = '<a href="javascript:gooimagebox_open(\''+imgfile[0]+'\',\''+escape(escape(pagesListArray[i][2]))+'\',375)" title="'+pagesListArray[i][2].replace(/"/g, '\'')+'"><div style="background-image:url(/user_images/tmb_'+imgfile[0]+')" class="goo_calendar_result_tmbview"></div></a>';
			  } else {
			     var imgspot = '<a href="javascript:gooimagebox_open(\''+imgfile[0]+'\',\''+escape(escape(pagesListArray[i][2]))+'\',375)" title="'+pagesListArray[i][2].replace(/"/g, '\'')+'"><div style="background-image:url(/user_images/sm_'+imgfile[0]+')" class="goo_calendar_result_tmbview_grid"></div></a>';
			  }
		   } else if (imgfile[1]==2) {
			var iconfile = "file_icon_sm.gif";
			var tempfilename = imgfile[0].toLowerCase();
			   if (tempfilename.lastIndexOf(".pdf") == tempfilename.length-4) iconfile = "pdf_icon_sm.gif"; // if the file is a .pdf
			  var imgspot = '<a href="/user_files/'+imgfile[0]+'" target="_blank" ><div style="background-image:url(/goodirector/contentdirector/pages/calendar/images/'+iconfile+')" class="goo_calendar_result_tmbview"></div></a>';
		   }
		}
		// SET ITEM INFO
		var iteminfo='';
		var startdate='';
		var enddate='';
		var timedisplay='';
		var endtime='';
		
		if (pagesListArray[i][12]) {
		   startdate=pagesListArray[i][12]+"."+pagesListArray[i][13]+"."+pagesListArray[i][14];	
		   }
		if (pagesListArray[i][15]) {
		   enddate=" - "+pagesListArray[i][15]+"."+pagesListArray[i][16]+"."+pagesListArray[i][17];	
		}
		if (pagesListArray[i][20]!=1) {
		   starttime=pagesListArray[i][18];
		   if (pagesListArray[i][19]) {
		      endtime=" - "+pagesListArray[i][19]; 
		   }
		   if(starttime!='00:00am')timedisplay=starttime+endtime;
		}
		if (pagesListArray[i][22]) {
		   iteminfo+="<h2>"+pagesListArray[i][22]+"</h2>";	
		}
		if (pagesListArray[i][4]) {
		   iteminfo+="<h2>"+pagesListArray[i][4]+"</h2>";	
		}
		if (pagesListArray[i][5]) {
		   iteminfo+="<h2>"+pagesListArray[i][5];	
		}
		if (pagesListArray[i][6]) {
		   if (pagesListArray[i][5]) {
		      iteminfo+=', ';   
		   }
		   iteminfo+=pagesListArray[i][6];	
		}
		if (pagesListArray[i][7]) {
		   iteminfo+=' '+pagesListArray[i][7]+"</h2>";	
		}
		if (pagesListArray[i][8]) {
		   iteminfo+="<h2>"+pagesListArray[i][8]+"</h2>";	
		}
		// DISPLAY TYPE
		if (!displaytype || displaytype<2 ) {
			curdayhead=months_ar[pagesListArray[i][12]-1]+" "+pagesListArray[i][13]+", "+pagesListArray[i][14];
		
		curdayhead=getTheDay(curdayhead)+', '+curdayhead;

	       // SETUP DAY HEADER
		   if ((!dayhead||dayhead!=curdayhead)&&displaytype!=1) {
		      newHTML += '<tr id="'+datalistvar+'_row'+j+'" class="'+newClass+'"><td '+tdclass+' nowrap="nowrap" width="50" valign="middle">&nbsp;</td><td width="25%" '+tdclass+' valign="middle" colspan="3"><h1>'+curdayhead+'</h1></td></tr>';   
			  dayhead=curdayhead;
		   }
		   if (displaytype!=2) newHTML += '<tr id="'+datalistvar+'_row'+j+'" class="'+newClass+'"><td '+tdclass+' nowrap="nowrap" width="50" valign="top">'+imgspot+'&nbsp;</td><td width="25%" '+tdonclick+' '+tdclass+' valign="top"><h2>'+startdate+enddate+'</h2><h2>'+timedisplay+'</h2></td><td width="75%" '+tdonclick+' '+tdclass+' valign="top"><h2><b><a href="/calendar/'+pagesListArray[i][10]+'/'+pagesListArray[i][0]+'/">'+pagesListArray[i][2]+'</a></b></h2>'+iteminfo+'</td><td '+tdclass+' align="right" nowrap="nowrap" width="100" valign="top"><h2><a href="/calendar/'+pagesListArray[i][10]+'/'+pagesListArray[i][0]+'/">&#187; More Details</a></h2></td></tr>';
		} else if (displaytype==3) 
		// Month view.
		{
			var eventstartday = 13, eventstartmonth = 12, eventendday = 16, eventendmonth = 15, eventstartyear = 14, eventendyear = 17, fillitin = false;
		   if (!caldata[pagesListArray[i][eventstartday]]) caldata[pagesListArray[i][eventstartday]]='';
		  // var newdate=new Date(yearset,monthset);
		   var daysinmonth=getDaysInMonth(monthset,yearset);
		   // if we're in the right month
		   
	if (pagesListArray[i][eventstartmonth]==monthset&&pagesListArray[i][eventstartyear]==yearset ) 
		{		
			if (!caldata[pagesListArray[i][eventstartday]]) caldata[pagesListArray[i][eventstartday]]='';				
			var the_entry = '<div class="entrybox"><a class="infopopparent entrybox" href="/calendar/'+pagesListArray[i][10]+'/'+pagesListArray[i][0]+'/">'+fixtimeformat(pagesListArray[i][18])+' '+pagesListArray[i][2]+'</a><a href="/calendar/'+pagesListArray[i][10]+'/'+pagesListArray[i][0]+'/" style="text-decoration:none"><span class="infopop">'+escape(pagesListArray[i][29])+'</span></a></div>';
			if (caldata[pagesListArray[i][eventstartday]].indexOf(the_entry)==-1) caldata[pagesListArray[i][eventstartday]]+= the_entry;
			 }
	
		}
	}
	// CORRECT GRID TABLE
	gridcol = gridcol-1;
	if (gridcol==0) {
	   gridcol=4;   
	}
	if (displaytype==3 && gridcol<gridcolnum) {
	   for (k=gridcol;k<gridcolnum;k++) {
          newHTML += '<td></td>';   
	   }
	   newHTML += '</tr>';
	}
	var totaldisplayed=j-1;
	if(!noevents && displaytype!=2 && displaytype!=3) {
		newHTML += '<tr class="'+newClass+'"><td width="100%" colspan="4" class="bodytext-white" style="padding:15px 0 15px 0;" nowrap="nowrap"><h1>There are no events</h1></td></tr>';
	}
	//newHTML += '<tr><td colspan="5" class="bodytext-white listtop" width="100%">Total Items: '+pagesListArray.length+'</td></tr>';
	if (displaytype==0 || displaytype==1) {
	   newHTML += '</table></div>';
	} else if (displaytype==3){
	   newHTML += '<div id="goo_lg_cal_wrapper"><div id="goo_lg_cal"><span id="calPage_lg"></span></div></div>';	
	}
	
	if (displaytype==2)
	{
	   newHTML += '<div id="goo_week_cal_wrapper"><div id="goo_week_cal"><span id="calPage_week"></span></div></div>';	
	}
	
	
	
	newHTML += '<br CLEAR="both">';
	// SETUP LIST HEADER
	newHTML = '<div id="goo_calendar_wrapper"><input type="hidden" id="minpagesvar" name="minpagesvar" value="'+monthset+'"><div id="goo_calendar_navtop"><span class="last" id="'+datalistvar+'_listnav"></span></div>'+newHTML+'<div id="goo_calendar_navbottom"><span class="last" id="'+datalistvar+'_listnav2"></span></div></div>';
	document.getElementById('pagesList').innerHTML = newHTML;
	datalistnav(pagesListArray.length,datalistvar,'displayPagesList',displaytype);
	if (displaytype==3) { //month view
		displayCalendar_lg(monthset,yearset,caldata);
	   //newHTML += '</table>';	
	}
	
	
	if (displaytype==2) { // week view
				
		displayWeek(monthset,yearset,dayset,superWeekArray);
	} 
	
	if (sidebarhide!=2) {
	   displayCalendar_sm(monthset,yearset);
	}
	
	jqueryinfopopmonth(); // load infopops.
}
function sortPages(index,sortnum,cell,datalistvar,displaytype,direction) {
	var dirhold='';
	var indexset='';
	if (direction) {
	   indexset = index;
	   indexar = index.split(',');
	   index = parseFloat(indexar[0]);
	   dirhold = indexar[1];
	} else {
	   index = parseFloat(index);
	}
	var sortpages_order=1;
	if(pagesListArray.length < 1) return;
	pagesListArray = multiSort(pagesListArray,sortnum);
	for(i=0;i<pagesHeaderArray.length;i++) {
		var headarr = pagesHeaderArray[i].split(",");
		if(i == index) {
			if(headarr[1] == "0" || dirhold == "1") {
				pagesHeaderArray[i] = headarr[0]+',1';
			} else if(headarr[1] == "1" || dirhold == "2") {
				pagesListArray.reverse();
				pagesHeaderArray[i] = headarr[0]+',2';
				sortpages_order=2;
			} else if(headarr[1] == "2") {
				pagesHeaderArray[i] = headarr[0]+',1';
			}
		} else if (dirhold) {
			if(dirhold == "1") {
			} else if(dirhold == "2") {
				pagesListArray.reverse();
				sortpages_order=2;
			}
			pagesHeaderArray[i] = headarr[0]+',0';
		} else {
			pagesHeaderArray[i] = headarr[0]+',0';
		}
	}
	document.getElementById(datalistvar+'_sortpagesvar').value = index+","+sortpages_order;
	document.getElementById(datalistvar+'_view').value = indexset;
	displayPagesList(datalistvar);
}
function filterPages(datalistvar,minpagesvar) {
   pagesListArray = pagesListArrayTemp;
   pagesListArrayNew = Array();
   for(i=0,j=0;i<pagesListArray.length;i++) {
      if (pagesListArray[i][7] == 1 && document.getElementById('show_pages').checked) {
	     pagesListArrayNew[j] = pagesListArray[i];  
		 j=j+1;
	  }
	  if (pagesListArray[i][7] == 3 && document.getElementById('show_products').checked) {
	     pagesListArrayNew[j] = pagesListArray[i];
		 j=j+1;
	  }
	  if (pagesListArray[i][7] == 4 && document.getElementById('show_images').checked) {
	     pagesListArrayNew[j] = pagesListArray[i];
		 j=j+1;
	  }
	  if (pagesListArray[i][7] == 5 && document.getElementById('show_files').checked) {
	     pagesListArrayNew[j] = pagesListArray[i];
		 j=j+1;
	  }
   }
   if (!minpagesvar) {
	   minpagesvar=0;   
   }
   pagesListArray = pagesListArrayNew;
   displayPagesList(datalistvar);
}
function goo_calendar_sidebar_reset(datalistvar) {
   var pageid = document.getElementById('page_id').value;
   goo_eraseCookie('goo_cal_filter_str_'+pageid);
   goo_eraseCookie('goo_cal_filter_id_'+pageid);
   pagesListArray = pagesListArrayTemp;
   pagesListArray = multiSort(pagesListArray,13,1);
   displayPagesList(datalistvar);
}
function goo_calendar_sidebar(contenttype,datalistvar) {
   var htmldata = '';
   htmldata += "<div id='goo_sm_cal'><span id='calPage'></span></div><div style='clear:both;'>&nbsp;</div>";
   var featured = document.getElementById(datalistvar+'_featured').value;
   var pageid = document.getElementById('page_id').value;
   var sidebar_show = document.getElementById(datalistvar+'_sidebar_show').value.split(',');
   if (featured) {
	  var featuredar=featured.split(String.fromCharCode(28));
      htmldata += "<div id='goo_calendar_result_sidebar_featured'>";
	  htmldata += "<h1>Featured "+fieldlabels[0]+":</h1>";
	  htmldata += "<ul>";
	  for (i=0;i<featuredar.length;i++) {
		 featuredarsub=featuredar[i].split('||');
	     htmldata += "<li><h3><a href='/calendar/"+pageid+"/"+featuredarsub[1]+"/'>"+featuredarsub[0]+"</a></h3></li>";  
	  }
	  htmldata+="</ul>";
	  htmldata+="</div>";
   }
//side search box
   var cssval = document.getElementById(datalistvar+'_calsearchstring').value;
   if (cssval=='') cssval = "Search Calendar";
   if (document.getElementById(datalistvar+'_sidesearch').value==1) htmldata += "<div class=\"calsearch\"><input id=\"calsearch\" class=\"search_field\" type=\"text\" name=\"calsearchr\" value=\""+cssval+"\" onclick=\"javascript:if(this.value=='Search Calendar')this.value='';\"/><a class=\"calsearch\" href=\"javascript:calsearchsubmit('"+datalistvar+"');\">Search</a></div><div style='clear:both;'></div>"; //side search box.

   htmldata += "<h1>Narrow "+fieldlabels[0]+" By:</h1>";
   // BACK TO TOP
   htmldata += "<h2><a href='javascript:goo_calendar_sidebar_reset(\""+datalistvar+"\");'>Show All</a></h2>";
   
	// EVENT
   var eventsidebar = sidebarDisplay(2,datalistvar,1);
   if (eventsidebar && sidebar_show[0]) {
  	  htmldata += "<h2>"+fieldlabels[0]+"</h2>";  
	  htmldata += eventsidebar;
   }

	// LOCATION
   var location = sidebarDisplay(22,datalistvar,1);
   if (location && sidebar_show[1]) {
  	  htmldata += "<h2>"+fieldlabels[1]+"</h2>";  
	  htmldata += location;
   }

   // ADDRESS 1
   var address1 = sidebarDisplay(4,datalistvar,1);
   if (address1 && sidebar_show[2]) {
  	  htmldata += "<h2>"+fieldlabels[2]+"</h2>";  
	  htmldata += address1;
   }
   // ADDRESS 2
   var address2 = sidebarDisplay(26,datalistvar);
   if (address2 && sidebar_show[3]) {
	  htmldata += "<h2>"+fieldlabels[3]+"</h2>";  
	  htmldata += address2;
   }
   // CITY
   var city = sidebarDisplay(5,datalistvar);
   if (city && sidebar_show[4]) {
	  htmldata += "<h2>"+fieldlabels[4]+"</h2>";  
	  htmldata += city;
   }
   // STATE
   var state = sidebarDisplay(6,datalistvar);
   if (state && sidebar_show[5]) {
	  htmldata += "<h2>"+fieldlabels[5]+"</h2>";  
	  htmldata += state;
   }

   // ZIP CODE
   var zipcode = sidebarDisplay(7,datalistvar);
   if (zipcode && sidebar_show[6]) {
	  htmldata += "<h2>"+fieldlabels[6]+"</h2>";  
	  htmldata += zipcode;
   }

   // COUNTRY
   var itemcountry = sidebarDisplay(27,datalistvar);
   if (itemcountry && sidebar_show[7]) {
	  htmldata += "<h2>"+fieldlabels[7]+"</h2>";  
	  htmldata += itemcountry;
   }

   // PHONE
   var itemphone = sidebarDisplay(8,datalistvar);
   if (itemphone && sidebar_show[8]) {
	  htmldata += "<h2>"+fieldlabels[8]+"</h2>";  
	  htmldata += itemphone;
   }

   // FAX
   var itemfax = sidebarDisplay(28,datalistvar);
   if (itemfax && sidebar_show[9]) {
	  htmldata += "<h2>"+fieldlabels[9]+"</h2>";  
	  htmldata += itemfax;
   }	

   // CATEGORY
   var itemcategory = sidebarDisplay(9,datalistvar);
   if (itemcategory && sidebar_show[10]) {
	  htmldata += "<h2>"+fieldlabels[10]+"</h2>";  
	  htmldata += itemcategory;
   }

   // SUBCATEGORY
   var itemsubcategory = sidebarDisplay(11,datalistvar);
   if (itemsubcategory && sidebar_show[11]) {
	  htmldata += "<h2>"+fieldlabels[11]+"</h2>";  
	  htmldata += itemsubcategory;
   }

   return htmldata;	
}

function calsearchsubmit(datalistvar,sidesearchstring)
{
   if(sidesearchstring==null)sidesearchstring = document.getElementById('calsearch').value;
   pagesListArrayNew = Array();
   var searchweights = [pagesListArray[0].length];
	for (i=0; i < pagesListArray[0].length; i++) searchweights[i]=1; //initialize weights to 1.
   var scores = [pagesListArray.length];
   for (i=0; i<pagesListArray.length; i++)
	{
	 scores[i]=[];
	 scores[i][0]=0;	
	}
	//specify custom weights for fields here:


	// -----------------------------

   for(i=0;i<pagesListArray.length;i++) {
	for (j=0; j<pagesListArray[i].length;j++)
	{
		if (pagesListArray[i][j].toString().toLowerCase().search(sidesearchstring.toLowerCase())!="-1") {
			scores[i][0] += 1*searchweights[j]; // add the score.
			scores[i][1]=i; // keep track of the index into the PLA
		}
	}
}

	function mysort(a,b)
	{
		if (a[0]>b[0]) return -1;	
		if (a[0]<b[0]) return 1;
		return 0;
	}
	scores.sort(mysort);

	for(i=0;i<pagesListArray.length;i++) {
		if(scores[i][0]>0) pagesListArrayNew[i]= pagesListArray[scores[i][1]]; //use the saved PLA index. 
		}
 
   pagesListArray = pagesListArrayNew;
   displayPagesList(datalistvar);
	
}



function sidebarDisplay(fieldid,datalistvar,spl,rtn) {
   itemListArray = pagesListArray;
   sidebarDisplayNew = Array();
   for(i=0,j=0;i<itemListArray.length;i++) {
	  if (!itemListArray[i][fieldid]) { continue; }
	  if (spl) {
		 categorysp = itemListArray[i][fieldid].split(',');
		 for (k=0;k<categorysp.length;k++) {
	        sidebarDisplayNew[j] = categorysp[k];
			j=j+1;
	     } 
	  } else {
	     sidebarDisplayNew[j] = itemListArray[i][fieldid];
		 j=j+1;
	  }
   }
   if (rtn) {
	  return (sidebarDisplayNew);
   } else {
      return countAppearance(sidebarDisplayNew,fieldid,datalistvar);
   }
}
function sidebarFilter(stringsea,fieldid,datalistvar,skip) {
   pagesListArray = pagesListArray;
   pagesListArrayNew = Array();
   for(i=0,j=0;i<pagesListArray.length;i++) {
	  if (pagesListArray[i][fieldid].search(stringsea)!="-1") {
	  //if (pagesListArray[i][fieldid] == stringsea) {
	     pagesListArrayNew[j] = pagesListArray[i];  
		 j=j+1;
	  }
   }
   // SETUP COOKIE
   var pageid = document.getElementById('page_id').value;
   goo_createCookie('goo_cal_filter_str_'+pageid,stringsea);
   goo_createCookie('goo_cal_filter_id_'+pageid,fieldid);
   
   pagesListArray = pagesListArrayNew;
   if (!skip) displayPagesList(datalistvar);
}
function countAppearance(myArray,fieldid,datalistvar) {
   var myBlocks = new Object ;
   myArray.sort();
   for( var i=0; i<myArray.length; i++ ) {
      var aBlock = myArray[i] ;
      if( myBlocks.hasOwnProperty( aBlock ) ) {
         myBlocks[aBlock]++ ;
      } else {
         myBlocks[aBlock] = 1 ;
      }
   }

   var str = "";
   var str1 = "";
   var str2 = "";
   var tmax=0;
   
   str2 = "<h3><select onchange='sidebarFilter(this.value,"+fieldid+",\""+datalistvar+"\")'>";
   str2 += "<option value=''></option>";
   for( var j in myBlocks ) {
	  str1 += "<h3><a href='javascript:sidebarFilter(\""+j+"\","+fieldid+",\""+datalistvar+"\")'>"+j+" ("+myBlocks[j]+")</a></h3>";
	  str2 += "<option value='"+j+"'>"+j.substring(0,20)+" ("+myBlocks[j]+")</option>";
	  tmax=tmax+1
   }
   str2 += "</select></h3>";
   if (tmax>30) {
      str=str2;
   } else {
	  str=str1;   
   }
   if (tmax>500) {
	  return ""; 
   } else {
      return str;
   }
}
// OPEN FUNCTIONS
function openpagedata() {
   goojax_saveformdata('mainform','/goodirector/contentdirector/pages/calendar/display_data.php'); 
} 
function cal_displaydata(datalistvar,cal_view,skip) {
   var pageid = document.getElementById('page_id').value;
   var month='';
   var year='';
   var day='';
   var filterstr='';
   var filterid='';
   if (goo_readCookie('goo_cal_filter_str_'+pageid)) { filterstr = goo_readCookie('goo_cal_filter_str_'+pageid); }
   if (goo_readCookie('goo_cal_filter_id_'+pageid)) { filterid = goo_readCookie('goo_cal_filter_id_'+pageid); }
   if (goo_readCookie('goo_cal_month_'+pageid)) { month = goo_readCookie('goo_cal_month_'+pageid); }
   if (goo_readCookie('goo_cal_year_'+pageid)) { year = goo_readCookie('goo_cal_year_'+pageid); }
   if (goo_readCookie('goo_cal_day_'+pageid)) { day = goo_readCookie('goo_cal_day_'+pageid); }
   if (goo_readCookie('goo_cal_view_'+pageid)) { cal_view = goo_readCookie('goo_cal_view_'+pageid); }
   if (month&&year) {
	  document.getElementById(datalistvar+'_monthset').value=month;
      document.getElementById(datalistvar+'_yearset').value=year; 
   }
   if (day) {
	   document.getElementById(datalistvar+'_dayset').value=day; 
   }
   if (filterstr&&filterid&&!skip) {
	  sidebarFilter(filterstr,filterid,datalistvar,1);
   }
   displayPagesList(datalistvar,cal_view);
//sidebar search
   var searchquery = document.getElementById('searchquery').value;
 	var searchqueryc = document.getElementById('searchqueryc').value;
	var searchquerysc = document.getElementById('searchquerysc').value;
  	if(searchqueryc){
	var catlookup = document.getElementById(datalistvar+'_catlookup').value;
	var catlookupar = [];
	var temp = [];
	var catnames = [];
	var catids = [];
	catlookupar = catlookup.split(',');
	
	for (var i=0; i < catlookupar.length; i++)
	{
		temp = catlookupar[i].split('|');
		catids.push(temp[0]);
		catnames.push(temp[1]);
	}
	var thequeryindex;
	for (var i=0; i <catids.length; i++){if (catids[i]==searchqueryc)thequeryindex = i;}
	sidebarFilter(catnames[thequeryindex],9,datalistvar);
	document.getElementById('searchqueryc').value='';
	}
	
	if(searchquerysc){
	var subcatlookup = document.getElementById(datalistvar+'_subcatlookup').value;
	var subcatlookupar = [];
	var temp = [];
	var subcatnames = [];
	var subcatids = [];
	subcatlookupar = subcatlookup.split(',');
	for (var i=0; i < subcatlookupar.length; i++)
	{
		temp = subcatlookupar[i].split('|');
		subcatids.push(temp[0]);
		subcatnames.push(temp[1]);
	}
	var thequeryindex;
	for (var i=0; i <subcatids.length; i++){if (subcatids[i]==searchquerysc)thequeryindex = i;}
	sidebarFilter(subcatnames[thequeryindex],11,datalistvar);
	document.getElementById('searchquerysc').value='';
	}

	if (searchquery!=''){calsearchsubmit(datalistvar, searchquery);}

//sidebar search
}
// COOKIE FUNCTIONS
function goo_createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function goo_readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function goo_eraseCookie(name) {
	goo_createCookie(name,"",-1);
}
// ON LOAD FUNCTIONS
window.onload = function() {
   goojax_saveformdata('mainform','/goodirector/contentdirector/pages/calendar/display_data.php');
}